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對預測進行排序,假設在前四的預測中我們有2個正確(IoU > 0.5)的。

所以對前四的precision和recall

Precision = 2/4 = 0.5

Recall = 2/5 = 0.4

 

 

現在假設我們對於一個實驗結果TOP10的Precision和Recall有如下表:

 

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

進一步解釋;

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

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

 P(0.6) = max(0.5,0.57,0.5,0.44,0.5)= 0.57

 

 

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

 

=(1.0*5 + 0.57*4 + 0.5*2)/ 11 

 

 

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

 

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM