参考:
<Pascal VOC & COCO数据集介绍 & 转换> http://www.cnblogs.com/pprp/p/9629752.html
《Pascal Voc数据集详细分析》https://blog.youkuaiyun.com/u013832707/article/details/80060327
《检测数据集分析VOC+COCO_RGBD》https://blog.youkuaiyun.com/yuanluolvge/article/details/77989606
首先概念解释:
VOC解释:
相关网址
Pascal VOC网址:http://host.robots.ox.ac.uk/pascal/VOC/
查看各位大牛算法的排名的Leaderboards:http://host.robots.ox.ac.uk:8080/leaderboard/main_bootstrap.php
训练/验证数据集下载(2G):host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
VOCdevkit文件夹
数据集下载后解压得到一个名为VOCdevkit的文件夹,该文件夹结构如下:
└── VOCdevkit #根目录
└── VOC2012 #不同年份的数据集,这里只下载了2012的,还有2007等其它年份的
├── Annotations #存放xml文件,与JPEGImages中的图片一一对应,解释图片的内容等等
├── ImageSets #该目录下存放的都是txt文件,txt文件中每一行包含一个图片的名称,末尾会加上±1表示正负样本
│ ├── Action
│ ├── Layout
│ ├── Main
│ └── Segmentation
├── JPEGImages #存放源图片
├── SegmentationClass #存放的是图片,分割后的效果,见下文的例子
└── SegmentationObject #存放的是图片,分割后的效果,见下文的例子
这里大概介绍一下各个文件夹的内容,更细节的介绍将在后文给出:
- Annotation文件夹存放的是xml格式的标签文件,该文件是对图片的解释,每张图片(位于同目录下的 JPEGImages)都对于一个同名的xml文件,每一个xml对应一张图像,并且每个xml中存放的是标记的各个目标的位置和类别信息,命名通常与对应的原始图像一样。
- ImageSets文件夹存放的是txt文件,这些txt将数据集的图片分成了各种集合。
Action下存放的是人的动作(例如running、jumping等等,这也是VOC challenge的一部分);
Main下的train.txt中记录的是用于训练的图片集合,该文本文件里面的内容是需要用来训练或测试的图像的名字(无后缀无路径)
Layout下存放的是具有人体部位的数据(人的head、hand、feet等等,这也是VOC challenge的一部分)Main下存放的是图像物体识别的数据,总共分为20类。
Segmentation下存放的是可用于分割的数据。其中Main文件夹包含20个分类的train.txt,val.txt和trainval.txt,在txt文件中前边的数字表示名字,后边的1和-1表示正负样本的标签
- JPEGImages文件夹存放的是数据集的原图片,横向图尺寸大约在500*375左右,纵向图尺寸大约在375*500左右,基本偏差不会超过100,因为训练的第一步就是将图片resize到300*300或者500*500.
- SegmentationClass以及SegmentationObject文件夹存放的都是图片,且都是图像分割结果图(楼主没用过,所以不清楚:随后完善)
Annotation文件夹
其中xml主要介绍了对应图片的基本信息,如来自那个文件夹、文件名、来源、图像尺寸以及图像中包含哪些目标以及目标的信息等等,内容如下:
<annotation>
<folder>VOC2012</folder> #表明图片来源
<filename>2007_000027.jpg</filename> #图片名称
<source> #图片来源相关信息
<database>The VOC2007 Database</database>
<annotation>PASCAL VOC2007</annotation>
<image>flickr</image>
</source>
<size> #图像尺寸
<width>486</width>
<height>500</height>
<depth>3</depth>
</size>
<segmented>0</segmented> #是否用于分割
<object> #包含的物体
<name>person</name> #物体类别
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox> #物体的bbox
<xmin>174</xmin>
<ymin>101</ymin>
<xmax>349</xmax>
<ymax>351</ymax>
</bndbox>
<part> #物体的头
<name>head</name>
<bndbox>
<xmin>169</xmin>
<ymin>104</ymin>
<xmax>209</xmax>
<ymax>146</ymax>
</bndbox>
</part>
<part> #物体的手
<name>hand</name>
<bndbox>
<xmin>278</xmin>
<ymin>210</ymin>
<xmax>297</xmax>
<ymax>233</ymax>
</bndbox>
</part>
<part>
<name>foot</name>
<bndbox>
<xmin>273</xmin>
<ymin>333</ymin>
<xmax>297</xmax>
<ymax>354</ymax>
</bndbox>
</part>
<part>
<name>foot</name>
<bndbox>
<xmin>319</xmin>
<ymin>307</ymin>
<xmax>340</xmax>
<ymax>326</ymax>
</bndbox>
</part>
</object>
</annotation>
ImageSets文件夹
ImageSets包含如下四个子文件夹(也可能是三个,随后完善):
各个文件夹中存放的是各种用途的TXT文件。例如在Main文件夹下有名为aeroplane_train.txt的文件,顾名思义是用于飞机类别的训练数据。该txt的具体内容如下,其中±1应该表示的是正负样本的含义(没有具体研究:待完善):
2008_000008 -1
2008_000015 -1
2008_000019 -1
2008_000023 -1
2008_000028 -1
2008_000033 1
2008_000036 -1
2008_000037 1
2008_000041 -1
2008_000045 -1
其中包含的train.txt以及trainval.txt等文件内容与上面类似。不过博主发现train.txt和trainval.txt内容中光有图片的名字,末尾没有标注正负1.(待完善)
JEPGImages文件夹
该文件夹存放的是数据集的所有源图片,内容如下:
SegmentationClass文件夹
还没有涉及图像分割领域,不太清楚该文件夹下图片的用处,截图贴上来吧:
SegmentationObject文件夹
同上,把内容截图上传:
和VOC相比,coco数据集上小目标多,单幅图片目标多,物体大多非中心分布,更符合日常环境,所以coco检测难度更大.
Microsoft COCO数据集:
微软官方对coco的解释:https://link.springer.com/chapter/10.1007/978-3-319-10602-1_48
1)Object segmentation(2)Recognition in Context(3)Multiple objects per image(4)More than 300,000 images(5)More than 2 Million instances(6)80 object categories(7)5 captions per image(8)Keypoints on 100,000 people
coco数据集以场景理解为目标,从复杂的日常场景中截取,图像中的目标通过精确的Segmentation进行位置的标定,包含91类目标.
详细了解的话,参照 姊妹篇: yolo 学习笔记分享之--COCO数据集