日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

目标检测数据集PASCAL VOC简介

發布時間:2024/9/27 目标检测 85 豆豆
生活随笔 收集整理的這篇文章主要介紹了 目标检测数据集PASCAL VOC简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

?

PASCAL VOC挑戰賽 (The?PASCAL?Visual Object Classes )是一個世界級的計算機視覺挑戰賽,?PASCAL全稱:Pattern Analysis, Statical Modeling and Computational Learning,是一個由歐盟資助的網絡組織。

很多優秀的計算機視覺模型比如分類,定位,檢測,分割,動作識別等模型都是基于PASCAL VOC挑戰賽及其數據集上推出的,尤其是一些目標檢測模型(比如大名鼎鼎的R CNN系列,以及后面的YOLO,SSD等)。

PASCAL VOC從2005年開始舉辦挑戰賽,每年的內容都有所不同,從最開始的分類,到后面逐漸增加檢測,分割,人體布局,動作識別(Object Classification 、Object Detection、Object Segmentation、Human Layout、Action Classification)等內容,數據集的容量以及種類也在不斷的增加和改善。該項挑戰賽催生出了一大批優秀的計算機視覺模型(尤其是以深度學習技術為主的)。

?

?

我們知道在 ImageNet挑戰賽上涌現了一大批優秀的分類模型,而PASCAL挑戰賽上則是涌現了一大批優秀的目標檢測和分割模型,這項挑戰賽已于2012年停止舉辦了,但是研究者仍然可以在其服務器上提交預測結果以評估模型的性能。

雖然近期的目標檢測或分割模型更傾向于使用MS COCO數據集,但是這絲毫不影響 PASCAL VOC數據集的重要性,畢竟PASCAL對于目標檢測或分割類型來說屬于先驅者的地位。對于現在的研究者來說比較重要的兩個年份的數據集是 PASCAL VOC 2007 與 PASCAL VOC 2012,這兩個數據集頻頻在現在的一些檢測或分割類的論文當中出現。

  • PASCAL主頁?與?排行榜?(榜上已幾乎看不到傳統的視覺模型了,全是基于深度學習的)

  • PASCAL VOC 2007 挑戰賽主頁?與?PASCAL VOC 2012 挑戰賽主頁?與?PASCAL VOC Evaluation Server.

  • 以及在兩個重要時間點對 PASCAL VOC挑戰賽 成績進行總結的兩篇論文

    • The PASCAL Visual Object Classes Challenge: A Retrospective

      Everingham, M., Eslami, S. M. A., Van Gool, L., Williams, C. K. I., Winn, J. and Zisserman, A.
      International Journal of Computer Vision, 111(1), 98-136, 2015
      Bibtex source?|?Abstract?|?PDF

      主要總結PASCAL VOC 2012的數據集情況,以及2011年-2013年之間出現的模型及其性能對比

    • The PASCAL Visual Object Classes (VOC) Challenge
      Everingham, M., Van Gool, L., Williams, C. K. I., Winn, J. and Zisserman, A.
      International Journal of Computer Vision, 88(2), 303-338, 2010
      Bibtex source?|?Abstract?|?PDF

      主要總結PASCAL VOC 2007的數據集情況,以及2008年之前出現的模型及其性能對比

    • 不過在以上論文中出現的深度學習模型只有一個 R-CNN吧,大部分都是傳統方式的模型,畢竟深度學習模型主要在14年以后才大量涌現。

本文也是以PASCAL VOC 2007 和 2012 為例簡要介紹VOC數據集的結構。

1 數據集整體概況

1.1 層級結構

PASCAL VOC 數據集的20個類別及其層級結構:

  • 從2007年開始,PASCAL VOC每年的數據集都是這個層級結構

  • 總共四個大類:vehicle,household,animal,person

  • 總共20個小類,預測的時候是只輸出圖中黑色粗體的類別

  • 數據集主要關注分類和檢測,也就是分類和檢測用到的數據集相對規模較大。關于其他任務比如分割,動作識別等,其數據集一般是分類和檢測數據集的子集。

