在人工智能计算机视觉的目标检测任务中,我们需要对一张图像,标记出各个目标区域的位置和类别。一般的目标区域位置用一个矩形框来表示。
表达方式 | 说明 |
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.人工智能:计算机视觉任务——数据格式和标注
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 (测试数据集文件列表)
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 条评论) “” |