AP & mAP
AP:PR 曲線下面積(下面會說明) mAP:mean Average Precision, 即各類別 AP 的平均值
TP、FP、FN、TN
- True Positive (TP): IoU>
(
一般取 0.5 ) 的檢測框數量(同一 Ground Truth 只計算一次)
- False Positive (FP): IoU<=
的檢測框數量,或者是檢測到同一個 GT 的多余檢測框的數量
- False Negative (FN): 沒有檢測到的 GT 的數量
- True Negative (TN): 在 mAP 評價指標中不會使用到
查准率、查全率
- 查准率(Precision): TP/(TP + FP)
- 查全率(Recall): TP/(TP + FN)
二者繪制的曲線稱為 P-R 曲線

交並比 - Intersection Over Union (IOU)
交並比(IOU)是度量兩個檢測框(對於目標檢測來說)的交疊程度,公式如下:
B_gt 代表的是目標實際的邊框(Ground Truth,GT),B_p 代表的是預測的邊框,通過計算這兩者的 IOU,可以判斷預測的檢測框是否符合條件,IOU 用圖片展示如下:

評價指標 mAP
下面用一個例子說明 AP 和 mAP 的計算
先規定兩個公式,一個是 Precision,一個是 Recall,這兩個公式同上面的一樣,我們把它們擴展開來,用另外一種形式進行展示,其中 all detctions
代表所有預測框的數量, all ground truths
代表所有 GT 的數量。
AP 是計算某一類 P-R 曲線下的面積,mAP 則是計算所有類別 P-R 曲線下面積的平均值。
假設我們有 7 張圖片(Images1-Image7),這些圖片有 15 個目標(綠色的框,GT 的數量,上文提及的 all ground truths
)以及 24 個預測邊框(紅色的框,A-Y 編號表示,並且有一個置信度值)

根據上圖以及說明,我們可以列出以下表格,其中 Images 代表圖片的編號,Detections 代表預測邊框的編號,Confidences 代表預測邊框的置信度,TP or FP 代表預測的邊框是標記為 TP 還是 FP(認為預測邊框與 GT 的 IOU 值大於等於 0.3 就標記為 TP;若一個 GT 有多個預測邊框,則認為 IOU 最大且大於等於 0.3 的預測框標記為 TP,其他的標記為 FP,即一個 GT 只能有一個預測框標記為 TP),這里的 0.3 是隨機取的一個值。

通過上表,我們可以繪制出 P-R 曲線(因為 AP 就是 P-R 曲線下面的面積),但是在此之前我們需要計算出 P-R 曲線上各個點的坐標,根據置信度從大到小排序所有的預測框,然后就可以計算 Precision 和 Recall 的值,見下表。(需要記住一個叫累加的概念,就是下圖的 ACC TP 和 ACC FP)

- 標號為 1 的 Precision 和 Recall 的計算方式:Precision=TP/(TP+FP)=1/(1+0)=1,Recall=TP/(TP+FN)=TP/(
all ground truths
)=1/15=0.0666 (all ground truths 上面有定義過了
) - 標號 2:Precision=TP/(TP+FP)=1/(1+1)=0.5,Recall=TP/(TP+FN)=TP/(
all ground truths
)=1/15=0.0666 - 標號 3:Precision=TP/(TP+FP)=2/(2+1)=0.6666,Recall=TP/(TP+FN)=TP/(
all ground truths
)=2/15=0.1333 - 其他的依次類推
然后就可以繪制出 P-R 曲線

得到 P-R 曲線就可以計算 AP(P-R 曲線下的面積),要計算 P-R 下方的面積,一般使用的是插值的方法,取 11 個點 [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] 的插值所得

得到一個類別的 AP 結果如下:
要計算 mAP,就把所有類別的 AP 計算出來,然后求取平均即可。
參考:https://github.com/rafaelpadilla/Object-Detection-Metrics