Home

When you're ready to export your tasks, head to the Export page through the dropdown navigation.

How to export

  1. Click Prepare for export and select your desired export format.

  1. Click Export.
  2. Your export will take a few seconds to generate. Click on the download icon to download the export when it's ready.

Annotation Formats

Annotation TypeUse casesFile Type
COCOSupports bounding box and polygon.JSON
Pascal VOCSupports bounding box and semantic segmentation.XML
YOLO DarknetSupports bounding box.TXT
SUPA classificationSupports classification.CSV

Below contains the expected content format for the formats supported:

COCO

{
   "licenses":[
      {
         "name":"",
         "id":0,
         "url":""
      }
   ],
   "info":{
      "contributor":"",
      "date_created":"",
      "description":"",
      "url":"",
      "version":"",
      "year":""
   },
   "categories":[
      {
         "id":1,
         "name":"cat",
         "supercategory":""
      },
      {
         "id":2,
         "name":"dog",
         "supercategory":""
      }
   ],
   "images":[
      {
         "id":1,
         "width":1280,
         "height":720,
         "file_name":"animal1.png",
         "license":0,
         "flickr_url":"",
         "coco_url":"",
         "date_captured":0
      },
      {
         "id":2,
         "width":3266,
         "height":1916,
         "file_name":"animal2.png",
         "license":0,
         "flickr_url":"",
         "coco_url":"",
         "date_captured":0
      },
      {
         "id":3,
         "width":2160,
         "height":2700,
         "file_name":"animal3.jpeg",
         "license":0,
         "flickr_url":"",
         "coco_url":"",
         "date_captured":0
      }
   ],
   "annotations":[
      {
         "id":1,
         "image_id":1,
         "category_id":2,
         "segmentation":[
            
         ],
         "area":181429.7948,
         "bbox":[
            826.11,
            238.86,
            447.82,
            405.14
         ],
         "iscrowd":0
      },
      {
         "id":2,
         "image_id":2,
         "category_id":1,
         "segmentation":[
            
         ],
         "area":125742.59949999998,
         "bbox":[
            1458.95,
            318.81,
            351.05,
            358.19
         ],
         "iscrowd":0
      }
   ]
}

Pascal VOC

Pascal VOC dataset directory should have the following structure:

└─ Dataset/
   ├── labelmap.txt # or a list of non-Pascal labels in other format 
   │
   └── Annotations/
         ├── ann1.xml # Pascal VOC format annotation file
         ├── ann2.xml
         └── ...

labelmap.txt defines the custom color map and non-pascal labels

# label:color_rgb:parts:actions
background:0,0,0::
cat:128,0,0::
dog:0,128,0::

Annotations directory contains xml files which provide information about the annotations.

Example xml file, ann1.xml:

<annotation>
	<folder></folder>
	<filename>ann1.jpg</filename>
	<source>
		<database>supa</database>
	</source>
	<size>
		<width>500</width>
		<height>375</height>
		<depth>3</depth>
	</size>
	<segmented>0</segmented>
	<object>
		<name>cat</name>
		<truncated>0</truncated>
		<difficult>0</difficult>
		<occluded>0</occluded>
		<bndbox>
			<xmin>179</xmin>
			<xmax>231</xmax>
			<ymin>85</ymin>
			<ymax>144</ymax>
		</bndbox>
	</object>
	<object>
		<name>helmet</name>
		<pose>Unspecified</pose>
		<truncated>0</truncated>
		<difficult>0</difficult>
		<occluded>0</occluded>
		<bndbox>
			<xmin>112</xmin>
			<xmax>135</xmax>
			<ymin>145</ymin>
			<ymax>175</ymax>
		</bndbox>
	</object>
</annotation>

YOLO Darknet TXT

YOLO dataset directory should have the following structure:

└─ project_id/
   │
   ├── obj.names  # file with list of classes
   ├── obj.data   # file with dataset information
   ├── train.txt  # list of image paths in train subset
   │
   └── obj_train_data/  # directory with annotations for train subset
        ├── image1.txt  # list of labeled bounding boxes for image1
        ├── image2.txt
        └── ...

obj.names contains a list of classes. The line number for the class is the same as its index:

label1  # label1 has index 0  
label2  # label2 has index 1  
label3  # label2 has index 2  
...

obj.data has the following content:

classes = 3  # number of classes
train = data/train.txt  # path to train.txt
names = data/obj.names  # path to obj.names
backup = backup/

obj_train_data/ contains text files which provide information about the labeled bounding boxes. Each .txt file corresponds to one image with a single line for each bounding box.

The format of each row is label_index, center_x, center_y, width, height, where coordinates are normalised from zero to one.

  • The index for labels can be found in the file obj.names.
  • The x_center and y_center are centers of rectangle (not top-left corner).

Example txt file, image1.txt:

0 0.617 0.3594420600858369 0.114 0.17381974248927037
2 0.094 0.38626609442060084 0.156 0.23605150214592274

Creating YOLOV5 files from YOLO Darknet

YOLOv5 has two main files:

  1. .txt file containing annotations
  2. data.yaml file containing configuration values for models to locate images and map class names to class index

Steps to convert YOLO Darknet to YOLOv5:

  1. The .txt files for YOLOv5 and YOLO Darknet are identical, so no actions are required.
  2. Create a text file using the format in the example below and then add a .yaml extension.
  • nc: Number of classes. Can be found in obj.data file.
  • names: Array with the classes. Sequence of the class elements can be found in obj.names
train: ../train/images
val: ../valid/images

nc: 3 
names: ['head', 'helmet', 'person'] 

📘

Need a different export format?

Email us at [email protected] or drop us a message via Intercom.