目標檢測常用評價指標
本文主要參考陳愷大佬在B站商湯賬號的介紹mmdetection的視頻。
檢測結果的正確/錯誤類型
真陽性(Ture Positive):算法檢測到了某類物體(Positive),而實際圖中也確實有這個物體,檢測結果正確(True)。
假陽性(False Positive):算法檢測到了某類物體(Postive),但是圖中沒有這個物體,檢測結果錯誤(False)。 又稱為誤檢
假陰性(False Negtive):算法沒有檢測到某類物體(Negtive),但是圖中有這個物體,檢測結果錯誤(False)。 又稱為漏檢
左下實線框中確實有只貓,也檢測到了,即TP。
右下實線框內沒有物體,但是檢測到了,即FP。
右上虛線框內有屏幕,但是沒有檢測到,即FN。
實際上,二元的混淆矩陣是這樣的:
一定要注意:初次面對這些概念時,兩個字母表示四種可能性,可能會自然而然地認為前后字母分別代表真實值和預測值的真假,但實際上不是這樣的。
P/N確實是表示預測值是真或假,而T/F可不是表示真實值的真或假。T/P 和 F/N 的真正含義是:
- T/F:表示預測的對不對,代表的是預測值與真實值之間的關系
- P/N:表示預測值是真還是假,代表模型對某個樣本的預測結果
這個一定要弄清楚,別被混淆矩陣把自己搞“混淆”了。
精確率Precision與召回率Recall
召回率=預測為真且實際為真總數實際為真總數,??即???Recall=TPTP+FN召回率=\frac{預測為真且實際為真總數}{實際為真總數}, \ \ 即\ \ \ Recall=\frac{TP}{TP+FN} 召回率=實際為真總數預測為真且實際為真總數?,??即???Recall=TP+FNTP?
精確率=預測為真且實際為真總數預測為真總數,??即???Precision=TPTP+FP精確率=\frac{預測為真且實際為真總數}{預測為真總數}, \ \ 即\ \ \ Precision=\frac{TP}{TP+FP} 精確率=預測為真總數預測為真且實際為真總數?,??即???Precision=TP+FPTP?
準確率=預測正確總數全部樣本總數,??即???Accuracy=TP+TNTP+FP+TN+FN準確率=\frac{預測正確總數}{全部樣本總數}, \ \ 即\ \ \ Accuracy=\frac{TP+TN}{TP+FP+TN+FN} 準確率=全部樣本總數預測正確總數?,??即???Accuracy=TP+FP+TN+FNTP+TN?
召回率是實際為真樣本中預測為真的比例,精確率是預測為真樣本中真實為真的比例,準確率是預測正確的比例。
兩種極端的情況:
- 檢測器將所有的錨框都判斷為物體,此時召回率 Recall≈100%Recall\approx100\%Recall≈100% ,但是大量的背景都被誤檢為物體,FP很高,導致準確率很低。
- 檢測器只將置信度最高的一個框檢測為物體,當然有很大的幾率是正確的,準確率 Precision≈100%Precision\approx100\%Precision≈100% ,但是大量的物體被漏檢為背景,FN很高,導致召回率很低。
最理想的情況當然是召回率和準確率都為 100%,但在算法能力有限的現實情況下,我們應當盡可能地平衡二者。
通常做法是將檢測框按照置信度排序,并設置一個置信度閾值,僅輸出置信度大于該閾值的若干個框。
PR曲線和AP值
以上的做法無疑會受到閾值的選取的影響,為了得到和閾值無關的評分,我們可以遍歷閾值,并對召回率和準確率求平均。
具體做法:
-
檢測框按照置信度排序,取前 KKK 個框計算Precision和Recall。
-
遍歷 KKK 從1到全部檢測框,將得到的Precision和Recall繪制在坐標系上,得到PR曲線。
- 定義 Average Precision = Precision對Recall的平均值,即PR曲線下的面積,作為檢測器的性能衡量指標。
AP=∫01P(R)dRAP = \int_0^1P(R)dR AP=∫01?P(R)dR
Mean AP
分類別統計AP,并按類別平均得到Mean AP。
Mean AP的完整計算流程:
- 將數據集中全部圖像的預測框按預測類別分類。
- 對于某一類別的所有檢測框,計算AP:
- 按置信度將該類別所有檢測框排序
- 逐一與真值框比較,判定TP或FP,并繪制PR曲線
- 對PR曲線插值,計算AP
- 求所有類別的AP的平均,得到Mean AP。
mAP=1C∑i=1C∫01P(R)dRmAP=\frac{1}{C}\sum_{i=1}^C\int_0^1P(R)dR mAP=C1?i=1∑C?∫01?P(R)dR CCC 是全部類別數。
部分數據集(如COCO),還需要在不同的IOU閾值下計算Mean AP并平均,作為最終評分,這可以衡量檢測器在不同定位精度要求下的性能。
AP、AP50、AP75
以上我們討論的是在固定 IOU 下的 mAP 結果,我們也提到,有時會對不同的 IOU 也做測試,并記錄性能。我們經常在論文中見到 AP、AP50、AP75 這樣的指標就是指的在不同的 IOU 下的 mAP 結果。
具體來說:
- AP50、AP75:這樣在 AP 后面帶數字的,很好理解,即分別是在 IOU 為 50、75 下的 mAP 值。
- AP:這樣不帶數字的 AP 指標通常指的是 AP@50:5:95,表示 IOU 從 50 ,取到95,步長為5(即50, 55, 60, 65, …, 90, 95),分別計算這些 IOU 值下的 mAP,再求平均。
?