http://blog.csdn.net/zhangjunbob/article/details/52769381
以PASCAL VOC2012作为例子
下载完之后解压,可以在VOCdevkit目录下的VOC2012中看到如下的文件:
1.JPEGImages
JPEGImages文件夹中包含了PASCAL VOC所提供的所有的图片信息,包括了训练图片和测试图片。
这些图像都是以“年份_编号.jpg”格式命名的。
图片的像素尺寸大小不一,但是横向图的尺寸大约在500*375左右,纵向图的尺寸大约在375*500左右,基本不会偏差超过100。(在之后的训练中,第一步就是将这些图片都resize到300*300或是500*500,所有原始图片不能离这个标准过远。)
这些图像就是用来进行训练和测试验证的图像数据。
2.Annotations
Annotations文件夹中存放的是xml格式的标签文件,每一个xml文件都对应于JPEGImages文件夹中的一张图片。
xml文件的具体格式如下:(对于2007_000392.jpg)
1. <annotation> 2. <folder>VOC2012</folder> 3. <filename>2007_000392.jpg</filename> //文件名 4. <source> //图像来源(不重要) 5. <database>The VOC2007 Database</database> 6. <annotation>PASCAL VOC2007</annotation> 7. <image>flickr</image> 8. </source> 9. <size> //图像尺寸(长宽以及通道数) 10. <width>500</width> 11. <height>332</height> 12. <depth>3</depth> 13. </size> 14. <segmented>1</segmented> //是否用于分割(在图像物体识别中01无所谓) 15. <object> //检测到的物体 16. <name>horse</name> //物体类别 17. <pose>Right</pose> //拍摄角度 18. <truncated>0</truncated> //是否被截断(0表示完整) 19. <difficult>0</difficult> //目标是否难以识别(0表示容易识别) 20. <bndbox> //bounding-box(包含左下角和右上角xy坐标) 21. <xmin>100</xmin> 22. <ymin>96</ymin> 23. <xmax>355</xmax> 24. <ymax>324</ymax> 25. </bndbox> 26. </object> 27. <object> //检测到多个物体 28. <name>person</name> 29. <pose>Unspecified</pose> 30. <truncated>0</truncated> 31. <difficult>0</difficult> 32. <bndbox> 33. <xmin>198</xmin> 34. <ymin>58</ymin> 35. <xmax>286</xmax> 36. <ymax>197</ymax> 37. </bndbox> 38. </object> 39. </annotation> |
3.ImageSets
ImageSets存放的是每一种类型的challenge对应的图像数据。
在ImageSets下有四个文件夹:
其中Action下存放的是人的动作(例如running、jumping等等,这也是VOC challenge的一部分)
Layout下存放的是具有人体部位的数据(人的head、hand、feet等等,这也是VOC challenge的一部分)
Main下存放的是图像物体识别的数据,总共分为20类。
Segmentation下存放的是可用于分割的数据。
Main文件夹下包含了20个分类的***_train.txt、***_val.txt和***_trainval.txt。
这些txt中的内容都差不多如下:
前面的表示图像的name,后面的1代表正样本,-1代表负样本。
_train中存放的是训练使用的数据,每一个class的train数据都有5717个。
_val中存放的是验证结果使用的数据,每一个class的val数据都有5823个。
_trainval将上面两个进行了合并,每一个class有11540个。
需要保证的是train和val两者没有交集,也就是训练数据和验证数据不能有重复,在选取训练数据的时候 ,也应该是随机产生的。
4.SegmentationClass和SegmentationObject
这两个文件夹下保存了物体分割后的图片,在物体识别中没有用到,在这里不做详细展开。