一、簡介
- PASCAL VOC 挑戰賽主要有
Object Classification 、Object Detection、Object Segmentation、Human Layout、Action Classification
這幾類子任務 - PASCAL VOC 2007 和 2012 數據集總共分 4 個大類:vehicle、household、animal、person,總共 20 個小類(加背景 21 類),預測的時候是隻輸出下圖中黑色粗體的類別
二、VOC 常用組合、數據量統計及組織結構
-
VOC2007 train_val_test & VOC2012 train_val 百度雲下載鏈接,提取碼: jz27
-
目前目標檢測常用的是 VOC2007 和 VOC2012 數據集,因爲二者是互斥的,論文中的常用組合有以下幾種:
07+12:
使用 VOC2007 和 VOC2012 的train+val(16551)
上訓練,然後使用 VOC2007 的 test(4952) 測試07++12:
使用 VOC2007 的train+val+test(9963)
和 VOC2012的train+val(11540)
訓練,然後使用 VOC2012 的 test 測試,這種方法需提交到 PASCAL VOC Evaluation Server 上評估結果,因爲 VOC2012 test 沒有公佈07+12+COCO:
先在 MS COCO 的 trainval 上 預訓練,再使用 VOC2007 和 VOC2012 的train+val
微調訓練,然後使用 VOC2007 的 test 測試07++12+COCO:
先在 MS COCO 的 trainval 上預訓練,再使用 VOC2007 的train+val+test
和 VOC2012 的train+val
微調訓練,然後使用 VOC2012 的 test 測試 ,這種方法需提交到 PASCAL VOC Evaluation Server上評估結果,因爲VOC2012 test 沒有公佈
-
VOC2007 和 VOC2012 目標檢測任務中的訓練、驗證和測試數據統計如下表所示,具體每一類的數據分佈見 PASCAL VOC2007 Database Statistics 和 PASCAL VOC2012 Database Statistics
-
組織結構: 以 VOC 2007 爲例,解壓後的文件爲:
. ├── Annotations 進行 detection 任務時的標籤文件,xml 形式,文件名與圖片名一一對應 ├── ImageSets 包含三個子文件夾 Layout、Main、Segmentation,其中 Main 存放的是分類和檢測的數據集分割文件 ├── JPEGImages 存放 .jpg 格式的圖片文件 ├── SegmentationClass 存放按照 class 分割的圖片 └── SegmentationObject 存放按照 object 分割的圖片
├── Main
│ ├── train.txt 寫着用於訓練的圖片名稱, 共 2501 個
│ ├── val.txt 寫着用於驗證的圖片名稱,共 2510 個
│ ├── trainval.txt train與val的合集。共 5011 個
│ ├── test.txt 寫着用於測試的圖片名稱,共 4952 個
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
三、標註標準及 XML 解析
- 標註標準:VOC2011 Annotation Guidelines
- 標註信息是用 xml 文件組織的如下:
<annotation> <folder>VOC2007</folder> <filename>000001.jpg</filename> # 文件名 <source> <database>The VOC2007 Database</database> <annotation>PASCAL VOC2007</annotation> <image>flickr</image> <flickrid>341012865</flickrid> </source> <owner> <flickrid>Fried Camels</flickrid> <name>Jinky the Fruit Bat</name> </owner> <size> # 圖像尺寸, 用於對 bbox 左上和右下座標點做歸一化操作 <width>353</width> <height>500</height> <depth>3</depth> </size> <segmented>0</segmented> # 是否用於分割 <object> <name>dog</name> # 物體類別 <pose>Left</pose> # 拍攝角度:front, rear, left, right, unspecified <truncated>1</truncated> # 目標是否被截斷(比如在圖片之外),或者被遮擋(超過15%) <difficult>0</difficult> # 檢測難易程度,這個主要是根據目標的大小,光照變化,圖片質量來判斷 <bndbox> <xmin>48</xmin> <ymin>240</ymin> <xmax>195</xmax> <ymax>371</ymax> </bndbox> </object> <object> <name>person</name> <pose>Left</pose> <truncated>1</truncated> <difficult>0</difficult> <bndbox> <xmin>8</xmin> <ymin>12</ymin> <xmax>352</xmax> <ymax>498</ymax> </bndbox> </object> </annotation>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
四、提交格式
1、Classification Task
- 每一類都有一個 txt 文件,裏面每一行都是測試集中的一張圖片,前面一列是圖片名稱,後面一列是預測的分數。
# comp1_cls_test_car.txt, 內容如下
000004 0.702732
000006 0.870849
000008 0.532489
000018 0.477167
000019 0.112426
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2、Detection Task
- 每一類都有一個 txt 文件,裏面每一行都是測試集中的一張圖片,每行的格式爲:
<image identifier> <confidence> <left> <top> <right> <bottom>
,confidence 用來計算mAP
# comp3_det_test_car.txt,內容如下
# comp3:只允許用所給訓練數據,comp4:允許使用外部數據
000004 0.702732 89 112 516 466
000006 0.870849 373 168 488 229
000006 0.852346 407 157 500 213
000006 0.914587 2 161 55 221
000008 0.532489 175 184 232 201
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
五、評估標準
- PASCAL的評估標準是 mAP(mean average precision),關於 mAP 可參考以下資料:
- average precision
- 性能指標(模型評估)之mAP
- 多標籤圖像分類任務的評價方法-mAP
- 周志華老師 《機器學習》 模型評估標準一節
- PASCAL官方給了 MATLAB 版的 mAP 評估腳本和示例代碼 development kit code and documentation
- eg:下面是一個二分類的 P-R 曲線(
precision-recall curve
),對於 PASCAL 來說,每一類
都有一個這樣的 P-R曲線,P-R 曲線下面與 x 軸圍成的面積稱爲average precision
,每個類別都有一個 AP,20個類別的 AP 取平均值
就是 mAP。
六、參考資料
1、The PASCAL Visual Object Classes Homepage
2、目標檢測數據集PASCAL VOC簡介