A framework and CLI tool to build, transform, and analyze datasets.
VOC dataset ---> Annotation tool
+ /
COCO dataset -----> Datumaro ---> dataset ------> Model training
+ \
CVAT annotations ---> Publication, statistics etc.
- Dataset reading, writing, conversion in any direction. Supported formats:
- COCO (
image_info
,instances
,person_keypoints
,captions
,labels
,panoptic
,stuff
) - PASCAL VOC (
classification
,detection
,segmentation
,action_classification
,person_layout
) - YOLO (
bboxes
) - TF Detection API (
bboxes
,masks
) - WIDER Face (
bboxes
) - VGGFace2 (
landmarks
,bboxes
) - MOT sequences
- MOTS PNG
- ImageNet
- CIFAR-10/100 (
classification
) - MNIST (
classification
) - MNIST in CSV (
classification
) - CamVid
- Cityscapes
- Kitti (
segmentation
,detection
,3D raw
/velodyne points
) - Supervisely (
point cloud
) - CVAT
- LabelMe
- ICDAR13/15 (
word_recognition
,text_localization
,text_segmentation
) - Market-1501 (
person re-identification
) - LFW (
classification
,person re-identification
,landmarks
)
- COCO (
- Dataset building
- Merging multiple datasets into one
- Dataset filtering by a custom criteria:
- remove polygons of a certain class
- remove images without annotations of a specific class
- remove
occluded
annotations from images - keep only vertically-oriented images
- remove small area bounding boxes from annotations
- Annotation conversions, for instance:
- polygons to instance masks and vice-versa
- apply a custom colormap for mask annotations
- rename or remove dataset labels
- Splitting a dataset into multiple subsets like
train
,val
, andtest
:- random split
- task-specific splits based on annotations,
which keep initial label and attribute distributions
- for classification task, based on labels
- for detection task, based on bboxes
- for re-identification task, based on labels, avoiding having same IDs in training and test splits
- Sampling a dataset
- analyzes inference result from the given dataset and selects the ‘best’ and the ‘least amount of’ samples for annotation.
- Select the sample that best suits model training.
- sampling with Entropy based algorithm
- Dataset quality checking
- Simple checking for errors
- Comparison with model inference
- Merging and comparison of multiple datasets
- Annotation validation based on the task type(classification, etc)
- Dataset comparison
- Dataset statistics (image mean and std, annotation statistics)
- Model integration
- Inference (OpenVINO, Caffe, PyTorch, TensorFlow, MxNet, etc.)
- Explainable AI (RISE algorithm)
- RISE for classification
- RISE for object detection
Check the design document for a full list of features. Check the user manual for usage instructions.
Feel free to open an Issue, if you think something needs to be changed. You are welcome to participate in development, instructions are available in our contribution guide.
The OpenVINO telemetry library is used to collect basic information about Datumaro using.
A short description of the information collected:
Event | Description |
---|---|
version | Datumaro version |
session start/end | Accessory event, there is no additional info here |
{command}_result | Datumaro command result with arguments passed (all sensitive arguments, such as filesystem paths or names, are sanitized) |
error | Sanitized stack trace in case of exception |
To enable/disable telemetry data collection please see the guide