mAP---評價目標檢測模型

https://github.com/rafaelpadilla/Object-Detection-Metrics

寫在開頭:
(1) mAP總是在固定的數據集上計算 
(2)它不是量化模型輸出的絕對度量,但是是一個比較好的相對度量。當我們在流行的公共數據集上計算這個度量時,這個度量可以很容易的用來比較不同目標檢測方法 
(3)根據訓練中類的分佈情況,平均精度值可能會因爲某些類別(具有良好的訓練數據)非常高(對於具有較少或較差數據的類別)而言非常低。所以我們需要MAP可能是適中的,但是模型可能對於某些類非常好,對於某些類非常不好。因此建議在分析模型結果的同時查看個各類的平均精度,這些值也可以作爲我們是不是需要添加更多訓練樣本的一個依據。

目標檢測中的mAP是什麼含義?

       目標檢測中衡量識別精度的指標是mAP(mean average precision)。多個類別物體檢測中,每一個類別都可以根據recall和precision繪製一條曲線,AP就是該曲線下的面積,mAP是多個類別AP的平均值。

       在VOC2010以前,只需要選取當Recall >= 0, 0.1, 0.2, ..., 1共11個點時的Precision最大值,然後AP就是這11個Precision的平均值。在VOC2010及以後,需要針對每一個不同的Recall值(包括0和1),選取其大於等於這些Recall值時的Precision最大值,然後計算PR曲線下面積作爲AP值。

參見:The PASCAL Visual Object Classes Challenge 2012 (VOC2012) Development Kit

mAP定義及相關概念

  • mAP: mean Average Precision, 即各類別AP的平均值
  • AP: PR曲線下面積
  • PR曲線: Precision-Recall曲線
  • Precision: TP / (TP + FP),Precision是從已經預測爲同一類別的樣本抽樣
  • Recall: TP / (TP + FN),召回率(Recall)是從數據集的同一類的樣本抽樣
  • TP: IoU>threshold的檢測框數量(同一Ground Truth只計算一次)
  • FP: IoU<=threshold的檢測框,或者是檢測到同一個GT的多餘檢測框的數量
  • FN: 沒有檢測到的GT的數量

Precision

查準率(Precision)是針對預測結果而言的,它表示的是預測爲正的樣本中有多少是真正的正樣本。

Recall

召回率(Recall, 又稱爲 TPR)是針對原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確了。

 

 一個例子幫助我們更好地理解mAP的概念:

7張圖,15個真實框(綠色),24個檢測到的框(紅色),每個框有它的置信度,並給它從A開始定義

IOU的閾值爲0.3,計算prdiction_box與gt_box的iou,大於閾值的爲TP,小於的爲FP.當一個gt_box有多個prediction_box相交時,此時選取IOU大的作爲TP,其他爲FP。

算出準確率和召回率

準確率(Precision)=TP/TP+FP=TP/all detections

召回率(recall)=TP/TP+TN=TP/all ground truths=TP/15

由置信度從大到小排列,Acc TP:累計的TP   Acc FP:累計的FP

畫出P-R曲線:

計算單標籤圖像分類的AP(average precision)(兩種方式):

1.VOC2010前,我們選區Recall>=0,0.1,0.2,...,0.9,1的11處Percision的最大值

2.VOC2010及以後的方法,對於Recall>=0,0.0666,0.1333,0.2,0.2666,0.3333,0.4,0.4666,仍然選取Percision對應點的最大值:1,1,0.6666,0.4285,0.4285,0.4285,0.4285,0.3043,然後求對應曲線的面積。

 

mAP計算:多標籤圖像分類(Multi-label Image Classification)每一個類別都計算出AP,然後再計算AP的平均值就是mAP

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章