Annotation JSON helper functions#

Converting annotation format to and from src.superannotate format#

superannotate.import_annotation(input_dir, output_dir, dataset_format='superannotate', dataset_name='', project_type='Vector', task='object_detection', images_root='', images_extensions=None)#

Converts other annotation formats to SuperAnnotate annotation format. Currently available (project_type, task) combinations for converter presented below:

From COCO to SA

project_type

task

Pixel

panoptic_segmentation

Pixel

instance_segmentation

Vector

instance_segmentation

Vector

object_detection

Vector

keypoint_detection

From VOC to SA

project_type

task

Pixel

instance_segmentation

Vector

instance_segmentation

Vector

object_detection

From LabelBox to SA

project_type

task

Vector

object_detection

Vector

instance_segmentation

Vector

vector_annotation

Pixel

instance_segmentation

From DataLoop to SA

project_type

task

Vector

object_detection

Vector

instance_segmentation

Vector

vector_annotation

From Supervisely to SA

project_type

task

Vector

object_detection

Vector

keypoint_detection

Vector

vector_annotation

Vector

instance_segmentation

Pixel

instance_segmentation

From VoTT to SA

project_type

task

Vector

instance_segmentation

Vector

object_detection

Vector

vector_annotation

From SageMaker to SA

project_type

task

Pixel

instance_segmentation

Vector

objcet_detection

From VGG to SA

project_type

task

Vector

instance_segmentation

Vector

object_detection

Vector

vector_annotation

From GoogleCloud to SA

project_type

task

Vector

object_detection

From YOLO to SA

project_type

task

Vector

object_detection

Parameters:
  • input_dir (Pathlike(str or Path)) – Path to the dataset folder that you want to convert.

  • output_dir (Pathlike(str or Path)) – Path to the folder, where you want to have converted dataset.

  • dataset_format (str) – Annotation format to convert SuperAnnotate annotation format. Available candidates are: [“COCO”, “VOC”, “LabelBox”, “DataLoop”, “Supervisely”, ‘VGG’, ‘YOLO’, ‘SageMake’, ‘VoTT’, ‘GoogleCloud’]

  • dataset_name (str) – Name of the json file in the input_dir, which should be converted.

  • project_type (str) – SuperAnnotate project type is either ‘Vector’ or ‘Pixel’ (Default: ‘Vector’) ‘Vector’ project creates <image_name>___objects.json for each image. ‘Pixel’ project creates <image_name>___pixel.jsons and <image_name>___save.png annotation mask for each image.

  • task – Task can be one of the following: [‘panoptic_segmentation’, ‘instance_segmentation’, ‘keypoint_detection’, ‘object_detection’, ‘vector_annotation’]. (Default: “object_detection”). ‘keypoint_detection’ can be used to converts keypoints from/to available annotation format. ‘panoptic_segmentation’ will use panoptic mask for each image to generate bluemask for SuperAnnotate annotation format and use bluemask to generate panoptic mask for invert conversion. Panoptic masks should be in the input folder. ‘instance_segmentation’ ‘Pixel’ project_type converts instance masks and ‘Vector’ project_type generates bounding boxes and polygons from instance masks. Masks should be in the input folder if it is ‘Pixel’ project_type. ‘object_detection’ converts objects from/to available annotation format ‘vector_annotation’ can be used to convert all annotations (point, ellipse, circule, cuboid and etc) to SuperAnnotate vector project.

  • images_root (str) – Additonal path to images directory in input_dir

  • image_extensions (list) – List of image files xtensions in the images_root folder

superannotate.export_annotation(input_dir, output_dir, dataset_format, dataset_name, project_type='Vector', task='object_detection')#

Converts SuperAnnotate annotation format to the other annotation formats. Currently available (project_type, task) combinations for converter presented below:

From SA to COCO

project_type

task

Pixel

panoptic_segmentation

Pixel

instance_segmentation

Vector

instance_segmentation

Vector

object_detection

Vector

keypoint_detection

Parameters:
  • input_dir (Pathlike(str or Path)) – Path to the dataset folder that you want to convert.

  • output_dir (Pathlike(str or Path)) – Path to the folder, where you want to have converted dataset.

  • dataset_format (str) – One of the formats that are possible to convert. Available candidates are: [“COCO”]

  • dataset_name (str) – Will be used to create json file in the output_dir.

  • project_type (str) – SuperAnnotate project type is either ‘Vector’ or ‘Pixel’ (Default: ‘Vector’) ‘Vector’ project creates <image_name>___objects.json for each image. ‘Pixel’ project creates <image_name>___pixel.jsons and <image_name>___save.png annotation mask for each image.

  • task (str) – Task can be one of the following: [‘panoptic_segmentation’, ‘instance_segmentation’, ‘keypoint_detection’, ‘object_detection’]. (Default: “object_detection”). ‘keypoint_detection’ can be used to converts keypoints from/to available annotation format. ‘panoptic_segmentation’ will use panoptic mask for each image to generate bluemask for SuperAnnotate annotation format and use bluemask to generate panoptic mask for invert conversion. Panoptic masks should be in the input folder. ‘instance_segmentation’ ‘Pixel’ project_type converts instance masks and ‘Vector’ project_type generates bounding boxes and polygons from instance masks. Masks should be in the input folder if it is ‘Pixel’ project_type. ‘object_detection’ converts objects from/to available annotation format

superannotate.convert_project_type(input_dir, output_dir, convert_to)#

Converts SuperAnnotate ‘Vector’ project type to ‘Pixel’ or reverse.

Parameters:
  • input_dir (Pathlike(str or Path)) – Path to the dataset folder that you want to convert.

  • output_dir (Pathlike(str or Path)) – Path to the folder where you want to have converted files.

  • convert_to (str) – the project type to which the current project should be converted.


Working with annotations#

SAClient.validate_annotations(project_type, annotations_json)#

Validates given annotation JSON.

Parameters:
  • project_type (str) – The project type Vector, Pixel, Video or Document

  • annotations_json (Path-like (str or Path)) – path to annotation JSON

Returns:

The success of the validation

Return type:

bool

SAClient.aggregate_annotations_as_df(project_root, project_type, folder_names=None)#

Aggregate annotations as pandas dataframe from project root.

Parameters:
  • project_root (Path-like (str or Path)) – the export path of the project

  • project_type (str) – the project type, Vector/Pixel, Video or Document

  • folder_names (list of Pathlike (str or Path) objects) – Aggregate the specified folders from project_root. If None aggregate all folders in the project_root

Returns:

DataFrame on annotations

Return type:

pandas DataFrame