VideoObjectApi

class VideoObjectApi[source]

Bases: supervisely.api.entity_annotation.object_api.ObjectApi

VideoObject for VideoAnnotation.

Methods

append_bulk

Add Objects to Annotation Objects.

exists

Checks if an entity with the given parent_id and name exists

get_free_name

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

get_info_by_id

Get Object information by ID.

get_info_by_name

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

get_list

Get list of information about all video Objects for a given dataset 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 ObjectInfo information about Object.

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 objects 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.ObjectInfo

append_bulk(video_id, objects, key_id_map=None)[source]

Add Objects to Annotation Objects.

Parameters
video_id : int

Video ID in Supervidely.

objects : VideoObjectCollection

VideoAnnotation objects.

key_id_map : KeyIdMap, optional

KeyIdMap object.

Returns

List of objects IDs

Return type

List[int]

Usage example
import supervisely as sly

from supervisely.video_annotation.key_id_map import KeyIdMap

os.environ['SERVER_ADDRESS'] = 'https://app.supervise.ly'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()

project_id = 17209
video_id = 19402023

meta_json = api.project.get_meta(project_id)
project_meta = sly.ProjectMeta.from_json(meta_json)

key_id_map = KeyIdMap()
ann_info = api.video.annotation.download(video_id)
ann = sly.VideoAnnotation.from_json(ann_info, project_meta, key_id_map)

api.video.object.append_bulk(video_id, ann.objects, key_id_map)
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_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 Object information by ID.

Parameters
id : int

Object ID in Supervisely.

Returns

Information about Object. See info_sequence

Return type

NamedTuple

get_info_by_name(parent_id, name, fields=[])

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.

fields : List[str]

The list of api fields which will be returned with the response.

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(dataset_id, filters=None)

Get list of information about all video Objects for a given dataset ID.

Parameters
dataset_id : int

Dataset ID in Supervisely.

filters : List[dict], optional

List of parameters to sort output Objects.

Returns

Information about Objects. See info_sequence

Return type

List[NamedTuple]

Usage example
import supervisely as sly

os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()

dataset_id = 466642
object_infos = api.video.object.get_list(dataset_id)
print(object_infos)
# Output: [
#     [
#         152118,
#         "",
#         "2021-03-23T13:25:34.705Z",
#         "2021-03-23T13:25:34.705Z",
#         466642,
#         2856942,
#         198703211,
#         [
#             {
#                 "objectId": 152118,
#                 "tagId": 29098694,
#                 "entityId": null,
#                 "id": 40632,
#                 "value": "grey"
#             }
#         ],
#         {},
#         16154
#     ],
#     [
#         152119,
#         "",
#         "2021-03-23T13:25:34.705Z",
#         "2021-03-23T13:25:34.705Z",
#         466642,
#         2856942,
#         198703211,
#         [
#             {
#                 "objectId": 152119,
#                 "tagId": 29098694,
#                 "entityId": null,
#                 "id": 40633,
#                 "value": "wine"
#             }
#         ],
#         {},
#         16154
#     ],
#     [
#         152120,
#         "",
#         "2021-03-23T13:25:34.705Z",
#         "2021-03-23T13:25:34.705Z",
#         466642,
#         2856942,
#         198703211,
#         [
#             {
#                 "objectId": 152120,
#                 "tagId": 29098694,
#                 "entityId": null,
#                 "id": 40634,
#                 "value": "beige"
#             }
#         ],
#         {},
#         16154
#     ],
#     [
#         152121,
#         "",
#         "2021-03-23T13:25:34.705Z",
#         "2021-03-23T13:25:34.705Z",
#         466642,
#         2856941,
#         198703212,
#         [
#             {
#                 "objectId": 152121,
#                 "tagId": 29098696,
#                 "entityId": null,
#                 "id": 40635,
#                 "value": "juvenile"
#             }
#         ],
#         {},
#         16154
#     ],
#     [
#         152122,
#         "",
#         "2021-03-23T13:25:34.705Z",
#         "2021-03-23T13:25:34.705Z",
#         466642,
#         2856943,
#         198703211,
#         [],
#         {},
#         16154
#     ]
# ]
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 ObjectInfo information about Object.

Example
ObjectInfo(id=152118,
           description='',
           created_at='2021-03-23T13:25:34.705Z',
           updated_at='2021-03-23T13:25:34.705Z',
           dataset_id=466642, class_id=2856942,
           entity_id=198703211,
           tags=[{'objectId': 152118, 'tagId': 29098694, 'entityId': None, 'id': 40632, 'value': 'grey'}],
           meta={},
           created_by_id=16154)
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.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()

tuple_name = api.video.object.info_tuple_name()
print(tuple_name) # ObjectInfo
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 objects in batches from the Supervisely server. All entity IDs must belong to the same item (for example image, volume).

Parameters
ids : List[int]

IDs of objects in Supervisely.

progress_cb : Callable

Function for control remove progress.

Usage example
import supervisely as sly

os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()


object_ids = [19369645, 19369646, 19369647]
api.volume.object.remove_batch(object_ids)