1.2 發展歷程與使用方法

簡要提一下在幾個關鍵時間點數據集的一些關鍵變化,詳細的請查看PASCAL VOC主頁?。

  • 2005年:還只有4個類別: bicycles, cars, motorbikes, people. Train/validation/test共有圖片1578 張,包含2209 個已標注的目標objects.

  • 2007年 :在這一年PASCAL VOC初步建立成一個完善的數據集。類別擴充到20類,Train/validation/test共有9963張圖片,包含24640 個已標注的目標objects.

    07年之前的數據集中test部分都是公布的,但是之后的都沒有公布。

  • 2009年:從這一年開始,通過在前一年的數據集基礎上增加新數據的方式來擴充數據集。比如09年的數據集是包含了08年的數據集的,也就是說08年的數據集是09年的一個子集,以后每年都是這樣的擴充方式,直到2012年;09年之前雖然每年的數據集都在變大(08年比07年略少),但是每年的數據集都是不一樣的,也就是說每年的數據集都是互斥的,沒有重疊的圖片。

  • 2012年:從09年到11年,數據量仍然通過上述方式不斷增長,11年到12年,用于分類、檢測和person layout 任務的數據量沒有改變。主要是針對分割和動作識別,完善相應的數據子集以及標注信息。

對于分類和檢測來說,也就是下圖所示的發展歷程,相同顏色的代表相同的數據集:

?

分割任務的數據集變化略有不同:

  • VOC 2012用于分類和檢測的數據包含 2008-2011年間的所有數據,并與VOC2007互斥。
  • VOC 2012用于分割的數據中train+val包含 2007-2011年間的所有數據,test包含2008-2011年間的數據,沒有包含07年的是因為07年的test數據已經公開了。

2012年是最后一次挑戰賽,最終用于分類和檢測的數據集規模為:train/val :11540 張圖片,包含 27450 個已被標注的 ROI annotated objects ;用于分割的數據集規模為:trainval:2913張圖片,6929個分割,用于其他任務的不再細說,參考這里?。

即便挑戰賽結束了,但是研究者們仍然可以上傳預測結果進行評估。上傳入口:?PASCAL VOC Evaluation Server.

目前廣大研究者們普遍使用的是 VOC2007和VOC2012數據集,因為二者是互斥的,不相容的。

論文中針對 VOC2007和VOC2012 的具體用法有以下幾種:

  • 只用VOC2007的trainval 訓練,使用VOC2007的test測試
  • 只用VOC2012的trainval 訓練,使用VOC2012的test測試,這種用法很少使用,因為大家都會結合VOC2007使用
  • 使用 VOC2007 的 train+val 和 VOC2012的 train+val 訓練,然后使用 VOC2007的test測試,這個用法是論文中經常看到的 07+12 ,研究者可以自己測試在VOC2007上的結果,因為VOC2007的test是公開的。
  • 使用 VOC2007 的 train+val+test 和 VOC2012的 train+val訓練,然后使用 VOC2012的test測試,這個用法是論文中經常看到的 07++12 ,這種方法需提交到VOC官方服務器上評估結果,因為VOC2012 test沒有公布。
  • 先在 MS COCO 的 trainval 上預訓練,再使用 VOC2007 的 train+val、 VOC2012的 train+val 微調訓練,然后使用 VOC2007的test測試,這個用法是論文中經常看到的 07+12+COCO 。
  • 先在 MS COCO 的 trainval 上預訓練,再使用 VOC2007 的 train+val+test 、 VOC2012的 train+val 微調訓練,然后使用 VOC2012的test測試 ,這個用法是論文中經常看到的 07++12+COCO,這種方法需提交到VOC官方服務器上評估結果,因為VOC2012 test沒有公布。

在各自數據集上分別進行建模和評測的用法比較少,基本上在早期論文里出現就是起個對照作用;現在的大部分論文都會為了增加數據量而將二者合起來使用。

2 數據量統計

由于現在的研究基本上都是在VOC2007和VOC2012上面進行,因此只介紹這兩個年份的。

2.1 VOC 2007

