PointcloudTagApi¶
- class PointcloudTagApi(api)[source]¶
Bases:
TagApiAPI for working with
PointcloudTag.PointcloudTagApiobject is immutable.Methods
Add tag to point cloud.
Add a
TagCollectionto each figure/object.Bulk add tags to entities (images, videos, pointclouds, volumes) in a project.
Add tags to existing figures/objects.
Add tags to entity in project with given ID.
Add Tags to Annotation Objects for a specific entity (image etc.).
Add Tags to Annotation Objects for specific entity (image etc.).
Convert information about an entity to a dictionary.
Checks if an entity with the given parent_id and name exists
Generates a free name for an entity with the given parent_id and name.
Get information about an entity by its ID from the Supervisely server.
Get information about an entity by its name from the Supervisely server.
Get list of tags for a given project 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
Get the list of items for a given page number.
Yields list of images in dataset asynchronously page by page.
Get dictionary with mapping tag name to tag ID for a given project ID.
NamedTuple TagInfo information about Tag.
Get string name of NamedTuple for class.
Remove tag from point cloud.
Update tag value for point cloud.
Attributes
MAX_WAIT_ATTEMPTSMaximum number of attempts that will be made to wait for a certain condition to be met.
WAIT_ATTEMPT_TIMEOUT_SECNumber of seconds for intervals between attempts.
- InfoType¶
alias of
TagInfo
- static info_sequence()¶
NamedTuple TagInfo information about Tag.
- Usage Example:
import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) api = sly.Api.from_env() info_sequence = api.video.tag.info_sequence()
- static info_tuple_name()¶
Get string name of NamedTuple for class.
- Returns:
NamedTuple name.
- Return type:
- Usage Example:
import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) api = sly.Api.from_env() tuple_name = api.video.tag.info_tuple_name() print(tuple_name) # TagInfo
-
add(tag_meta_id, pointcloud_id, value=
None)[source]¶ Add tag to point cloud.
-
add_tags_collection_to_objects(project_id, tags_map, batch_size=
100, log_progress=False, is_video_multi_view=False, entity_id=None)¶ Add a
TagCollectionto each figure/object.Images projects: mapping is
{figure_id: TagCollection, ...}Video / pointcloud / volume / pointcloud episodes projects: mapping is
{object_id: TagCollection, ...}
All objects must belong to entities of the same project.
- Parameters:
Project ID in Supervisely.
Dictionary with mapping figure/object ID to tags collection.
Number of tags to add in one request.
If True, will display a progress bar.
If True, indicates that the entity is a multi-view video.
ID of the entity in Supervisely to add a tag to its objects. Required if
is_video_multi_viewis True.
- Returns:
List of tags infos as dictionaries.
- Return type:
- Usage Example:
import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) api = sly.Api.from_env() project_id = 12345 tag_meta = sly.TagMeta("tag_name", sly.TagValueType.ANY_STRING) meta = sly.ProjectMeta(tag_metas=[tag_meta]) meta = sly.ProjectMeta.from_json(api.project.update_meta(project_id, meta)) tag_meta = meta.get_tag_meta("tag_name") # for images project: tag_map = { 652959: sly.TagCollection([sly.Tag(tag_meta, value="v1"), sly.Tag(tag_meta, value="v2"), ...]), 652958: sly.TagCollection([sly.Tag(tag_meta, value="v3"), sly.Tag(tag_meta, value="v4"), ...]), ... } api.image.tag.add_tags_to_objects(project_id, tag_map) # for videos projects (frameRange is optional): tag_map = { 652959: sly.VideoTagCollection([sly.VideoTag(tag_meta, value="v1", frameRange=[1, 10]), ...]), 652958: sly.VideoTagCollection([sly.VideoTag(tag_meta, value="v2", frameRange=[4, 12]), ...]), ... } api.video.tag.add_to_objects_json_batch(project_id, tag_map)
-
add_to_entities_json(project_id, tags_list, batch_size=
100, log_progress=False)¶ Bulk add tags to entities (images, videos, pointclouds, volumes) in a project. Not supported for pointcloud episodes projects. All entities must belong to the same project. The
frameRangefield in a tag object within the tags list is optional and is supported only for video projects.- The
tags_listexample: [{“tagId”: 12345, “entityId”: 54321, “value”: “tag_value”}, …].
- or with frameRange:
[{“tagId”: 12345, “entityId”: 54321, “value”: “tag_value”, “frameRange”: [1, 10]}, …].
- Parameters:
- Returns:
List of tags IDs.
- Return type:
List[int]
- Usage Example:
import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) api = sly.Api.from_env() tags_list = [ { "tagId": 25926, "entityId": 652959, "value": None, # optional for tag with type 'None' "frameRange": [1, 10], # optional (only for video) }, { "tagId": 25927, "entityId": 652959, "value": "v1" }, { "tagId": 25927, "entityId": 652958, "value": "v2" } ] api.image.tag.add_to_entities_json(project_id=12345, tags_list=tags_list)
- The
-
add_to_objects(project_id, tags_list, batch_size=
100, log_progress=False, progress=None, is_video_multi_view=False, entity_id=None)¶ Add tags to existing figures/objects.
Images projects: tags are added to existing figures (labels). Example element of
tags_list:{"tagId": 12345, "figureId": 54321, "value": "tag_value"}.Video / pointcloud / volume / pointcloud episodes projects: tags are added to existing objects.
frameRangeis optional and is supported only for video and pointcloud episodes projects. Example element oftags_list:{"tagId": 12345, "objectId": 54321, "value": "tag_value"}, or{"tagId": 12345, "objectId": 54321, "value": "tag_value", "frameRange": [1, 10]}.
All objects must belong to entities of the same project.
- Parameters:
- project_id : int¶
Project ID in Supervisely.
List of tag object infos as dictionaries.
- batch_size : int¶
Number of tags to add in one request.
- log_progress : bool¶
If True, will display a progress bar.
- progress : Optional[tqdm_sly]¶
Progress bar object to display progress.
- is_video_multi_view : bool¶
If True, indicates that the entity is a multi-view video.
- entity_id : Optional[int]¶
ID of the entity in Supervisely to add a tag to its objects. Required if
is_video_multi_viewis True.
- Returns:
List of tags infos as dictionaries.
- Return type:
- Usage Example:
import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) api = sly.Api.from_env() tags_list = [ { "tagId": 25926, "figureId": 652959, "value": None, # optional for tag with type 'None' "frameRange": [1, 10], # optional (only for video / pointcloud episodes) }, { "tagId": 25927, "figureId": 652959, "value": "v1" }, { "tagId": 25927, "figureId": 652958, "value": "v2", } ] response = api.image.tag.add_to_figures(12345, tag_list) print(response) # Output: # [ # { # "id": 80421101, # "tagId": 25926, # "figureId": 652959, # "value": None # }, # { # "id": 80421102, # "tagId": 25927, # "figureId": 652959, # "value": "v1" # }, # { # "id": 80421103, # "tagId": 25927, # "figureId": 652958, # "value": "v2" # } # ]
-
append_to_entity(entity_id, project_id, tags, key_id_map=
None)¶ Add tags to entity in project with given ID.
-
append_to_objects(entity_id, project_id, objects, key_id_map, is_video_multi_view=
False)¶ Add Tags to Annotation Objects for a specific entity (image etc.).
- Parameters:
- entity_id : int¶
ID of the entity in Supervisely to add a tag to its objects
- project_id : int¶
Project ID in Supervisely. Uses to get tag name to tag ID mapping.
- objects¶
Collection of annotation objects.
- key_id_map¶
KeyIdMap object.
- is_video_multi_view : bool¶
If True, indicates that the entity is a multi-view video.
- Returns:
List of tags IDs
- Return type:
- Usage Example:
import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) api = sly.Api.from_env() img_id = 19373170 img_info = api.
-
append_to_objects_json(entity_id, tags_json, project_id=
None, is_video_multi_view=False)¶ Add Tags to Annotation Objects for specific entity (image etc.).
- Parameters:
- entity_id : int¶
ID of the entity in Supervisely to add a tag to its objects
Collection of tags in JSON format
- project_id : int, optional¶
Project ID in Supervisely. Uses to get tag name to tag ID mapping. Not required if
multi_viewis True.- is_video_multi_view : bool¶
If True, indicates that the entity is a multi-view video.
- Returns:
List of tags IDs
- Return type:
- Usage Example:
import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) api = sly.Api.from_env() tags_list = [ {"tagId": 25926, "objectId": 652959, "value": None}, {"tagId": 25927, "objectId": 652959, "value": "v1"}, {"tagId": 25927, "objectId": 652958, "value": "v2"}, ] response = api.video.tag.append_to_objects_json(12345, tags_list) print(response) # Output: # [ # 80421101, # 80421102, # 80421103 # ]
- 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 os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) 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:
- Returns:
Returns free name.
- Return type:
- Usage Example:
import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) 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_name(parent_id, name, fields=
[])¶ Get information about an entity by its name from the Supervisely server.
- Parameters:
- Usage Example:
import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) 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(project_id, filters=
None)¶ Get list of tags for a given project ID.
-
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
- Returns:
List of entities.
- Return type:
List[dict]
-
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
- async get_list_idx_page_async(method, data)¶
Get the list of items for a given page number. Page number is specified in the data dictionary.
-
async get_list_page_generator_async(method, data, pages_count=
None, semaphore=None)¶ Yields list of images in dataset asynchronously page by page.
- Parameters:
- method : str¶
Method to call for listing items.
- data : dict¶
Data to pass to the API method.
- pages_count : int, optional¶
Preferred number of pages to retrieve if used with a
per_pagelimit. Will be automatically adjusted if thepagesCountdiffers from the requested number.- semaphore=
None¶ Semaphore for limiting the number of simultaneous requests.
- Returns:
List of images in dataset.
- Return type:
AsyncGenerator[List[
ImageInfo]]- Usage Example:
import os from dotenv import load_dotenv import supervisely as sly # Load secrets and create API object from .env file (recommended) # Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication if sly.is_development(): load_dotenv(os.path.expanduser("~/supervisely.env")) api = sly.Api.from_env() method = 'images.list' data = {'datasetId': 123456} loop = sly.utils.get_or_create_event_loop() images = loop.run_until_complete(api.image.get_list_generator_async(method, data))
- get_name_to_id_map(project_id)¶
Get dictionary with mapping tag name to tag ID for a given project ID.