SYNTHIA#
Format specification#
The original SYNTHIA dataset is available here.
Datumaro supports all SYNTHIA formats except SYNTHIA-AL.
Supported annotation types:
Mask
Supported annotation attributes:
dynamic_object
(boolean): whether the object moving
Convert SYNTHIA dataset#
A Datumaro dataset can be converted in the following way:
datum convert -if synthia -i <path/to/dataset> -o <output/dir>
It is also possible to convert the dataset using Python API:
import datumaro as dm
synthia_dataset = dm.Dataset.import_from('<path/to/dataset>', 'synthia')
SYNTHIA dataset directory should have the following structure:
dataset/
├── dataset_meta.json # a list of non-format labels (optional)
├── GT/
│ ├── COLOR/
│ │ ├── Stereo_Left/
│ │ │ ├── Omni_B
│ │ │ │ ├── 000000.png
│ │ │ │ ├── 000001.png
│ │ │ │ └── ...
│ │ │ └── ...
│ │ └── Stereo_Right
│ │ ├── Omni_B
│ │ │ ├── 000000.png
│ │ │ ├── 000001.png
│ │ │ └── ...
│ │ └── ...
│ └── LABELS
│ ├── Stereo_Left
│ │ ├── Omni_B
│ │ │ ├── 000000.png
│ │ │ ├── 000001.png
│ │ │ └── ...
│ │ └── ...
│ └── Stereo_Right
│ ├── Omni_B
│ │ ├── 000000.png
│ │ ├── 000001.png
│ │ └── ...
│ └── ...
└── RGB
├── Stereo_Left
│ ├── Omni_B
│ │ ├── 000000.png
│ │ ├── 000001.png
│ │ └── ...
│ └── ...
└── Stereo_Right
├── Omni_B
│ ├── 000000.png
│ ├── 000001.png
│ └── ...
└── ...
RGB
folder containing standard RGB images used for training.GT/LABELS
folder containing containing PNG files (one per image). Annotations are given in three channels. The red channel contains the class of that pixel. The green channel contains the class only for those objects that are dynamic (cars, pedestrians, etc.), otherwise it contains0
.GT/COLOR
folder containing png files (one per image). Annotations are given using a color representation.
When importing a dataset, only GT/LABELS
folder will be used.
If it is missing, GT/COLOR
folder will be used.
The original dataset also contains depth information, but Datumaro does not currently support it.
To add custom classes, you can use dataset_meta.json
.
Export to other formats#
Datumaro can convert a SYNTHIA dataset into any other format Datumaro supports. To get the expected result, convert the dataset to a format that supports segmentation masks.
You can convert a SYNTHIA dataset to other dataset formats using CLI:
datum convert -if synthia -i <path/to/dataset> \
-f voc -o <output/dir> -- --save-media
Or, using Python API:
import datumaro as dm
dataset = dm.Dataset.import_from('<path/to/dataset>', 'synthia')
dataset.export('save_dir', 'voc')
Examples#
Examples of using this format from the code can be found in the format tests