VideoFigureApi¶
- class VideoFigureApi[source]¶
Bases:
supervisely.api.entity_annotation.figure_api.FigureApi
VideoFigure
for a single video.Methods
Add VideoFigures to given Video by ID.
Create new VideoFigure for given frame in given video ID.
Checks if an entity with the given parent_id and name exists
Get Figures information by IDs from given dataset ID.
Generates a free name for an entity with the given parent_id and name.
Get Figure information by ID.
Get information about an entity by its name from the Supervisely server.
Get list of entities in parent entity with given parent ID.
Get list of all or limited quantity entities from the Supervisely server.
This generator function retrieves a list of all or a limited quantity of entities from the Supervisely server, yielding batches of entities as they are retrieved
NamedTuple FigureInfo information about Figure.
Get string name of NamedTuple for class.
Remove an entity with the specified ID from the Supervisely server.
Remove entities in batches from the Supervisely server.
Attributes
MAX_WAIT_ATTEMPTS
Maximum number of attempts that will be made to wait for a certain condition to be met.
WAIT_ATTEMPT_TIMEOUT_SEC
Number of seconds for intervals between attempts.
- InfoType¶
alias of
supervisely.api.module_api.FigureInfo
- append_bulk(video_id, figures, key_id_map)[source]¶
Add VideoFigures to given Video by ID.
- Parameters
- video_id : int
Video ID in Supervisely.
- figures : List[VideoFigure]
List of VideoFigures to append.
- key_id_map : KeyIdMap
KeyIdMap object.
- Returns
None
- Return type
NoneType
- Usage example
import supervisely as sly os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() project_id = 124976 meta_json = api.project.get_meta(project_id) meta = sly.ProjectMeta.from_json(meta_json) key_id_map = KeyIdMap() video_id = 198703212 ann_info = api.video.annotation.download(video_id) ann = sly.VideoAnnotation.from_json(ann_info, meta, key_id_map) figures = ann.figures[:5] api.video.figure.append_bulk(video_id, figures, key_id_map)
-
create(video_id, object_id, frame_index, geometry_json, geometry_type, track_id=
None
)[source]¶ Create new VideoFigure for given frame in given video ID.
- Parameters
- video_id : int
Video ID in Supervisely.
- object_id : int
ID of the object to which the VideoFigure belongs.
- frame_index : int
Number of the frame to add VideoFigure.
- geometry_json : dict
Parameters of geometry for VideoFigure.
- geometry_type : str
Type of VideoFigure geometry.
- track_id : int, optional
int, optional.
- Returns
New figure ID
- Return type
- Usage example
import supervisely as sly os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() video_id = 198703211 object_id = 152118 frame_idx = 0 geometry_json = {'points': {'exterior': [[500, 500], [1555, 1500]], 'interior': []}} geometry_type = 'rectangle' figure_id = api.video.figure.create(video_id, object_id, frame_idx, geometry_json, geometry_type) # 643182610
- exists(parent_id, name)¶
Checks if an entity with the given parent_id and name exists
- Parameters
- Returns
Returns True if entity exists, and False if not
- Return type
- Usage example
import supervisely as sly # You can connect to API directly address = 'https://app.supervise.ly/' token = 'Your Supervisely API Token' api = sly.Api(address, token) # Or you can use API from environment os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() name = "IMG_0315.jpeg" dataset_id = 55832 exists = api.image.exists(dataset_id, name) print(exists) # True
- get_by_ids(dataset_id, ids)¶
Get Figures information by IDs from given dataset ID.
- Parameters
- Returns
List of information about Figures. See
info_sequence
- Return type
List[NamedTuple]
- Usage example
import supervisely as sly os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() dataset_id = 466642 figures_ids = [642155547, 642155548, 642155549] figures_infos = api.video.figure.get_by_ids(dataset_id, figures_ids) print(figures_infos) # Output: [ # [ # 642155547, # "2021-03-23T13:25:34.705Z", # "2021-03-23T13:25:34.705Z", # 198703211, # 152118, # 124976, # 466642, # 0, # "rectangle", # { # "points": { # "exterior": [ # [ # 2240, # 1041 # ], # [ # 2463, # 1187 # ] # ], # "interior": [] # } # } # ], # [ # 642155548, # "2021-03-23T13:25:34.705Z", # "2021-03-23T13:25:34.705Z", # 198703211, # 152118, # 124976, # 466642, # 1, # "rectangle", # { # "points": { # "exterior": [ # [ # 2248, # 1048 # ], # [ # 2455, # 1176 # ] # ], # "interior": [] # } # } # ], # [ # 642155549, # "2021-03-23T13:25:34.705Z", # "2021-03-23T13:25:34.705Z", # 198703211, # 152118, # 124976, # 466642, # 2, # "rectangle", # { # "points": { # "exterior": [ # [ # 2237, # 1046 # ], # [ # 2464, # 1179 # ] # ], # "interior": [] # } # } # ] # ]
- get_free_name(parent_id, name)¶
Generates a free name for an entity with the given parent_id and name. Adds an increasing suffix to original name until a unique name is found.
- Parameters
- Returns
Returns free name.
- Return type
- Usage example
import supervisely as sly # You can connect to API directly address = 'https://app.supervise.ly/' token = 'Your Supervisely API Token' api = sly.Api(address, token) # Or you can use API from environment os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() name = "IMG_0315.jpeg" dataset_id = 55832 free_name = api.image.get_free_name(dataset_id, name) print(free_name) # IMG_0315_001.jpeg
- get_info_by_id(id)¶
Get Figure information by ID.
- Parameters
- id : int
Figure ID in Supervisely.
- Returns
Information about Figure. See
info_sequence
- Return type
NamedTuple
- Usage example
import supervisely as sly figure_id = 588801373 os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() figure_info = api.video.figure.get_info_by_id(figure_id) print(figure_info) # Output: [ # 588801373, # "2020-12-22T06:37:13.183Z", # "2020-12-22T06:37:13.183Z", # 186648101, # 112482, # 110366, # 419886, # 0, # "bitmap", # { # "bitmap": { # "data": "eJw...Cgj4=", # "origin": [ # 335, # 205 # ] # } # } # ]
- get_info_by_name(parent_id, name)¶
Get information about an entity by its name from the Supervisely server.
- Parameters
- Usage example
import supervisely as sly # You can connect to API directly address = 'https://app.supervise.ly/' token = 'Your Supervisely API Token' api = sly.Api(address, token) # Or you can use API from environment os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() dataset_id = 55832 name = "IMG_0315.jpeg" info = api.image.get_info_by_name(dataset_id, name) print(info) # Output: ImageInfo(id=19369643, name='IMG_0315.jpeg', ...)
-
get_list(parent_id, filters=
None
)¶ Get list of entities in parent entity with given parent ID.
- Parameters
- Usage example
import supervisely as sly # You can connect to API directly address = 'https://app.supervise.ly/' token = 'Your Supervisely API Token' api = sly.Api(address, token) # Or you can use API from environment os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() dataset_id = 55832 images = api.image.get_list(dataset_id) print(images) # Output: [ ImageInfo(id=19369642, ...) ImageInfo(id=19369643, ...) ImageInfo(id=19369644, ...) ]
-
get_list_all_pages(method, data, progress_cb=
None
, convert_json_info_cb=None
, limit=None
, return_first_response=False
)¶ Get list of all or limited quantity entities from the Supervisely server.
- Parameters
- method : str
Request method name
- data : dict
Dictionary with request body info
- progress_cb : Progress, optional
Function for tracking download progress.
- convert_json_info_cb : Callable, optional
Function for convert json info
- limit : int, optional
Number of entity to retrieve
- return_first_response : bool, optional
Specify if return first response
-
get_list_all_pages_generator(method, data, progress_cb=
None
, convert_json_info_cb=None
, limit=None
, return_first_response=False
)¶ This generator function retrieves a list of all or a limited quantity of entities from the Supervisely server, yielding batches of entities as they are retrieved
- Parameters
- method : str
Request method name
- data : dict
Dictionary with request body info
- progress_cb : Progress, optional
Function for tracking download progress.
- convert_json_info_cb : Callable, optional
Function for convert json info
- limit : int, optional
Number of entity to retrieve
- return_first_response : bool, optional
Specify if return first response
- static info_sequence()¶
NamedTuple FigureInfo information about Figure.
- Example
FigureInfo(id=588801373, updated_at='2020-12-22T06:37:13.183Z', created_at='2020-12-22T06:37:13.183Z', entity_id=186648101, object_id=112482, project_id=110366, dataset_id=419886, frame_index=0, geometry_type='bitmap', geometry={'bitmap': {'data': 'eJwdlns8...Cgj4=', 'origin': [335, 205]}})
- static info_tuple_name()¶
Get string name of NamedTuple for class.
- Returns
NamedTuple name.
- Return type
- Usage example
import supervisely as sly os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() tuple_name = api.video.figure.info_tuple_name() print(tuple_name) # FigureInfo
- remove(id)¶
Remove an entity with the specified ID from the Supervisely server.
- Parameters
- id : int
Entity ID in Supervisely.
- Usage example
import supervisely as sly # You can connect to API directly address = 'https://app.supervise.ly/' token = 'Your Supervisely API Token' api = sly.Api(address, token) # Or you can use API from environment os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() image_id = 19369643 api.image.remove(image_id)
-
remove_batch(ids, progress_cb=
None
, batch_size=50
)¶ Remove entities in batches from the Supervisely server.
- Parameters
- ids : List[int]
IDs of entities in Supervisely.
- progress_cb : Callable
Function for control remove progress.
- Usage example
import supervisely as sly # You can connect to API directly address = 'https://app.supervise.ly/' token = 'Your Supervisely API Token' api = sly.Api(address, token) # Or you can use API from environment os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly' os.environ['API_TOKEN'] = 'Your Supervisely API Token' api = sly.Api.from_env() image_ids = [19369645, 19369646, 19369647] api.image.remove_batch(image_ids)