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)是度量兩個檢測框(對於目標檢測來說)的交疊程度,公式如下:
![[公式]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD0lNUNtYXRocm0lN0JJT1UlN0QlM0QlNUNmcmFjJTdCJTVDb3BlcmF0b3JuYW1lJTdCYXJlYSU3RCU1Q2xlZnQlMjhCXyU3QnAlN0QrJTVDY2FwK0JfJTdCZyt0JTdEJTVDcmlnaHQlMjklN0QlN0IlNUNvcGVyYXRvcm5hbWUlN0JhcmVhJTdEJTVDbGVmdCUyOEJfJTdCcCU3RCslNUNjdXArQl8lN0JnK3QlN0QlNUNyaWdodCUyOSU3RCslNUMlNUM=.png)
B_gt 代表的是目標實際的邊框(Ground Truth,GT),B_p 代表的是預測的邊框,通過計算這兩者的 IOU,可以判斷預測的檢測框是否符合條件,IOU 用圖片展示如下:
評價指標 mAP
下面用一個例子說明 AP 和 mAP 的計算
先規定兩個公式,一個是 Precision,一個是 Recall,這兩個公式同上面的一樣,我們把它們擴展開來,用另外一種形式進行展示,其中 all detctions 代表所有預測框的數量, all ground truths 代表所有 GT 的數量。
![[公式]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD0lNUN0ZXh0KyU3QitQcmVjaXNpb24rJTdEJTNEJTVDZnJhYyU3QlQrUCU3RCU3QlQrUCUyQkYrUCU3RCUzRCU1Q2ZyYWMlN0JUK1AlN0QlN0IlNUN0ZXh0KyU3QithbGwrZGV0ZWN0aW9ucyslN0QlN0QrJTVDJTVD.png)
![[公式]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD0lNUN0ZXh0KyU3QlJlY2FsbCU3RCUzRCU1Q2ZyYWMlN0JUK1AlN0QlN0JUK1AlMkJGK04lN0QlM0QlNUNmcmFjJTdCVCtQJTdEJTdCJTVDdGV4dCslN0IrYWxsK2dyb3VuZCt0cnV0aHMrJTdEJTdEKyU1QyU1Qw==.png)
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 結果如下:
![[公式]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD0lNUNiZWdpbiU3QmFsaWduZWQlN0QrJTI2QStQJTNEJTVDZnJhYyU3QjElN0QlN0IxMSU3RCslNUNzdW1fJTdCcislNUNpbiU1QyU3QjAlMkMwJTJDMSUyQyslNUNsZG90cyUyQysxJTVDJTdEJTdEKyU1Q3Job18lN0IlNUN0ZXh0KyU3QmludGVycCslN0QlMjhyJTI5JTdEJTVDJTVDKyUyNkErUCUzRCU1Q2ZyYWMlN0IxJTdEJTdCMTElN0QlMjgxJTJCMC42NjY2JTJCMC40Mjg1JTJCMC40Mjg1JTJCMC40Mjg1JTJCMCUyQjAlMkIwJTJCMCUyQjAlMkIwJTI5JTVDJTVDKyUyNkErUCUzRDI2Ljg0KyU1QyUyNSslNUNlbmQlN0JhbGlnbmVkJTdEJTVDJTVD.png)
要計算 mAP,就把所有類別的 AP 計算出來,然后求取平均即可。
參考:https://github.com/rafaelpadilla/Object-Detection-Metrics
