目標檢測中的mAP


一、IOU的概念

交集和並集的比例(所謂的交集和並集,都是預測框和實際框的集合關系)。如圖:

二、Precision(准確率)和Recall(召回率)的概念

對於二分類問題,可將樣例根據其真實類別和預測類別組合划分為真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)

記為TP、FP、TN、FN,顯然有TP + FP + TN + FN = 樣例總數。這里着重提一下真正例的含義:預測是正例,實際上也是正例。主要它是准確率P和召回率R的分子

混淆矩陣如下:

准確率P和召回率R分別定義為:

預測的正例:TP + FP

真實的正例:TP + FN

P的含義:真正的正例占預測正例的比例。衡量的是一個分類器預測出的正例是真實正例的概率

R的含義:真正的正例占真實正例的比例。衡量的是一個分類器找出所有正例的能力。

准確率和召回率是一對矛盾的度量。一般來說,准確率高,則召回率低;准確率低,則召回率高。光靠精度還不能衡量分類器的好壞程度。比如50個正樣本和50個負樣本,我的分類器把49個正樣本和50個負樣本都分為負樣本,剩下一個正樣本分為正樣本。這樣我的准確率也是100%,但是這樣的分類器根本就不能用。

 

兩個極端:如果召回率100%,就是所有的正例都被找出來了。(非常簡單,就是將所有的例子都判為正例。你看,你不是要我找到所有的正例嗎?我不管好壞,全部判為正例,這樣所有的正例不都找到了嗎?),但是這樣的分類器沒用,因為它一個反例都沒有排除。

如果召回率為0%,就是一個正例都沒有找到。同樣,將所有的例子判為反例,這樣的分類器同樣沒用。

 

三、PR曲線

我們將分類器判別的正例分為TP、FP,我們憑什么這么干?IoU閾值就是評價標准。如果IoU的值超過一定的閾值,即分類器認為找到一個正例。而這個閾值是可以設置的。

由此可知,召回率和准確率受到了閾值設置的影響,而且閾值對於兩個指標的影響是相反的:閾值增加則准確率增加,召回率降低,反之亦然。那么我們可以通過設置一系列的閾值來得到一系列的(准確率,召回率)的指標對,然后利用這些指標對畫出坐標圖,這就是PR曲線。

 

四、舉例計算mAP

有3張圖如下,要求算法找出face。藍色框代表實際框(label),綠色框代表算法給出的預測框(prediction),旁邊紅色的小字代表的是置信度,設定第一張圖的預測框為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,所以Recall=1/3。這樣就得到一組P、R值。

 

然后設置閾值為0.8,無視所有小於0.8的pre。那么檢測器檢出所有框pre即TP+FP(預測的正例) = 2,並且pre1是TP,那么Precision=1/2。而真實的正例有三個,所以Recall=1/3。這樣就又得到一組P、R值。

 

然后設置閾值為0.7,無視所有小於0.7的pre。那么檢測器檢出所有框pre即TP+FP(預測的正例) = 3,並且pre1、pre3是TP,那么Precision=2/3。而真實的正例有三個,所以Recall=2/3。這樣就又得到一組P、R值。

4. 繪制PR曲線並計算AP值

根據上面3組PR值繪制PR曲線如下,然后每個"峰值點"往左畫一條線段直到與上一個峰值點的垂直線相交。這樣畫出來的紅色線段與坐標軸圍起來的面積就是AP值

AP = 1*1/3 + (1/3)*(2/3) = 5/9 ≈ 0.56

5. 計算mAP

而mAP就是所有AP的平均值。比如有兩個類,A類的AP為0.5,B類的AP為0.3,則mAP = (0.5 + 0.3) / 2 = 0.4

 參考地址:

https://blog.csdn.net/hsqyc/article/details/81702437


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM