See also

Please visit our docs for more information on Segments.ai and visit the setup page to learn how to install and setup the Segments.ai Python SDK.

SegmentsDataset#

class SegmentsDataset(release_file, labelset='ground-truth', filter_by=None, filter_by_metadata=None, segments_dir='segments', preload=True, s3_client=None)[source]#

A class that represents a Segments dataset.

# pip install --upgrade segments-ai
from segments import SegmentsClient, SegmentsDataset
from segments.utils import export_dataset

# Initialize a SegmentsDataset from the release file
client = SegmentsClient('YOUR_API_KEY')
release = client.get_release('jane/flowers', 'v1.0') # Alternatively: release = 'flowers-v1.0.json'
dataset = SegmentsDataset(release, labelset='ground-truth', filter_by=['LABELED', 'REVIEWED'])

# Export to COCO panoptic format
export_format = 'coco-panoptic'
export_dataset(dataset, export_format)

Alternatively, you can use the initialized SegmentsDataset to loop through the samples and labels, and visualize or process them in any way you please:

import matplotlib.pyplot as plt
from segments.utils import get_semantic_bitmap

for sample in dataset:

    # Print the sample name and list of labeled objects
    print(sample['name'])
    print(sample['annotations'])

    # Show the image
    plt.imshow(sample['image'])
    plt.show()

    # Show the instance segmentation label
    plt.imshow(sample['segmentation_bitmap'])
    plt.show()

    # Show the semantic segmentation label
    semantic_bitmap = get_semantic_bitmap(sample['segmentation_bitmap'], sample['annotations'])
    plt.imshow(semantic_bitmap)
    plt.show()
Parameters
  • release_file (Union[str, Release]) – Path to a release file, or a release class resulting from get_release().

  • labelset (str) – The labelset that should be loaded. Defaults to ground-truth.

  • filter_by (Union[Literal[‘REVIEWED’, ‘REVIEWING_IN_PROGRESS’, ‘LABELED’, ‘LABELING_IN_PROGRESS’, ‘REJECTED’, ‘PRELABELED’, ‘SKIPPED’, ‘UNLABELED’], List[Literal[‘REVIEWED’, ‘REVIEWING_IN_PROGRESS’, ‘LABELED’, ‘LABELING_IN_PROGRESS’, ‘REJECTED’, ‘PRELABELED’, ‘SKIPPED’, ‘UNLABELED’]], None]) – A list of label statuses to filter by. Defaults to None.

  • filter_by_metadata (Optional[Dict[str, str]]) – A dict of metadata key:value pairs to filter by. Filters are ANDed together. Defaults to None.

  • segments_dir (str) – The directory where the data will be downloaded to for caching. Set to None to disable caching. Defaults to segments.

  • preload (bool) – Whether the data should be pre-downloaded when the dataset is initialized. Ignored if segments_dir is None. Defaults to True.

  • s3_client (Optional[Any]) – A boto3 S3 client, e.g. s3_client = boto3.client("s3"). Needs to be provided if your images are in a private S3 bucket. Defaults to None.

Raises
  • ValueError – If the release task type is not one of: segmentation-bitmap, segmentation-bitmap-highres, image-vector-sequence, bboxes, vector, pointcloud-cuboid, pointcloud-cuboid-sequence, pointcloud-segmentation, pointcloud-segmentation-sequence, text-named-entities, or text-span-categorization.

  • ValueError – If there is no labelset with this name.