PASCAL VOC工具包解读
遇到不熟悉的問題時,還是直接看官方文檔直接。
我想用Vocdevkit里對檢測見過進行評估的程序,所以把從devkit_doc.pdf里看到的內容記錄下:
4. Detection Task
4.1 Task
對于20個類中的每一個,預測測試圖像中該類的每個對象的邊界框(如果有的話)。 每個邊界框應該輸出一個相關的檢測實值置信度,以便繪制一條精度/回調曲線。 參與者可以選擇處理全部或任何對象類別的子集,例如“僅限汽車”或“摩托車和汽車”。
4.2 Competitions
根據訓練數據的來源來定義兩項比賽:(i)從VOC提供的數據中提取數據,或者(ii)不包括所提供的VOC測試數據的任何來源:
| No. | Task | Training data | Test data |
| 3 | Detection | trainval | test |
| 4 | Detection | any but VOC test | test |
? 在比賽3中,在VOC訓練和訓練集中提供的任何注釋可以用于訓練,例如邊界框或特定視圖,例如, '正面'或'左'。 參與者不得對培訓或測試數據進行額外的手動注釋。
4.3 Submission of Results
? 應為每個比賽(3或4)和每個比賽類別產生單獨的結果,比方 '汽車'。 每行應該是檢測器的檢測輸出,格式如下:
<image identifier> <confidence> <left> <top> <right> <bottom>
其中(左,上) - (右,下)定義檢測對象的邊界框。 圖像中左上角的像素具有坐標(1,1)。 更高的置信度值意味著檢測結果的正確性。 下面顯示了一個示例文件摘錄。 請注意,對于圖像000006,檢測到多個對象:
//comp3_det_test_car.txt: 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
例程中檢測器實現(第7.2.2節)包括用于以所需格式生成結果文件的代碼。
4.4 Evaluation
檢測任務將通過精度/召回曲線來判斷。 使用的主要定量測量將是平均精度(AP)。 用于計算精度/召回率和AP度量的示例代碼在開發工具包中提供。
通過和GT邊界框重疊的區域,判斷檢測結果是TP或FP。 為了被認為是正確的檢測,預測邊界框B p和GT邊界框B gt之間的重疊區域a o必須超過50%.在開發工具包中提供了用于計算此重疊度量的示例代碼。 圖像中同一對象的多次檢測被視為錯誤檢測,例如 單個對象的5次檢測被計為1次正確檢測和4次錯誤檢測 - 參與者系統有責任從其輸出中過濾多次檢測。
7 Development KIt
開發工具包打包在一個包含MATLAB代碼和(本)文檔的gzip壓縮文件中。 比賽的圖像,注釋和訓練/驗證集的列表在單獨的檔案中提供,可以通過VOC網頁獲得[1]。
7.1 Installation and Configuration
最簡單的安裝是通過將開發工具和挑戰數據庫放在一個位置來實現的。 在解開開發工具包之后,下載挑戰鏡像數據庫并解壓到相同的目錄中,產生以下目錄結構:
VOCdevkit/ % development kit VOCdevkit/VOCcode/ % VOC utility code VOCdevkit/results/VOC2007/ % your results on VOC2007 VOCdevkit/results/VOC2006/ % your results on VOC2006 VOCdevkit/local/ % example code temp dirs VOCdevkit/VOC2007/ImageSets % image sets VOCdevkit/VOC2007/Annotations % annotation files VOCdevkit/VOC2007/JPEGImages % images VOCdevkit/VOC2007/SegmentationObject % segmentations by object VOCdevkit/VOC2007/SegmentationClass % segmentations by class
7.2 Example Code
為所有任務均提供了示例實現。 這些(最小)實現的目的僅僅是為了演示開發工具包中代碼的使用。
7.2.2 Example Detector Implementation
文件example_detector.m包含檢測任務的完整實現。 對于每個VOC對象類,一個簡單的(并且不是很成功的)探測器在訓練集上訓練; 然后將檢測器應用于驗證集,并將輸出保存到比賽所需格式的結果文件中; 繪制精度/回想曲線并顯示“平均精度”(AP)度量
8 Using the Development Kit
開發工具包提供加載注釋數據的功能。 還提供了用于計算精度/召回曲線和分段準確度以及用于查看注釋的示例代碼。
8.1 Image Sets
8.1.1 Classification/Detection Task Image Sets
VOC2007 / ImageSets / Main /目錄包含指定 主要分類/檢測任務 的圖像列表的文件。
文件train.txt,val.txt,trainval.txt和test.txt列出了相應圖像集(訓練,驗證,訓練+驗證和測試)的圖像標識符。 文件的每一行都包含一個圖像標識符。 以下MATLAB代碼將圖像列表讀入字符串的單元數組:
imgset=’train’;
ids=textread(sprintf(VOCopts.imgsetpath,imgset),’%s’); 對于給定的圖像標識符ids {i},可以生成相應的圖像和標簽文件路徑:
imgpath=sprintf(VOCopts.imgpath,ids{i});
annopath=sprintf(VOCopts.annopath,ids{i}); 請注意,所使用的圖像集對于所有類都是相同的。 對于每場比賽,參賽者需要為測試集中的所有圖像提供輸出。
8.2 Development Kit Functions
8.2.1 VOCinit
VOCinit腳本初始化包含PASCAL功能選項的單個結構VOCopts,包括包含VOC數據和評估功能選項(不會被修改)的目錄。
關鍵詞 classes 中列出了這個比賽所用到的類別:
VOCopts.classes={’aeroplane’,’bicycle’,’bird’,’boat’,...’bottle’,’bus’,’car’,’cat’,...’chair’,’cow’,’diningtable’,’dog’,...’horse’,’motorbike’,’person’,’pottedplant’,...’sheep’,’sofa’,’train’,’tvmonitor’};
關鍵詞 testset 指明了用于測試的圖片集:
VOCopts.testset=’val’; % use validation data for development 為方便起見,其他關鍵詞提供圖像和注釋數據以及結果文件的路徑。 示例實現中說明了這些路徑的使用。
8.2.2 PASreadrecord( filename )
PASreadrecord函數從文件名指定的注釋文件中讀取特定圖像的注釋數據,例如:
>> rec=PASreadrecord(sprintf(VOCopts.annopath,’000058’))
rec = folder: ’VOC2007’ filename: ’000058.jpg’ source:[1x1 struct] size:[1x1 struct] segmented:0 imgname:’VOC2007/JPEGImages/000058.jpg’ imgsize:[500 375 3] database:’The VOC2007 Database’ objects:[1x4 struct]
?
8.2.3 viewanno( imgset )
viewanno函數顯示由imgset指定的圖像集中圖像的注釋。 一些例子:
>> viewanno(’Main/train’); >> viewanno(’Main/car_val’); >> viewanno(’Layout/train’); >> viewanno(’Segmentation/val’);
?
8.4 Detection Functions
8.4.1 VOCevaldet( VOCopts, id, cls. draw )?
VOCevaldet函數執行檢測任務的評估,計算精度/召回曲線和平均精度(AP)度量。 參數id和cls指定要加載的結果文件,例如:
>> [rec,prec,ap]=VOCevaldet(VOCopts,’comp3’,’car’,true); 進一步的例子見示例檢測器。 如果參數繪制為true,則精確度/回憶曲線繪制在數字窗口中。 該函數返回rec和prec中的召回和精度比率的矢量,以及ap中的平均精度度量。
8.4.2 viewdet( id, cls, onlytp )
viewdet函數顯示存儲在檢測任務的結果文件中的檢測結果。 參數id和cls指定要加載的結果文件,例如:
>> viewdet(’comp3’,’car’,true) 如果onlytp 參數是true,則只顯示通過VOC評估測量被認為是真正的檢測。
?
轉載于:https://www.cnblogs.com/caffeaoto/p/8809322.html
總結
以上是生活随笔為你收集整理的PASCAL VOC工具包解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京到上海飞机几个小时
- 下一篇: 如何下载flash离线安装包