PASCAL VOC數據集分析
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)
- <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表明負樣本。
_train中存放的是訓練使用的數據,每個class的train數據都有5717個。
_val中存放的是驗證結果使用的數據,每個class的val數據都有5823個。
_trainval將上面兩個進行了合併,每個class有11540個。
須要保證的是train和val二者沒有交集,也就是訓練數據和驗證數據不能有重複,在選取訓練數據的時候 ,也應該是隨機產生的。
④SegmentationClass和SegmentationObject
這兩個文件夾下保存了物體分割後的圖片,在物體識別中沒有用到,在這裏不作詳細展開。
接下來須要研究的是如何本身生成訓練數據和測試數據,將在下一篇中闡述。
轉自:http://blog.csdn.net/zhangjunbob/article/details/52769381