COCO的全称是Common Objects in Context,是微软团队提供的一个可以用来进行图像识别的数据集。MS COCO数据集中的图像分为训练、验证和测试集。 Download && Paper
- 2014:训练集 + 验证集 + 测试集
- 2015:测试集
- 2017:训练集 + 验证集 + 测试集
PK内容包括: 目标检测与实例分割、人体关键点检测、材料识别、全景分割、图像描述
目标检测/实例分割数据标注文件解析
本文以“** coco2017/annotations/instance_val2017.json**”标注文件为例。
注释文件中的内容就是一个字典数据结构,包括以下5个key-value对。其中info、images、licenses三个key是不同类型标注文件共享的,最后的annotations和categories按照不同的任务有所不同:
(一)info字段
(二)licenses字段:包括下图中的内容,里面集合了不同类型的licenses,并在images中按照id号被引用,基本不参与到数据解析过程中。
(三)images字段:包括下图中的内容,对应了每张图片的详细信息,其中的id号是被分配的唯一id
(四)categories字段:包括下图中的内容。其中supercategory是父类,name是子类,id是类别id(按照name统计)。比如下图中所示的。coco数据集共计有80个类别(按照name计算的)。
(五)annotations字段:包括下图中的内容,每个序号对应一个注释(会有所在图片id),一张图片上可能有多个注释。
- category_id:该注释的类别id;
- id:当前注释的id号
- image_id:该注释所在的图片id号
- area:区域面积
- bbox:目标的矩形标注框
- iscrowd:0或1。0表示标注的单个对象,此时segmentation使用polygon表示;1表示标注的是一组对象,此时segmentation使用RLE格式。
- segmentation:
- 若使用polygon标注时,则记录的是多边形的坐标点,连续两个数值表示一个点的坐标位置,因此此时点的数量为偶数
- 若使用RLE格式(Run Length Encoding(行程长度压缩算法))
RLE算法概述:
将图像中目标区域的像素值设定为1,背景设定为0,则形成一个张二值图,该二值图可以使用z字形按照位置进行编码,例如:0011110011100000……
但是这样的形式太复杂了,可以采用统计有多少个0和1的形式进行局部压缩,因此上面的RLE编码形式为:2-0-4-1-2-0-3-1-5-0……(表示有2个0,4个1,2个0,3个1,5个0)