126.人工智能-PascalVOC和MSCOCO数据集格式相互转换

在人工智能计算机视觉的目标检测任务中,我们需要对一张图像,标记出各个目标区域的位置和类别。一般的目标区域位置用一个矩形框来表示。

表达方式

说明

x1,y1,x2,y2

(x1,y1)为左上角坐标,(x2,y2)为右下角坐标

x1,y1,w,h

(x1,y1)为左上角坐标,w为目标区域宽度,h为目标区域高度

xc,yc,w,h

(xc,yc)为目标区域中心坐标,w为目标区域宽度,h为目标区域高度

Pascal VOC采用的[x1,y1,x2,y2] 表示物体的bounding box

MS COCO采用的[x1,y1,w,h] 表示物体的bounding box


有关数据集格式和标注可以参看:24.人工智能:计算机视觉任务——数据格式和标注


PascalVOC数据集格式

PASCAL(全称:Pattern Analysis, Statistical Modelling and Computational Learning)
VOC(全称:Visual Object Classes)

数据集目录组织格式如下:

dataset/xxx/├── Annotations│   ├── xxx1.xml│   ├── xxx2.xml│   ├── xxx3.xml│   |   ...├── JPEGImages│   ├── xxx1.jpg│   ├── xxx2.jpg│   ├── xxx3.jpg│   |   ...├── labels..txt (类别列表 )├── train_list.txt (训练数据集文件列表, JPEGImages/xxx1.jpg Annotations/xxx1.xml)└── val_list.txt (测试数据集文件列表)



MSCOCO数据集格式

MS COCO(全称:Microsoft Common Objects in Context)

数据集目录组织格式:

dataset/xxx/├── Annotations│   ├── train.json  # coco数据的标注文件│   ├── valid.json  # coco数据的标注文件├── JPEGImages│   ├── xxx1.jpg│   ├── xxx2.jpg│   ├── xxx3.jpg│   |   ......

数据集格式转换

根据自己的需要,选择voc或coco数据集格式。

1、voc数据转换为COCO数据:

x2coco.py文件在PaddleDetection的tools目录中,可以单独拿出来使用。

示例:把roadsign_voc格式转换成coco格式,主要就是要生成训练集和验证集json文件。命令行下运行:

#生成训练集voc_train.json文件>x2coco.py  --dataset_type voc  --voc_anno_dir roadsign_voc --voc_anno_list roadsign_voc/train_list.txt --voc_label_list roadsign_voc/labels.txt  --voc_out_name voc_train.json
#生成验证集voc_val.json文件>x2coco.py  --dataset_type voc  --voc_anno_dir roadsign_voc --voc_anno_list roadsign_voc/val_list.txt --voc_label_list roadsign_voc/labels.txt  --voc_out_name voc_val.json

2、cocoo数据转换voc数据

示例:把刚才生成的roadsign_coco数据集转换成voc格式,主要就是要生成相应的xml标注文件。

#调用函数coco2voc('roadsign_coco/annotations/voc_val.json', 'coco_voc/Annotations')coco2voc('roadsign_coco/annotations/voc_train.json', 'coco_voc/Annotations')

生成的xml标注文件

需要x2coco.py和coco2voc文件或数据集,可以留言或私信。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章