CLIP_ENCODED_MEDIA_START_TIMESTAMP_KEY, module_dict=globals()) msu.create_int_context_feature("clip_start_timestamp", CLIP_START_TIMESTAMP_KEY, module_dict=globals()) msu.create_int_context_feature("clip_end_timestamp", CLIP_END_TIMESTAMP_KEY, module_dict=globals()) msu.create_bytes_list_context_feature("clip_label_string", CLIP_LABEL_STRING_KEY, module_dict=globals()) msu.create_int_list_context_feature("clip_label_index", CLIP_LABEL_INDEX_KEY, module_dict=globals()) msu.create_float_list_context_feature("clip_label_confidence", CLIP_LABEL_CONFIDENCE_KEY, module_dict=globals()) ################################## SEGMENTS ################################# # A list of segment start times in microseconds. SEGMENT_START_TIMESTAMP_KEY = "segment/start/timestamp" # A list of indices marking the first frame index >= the start timestamp. SEGMENT_START_INDEX_KEY = "segment/start/index" # A list of segment end times in microseconds. SEGMENT_END_TIMESTAMP_KEY = "segment/end/timestamp" # A list of indices marking the last frame index <= the end timestamp. SEGMENT_END_INDEX_KEY = "segment/end/index" # A list with the label index for each segment. # Multiple labels for the same segment are encoded as repeated segments. SEGMENT_LABEL_INDEX_KEY = "segment/label/index" # A list with the label string for each segment.
def _create_region_with_prefix(name, prefix): """Create multiple accessors for region based data.""" msu.create_int_feature_list(name + "_num_regions", REGION_NUM_REGIONS_KEY, prefix=prefix, module_dict=globals()) msu.create_int_feature_list(name + "_is_annotated", REGION_IS_ANNOTATED_KEY, prefix=prefix, module_dict=globals()) msu.create_int_list_feature_list(name + "_is_occluded", REGION_IS_OCCLUDED_KEY, prefix=prefix, module_dict=globals()) msu.create_int_list_feature_list(name + "_is_generated", REGION_IS_GENERATED_KEY, prefix=prefix, module_dict=globals()) msu.create_int_feature_list(name + "_timestamp", REGION_TIMESTAMP_KEY, prefix=prefix, module_dict=globals()) msu.create_int_feature_list(name + "_unmodified_timestamp", REGION_UNMODIFIED_TIMESTAMP_KEY, prefix=prefix, module_dict=globals()) msu.create_bytes_list_feature_list(name + "_label_string", REGION_LABEL_STRING_KEY, prefix=prefix, module_dict=globals()) msu.create_int_list_feature_list(name + "_label_index", REGION_LABEL_INDEX_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_label_confidence", REGION_LABEL_CONFIDENCE_KEY, prefix=prefix, module_dict=globals()) msu.create_bytes_list_feature_list(name + "_class_string", REGION_CLASS_STRING_KEY, prefix=prefix, module_dict=globals()) msu.create_int_list_feature_list(name + "_class_index", REGION_CLASS_INDEX_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_class_confidence", REGION_CLASS_CONFIDENCE_KEY, prefix=prefix, module_dict=globals()) msu.create_bytes_list_feature_list(name + "_track_string", REGION_TRACK_STRING_KEY, prefix=prefix, module_dict=globals()) msu.create_int_list_feature_list(name + "_track_index", REGION_TRACK_INDEX_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_track_confidence", REGION_TRACK_CONFIDENCE_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_ymin", REGION_BBOX_YMIN_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_xmin", REGION_BBOX_XMIN_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_ymax", REGION_BBOX_YMAX_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_xmax", REGION_BBOX_XMAX_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_point_x", REGION_POINT_X_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_point_y", REGION_POINT_Y_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_3d_point_x", REGION_3D_POINT_X_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_3d_point_y", REGION_3D_POINT_Y_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_3d_point_z", REGION_3D_POINT_Z_KEY, prefix=prefix, module_dict=globals()) msu.create_bytes_list_context_feature(name + "_parts", REGION_PARTS_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_context_feature( name + "_embedding_dimensions_per_region", REGION_EMBEDDING_DIMENSIONS_PER_REGION_KEY, prefix=prefix, module_dict=globals()) msu.create_bytes_context_feature(name + "_embedding_format", REGION_EMBEDDING_FORMAT_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_embedding_floats", REGION_EMBEDDING_FLOAT_KEY, prefix=prefix, module_dict=globals()) msu.create_bytes_list_feature_list(name + "_embedding_encoded", REGION_EMBEDDING_ENCODED_KEY, prefix=prefix, module_dict=globals()) msu.create_float_list_feature_list(name + "_embedding_confidence", REGION_EMBEDDING_CONFIDENCE_KEY, prefix=prefix, module_dict=globals()) # pylint: disable=undefined-variable def get_prefixed_bbox_at(index, sequence_example, prefix): return np.stack( (get_bbox_ymin_at(index, sequence_example, prefix=prefix), get_bbox_xmin_at(index, sequence_example, prefix=prefix), get_bbox_ymax_at(index, sequence_example, prefix=prefix), get_bbox_xmax_at(index, sequence_example, prefix=prefix)), 1) def add_prefixed_bbox(values, sequence_example, prefix): add_bbox_ymin(values[:, 0], sequence_example, prefix=prefix) add_bbox_xmin(values[:, 1], sequence_example, prefix=prefix) add_bbox_ymax(values[:, 2], sequence_example, prefix=prefix) add_bbox_xmax(values[:, 3], sequence_example, prefix=prefix) def get_prefixed_bbox_size(sequence_example, prefix): return get_bbox_ymin_size(sequence_example, prefix=prefix) def has_prefixed_bbox(sequence_example, prefix): return has_bbox_ymin(sequence_example, prefix=prefix) def clear_prefixed_bbox(sequence_example, prefix): clear_bbox_ymin(sequence_example, prefix=prefix) clear_bbox_xmin(sequence_example, prefix=prefix) clear_bbox_ymax(sequence_example, prefix=prefix) clear_bbox_xmax(sequence_example, prefix=prefix) def get_prefixed_point_at(index, sequence_example, prefix): return np.stack( (get_bbox_point_y_at(index, sequence_example, prefix=prefix), get_bbox_point_x_at(index, sequence_example, prefix=prefix)), 1) def add_prefixed_point(values, sequence_example, prefix): add_bbox_point_y(values[:, 0], sequence_example, prefix=prefix) add_bbox_point_x(values[:, 1], sequence_example, prefix=prefix) def get_prefixed_point_size(sequence_example, prefix): return get_bbox_point_y_size(sequence_example, prefix=prefix) def has_prefixed_point(sequence_example, prefix): return has_bbox_point_y(sequence_example, prefix=prefix) def clear_prefixed_point(sequence_example, prefix): clear_bbox_point_y(sequence_example, prefix=prefix) clear_bbox_point_x(sequence_example, prefix=prefix) def get_prefixed_3d_point_at(index, sequence_example, prefix): return np.stack( (get_bbox_3d_point_x_at(index, sequence_example, prefix=prefix), get_bbox_3d_point_y_at(index, sequence_example, prefix=prefix), get_bbox_3d_point_z_at(index, sequence_example, prefix=prefix)), 1) def add_prefixed_3d_point(values, sequence_example, prefix): add_bbox_3d_point_x(values[:, 0], sequence_example, prefix=prefix) add_bbox_3d_point_y(values[:, 1], sequence_example, prefix=prefix) add_bbox_3d_point_z(values[:, 2], sequence_example, prefix=prefix) def get_prefixed_3d_point_size(sequence_example, prefix): return get_bbox_3d_point_x_size(sequence_example, prefix=prefix) def has_prefixed_3d_point(sequence_example, prefix): return has_bbox_3d_point_x(sequence_example, prefix=prefix) def clear_prefixed_3d_point(sequence_example, prefix): clear_bbox_3d_point_x(sequence_example, prefix=prefix) clear_bbox_3d_point_y(sequence_example, prefix=prefix) clear_bbox_3d_point_z(sequence_example, prefix=prefix) # pylint: enable=undefined-variable msu.add_functions_to_module( { "get_" + name + "_at": functools.partial(get_prefixed_bbox_at, prefix=prefix), "add_" + name: functools.partial(add_prefixed_bbox, prefix=prefix), "get_" + name + "_size": functools.partial(get_prefixed_bbox_size, prefix=prefix), "has_" + name: functools.partial(has_prefixed_bbox, prefix=prefix), "clear_" + name: functools.partial(clear_prefixed_bbox, prefix=prefix), }, module_dict=globals()) msu.add_functions_to_module( { "get_" + name + "_point_at": functools.partial(get_prefixed_point_at, prefix=prefix), "add_" + name + "_point": functools.partial(add_prefixed_point, prefix=prefix), "get_" + name + "_point_size": functools.partial(get_prefixed_point_size, prefix=prefix), "has_" + name + "_point": functools.partial(has_prefixed_point, prefix=prefix), "clear_" + name + "_point": functools.partial(clear_prefixed_point, prefix=prefix), }, module_dict=globals()) msu.add_functions_to_module( { "get_" + name + "_3d_point_at": functools.partial(get_prefixed_3d_point_at, prefix=prefix), "add_" + name + "_3d_point": functools.partial(add_prefixed_3d_point, prefix=prefix), "get_" + name + "_3d_point_size": functools.partial(get_prefixed_3d_point_size, prefix=prefix), "has_" + name + "_3d_point": functools.partial(has_prefixed_3d_point, prefix=prefix), "clear_" + name + "_3d_point": functools.partial(clear_prefixed_3d_point, prefix=prefix), }, module_dict=globals())
# run this code at the module level to procedurally define functions for test # cases. msu.create_bytes_context_feature("string_context", "string_feature", module_dict=msu.__dict__) msu.create_float_context_feature("float_context", "float_feature", module_dict=msu.__dict__) msu.create_int_context_feature("int64_context", "int64_feature", module_dict=msu.__dict__) msu.create_bytes_list_context_feature("string_list_context", "string_vector_feature", module_dict=msu.__dict__) msu.create_float_list_context_feature("float_list_context", "float_vector_feature", module_dict=msu.__dict__) msu.create_int_list_context_feature("int64_list_context", "int64_vector_feature", module_dict=msu.__dict__) msu.create_bytes_feature_list("string_feature_list", "string_feature_list", module_dict=msu.__dict__) msu.create_float_feature_list("float_feature_list", "float_feature_list", module_dict=msu.__dict__) msu.create_int_feature_list("int64_feature_list", "int64_feature_list", module_dict=msu.__dict__) msu.create_bytes_list_feature_list("string_list_feature_list", "string_list_feature_list",