一、什么是目標檢測
即用框(bounding box)標出物體的位置,並給出物體的類別
一些數據集介紹:
PASCAL VOC數據集http://host.robots.ox.ac.uk/pascal/VOC/ 20類物體
COCO數據集 http://cocodataset.org/#home 80類物體
二、IoU介紹
IoU:Intersection over Union,交並比。
解釋:
1.綠色框為我們認為標定的框。
2.紅色框為預測的框。
3.我們計算兩個框的交集和並集。
4.交集/並集就是IoU。
三、PR曲線繪制
PR曲線:precision-recall curve。用於評價檢測器性能。
PR曲線如何繪制:
如上圖所示,我們給定了3個人工繪制的框(綠色):
檢測器輸出了5個紅色框:
其中得分表示檢測器框住的東西是人的概率。我們先將其按這個得分排序:
排好序后,我們按得分從高到低,將框與人工繪制的框進行計算IoU,當IoU大於一個閾值時,我們打上TP的標簽。
注意:每個綠色框只能匹配一次,例如1號紅框與1號綠框匹配,IoU=0.9,那么1號紅框標注TP,為真正例。2號紅框也與1號綠框匹配,IoU=0.8,此時只能標注其為FP,即假正例。在這種情況下,上表中出現TP的個數最多就等於3。也就是說召回率最大不能超過1。
准確率(Precision)和召回率(Recall):
我們設定不同的閾值,在每一個閾值情況下計算P和R的值,並繪成PR曲線:
解釋:
1.由於檢測器輸出只有5個框,最低得分是0.7,假設閾值為低於0.7,例如取0.6。計算P=3/5=0.6,R=3/3=1。
2.假設閾值為0.7。P=3/4=0.75,R=3/3=1。
3.假設閾值為0.8。P=3/3=1,R=3/3=1。
4.假設閾值為0.9。P=3/3=1,R=2/3=0.67。
5.假設閾值為0.9。P=3/3=1,R=1/3=0.33。
畫成PR曲線,如下圖:
直觀理解:
假設我們在這個例子中,檢測器輸出了很多很多紅色框,例如100個框,他們的得分從高到低排列。假設我們將閾值取得很低,例如0.3,那么大量的框很有可能包含了所有需要檢測的物體(例如30個物體),那么Recall就為1(Recall就是一共需要檢測的物體中,我們檢測到了的比例)。但是,由於大量的框大部分都是不准確的(只有30個框是准確框住了物體),那么准確率(Precision)就非常低(只有30%)。
反之,我們將閾值設置得非常高,例如0.95,那么排在前面3位的框確實框住了物體,但是需要檢測的物體可能有30類,雖然這3個框都框住了物體(Precision為1),但是召回率卻只有3/30=10%。
如何使用PR曲線評價一個檢測器:
我們采用PR曲線下面所包含的面積大小來評價一個檢測器,面積越大,檢測器越好。
看下面這個情況:
排名第一的紅框沒有框住物體,這種情況下他屬於假正例(FP),那么這種情況下得PR曲線如右邊所示,當閾值為0.9時,Precision和Recall都為0。