一些示例圖片展示:Classification/detection example images

數據集總體統計:

  • 以上是數據集總體的統計情況,這個里面是包含了測試集的,可見person 類是最多的。

訓練集,驗證集,測試集劃分情況

  • PASCAL VOC 2007 數據集分為兩部分:訓練和驗證集trainval,測試集test ,兩部分各占數據總量的約 50%。其中trainval 又分為訓練集和測試集,二者分別各占trainval的50%。
  • 每張圖片中有可能包含不只一個目標object。

這里我就只貼出用于分類和檢測的劃分情況,關于分割或者其他任務的劃分方式?點擊這里查看?。

2.2 VOC 2012

一些示例圖片展示:Classification/detection example images

數據集總體統計

?

  • 這個統計是沒有包含 test部分的,仍然是person類最多

trainval部分的數據統計:

?

test部分沒有公布,同樣的 除了分類和檢測之外的數據統計,參考這里

2.3 VOC 2007 與 2012 的對比

VOC 2007 與 2012 數據集及二者的并集 數據量對比

  • 黑色字體所示數字是官方給定的,由于VOC2012數據集中 test 部分沒有公布,因此紅色字體所示數字為估計數據,按照PASCAL 通常的劃分方法,即 trainval 與test 各占總數據量的一半。

3 標注信息

數據集的標注還是很謹慎的,有專門的標注團隊,并遵從統一的標注標準,參考?guidelines?。

標注信息是用 xml 文件組織的如下:

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

<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>

<width>353</width>

<height>500</height>

<depth>3</depth>

</size>

<segmented>0</segmented>

<object>

<name>dog</name>

<pose>Left</pose>

<truncated>1</truncated>

<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>

  • filename :文件名

  • source,owner:圖片來源,及擁有者

  • size:圖片大小

  • segmented:是否分割

  • object:表明這是一個目標,里面的內容是目標的相關信息

    • name:object名稱,20個類別

    • pose:拍攝角度:front, rear, left, right, unspecified

    • truncated:目標是否被截斷(比如在圖片之外),或者被遮擋(超過15%)

    • difficult:檢測難易程度,這個主要是根據目標的大小,光照變化,圖片質量來判斷

      difficult 標簽示例:圖中白色虛線,被標記為 difficult?

    • bndbox:bounding box 的左上角點和右下角點的4個坐標值。

4 提交格式

4.1 Classification Task

每一類都有一個txt文件,里面每一行都是測試集中的一張圖片,前面一列是圖片名稱,后面一列是預測的分數。

comp1_cls_test_car.txt:

1

2

3

4

5

000004 0.702732

000006 0.870849

000008 0.532489

000018 0.477167

000019 0.112426

4.2 Detection Task

comp3_det_test_car.txt:

1

2

3

4

5

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

每一類都有一個txt文件,里面每一行都是測試集中的一張圖片,每行的格式按照如下方式組織

1

<image identifier> <confidence> <left> <top> <right> <bottom>

confidence 用來計算 mAP.

5 評估標準

PASCAL的評估標準是 mAP(mean average precision)

關于mAP不再詳細解釋,參考以下資料:

  • 性能指標(模型評估)之mAP
  • average precision
  • 周志華老師 《機器學習》 模型評估標準一節

這里簡單的提一下:

下面是一個二分類的P-R曲線(precision-recall curve),對于PASCAL來說,每一類都有一個這樣的 P-R曲線,P-R曲線下面與x軸圍成的面積稱為 average precision,每個類別都有一個 AP, 20個類別的AP 取平均值就是 mAP。

PASCAL官方給了評估腳本mAP的腳本和示例代碼?development kit code and documentation?,是用MATLAB寫的。

6 數據集組織結構

數據集的下載:

1

2

3

4

5

6

7

8

9

# Download the data.

cd $HOME/data

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar

# Extract the data.

tar -xvf VOCtrainval_11-May-2012.tar

tar -xvf VOCtrainval_06-Nov-2007.tar

tar -xvf VOCtest_06-Nov-2007.tar

