1、基本介绍
MSCOCO 是具有80个类别的大规模数据集,其数据分为三部分:训练、验证和测试,每部分分别包含 118287, 5000 和 40670张图片,总大小约25g。其中测试数据集没有标注信息,所以注释部分只有训练和验证的。
关于COCO的测试集:2017年COCO测试集包含〜40K个测试图像。 测试集被分成两个大致相同大小的split约20K的图像:test-dev 和test-challenge。
Test-Dev:test-dev split 是在一般情况下测试的默认测试数据。通常应该在test-dev集中报告论文的结果,以便公正公开比较。
Test-Challenge:test-challenge split被用于每年托管的COCO挑战
1.1 anatation介绍
- 图片分为3部分,test、train和val
- 图片的标注类型分3种:object instances(目标实例), object keypoints(目标上的关键点), 和image captions; 保存格式是json文件,并且是所有图片标注放在一个json文件中
- 对于目标检测而言,我们需要关注的标注是annotations文件夹下的instances_train.json和instances_val.json,分别对应的是train和val图片的标注
- instances_train.json格式:
3种标注类型的"info","licenses","images" 格式是一样的,且定义是共享的。不共享的是annotations这种结构体,它在不同类型的JSON文件中是不一样的
- person_keypoints_train2017.json格式:
- captions_train2017.json格式
2、COCO-API介绍使用
- 1、安装依赖包
pip install pycocotools
- 查询json信息,主要有2中方式一种是coco.imgs/cats/anns,结果为dict,key为各类别的id; 另外一种是通过coco.dataset(['categories'])/images/annotations 返回各类型的list;其他用法见:https://github.com/cocodataset/cocoapi/blob/master/PythonAPI/pycocoDemo.ipynb
>>> from pycocotools.coco import COCO
>>> anno_file="/home/pengyoucou/Data/coco/coco2017/annotations/instances_train2017.json"
>>> coco_train = COCO(anno_file)
loading annotations into memory...
Done (t=11.43s)
creating index...
index created!
>>> dir(coco_train)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'annToMask', 'annToRLE', 'anns', 'catToImgs', 'cats', 'createIndex', 'dataset', 'download', 'getAnnIds', 'getCatIds', 'getImgIds', 'imgToAnns', 'imgs', 'info', 'loadAnns', 'loadCats', 'loadImgs', 'loadNumpyAnnotations', 'loadRes', 'showAnns']
>>> len(coco_train.imgs)
118287
>>> coco_train.imgs[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 0
>>> type(coco_train.imgs)
<class 'dict'>
>>> type(coco_train.dataset["images"])
<class 'list'>
>>> coco_train.dataset["images"][0]
{'license': 3, 'file_name': '000000391895.jpg', 'coco_url': 'http://images.cocodataset.org/train2017/000000391895.jpg', 'height': 360, 'width': 640, 'date_captured': '2013-11-14 11:18:45', 'flickr_url': 'http://farm9.staticflickr.com/8186/8119368305_4e622c8349_z.jpg', 'id': 391895}
>>> coco_train.imgs[391895]
{'license': 3, 'file_name': '000000391895.jpg', 'coco_url': 'http://images.cocodataset.org/train2017/000000391895.jpg', 'height': 360, 'width': 640, 'date_captured': '2013-11-14 11:18:45', 'flickr_url': 'http://farm9.staticflickr.com/8186/8119368305_4e622c8349_z.jpg', 'id': 391895}
>>>
参考:https://blog.csdn.net/yanghao201607030101/article/details/112575770
标签:__,jpg,coco,json,train,COCO,数据 From: https://www.cnblogs.com/pyclq/p/16588857.html