计算机视觉的一个主要任务是理解视觉场景,要理解视觉场景就要涉及到一系列主要的视觉任务包括对象检测与识别、图像语义描述、场景分割、场景属性与特征描述等。ImageNet与Pascal VOC数据集主要关注图像分类、对象检测与图像语义分割,而COCO主要关注图像场景与实例分割。
数据收集
COCO(common object in context)在数据收集层面把整个数据集分为如下三个部分:
- 标志性对象图像
- 标志性场景图像
- 非标志性场景图像
相比ImageNet而言,COCO数据集没有那么多分类,但是每个分类的实例对象比ImageNet多,COCO有91个分类,其中82个分类每个都超过5000个实例对象,这些有助于更好的学习每个对象的位置信息,在每个类别的对象数目上也是远远超过PASCAL VOC数据集。COCO数据集跟其它数据集相比有更多的对象场景图像,有著有显著提升模型学习细节的能力。
在图像收集阶段,COCO数据集专注可分类,高频次、常见应用场景的图像分类对象收集,对一些不好定位位置信息,比如天空、草地、街道等不做分类收集,对具体的分类图像如dog、person等可能收集的只是其子类或者部分,比如人脸/手/腿可能是人的一部份,牧羊犬可能只是狗的子类。在分类的时候参考了PASCAL数据集,对比它室内类比,衍生出室外一系列类别,最终从272候选类别中选出91个类别。
在确定类别之后,根据上面提到的三个场景,发现第一种场景与第二种场景图像很容易搜集,直接通过搜索引擎搜索即可得到,但是对于第三种场景类别,受到PASCAL VOC数据集来源的启发,主要通过flickr于搜索引擎收集,只是在搜索第三种类别图像时候,比如搜索dog,不会直接输入dog,而会根据搜索引擎元数据关键字输入 dog + car / dog + street等达成非标志场景图像搜索。
很显然上百万张的图像标注是一个体力活,MS COCO数据集通过在AMT平台上进行人力资源外包进行数据标注。同时通过一系列的方法来提高图像的标注质量。最终标注好的部分数据类别显示如下:
最终MS COCO数据集分为两个部分进行发布,2014发布了第一部分,2015年发布了第二部分。2014发布中包含82783训练图像、40504张验证图像、40775张测试图像。大致是1/2位训练集、1/4、1/4分别位验证于测试集。
数据标注与评估
针对对象检测数据标注信息主要包括两个部分,首先是图像来源与自身信息
对象标注信息
在对象检测中使用COCO评估方法
首先需要安装COCO API
https://github.com/cocodataset/cocoapi
计算方法,跟Pascal VOC评估方法不同,COCO不会只去一个阈值IOU=0.5作为阈值,而且是会取一系列IOU从0.5~0.95, 每间隔0.05,计算AR与AP,然后再计算平均值,作为最后的AR与AP,计算mAP。详细代码可以看上面的COCO API的github地址。图示如下: