VideoFigureApi

class VideoFigureApi[source]

Bases: supervisely.api.entity_annotation.figure_api.FigureApi

VideoFigure for a single video.

Methods

append_bulk

Add VideoFigures to given Video by ID.

create

Create new VideoFigure for given frame in given video ID.

exists

Checks if an entity with the given parent_id and name exists

get_by_ids

Get Figures information by IDs from given dataset ID.

get_free_name

Generates a free name for an entity with the given parent_id and name.

get_info_by_id

Get Figure information by ID.

get_info_by_name

Get information about an entity by its name from the Supervisely server.

get_list

Get list of entities in parent entity with given parent ID.

get_list_all_pages

Get list of all or limited quantity entities from the Supervisely server.

get_list_all_pages_generator

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

info_sequence

NamedTuple FigureInfo information about Figure.

info_tuple_name

Get string name of NamedTuple for class.

remove

Remove an entity with the specified ID from the Supervisely server.

remove_batch

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

int

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
parent_id : int

ID of the parent entity.

name : str

Name of the entity.

Returns

Returns True if entity exists, and False if not

Return type

bool

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
dataset_id : int

Dataset ID in Supervisely.

ids : List[int]

List of Figures IDs.

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
parent_id : int

ID of the parent entity.

name : str

Name of the entity.

Returns

Returns free name.

Return type

str

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
parent_id : int

ID of the parent entity.

name : str

Name of the entity for which the information is being retrieved

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
parent_id : int

parent ID in Supervisely.

filters : List[Dict[str, str]], optional

List of parameters to sort output entities.

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

str

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)