Annotation Formats¶
Remo can read and output annotations in a variety of formats.
We aim to offer native support for:
- most used formats by the Computer Vision community
- simple formats to be used as conversion points to process custom annotation formats
Supported Annotation formats¶
You can import and export annotations using the following formats:
Image Classification
Supported Format | Example | Input / Output |
---|---|---|
Plain CSV | plain_img_class.csv | Both |
Pascal VOC XML | voc_img_class.xml | Input |
Remo JSON | remo_img_class.json | Output |
Object Detection
Supported Format | Example | Input / Output |
---|---|---|
Coco JSON | coco_obj_det_io.json | Both |
Plain CSV | obj_det.csv | Both |
Pascal VOC XML | voc_obj_det.xml | Input |
Open Images CSV | old_obj_det_i.csv | Input |
Remo JSON | plain_obj_det_o.json | Output |
Instance Segmentation
Supported Format | Example | Input / Output |
---|---|---|
Coco JSON | coco_inst_seg.json | Both |
Remo JSON | plain_inst_seg.json | Output |
Plain CSV | plain_inst_seg_o.csv | Output |
Additional info¶
Image files
- can have any of these extensions:
.png
,.jpg
,.jpeg
,.tif
,.tiff
Class encoding
A custom class encoding csv file can be passed to convert between IDs and labels
- use commas to delimt the columns
- no headers
- example: class_encoding_example.csv
Some pre-made class encodings are also available
Coordinates
- can be expressed in either pixels or percentages wherever possible
(0,0)
indicates the top left corner of an images- percentage example:
(x, y) = (0.6, 0.9)
means(x = 0.6*width , y=0.9*height)
Image Classification¶
When importing data in Remo, these are the minimum fields required:
Format | File type | Required fields | Optional Fields | Example |
---|---|---|---|---|
Pascal VOC | XML | filename, object {name} | voc_img_class.xml | |
Plain CSV file | CSV | file_name, class_name | plain_img_class.csv |
Pascal VOC¶
The Pascal VOC XML annotation format became popular thanks to the ImageNet challenge, which adopted the format of the PASCAL VOC challenge.
By default, on import classes follow the WordNet encoding, which you can download here
Plain CSV¶
This is a custom simple format we support to facilitate converting data.
- Columns in the file have to be separated by commas
- Remo supports the following variations on column headers:
file_name | class_name |
---|---|
image , image_id , image id , file_name , filename , file , file name , file_path , path , file path |
class , label , name , class_name , class name , label_name , label name , category |
Object Detection¶
When importing data in Remo, these are the minimum fields required:
Format | File type | Required fields | Optional Fields | Example |
---|---|---|---|---|
Coco Object Detection | JSON | file_name, segmentation, area, iscrowd, image_id, bbox, category_id, id | info {url, version, year, contributor, date_created}, licences: {url, id, name}, images{ date_captured,license, url}, annotations {area} | coco_obj_det_io.json |
Pascal VOC | XML | filename, size, object{name, bndbox} | voc_obj_det.xml | |
Open Images | CSV | ImageID, LabelName, Confidence,XMin, XMax, YMin, YMax | Source, IsOccluded, IsGroupOf, IsDepiction, IsInside | old_obj_det_i.csv |
Plain CSV file | CSV | file_name, class_name, xmin, ymin, xmax, ymax | - | obj_det.csv |
Coco¶
You can read more about the Common Objects in Context challenge here
Coordinates for bounding boxes are expressed in pixel values as [xmin, ymin, width, height].
Pascal VOC¶
You can read more about the Pascal Visual Objects Classes challenge here.
Classes are WordNet encoded which you can download here.
Open Images¶
You can read more about the Open Images challenge here.
Classes (LabelName
) are Google Knowledge Graph encoded which you can access here.
Plain CSV¶
We support the following variations on column headers:
file_name | class_name | xmin | xmax | ymin | ymax |
---|---|---|---|---|---|
image , image_id , image id , file_name , filename , file , file name , file_path , path , file path |
class , label , name , class_name , class name , label_name , label name , category |
xmin , x_min , x min , x1 , x_1 |
xmax , x_max , x max , x2 , x_2 |
ymin , y_min , y min , y1 , y_1 |
ymax , y_max , y min , y2 , y_2 |
Instance Segmentation¶
When importing data in Remo, these are the minimum fields required:
Format | File type | Required fields | Optional Fields | Example |
---|---|---|---|---|
Coco Instance Segmentation | JSON | file_name, segmentation, area, iscrowd, image_id, category_id, id | info {url, version, year, contributor, date_created}, licences {url, id, name}, images {date_captured, license, url}, annotations {bbox} | coco_inst_seg.json |
Coco¶
You can read more about the Common Objects in Context challenge here
Coordinates are expressed in pixel values as [x, y] pairs.