橦言无忌

一个不想改变世界的程序媛

General datasets for deep learning in CV

前言

通用检测任务的常用数据集,包含VOC,COCO,ImageNet,不断更新其他分支任务的数据集。

big data is all you need

一,PASCAL VOC

1.1 简介

由Mark Everingham (University ofLeeds)、Luc van Gool (ETHZ, Zurich)等人创立,有1.7W+张图片,分为20类。

PASCAL VOC挑战赛是计算机视觉竞赛的鼻祖,从2005年到2012年一共举办了8届,其任务涵盖:目标分类,目标检测,分割,人体部位,动作识别。

VOC图片集包括20个类别:人类;动物(鸟、猫、牛、狗、马、羊);交通工具(飞机、自行车、船、公共汽车、小轿车、摩托车、火车);室内(瓶子、椅子、餐桌、盆栽植物、沙发、电视)。

official download

1.2 组织结构

以 VOC 2007 为例,解压后的文件为

1
2
3
4
5
6
7
8
9
10
11
12
.
├── Annotations 进行 detection 任务时的标签文件,xml 形式,文件名与图片名一一对应
├── ImageSets 包含三个子文件夹 Layout、Main、Segmentation,其中 Main 存放的是分类和检测的数据集分割文件
├── JPEGImages 存放 .jpg 格式的图片文件
├── SegmentationClass 存放按照 class 分割的图片
└── SegmentationObject 存放按照 object 分割的图片

├── Main
│ ├── train.txt 写着用于训练的图片名称, 共 2501 个
│ ├── val.txt 写着用于验证的图片名称,共 2510 个
│ ├── trainval.txt train与val的合集。共 5011 个
│ ├── test.txt 写着用于测试的图片名称,共 4952 个

1.3 数据集xml文件标注格式

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
<annotation>
<folder>17</folder> # 图片所处文件夹
<filename>77258.bmp</filename> # 图片名
<path>~/frcnn-image/61/ADAS/image/frcnn-image/17/77258.bmp</path>
<source> #图片来源相关信息
<database>Unknown</database>
</source>
<size> #图片尺寸
<width>640</width>
<height>480</height>
<depth>3</depth>
</size>
<segmented>0</segmented> #是否有分割label
<object> 包含的物体
<name>car</name> #物体类别
<pose>Unspecified</pose> #物体的姿态
<truncated>0</truncated> #物体是否被部分遮挡(>15%)
<difficult>0</difficult> #是否为难以辨识的物体, 主要指要结体背景才能判断出类别的物体。虽有标注, 但一般忽略这类物体
<bndbox> #物体的bound box
<xmin>2</xmin> #左
<ymin>156</ymin> #上
<xmax>111</xmax> #右
<ymax>259</ymax> #下
</bndbox>
</object>
</annotation>

二,COCO

2.1 简介

全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集,与ImageNet竞赛一样,被视为是计算机视觉领域最受关注和最权威的比赛之一。

COCO数据集是一个大型的、丰富的物体检测,分割和图像描述数据集。这个数据集以情景理解为目标,主要从复杂的日常场景中截取,图像中的目标通过精确的分割进行位置的标定。该数据集主要解决3个问题:目标检测目标之间的上下文关系目标的二维上的精确定位。COCO数据集有91类,虽然比ImageNet类别少,但是每一类的图像多,这有利于获得更多的每类中位于某种特定场景的能力,对比PASCAL VOC,其有更多类和图像。

COCO数据集包含20万个图像,其中80个类别(80个对象类别是stuff91类的子集,如果仅仅是做目标检测,基本只用80类即可。)中有超过50万个目标标注,它是最广泛公开的目标检测数据库,平均每个图像的目标数为7.2。

website

2.2 特点

  • 目标集分割;
  • 图像情景识别;
  • 超像素分割;
  • 330K图像(> 200K标记);
  • 150万个对象实例;
  • 80个对象类别;
  • 91个stuff类别;
  • 每张图片有5段情景描述;
  • 有关键点的250,000人;

