PASCAL VOC工具包解读
遇到不熟悉的問題時,還是直接看官方文檔直接。
我想用Vocdevkit里對檢測見過進行評估的程序,所以把從devkit_doc.pdf里看到的內(nèi)容記錄下:
4. Detection Task
4.1 Task
對于20個類中的每一個,預測測試圖像中該類的每個對象的邊界框(如果有的話)。 每個邊界框應該輸出一個相關的檢測實值置信度,以便繪制一條精度/回調(diào)曲線。 參與者可以選擇處理全部或任何對象類別的子集,例如“僅限汽車”或“摩托車和汽車”。
4.2 Competitions
根據(jù)訓練數(shù)據(jù)的來源來定義兩項比賽:(i)從VOC提供的數(shù)據(jù)中提取數(shù)據(jù),或者(ii)不包括所提供的VOC測試數(shù)據(jù)的任何來源:
| No. | Task | Training data | Test data |
| 3 | Detection | trainval | test |
| 4 | Detection | any but VOC test | test |
? 在比賽3中,在VOC訓練和訓練集中提供的任何注釋可以用于訓練,例如邊界框或特定視圖,例如, '正面'或'左'。 參與者不得對培訓或測試數(shù)據(jù)進行額外的手動注釋。
4.3 Submission of Results
? 應為每個比賽(3或4)和每個比賽類別產(chǎn)生單獨的結(jié)果,比方 '汽車'。 每行應該是檢測器的檢測輸出,格式如下:
<image identifier> <confidence> <left> <top> <right> <bottom>
其中(左,上) - (右,下)定義檢測對象的邊界框。 圖像中左上角的像素具有坐標(1,1)。 更高的置信度值意味著檢測結(jié)果的正確性。 下面顯示了一個示例文件摘錄。 請注意,對于圖像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
例程中檢測器實現(xiàn)(第7.2.2節(jié))包括用于以所需格式生成結(jié)果文件的代碼。
4.4 Evaluation
檢測任務將通過精度/召回曲線來判斷。 使用的主要定量測量將是平均精度(AP)。 用于計算精度/召回率和AP度量的示例代碼在開發(fā)工具包中提供。
通過和GT邊界框重疊的區(qū)域,判斷檢測結(jié)果是TP或FP。 為了被認為是正確的檢測,預測邊界框B p和GT邊界框B gt之間的重疊區(qū)域a o必須超過50%.在開發(fā)工具包中提供了用于計算此重疊度量的示例代碼。 圖像中同一對象的多次檢測被視為錯誤檢測,例如 單個對象的5次檢測被計為1次正確檢測和4次錯誤檢測 - 參與者系統(tǒng)有責任從其輸出中過濾多次檢測。
7 Development KIt
開發(fā)工具包打包在一個包含MATLAB代碼和(本)文檔的gzip壓縮文件中。 比賽的圖像,注釋和訓練/驗證集的列表在單獨的檔案中提供,可以通過VOC網(wǎng)頁獲得[1]。
7.1 Installation and Configuration
最簡單的安裝是通過將開發(fā)工具和挑戰(zhàn)數(shù)據(jù)庫放在一個位置來實現(xiàn)的。 在解開開發(fā)工具包之后,下載挑戰(zhàn)鏡像數(shù)據(jù)庫并解壓到相同的目錄中,產(chǎn)生以下目錄結(jié)構(gòu):
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
為所有任務均提供了示例實現(xiàn)。 這些(最小)實現(xiàn)的目的僅僅是為了演示開發(fā)工具包中代碼的使用。
7.2.2 Example Detector Implementation
文件example_detector.m包含檢測任務的完整實現(xiàn)。 對于每個VOC對象類,一個簡單的(并且不是很成功的)探測器在訓練集上訓練; 然后將檢測器應用于驗證集,并將輸出保存到比賽所需格式的結(jié)果文件中; 繪制精度/回想曲線并顯示“平均精度”(AP)度量
8 Using the Development Kit
開發(fā)工具包提供加載注釋數(shù)據(jù)的功能。 還提供了用于計算精度/召回曲線和分段準確度以及用于查看注釋的示例代碼。
8.1 Image Sets
8.1.1 Classification/Detection Task Image Sets
VOC2007 / ImageSets / Main /目錄包含指定 主要分類/檢測任務 的圖像列表的文件。
文件train.txt,val.txt,trainval.txt和test.txt列出了相應圖像集(訓練,驗證,訓練+驗證和測試)的圖像標識符。 文件的每一行都包含一個圖像標識符。 以下MATLAB代碼將圖像列表讀入字符串的單元數(shù)組:
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功能選項的單個結(jié)構(gòu)VOCopts,包括包含VOC數(shù)據(jù)和評估功能選項(不會被修改)的目錄。
關鍵詞 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 為方便起見,其他關鍵詞提供圖像和注釋數(shù)據(jù)以及結(jié)果文件的路徑。 示例實現(xiàn)中說明了這些路徑的使用。
8.2.2 PASreadrecord( filename )
PASreadrecord函數(shù)從文件名指定的注釋文件中讀取特定圖像的注釋數(shù)據(jù),例如:
>> 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函數(shù)顯示由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函數(shù)執(zhí)行檢測任務的評估,計算精度/召回曲線和平均精度(AP)度量。 參數(shù)id和cls指定要加載的結(jié)果文件,例如:
>> [rec,prec,ap]=VOCevaldet(VOCopts,’comp3’,’car’,true); 進一步的例子見示例檢測器。 如果參數(shù)繪制為true,則精確度/回憶曲線繪制在數(shù)字窗口中。 該函數(shù)返回rec和prec中的召回和精度比率的矢量,以及ap中的平均精度度量。
8.4.2 viewdet( id, cls, onlytp )
viewdet函數(shù)顯示存儲在檢測任務的結(jié)果文件中的檢測結(jié)果。 參數(shù)id和cls指定要加載的結(jié)果文件,例如:
>> viewdet(’comp3’,’car’,true) 如果onlytp 參數(shù)是true,則只顯示通過VOC評估測量被認為是真正的檢測。
?
轉(zhuǎn)載于:https://www.cnblogs.com/caffeaoto/p/8809322.html
總結(jié)
以上是生活随笔為你收集整理的PASCAL VOC工具包解读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京到上海飞机几个小时
- 下一篇: 洱海早上去好还是下午去好