1. 程式人生 > >mAP 理解及求解

mAP 理解及求解

mAP是目標檢測中常用的一個度量檢測結果的評價標準,全稱是mean average precision,理解這個概念之前,需要了解一些其他的概念。文章主要分為三部分:關於mAP的幾個概念,PR曲線以及常見的三種計算mAP的方式。

1、相關概念

1)第一組:

True Positives(TP):真正例 (以為是正,實際是的)     

FALSE Positives(FP): 假正例 (以為是正,實際不是)

True Negatives(TN):真負例 (以為是負,實際是的)    這個引數後面沒用上   

FALSE Negatives(FP): 假負例 (以為是負,實際不是)

關於這四個名詞可以這樣理解,第二個字代表預測結果,第一個字表示預測的對還是錯。

目標檢測中TP、FP的理解:

一般首先設定一個confidence score,如果大於這個閾值,才會被認為正樣本,即Positives

TP:IoU>0.5的檢測框數量 (同一GT只計算一次)

FP:  IoU<=0.5的檢測框,或者是檢測到同一個GT的多餘檢測框的數量

FN: 沒有檢測到的GT的數量(即置信度小於閾值)

2)第二組

precision = TP / (TP+FP)   精度(查準率,即你認為是正樣本中實際有多少是正樣本)

recall = TP / (TP+TN)      召回率(查全率,所有的正樣本中你找出了多少)

2、P-R曲線

查準率和查全率一般不可兼得,以recall為橫座標,precision為縱座標,就可以得到p-r曲線。

根據兩者的定義可以知道,隨著選定的用於評估的樣本數目的增多,recall值會越來越高,但precision的值整體上會呈現出一個下降的趨勢。

3、三種計算mAP的方式

mAP 是用於衡量該模型在所有類上檢測效能好壞的指標,就是所有類上AP的平均值。計算mAP,首先要計算AP。

常見計算AP的三種方式:

1)11-Point(VOC2007使用)預設召回率間隔為{0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0}

2)MaxIntegral(VOC2010及以後)最大值積分法。這種方式更為精確,一般mAP值也會大一些。

3)Integral  普通積分法

計算示例:

rank 的數值即參與計算的元素數目。所有元素按照confidence score從高到低的順序排列,只取置信度高的。

高於閾值的元素共有十個,依次計算precision和recall值。

1)若為11 point方式,則recall依次取陣列內的11個元素,依次取大於該recall的最大precision值參與計算,即為:1,1,1,0.5,0.5,0.5,0.5,0.5,0,0,0,平均值為0.5

注意:recall取0.5時的最大值還是0.5

2)若為MaxIntegral方式,則recall取實際的資料,即:0.14,0.29,0.43,0.57,0.71還有0和1,計算AP = (0.14-0)*1 + (0.29-0.14)*1 + (0.43-0.29)*0.5 + (0.57-0.43)*0.5 + (0.71-0.57)*0.5 + (1-0.71)*0 = 0.5

 (即若N個樣本中有M個正例,則共有M+1個recall值,{0,1/M,2/M,.....M/M})