深度学习很多框架都在使用VOC数据集,所以先来研究一下voc数据集的具体内容。
以PASCAL VOC2007为例,它包含如下5个文件夹:
- JPEGImages
- Annotations
- ImageSets
- SegmentationClass
- SegmentationObject
1、JPEGImages
PASCAL VOC提供的所有的图片,其中包括训练图片,测试图片。
2、Annotations
存放xml格式的标签文件,每个xml对应JPEGImage中的一张图片。可使用labelImg进行标注和查看。
图像标注工具labelImg安装教程及使用方法
<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>
3、ImageSets
- Action:人的动作
- Layout:人体的具体部位
- Main: 图像物体识别的数据,总共20类, 需要保证train val没有交集
- train.txt:训练集
- val.txt:验证集
- trainval.txt:训练和验证集
- Segmentation:用于分割的数据
验证集(val)与测试集(test)是有区别的。
验证集:val是validation的简称,验证是否过拟合、以及用来调节训练参数等。
测试集:当模型训练完成后,用于检测模型的准确性。
4、SegmentationObject & SegmentationClass
保存的是物体分割后的数据,在物体识别中没有用到。