mAP(Mean Average Precison)理解
在目標檢測算法(如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)理解