[数据集]voc2coco及cocoapi使用

COCO提供了一个完备的工具包 - cocoapi,能够满足实际开发过程中对于图像、类别、标注信息的提取

以下操作中仅涉及python使用

安装

  • pip安装
1
$ pip install pycocotools
  • 源码安装(参考仓库README

-For Python, run “make” under coco/PythonAPI

voc2coco

参考:

transform from pascal voc format to coco format for object detection only with custom data #209

how to create my own coco-like dataset? #204

PASCAL VOC的标注文件转换成coco格式。参考roboflow-ai/voc2coco,具体实现代码位于Evaluation-Metrics/py/voc2coco

执行voc2coco_json.sh文件,生成coco格式的标注文件

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
{
"images": [
{
"file_name": "000001.jpg",
"height": 500,
"width": 353,
"id": 1
},
{
"file_name": "000002.jpg",
"height": 500,
"width": 335,
"id": 2
},
。。。
。。。
],
"type": "instances",
"annotations": [
{
"area": 19536,
"iscrowd": 0,
"bbox": [
47,
239,
148,
132
],
"category_id": 12,
"ignore": 0,
"segmentation": [],
"image_id": 1,
"id": 1
},
。。。
。。。
],
"categories": [
{
"supercategory": "none",
"id": 1,
"name": "aeroplane"
},
{
"supercategory": "none",
"id": 2,
"name": "bicycle"
},
。。。
。。。
]
}

cocoapi

参考:2. COCO API

coco提供了查询图像、标注边界框以及类别信息的接口

cocoapi仓库里提供了示例实现 - PythonAPI/pycocoDemo.ipynb

上述使用接口实现以下功能:

  • 根据边界框找出对应的图像/类别
  • 根据图像找出对应的边界框/类别
  • 根据类别找出对应的边界框/图像

具体实现位于Evaluation-Metrics/py/test_coco.py

坚持原创技术分享,您的支持将鼓励我继续创作!