VideoFigure¶
- class VideoFigure[source]¶
Bases:
objectVideoFigure object for
VideoAnnotation.VideoFigureobject is immutable.- Parameters
- video_object : VideoObject
VideoObject object.
- geometry : Geometry
Label
geometry.- frame_index : int
Index of Frame to which VideoFigure belongs.
- key_id_map : KeyIdMap, optional
KeyIdMap object.
- class_id : int, optional
ID of
VideoObjectto which VideoFigure belongs.- labeler_login : str, optional
Login of the user who created VideoFigure.
- updated_at : str, optional
Date and Time when VideoFigure was modified last. Date Format: Year:Month:Day:Hour:Minute:Seconds. Example: ‘2021-01-22T19:37:50.158Z’.
- created_at : str, optional
Date and Time when VideoFigure was created. Date Format is the same as in “updated_at” parameter.
- track_id : str, optional
ID of the track to which VideoFigure belongs.
- smart_tool_input : dict, optional
Smart Tool parameters that were used for labeling.
- priority : int, optional
Priority of the figure (position of the figure relative to other overlapping or underlying figures).
- Usage example
import supervisely as sly obj_class_car = sly.ObjClass('car', sly.Rectangle) video_obj_car = sly.VideoObject(obj_class_car) fr_index = 7 geometry = sly.Rectangle(0, 0, 100, 100) video_figure_car = sly.VideoFigure(video_obj_car, geometry, fr_index) video_figure_car_json = video_figure_car.to_json() print(video_figure_car_json) # Output: { # "key": "5e8afd2e26a54ab18154b355fa9665f8", # "objectKey": "5860b7a5519b4de7b3d9c1720a40b38a", # "geometryType": "rectangle", # "geometry": { # "points": { # "exterior": [ # [ # 0, # 0 # ], # [ # 100, # 100 # ] # ], # "interior": [] # } # } # }
Methods
Makes a copy of VideoFigure with new fields, if fields are given, otherwise it will use fields of the original VideoFigure.
Convert a json dict to VideoFigure.
Get metadata for the video figure.
Figure key.
Convert the VideoFigure to a json dict.
Checks if given image with given size contains a figure.
Attributes
Frame index of the current VideoFigure.
Geometry of the current VideoFigure.
VideoObject of current VideoFigure.
Priority of the figure (position of the figure relative to other overlapping or underlying figures).
Smart Tool parameters that were used for labeling.
VideoObject of current VideoFigure.
-
clone(video_object=
None, geometry=None, frame_index=None, key=None, class_id=None, labeler_login=None, updated_at=None, created_at=None, track_id=None, smart_tool_input=None, priority=None)[source]¶ Makes a copy of VideoFigure with new fields, if fields are given, otherwise it will use fields of the original VideoFigure.
- Parameters
- video_object : VideoObject, optional
VideoObject object.
- geometry : Geometry, optional
Label
geometry.- frame_index : int, optional
Index of Frame to which VideoFigure belongs.
- key_id_map : KeyIdMap, optional
KeyIdMap object.
- class_id : int, optional
ID of
ObjClassto which VideoFigure belongs.- labeler_login : str, optional
Login of the user who created VideoFigure.
- updated_at : str, optional
Date and Time when VideoFigure was modified last. Date Format: Year:Month:Day:Hour:Minute:Seconds. Example: ‘2021-01-22T19:37:50.158Z’.
- created_at : str, optional
Date and Time when VideoFigure was created. Date Format is the same as in “updated_at” parameter.
- track_id : str, optional
ID of the track to which VideoFigure belongs.
- smart_tool_input : dict, optional
Smart Tool parameters that were used for labeling.
- priority : int, optional
Priority of the figure (position of the figure relative to other overlapping or underlying figures).
- Returns
VideoFigure object
- Return type
- Usage example
import supervisely as sly obj_class_car = sly.ObjClass('car', sly.Rectangle) video_obj_car = sly.VideoObject(obj_class_car) fr_index = 7 geometry = sly.Rectangle(0, 0, 100, 100) video_figure_car = sly.VideoFigure(video_obj_car, geometry, fr_index) obj_class_bus = sly.ObjClass('bus', sly.Rectangle) video_obj_bus = sly.VideoObject(obj_class_bus) fr_index_bus = 15 geometry_bus = sly.Rectangle(0, 0, 500, 600) # Remember that VideoFigure object is immutable, and we need to assign new instance of VideoFigure to a new variable video_figure_bus = video_figure_car.clone(video_object=video_obj_bus, geometry=geometry_bus, frame_index=fr_index_bus) print(video_figure_bus.to_json()) # Output: { # "key": "c2f501e94f42483ebd202697608e8d26", # "objectKey": "942c79137b4547c59193276317f73897", # "geometryType": "rectangle", # "geometry": { # "points": { # "exterior": [ # [ # 0, # 0 # ], # [ # 600, # 500 # ] # ], # "interior": [] # } # } # }
-
classmethod from_json(data, objects, frame_index, key_id_map=
None)[source]¶ Convert a json dict to VideoFigure. Read more about Supervisely format.
- Parameters
- data :
dict Dict in json format.
- objects : VideoObjectCollection
VideoObjectCollection object.
- frame_index : int
Index of Frame to which VideoFigure belongs.
- key_id_map : KeyIdMap, optional
KeyIdMap object.
- data :
- Raises
RuntimeError, if video object ID and video object key are None, if video object key and key_id_map are None, if video object with given id not found in key_id_map- Returns
VideoFigure object
- Return type
- Usage example
import supervisely as sly # Create VideoFigure from json we use data from example to_json(see above) new_video_figure = sly.VideoFigure.from_json(video_figure_json, sly.VideoObjectCollection([video_obj_car]), fr_index)
- get_meta()[source]¶
Get metadata for the video figure.
- Returns
Dictionary with metadata for the video figure.
- Return type
Dict[str, int]- Usage example
import supervisely as sly obj_class_car = sly.ObjClass('car', sly.Rectangle) video_obj_car = sly.VideoObject(obj_class_car) fr_index = 7 geometry = sly.Rectangle(0, 0, 100, 100) video_figure_car = sly.VideoFigure(video_obj_car, geometry, fr_index) print(video_figure_car.get_meta()) # {'frame': 7}
- key()[source]¶
Figure key.
- Returns
Figure key.
- Return type
UUID
- Usage example
key = video_figure_car.key print(key) # 158e6cf4f4ac4c639fc6994aad127c16
-
to_json(key_id_map=
None, save_meta=False)[source]¶ Convert the VideoFigure to a json dict. Read more about Supervisely format.
- Parameters
- Returns
Json format as a dict
- Return type
- Usage example
import supervisely as sly obj_class_car = sly.ObjClass('car', sly.Rectangle) video_obj_car = sly.VideoObject(obj_class_car) fr_index = 7 geometry = sly.Rectangle(0, 0, 100, 100) video_figure_car = sly.VideoFigure(video_obj_car, geometry, fr_index) video_figure_json = video_figure_car.to_json(save_meta=True) print(video_figure_json) # Output: { # "key": "591d0511ba28462c8cd657691743359c", # "objectKey": "e061bc50bd464c23a008b712d195570a", # "geometryType": "rectangle", # "geometry": { # "points": { # "exterior": [ # [ # 0, # 0 # ], # [ # 100, # 100 # ] # ], # "interior": [] # } # }, # "meta": { # "frame": 7 # } # }
-
validate_bounds(img_size, _auto_correct=
False)[source]¶ Checks if given image with given size contains a figure.
- Parameters
- Raises
OutOfImageBoundsException, if figure is out of image bounds- Returns
None
- Return type
NoneType- Usage Example
import supervisely as sly obj_class_car = sly.ObjClass('car', sly.Rectangle) video_obj_car = sly.VideoObject(obj_class_car) fr_index = 7 geometry = sly.Rectangle(0, 0, 100, 100) video_figure_car = sly.VideoFigure(video_obj_car, geometry, fr_index) im_size = (50, 200) video_figure_car.validate_bounds(im_size) # raise OutOfImageBoundsException("Figure is out of image bounds")
- property frame_index¶
Frame index of the current VideoFigure.
- Returns
Index of Frame to which VideoFigure belongs
- Return type
- Usage example
fr_index = video_figure_car.frame_index print(fr_index) # 7
- property geometry¶
Geometry of the current VideoFigure.
- Returns
Geometry object
- Return type
Geometry- Usage example
geometry = video_figure_car.geometry print(geometry.to_json()) # Output: { # "points": { # "exterior": [ # [ # 0, # 0 # ], # [ # 100, # 100 # ] # ], # "interior": [] # } # }
- property parent_object¶
VideoObject of current VideoFigure.
- Returns
VideoObject object
- Return type
VideoObject- Usage example
video_obj_car = video_figure_car.parent_object print(video_obj_car.to_json()) # Output: { # "key": "d573c6f081544e3da20022d932b259c1", # "classTitle": "car", # "tags": [] # }
- property priority¶
Priority of the figure (position of the figure relative to other overlapping or underlying figures).
- property smart_tool_input¶
Smart Tool parameters that were used for labeling.
Example:
- {
‘crop’: [[85.69912274538524, 323.07711452375236], [1108.5635719011857, 1543.1199742240174]], ‘visible’: True, ‘negative’: [], ‘positive’: [[597, 933], [474.5072466934964, 1381.6437133813354]]
}
- property video_object¶
VideoObject of current VideoFigure.
- Returns
VideoObject object
- Return type
VideoObject- Usage example
video_obj_car = video_figure_car.video_object print(video_obj_car.to_json()) # Output: { # "key": "d573c6f081544e3da20022d932b259c1", # "classTitle": "car", # "tags": [] # }