PASCAL VOC2012数据集介绍
之前有在Bilibili上簡單介紹過這個數據集,但一直沒有寫博文,今天抽空總結下,如果不想看文章的,可以看下我在Bilibili上的講解視頻。
Pascal VOC2012數據集詳解視頻: https://b23.tv/F1kSCK
Pascal VOC2012官網地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/
官方發表關于介紹數據集的文章 《The PASCALVisual Object Classes Challenge: A Retrospective》:http://host.robots.ox.ac.uk/pascal/VOC/pubs/everingham15.pdf
文章目錄
- 1 簡介
- 2 Pascal VOC數據集目標類別
- 3 數據集下載與目錄結構
- 4 目標檢測任務
- 5 語義分割任務
- 6 實例分割任務
- 7 類別索引與名稱對應關系
1 簡介
PASCAL VOC挑戰賽 (The PASCAL Visual Object Classes )是一個世界級的計算機視覺挑戰賽,PASCAL全稱:Pattern Analysis, Statical Modeling and Computational Learning,是一個由歐盟資助的網絡組織。PASCAL VOC挑戰賽主要包括以下幾類:圖像分類(Object Classification),目標檢測(Object Detection),目標分割(Object Segmentation),行為識別(Action Classification) 等。
- 圖像分類與目標檢測任務
- 分割任務,注意,圖像分割一般包括語義分割、實例分割和全景分割,實例分割是要把每個單獨的目標用一種顏色表示(下圖中間的圖像),而語義分割只是把同一類別的所有目標用同一顏色表示(下圖右側的圖片)。
- 行為識別任務
- 人體布局檢測任務
2 Pascal VOC數據集目標類別
在Pascal VOC數據集中主要包含20個目標類別,下圖展示了所有類別的名稱以及所屬超類。
3 數據集下載與目錄結構
下載地址: http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html#devkit
打開鏈接后如下圖所示,只用下載training/validation data (2GB tar file)文件即可。
下載后將文件進行解壓,解壓后的文件目錄結構如下所示:
注意,train.txt、val.txt和trainval.txt文件里記錄的是對應標注文件的索引,每一行對應一個索引信息。如下圖所示:
4 目標檢測任務
接下來簡單介紹下如何使用該數據集中目標檢測的數據。
- 首先在Main文件中,讀取對應的txt文件(注意,在Main文件夾里除了train.txt、val.txt和trainval.txt文件外,還有針對每個類別的文件,例如bus_train.txt、bus_val.txt和bus_trainval.txt)。比如使用train.txt中的數據進行訓練,那么讀取該txt文件,解析每一行。上面說了每一行對應一個標簽文件的索引。
- 接著通過索引在Annotations文件夾下找到對應的標注文件(.xml)。比如索引為2007_000323,那么在Annotations 文件夾中能夠找到2007_000323.xml文件。如下圖所示,在標注文件中包含了所有需要的信息,比如filename,通過在字段能夠在JPEGImages 文件夾中能夠找到對應的圖片。size記錄了對應圖像的寬、高以及channel信息。每一個object代表一個目標,其中的name記錄了該目標的名稱,pose表示目標的姿勢(朝向),truncated表示目標是否被截斷(目標是否完整),difficult表示該目標的檢測難易程度(0代表簡單,1表示困難),bndbox記錄了該目標的邊界框信息。
- 接著通過在標注文件中的filename字段在JPEGImages 文件夾中找到對應的圖片。比如在2007_000323.xml文件中的filename字段為2007_000323.jpg,那么在JPEGImages 文件夾中能夠找到2007_000323.jpg文件。
5 語義分割任務
接下來簡單介紹下如何使用該數據集中語義分割的數據。
- 首先在Segmentarion文件中,讀取對應的txt文件。比如使用train.txt中的數據進行訓練,那么讀取該txt文件,解析每一行,每一行對應一個圖像的索引。
- 根據索引在JPEGImages 文件夾中找到對應的圖片。還是以2007_000323為例,可以找到2007_000323.jpg文件。
- 根據索引在SegmentationClass文件夾中找到相應的標注圖像(.png)。還是以2007_000323為例,可以找到2007_000323.png文件。
注意,在語義分割中對應的標注圖像(.png)用PIL的Image.open()函數讀取時,默認是P模式,即一個單通道的圖像。在背景處的像素值為0,目標邊緣處用的像素值為255(訓練時一般會忽略像素值為255的區域),目標區域內根據目標的類別索引信息進行填充,例如人對應的目標索引是15,所以目標區域的像素值用15填充。
6 實例分割任務
- 同樣首先在Segmentarion文件中,讀取對應的txt文件。比如使用train.txt中的數據進行訓練,那么讀取該txt文件,解析每一行,每一行對應一個圖像的索引。
- 根據索引在JPEGImages 文件夾中找到對應的圖片。這里以2007_000032為例,可以找到2007_000032.jpg文件,如下圖所示。
- 再根據索引在SegmentationObject文件夾中找到相應的標注圖像(.png)。還是以2007_000032為例,可以找到2007_000032.png文件。
注意,在實例分割中對應的標注圖像(.png)用PIL的Image.open()函數讀取時,默認是P模式,即一個單通道的圖像。在背景處的像素值為0,目標邊緣處或需要忽略的區域用的像素值為255(訓練時一般會忽略像素值為255的區域)。然后在Annotations文件夾中找到對應的xml文件,解析xml文件后會得到每個目標的信息,而對應的標注文件(.png)的每個目標處的像素值是按照xml文件中目標順序排列的。如下圖所示,xml文件中每個目標的序號是與標注文件(.png)中目標像素值是對應的。
7 類別索引與名稱對應關系
下面給出在Pascal VOC數據集中各目標類別名稱與類別索引對應關系:
{"background": 0,"aeroplane": 1,"bicycle": 2,"bird": 3,"boat": 4,"bottle": 5,"bus": 6,"car": 7,"cat": 8,"chair": 9,"cow": 10,"diningtable": 11,"dog": 12,"horse": 13,"motorbike": 14,"person": 15,"pottedplant": 16,"sheep": 17,"sofa": 18,"train": 19,"tvmonitor": 20 }總結
以上是生活随笔為你收集整理的PASCAL VOC2012数据集介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【咸鱼教程】虚拟摇杆
- 下一篇: Rocket-chip-Cache