1. 程式人生 > >mAP(Mean Average Precison)理解

mAP(Mean Average Precison)理解

CA 本質 bsp 價值 pos conf 排序 con 從0到1

在目標檢測算法(如Faster RCNN, YOLO ,SSD)中mAP常做為一種基準來衡量算法的精確度好壞。

mAP的本質其實是多類檢測中各類別最大召回率(recall)的一個平均值

計算mAP之前我們先要了解Precision和Recall也就是精確率和召回率。

精確率主要衡量模型做出預測的精準度,也就是TP在TP與FP和中的占比率

召回率主要用來衡量模型對positives的檢測程度,也就是TP在TP與FN中的占比率

技術分享圖片

下面我們通過一個例子來講一下AP (average precision)

比如在一副圖片中我們有5個目標,首先我們根據預測的confidence對預測進行排序,假設在前四的預測中我們有三個正確(IoU > 0.5)的。

所以對前四的precision和recall

Precision = 3/4 = 0.75

Recall = 3/5 = 0.6

對於TOP10的Precision和Recall假設有如下表:

技術分享圖片

隨著recall從0到1之間的提升,AP可以由計算十一個不同recall階層最大precision的評價值而得到

技術分享圖片

進一步解釋;

技術分享圖片

技術分享圖片

p_interp(r) 是超過r的recall中對應的最大precision值,例如top4中recall是0.6

那麽p_interp(0.6)就是大於0.6的所有recall中對應的最大的precision的值,對應上表我們得到

技術分享圖片

所以AP即0-1的p_interp(r)的均值

技術分享圖片

而mAP則是真的不同類別的AP的均值

參考:https://medium.com/@jonathan_hui/map-mean-average-precision-for-object-detection-45c121a31173

mAP(Mean Average Precison)理解