yolo 學習筆記分享之--VOC資料集
參考:
<Pascal VOC & COCO資料集介紹 & 轉換> http://www.cnblogs.com/pprp/p/9629752.html
《Pascal Voc資料集詳細分析》https://blog.csdn.net/u013832707/article/details/80060327
《檢測資料集分析VOC+COCO_RGBD》https://blog.csdn.net/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資料集