MAP的計算方法(簡單總結)

MAP的計算方法

在計算MAP之前,要對TP/TN/FP/FN,precision/recall的計算有一定的瞭解。

一句話概括AP:recall在【0-1】範圍內的平均precision

一句話概括MAP:所有類別的平均AP

得出PR曲線

一般來說,p-r曲線是p越大,r越小;p越小,r越大,跟具體的計算方式有關。

需要的內容:預測值,標籤值

 

過程:

1.首先將所有的預測框按照得分從高到低排序

2.分別與同一張圖片、同一類別的所有GTs計算IOU

3.根據閾值,判斷這個預測框屬於TP或者FP

4.得出當前階段的precision和recall.(意思就是在遍歷過程中,每判斷一個預測框,就計算一次p、r)計算方法與以往有所不同:

    precision = 當前遍歷所檢測的TP預測框個數   /    當前遍歷檢測到的TP和FP

    recall       = 當前遍歷所檢測的TP預測框個數  /     所有GT的個數

主要區別就在當前,目的是爲了模仿取不同閾值每次遍歷所有框計算pr曲線,用這種方法的時間複雜度是O(n).

所以一開始recall很低,precision很高,因爲precision的分母基數小。

計算AP

現在不同的數據集計算AP方式略有不同,但總體都是一個微分計算PR曲線面積的思想。

voc2007的計算方式是先平滑曲線,對於每個點取其右邊最大的precision值,連成直線。(也叫插值AP法)

 

 

然後取11個點(在recall座標軸每個0.1取一個點),直接平均11個點的precision的和。

voc2012的方法是直接計算平滑後的曲線與recall軸圍成的面積。結果更加準確。

 

COCO map

coco計算ap的時候採用的是101個插值點,考慮更爲精細。

並且還計算了不同iou閾值的ap,下面結果的第一行就是iou閾值在(0.5-0.95)內每個0.05取一個值計算ap,然後取平均

還計算了不同的尺度對應的 ap,下圖三行到六行是包括small 、medium 、large.

以下圖爲例是coco的結果指標:

 

 參考:

pytorch物體檢測實戰---董洪義

https://zhuanlan.zhihu.com/p/60834912

 

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