Detectron2是FAIR推出的一个目标检测框架,在Detectron的基础上进行了重新设计,基于pytorch。Detectron仅能接受COCO格式,Detectron2中能够接受其它形式的输入。这篇博客简要的介绍了VOC和COCO两种常见的目标检测数据标注格式。
Pascal VOC
Pascal Voc标注存储成XML的形式,每个XML对应一张图片。
它包含图片的路径在元素中,每个bbox存储在
1 2 3 4 5 6 7 8 9 10 11 12
| <object> <name>fig</name> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <xmin>256</xmin> <ymin>27</ymin> <xmax>381</xmax> <ymax>192</ymax> </bndbox> </object>
|
COCO
COCO的数据格式只是一个单独的JSON文件,对于所有数据集中的标注,或者每个数据集的切片各一个。
bbox表示为左上的坐标和box的宽高的形式,”bbox”:[x, y, width, height]。
举个例子,COCO的JSON文件包含1张图片,对应最顶层的”image”元素,3个类别在”categories”元素中,2个标注的bbox在”annotation”元素中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| { "type": "instances", "images": [ { "file_name": "0.jpg", "height": 600, "width": 800, "id": 0 } ], "categories": [ { "supercategory": "none", "name": "date", "id": 0 }, { "supercategory": "none", "name": "hazelnut", "id": 2 }, { "supercategory": "none", "name": "fig", "id": 1 } ], "annotations": [ { "id": 1, "bbox": [ 100, 116, 140, 170 ], "image_id": 0, "segmentation": [], "ignore": 0, "area": 23800, "iscrowd": 0, "category_id": 0 }, { "id": 2, "bbox": [ 321, 320, 142, 102 ], "image_id": 0, "segmentation": [], "ignore": 0, "area": 14484, "iscrowd": 0, "category_id": 0 } ] }
|
因此,对于Detectron而言,需要将数据格式从VOC转换为COCO的格式。