Faster RCNN实现所用PASCAL VOC数据集内容剖析
2016-11-16 16:43
483 查看
转自:http://blog.csdn.net/zhangjunbob/article/details/52769381
PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge。
本文主要分析PASCAL VOC数据集中和图像中物体识别相关的内容。
在这里采用PASCAL VOC2012作为例子。下载地址为:点击打开链接。(本文中的系统环境为ubuntu14.04)
下载完之后解压,可以在VOCdevkit目录下的VOC2012中看到如下的文件:
其中在图像物体识别上着重需要了解的是Annotations、ImageSets和JPEGImages。
①JPEGImages
JPEGImages文件夹中包含了PASCAL VOC所提供的所有的图片信息,包括了训练图片和测试图片。
这些图像都是以“年份_编号.jpg”格式命名的。
图片的像素尺寸大小不一,但是横向图的尺寸大约在500*375左右,纵向图的尺寸大约在375*500左右,基本不会偏差超过100。(在之后的训练中,第一步就是将这些图片都resize到300*300或是500*500,所有原始图片不能离这个标准过远。)
这些图像就是用来进行训练和测试验证的图像数据。
②Annotations
Annotations文件夹中存放的是xml格式的标签文件,每一个xml文件都对应于JPEGImages文件夹中的一张图片。
xml文件的具体格式如下:(对于2007_000392.jpg)
[html] view
plain copy
<annotation>
<folder>VOC2012</folder>
<filename>2007_000392.jpg</filename> //文件名
<source> //图像来源(不重要)
<database>The VOC2007 Database</database>
<annotation>PASCAL VOC2007</annotation>
<image>flickr</image>
</source>
<size> //图像尺寸(长宽以及通道数)
<width>500</width>
<height>332</height>
<depth>3</depth>
</size>
<segmented>1</segmented> //是否用于分割(在图像物体识别中01无所谓)
<object> //检测到的物体
<name>horse</name> //物体类别
<pose>Right</pose> //拍摄角度
<truncated>0</truncated> //是否被截断(0表示完整)
<difficult>0</difficult> //目标是否难以识别(0表示容易识别)
<bndbox> //bounding-box(包含左下角和右上角xy坐标)
<xmin>100</xmin>
<ymin>96</ymin>
<xmax>355</xmax>
<ymax>324</ymax>
</bndbox>
</object>
<object> //检测到多个物体
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>198</xmin>
<ymin>58</ymin>
<xmax>286</xmax>
<ymax>197</ymax>
</bndbox>
</object>
</annotation>
对应的图片为:
③ImageSets
ImageSets存放的是每一种类型的challenge对应的图像数据。
在ImageSets下有四个文件夹:
其中Action下存放的是人的动作(例如running、jumping等等,这也是VOC challenge的一部分)
Layout下存放的是具有人体部位的数据(人的head、hand、feet等等,这也是VOC challenge的一部分)
Main下存放的是图像物体识别的数据,总共分为20类。
Segmentation下存放的是可用于分割的数据。
在这里主要考察Main文件夹。
Main文件夹下包含了20个分类的***_train.txt、***_val.txt和***_trainval.txt。
这些txt中的内容都差不多如下:
前面的表示图像的name,后面的1代表正样本,-1代表负样本。如果是0,应该代表较难分辨出来的样本!
_train中存放的是训练使用的数据,每一个class的train数据都有5717个。
_val中存放的是验证结果使用的数据,每一个class的val数据都有5823个。
_trainval将上面两个进行了合并,每一个class有11540个。
需要保证的是train和val两者没有交集,也就是训练数据和验证数据不能有重复,在选取训练数据的时候 ,也应该是随机产生的。
④SegmentationClass和SegmentationObject
这两个文件夹下保存了物体分割后的图片,在物体识别中没有用到,在这里不做详细展开。
接下来需要研究的是如何自己生成训练数据和测试数据,将在下一篇中阐述。
PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge。
本文主要分析PASCAL VOC数据集中和图像中物体识别相关的内容。
在这里采用PASCAL VOC2012作为例子。下载地址为:点击打开链接。(本文中的系统环境为ubuntu14.04)
下载完之后解压,可以在VOCdevkit目录下的VOC2012中看到如下的文件:
其中在图像物体识别上着重需要了解的是Annotations、ImageSets和JPEGImages。
①JPEGImages
JPEGImages文件夹中包含了PASCAL VOC所提供的所有的图片信息,包括了训练图片和测试图片。
这些图像都是以“年份_编号.jpg”格式命名的。
图片的像素尺寸大小不一,但是横向图的尺寸大约在500*375左右,纵向图的尺寸大约在375*500左右,基本不会偏差超过100。(在之后的训练中,第一步就是将这些图片都resize到300*300或是500*500,所有原始图片不能离这个标准过远。)
这些图像就是用来进行训练和测试验证的图像数据。
②Annotations
Annotations文件夹中存放的是xml格式的标签文件,每一个xml文件都对应于JPEGImages文件夹中的一张图片。
xml文件的具体格式如下:(对于2007_000392.jpg)
[html] view
plain copy
<annotation>
<folder>VOC2012</folder>
<filename>2007_000392.jpg</filename> //文件名
<source> //图像来源(不重要)
<database>The VOC2007 Database</database>
<annotation>PASCAL VOC2007</annotation>
<image>flickr</image>
</source>
<size> //图像尺寸(长宽以及通道数)
<width>500</width>
<height>332</height>
<depth>3</depth>
</size>
<segmented>1</segmented> //是否用于分割(在图像物体识别中01无所谓)
<object> //检测到的物体
<name>horse</name> //物体类别
<pose>Right</pose> //拍摄角度
<truncated>0</truncated> //是否被截断(0表示完整)
<difficult>0</difficult> //目标是否难以识别(0表示容易识别)
<bndbox> //bounding-box(包含左下角和右上角xy坐标)
<xmin>100</xmin>
<ymin>96</ymin>
<xmax>355</xmax>
<ymax>324</ymax>
</bndbox>
</object>
<object> //检测到多个物体
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>198</xmin>
<ymin>58</ymin>
<xmax>286</xmax>
<ymax>197</ymax>
</bndbox>
</object>
</annotation>
对应的图片为:
③ImageSets
ImageSets存放的是每一种类型的challenge对应的图像数据。
在ImageSets下有四个文件夹:
其中Action下存放的是人的动作(例如running、jumping等等,这也是VOC challenge的一部分)
Layout下存放的是具有人体部位的数据(人的head、hand、feet等等,这也是VOC challenge的一部分)
Main下存放的是图像物体识别的数据,总共分为20类。
Segmentation下存放的是可用于分割的数据。
在这里主要考察Main文件夹。
Main文件夹下包含了20个分类的***_train.txt、***_val.txt和***_trainval.txt。
这些txt中的内容都差不多如下:
前面的表示图像的name,后面的1代表正样本,-1代表负样本。如果是0,应该代表较难分辨出来的样本!
_train中存放的是训练使用的数据,每一个class的train数据都有5717个。
_val中存放的是验证结果使用的数据,每一个class的val数据都有5823个。
_trainval将上面两个进行了合并,每一个class有11540个。
需要保证的是train和val两者没有交集,也就是训练数据和验证数据不能有重复,在选取训练数据的时候 ,也应该是随机产生的。
④SegmentationClass和SegmentationObject
这两个文件夹下保存了物体分割后的图片,在物体识别中没有用到,在这里不做详细展开。
接下来需要研究的是如何自己生成训练数据和测试数据,将在下一篇中阐述。
相关文章推荐
- 用tensorflow-faster-rcnn train pascal_voc数据集时遇到的一些错误
- Faster-RCNN·PASCAL VOC数据集·制作
- faster rcnn源码解读(四)之数据类型imdb.py和pascal_voc.py(主要是imdb和roidb数据类型的解说)
- py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/stage1_fast_rcnn_train.pt
- 【转】Faster-R-CNN(Python).2:COCO数据集annotation内容
- faster rcnn源码解读(四)之数据类型imdb.py和pascal_voc.py(主要是imdb和roidb数据类型的解说)
- Faster R-CNN训练VOC格式的数据集问题与解决
- faster rcnn中VOC数据集的标注工具labelImg的使用
- faster rcnn 训练pascal_voc数据集
- Faster-R-CNN(Python).2:COCO数据集annotation内容
- faster rcnn源码解读(四)之数据类型imdb.py和pascal_voc.py(主要是imdb和roidb数据类型的解说)
- fast-rcnn训练中制作成PASCAL VOC数据集的用到的labelImg工具
- PASCAL VOC数据集The PASCAL Object Recognition Database Collection
- 深度学习实践经验:用Faster R-CNN训练Caltech数据集——训练检测
- PASCAL VOC数据集分析
- 【深度学习:目标检测】 Face Detection with the Faster R-CNN(数据集标注对比研究报告 )
- 深度学习实践经验:用Faster R-CNN训练Caltech数据集——修改读写接口
- Faster RCNN 训练自己的数据集(Matlab,python版本)及制作VOC2007格式数据集
- faster-rcnn 之 shell脚本开始训练:./experiments/scripts/faster_rcnn_alt_opt.sh 0 ZF pascal_voc
- Faster-RCNN/SSD/训练将数据集做成VOC2007格式