目標檢測map理解

1. MAP的物理意義


平均精度的意義是將各個召回率下準確率取平均,這個平均準確率可以衡量目標檢測模型的性能,卻不能直觀地知道實際測試時特定置信度下準確率和召回率。只考慮大於特定置信度閾值下的正檢和錯檢,可得到相應的準確率和召回率

2. MAP的計算方法

map即平均精度均值,平均精度,也就是平均準確率,把準確率取個平均。把哪幾個準確率取平均呢,接下來將闡述是把哪幾個準確率取平均,以及這些準確率是怎麼算的。

引用這篇博客的例子:

有3張圖如下,要求算法找出face。藍色框代表標籤label,綠色框代表算法給出的結果pre,旁邊的紅色小字代表置信度。設定第一張圖的檢出框叫pre1,第一張的標籤框叫label1。第二張、第三張同理。

1.根據IOU計算TP,FP
首先我們計算每張圖的pre和label的IOU,根據IOU是否大於0.5來判斷該pre是屬於TP還是屬於FP。顯而易見,pre1是TP,pre2是FP,pre3是TP。

2.排序
根據每個pre的置信度進行從高到低排序,這裏pre1、pre2、pre3置信度剛好就是從高到低。

3.在不同置信度閾值下獲得Precision和Recall
首先,設置閾值爲0.9,無視所有小於0.9的pre。那麼檢測器檢出的所有框pre即TP+FP=1,並且pre1是TP,那麼Precision=1/1。因爲所有的label=3,所以Recall=1/3。這樣就得到一組P、R值。

然後,設置閾值爲0.8,無視所有小於0.8的pre。那麼檢測器檢出的所有框pre即TP+FP=2,因爲pre1是TP,pre2是FP,那麼Precision=1/2=0.5。因爲所有的label=3,所以Recall=1/3=0.33。這樣就又得到一組P、R值。

再然後,設置閾值爲0.7,無視所有小於0.7的pre。那麼檢測器檢出的所有框pre即TP+FP=3,因爲pre1是TP,pre2是FP,pre3是TP,那麼Precision=2/3=0.67。因爲所有的label=3,所以Recall=2/3=0.67。這樣就又得到一組P、R值。

4.繪製PR曲線並計算AP值
根據上面3組PR值繪製PR曲線如下。然後每個“峯值點”往左畫一條線段直到與上一個峯值點的垂直線相交。這樣畫出來的紅色線段與座標軸圍起來的面積就是AP值。

3. 總結

平均精度是把各個檢測到正確樣本(置信度從高到低排序)當成正樣本(以它的置信度爲置信度閾值)時,此時計算得到的系統的準確率加起來,除以ground truth中的正樣本數目。

圖中的PR曲線理解:

垂直下降的原因是下一個樣本是負樣本,把該樣本考慮進去並不能增加召回率,會降低準確率。斜向上增加的原因是下一個樣本是正樣本,把該樣本考慮進去既能增加召回率,也能增加準確率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章