三种标注类型:

  • object instances(目标实例)
  • object keypoints(目标上的关键点)
  • image captions(看图说话)

2.3 组织结构

以coco2017为例,解压后的文件为:

1
2
3
4
5
6
7
8
9
10
.
├── train2017 所有训练图像文件夹(118287张)
├── val2017 所有验证图像文件夹(5000张)
├── annotations 对应标注文件夹
│ ├── instances_train2017.json 对应目标检测、分割任务的训练集标注文件
│ ├── instances_val2017.json 对应目标检测、分割任务的验证集标注文件
│ ├── captions_train2017.json 对应图像描述的训练集标注文件
│ ├── captions_val2017.json 对应图像描述的验证集标注文件
│ ├── person_keypoints_train2017.json 对应人体关键点检测的训练集标注文件
│ ├── person_keypoints_val2017.json 对应人体关键点检测的验证集标注文件

2.4 标注文件格式

以Object Instance为例,其json文件为:

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
{
"info": info, # dict
"licenses": [license], # list,内部是dict
"images": [image], # list,内部是dict
"annotations": [annotation],# list,内部是dict
"categories": [category] # list,内部是dict
}

info{ # 数据集信息描述
"year": int, # 数据集年份
"version": str, # 数据集版本
"description": str, # 数据集描述
"contributor": str, # 数据集提供者
"url": str, # 数据集下载链接
"date_created": datetime, # 数据集创建日期
}
license{
"id": int,
"name": str,
"url": str,
}
image{ # images是一个list,存放所有图片(dict)信息。image是一个dict,存放单张图片信息
"id": int, # 图片的ID编号(每张图片ID唯一)
"width": int, # 图片宽
"height": int, # 图片高
"file_name": str, # 图片名字
"license": int, # 协议
"flickr_url": str, # flickr链接地址
"coco_url": str, # 网络连接地址
"date_captured": datetime, # 数据集获取日期
}
annotation{ # annotations是一个list,存放所有标注(dict)信息。annotation是一个dict,存放单个目标标注信息。
"id": int, # 目标对象ID(每个对象ID唯一),每张图片可能有多个目标
"image_id": int, # 对应图片ID
"category_id": int, # 对应类别ID,与categories中的ID对应
"segmentation": RLE or [polygon], # 实例分割,对象的边界点坐标[x1,y1,x2,y2,....,xn,yn]
"area": float, # 对象区域面积
"bbox": [xmin,ymin,width,height], # 目标检测,对象定位边框[x,y,w,h]
"iscrowd": 0 or 1, # 表示是否是人群
}
categories{ # 类别描述
"id": int, # 类别对应的ID(0默认为背景)
"name": str, # 子类别名字
"supercategory": str, # 主类别名字
}

三,ImageNet

3.1 简介

ImageNet是目前深度学习图像领域应用得非常多的一个图像集,由斯坦福大学李飞飞创立,有1400W+张样例图片,分为27大类和2W+小类,只能用于非商业研究和教学使用。与ImageNet图像集相应的是著名的ILSVRC竞赛,各种新机器学习算法脱颖而出(AlexNet、ZFNet、GoogleNet、ResNet、…),图像识别率得以显著提高,在ILSVRC竞赛上一举成名是近几年来计算机视觉从业者的梦想。

对于如基于ImageNet的图像识别的结果评估,往往用到两个准确率的指标,一个是top-1准确率,一个是top-5准确率。Top-1准确率指的是输出概率中最大的那一个对应的是正确类别的概率;top-5准确率指的是输出概率中最大的5个对应的5个类别中包含了正确类别的概率。

official download

3.2 特点

  • ImageNet拥有用于分类、定位和检测任务评估的数据。
  • 与分类数据类似,定位任务有1000个类别。准确率是根据最高五项检测结果计算出来的。
  • 所有图像中至少有一个边框。对200个目标的检测问题有470000个图像,平均每个图像有1.1个目标。
// 代码折叠