或者支直接點擊下面鏈接下載:

  • Download the?training/validation data?(450MB tar file)
  • Download the?annotated test data?(430MB tar file)

上面的解壓命令會將VOC2007的trainval和test解壓到一塊,數據會混在一起,如果不想,可以自己指定解壓路徑。以VOC 2007 為例,解壓后的文件:

1

2

3

4

5

6

.

├── Annotations 進行detection 任務時的 標簽文件,xml文件形式

├── ImageSets 存放數據集的分割文件,比如train,val,test

├── JPEGImages 存放 .jpg格式的圖片文件

├── SegmentationClass 存放 按照class 分割的圖片

└── SegmentationObject 存放 按照 object 分割的圖片

Annotations 文件夾:

1

2

3

4

5

6

7

8

9

10

.

├── 000001.xml

├── 000002.xml

├── 000003.xml

├── 000004.xml

……

……

……

├── 009962.xml

└── 009963.xml

以xml 文件的形式,存放標簽文件,文件內容如前述,文件名與圖片名是一樣的,6位整數

ImageSets文件夾:

存放數據集的分割文件

包含三個子文件夾 Layout,Main,Segmentation,其中Main文件夾存放的是用于分類和檢測的數據集分割文件,Layout文件夾用于 person layout任務,Segmentation用于分割任務

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

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

.

├── Layout

│?? ├── test.txt

│?? ├── train.txt

│?? ├── trainval.txt

│?? └── val.txt

├── Main

│?? ├── aeroplane_test.txt

│?? ├── aeroplane_train.txt

│?? ├── aeroplane_trainval.txt

│?? ├── aeroplane_val.txt

│?? ├── bicycle_test.txt

│?? ├── bicycle_train.txt

│?? ├── bicycle_trainval.txt

│?? ├── bicycle_val.txt

│?? ├── bird_test.txt

│?? ├── bird_train.txt

│?? ├── bird_trainval.txt

│?? ├── bird_val.txt

│?? ├── boat_test.txt

│?? ├── boat_train.txt

│?? ├── boat_trainval.txt

│?? ├── boat_val.txt

│?? ├── bottle_test.txt

│?? ├── bottle_train.txt

│?? ├── bottle_trainval.txt

│?? ├── bottle_val.txt

│?? ├── bus_test.txt

│?? ├── bus_train.txt

│?? ├── bus_trainval.txt

│?? ├── bus_val.txt

│?? ├── car_test.txt

│?? ├── car_train.txt

│?? ├── car_trainval.txt

│?? ├── car_val.txt

│?? ├── cat_test.txt

│?? ├── cat_train.txt

│?? ├── cat_trainval.txt

│?? ├── cat_val.txt

│?? ├── chair_test.txt

│?? ├── chair_train.txt

│?? ├── chair_trainval.txt

│?? ├── chair_val.txt

│?? ├── cow_test.txt

│?? ├── cow_train.txt

│?? ├── cow_trainval.txt

│?? ├── cow_val.txt

│?? ├── diningtable_test.txt

│?? ├── diningtable_train.txt

│?? ├── diningtable_trainval.txt

│?? ├── diningtable_val.txt

│?? ├── dog_test.txt

│?? ├── dog_train.txt

│?? ├── dog_trainval.txt

│?? ├── dog_val.txt

│?? ├── horse_test.txt

│?? ├── horse_train.txt

│?? ├── horse_trainval.txt

│?? ├── horse_val.txt

│?? ├── motorbike_test.txt

│?? ├── motorbike_train.txt

│?? ├── motorbike_trainval.txt

│?? ├── motorbike_val.txt

│?? ├── person_test.txt

│?? ├── person_train.txt

│?? ├── person_trainval.txt

│?? ├── person_val.txt

│?? ├── pottedplant_test.txt

│?? ├── pottedplant_train.txt

│?? ├── pottedplant_trainval.txt

│?? ├── pottedplant_val.txt

│?? ├── sheep_test.txt

│?? ├── sheep_train.txt

│?? ├── sheep_trainval.txt

│?? ├── sheep_val.txt

│?? ├── sofa_test.txt

│?? ├── sofa_train.txt

│?? ├── sofa_trainval.txt

│?? ├── sofa_val.txt

│?? ├── test.txt

│?? ├── train_test.txt

│?? ├── train_train.txt

│?? ├── train_trainval.txt

│?? ├── train.txt

│?? ├── train_val.txt

│?? ├── trainval.txt

│?? ├── tvmonitor_test.txt

│?? ├── tvmonitor_train.txt

│?? ├── tvmonitor_trainval.txt

│?? ├── tvmonitor_val.txt

│?? └── val.txt

└── Segmentation

├── test.txt

├── train.txt

├── trainval.txt

└── val.txt

3 directories, 92 files

主要介紹一下Main文件夾中的組織結構,先來看以下這幾個文件:

1

2

3

4

5

├── Main

│?? ├── train.txt 寫著用于訓練的圖片名稱 共2501個

│?? ├── val.txt 寫著用于驗證的圖片名稱 共2510個

│?? ├── trainval.txt train與val的合集 共5011個

│?? ├── test.txt 寫著用于測試的圖片名稱 共4952個

里面的文件內容是下面這樣的:以train.txt文件為例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

000012

000017

000023

000026

000032

000033

000034

000035

000036

000042

……

……

009949

009959

009961

就是對數據庫的分割,這一部分圖片用于train,其他的用作val,test等。

Main中剩下的文件很顯然就是每一類別在train或val或test中的ground truth,這個ground truth是為了方便classification 任務而提供的;如果是detection的話,使用的是上面的xml標簽文件。

1

2

3

4

5

6

7

├── Main

│?? ├── aeroplane_test.txt 寫著用于訓練的圖片名稱 共2501個,指定正負樣本

│?? ├── aeroplane_train.txt 寫著用于驗證的圖片名稱 共2510個,指定正負樣本

│?? ├── aeroplane_trainval.txt train與val的合集 共5011個,指定正負樣本

│?? ├── aeroplane_val.txt 寫著用于測試的圖片名稱 共4952個,指定正負樣本

……

……

里面文件是這樣的(以aeroplane_train.txt為例):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

000012 -1

000017 -1

000023 -1

000026 -1

000032 1

000033 1

000034 -1

000035 -1

000036 -1

000042 -1

……

……

009949 -1

009959 -1

009961 -1

前面一列是訓練集中的圖片名稱,這一列跟train.txt文件中的內容是一樣的,后面一列是標簽,即訓練集中這張圖片是不是aeroplane,是的話為1,否則為-1.

其他所有的 (class)_(imgset).txt 文件都是類似的。

  • (class)_train 存放的是訓練使用的數據,每一個class都有2501個train數據。
  • (class)_val 存放的是驗證使用的數據,每一個class都有2510個val數據。
  • (class)_trainval 將上面兩個進行了合并,每一個class有5011個數據。
  • (class)_test 存放的是測試使用的數據,每一個class有4952個test數據。

所有文件都 指定了正負樣本,每個class的實際數量為正樣本的數量,train和val兩者沒有交集。

VOC2012 的數據集組織結構是類似的,不一樣的地方在于VOC2012 中沒有 test類的圖片和以及相關標簽和分割文件,因為這部分數據 VOC2012沒有公布。

參考資料

  • The PASCAL Visual Object Classes Homepage
  • 性能指標(模型評估)之mAP
  • 多標簽圖像分類任務的評價方法-mAP
  • average precision
  • 本文標題:目標檢測數據集PASCAL VOC簡介

    本文作者:arleyzhang

    發布時間:2018年06月03日 - 23:06

    最后更新:2018年11月16日 - 22:11

    本文鏈接:目標檢測數據集PASCAL VOC簡介 | arleyzhang?

    版權聲明:?本文由 arleyzhang 原創,采用??保留署名-非商業性使用-禁止演繹 4.0-國際許可協議,轉載請保留原文鏈接及作者!

    總結

    以上是生活随笔為你收集整理的目标检测数据集PASCAL VOC简介的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。