MAP在目標檢測和圖像檢索中的計算(詳細)

前言:該博客沒有進行IOU Precision Recall等指標的計算講解,默認這些基本知識已經掌握,這裏只對 map 中比較難懂且和其他博客中存在歧義的部分進行講解。

目標檢測中的 map 計算:

舉個栗子:

Image 1:預測出了5個框(在一定的閾值下,且經過了NMS等處理),真實的標註信息只有三個框(也就是隻能有3個correct 框),將5個預測框通過置信度進行排序,然後分別從上至下計算 precision 和 recall ,得到這些值就可以繪製 P-R 曲線了,計算面積就是最終的AP值(這裏計算的就是該張圖像的AP值,一般以batch爲單位計算)。
在這裏插入圖片描述
上面提到的說計算P-R曲線圍成的面積,這裏有一點需要注意,直接計算面積比較麻煩,常見的作法是進行平滑,recall的值不動(x 軸),將precision 的值用其之後的最大值進行替換,類似下面這樣:

原始 P-R 曲線:

原始 P-R 曲線

平滑後 P-R 曲線:

糾正後的 P-R 曲線
使用 11 點法進行 AP 的計算(或者直接計算也可以):
11點法的計算: (41+60.75+0.6*1)/11 = 0.827

note: 一個 batch 內的怎麼計算,將所有圖像的 預測框輸出按照 置信度 進行排序,然後進行同樣的計算。

二、圖像檢索中的 map 計算:

map@5:其表達的意思和 top-5 相同,前五個預測概率輸出的 map

計算方式和上述一樣,但是有一點不一樣的是:預測輸出和真實的label都是固定的大小,比如在目標檢測(OB)中,真實框的個數和預測框的個數往往是不相同的,但是這裏一般是相同的,即人工取前五個。
這裏說一個特殊的例子:(非特殊的和上述計算方式相同)
特殊且常見場景:在五個預測輸出中只有一個正確(比如輸出爲:五個人的名字ID,其中只有一個是正確的,或者輸出爲五個類別:狗貓飛機等,但真實的只屬於其中的一個)

計算方式直接計算 precision 即可,如下圖:
在這裏插入圖片描述
參考資料:kaggle中一個 whale 計算方式notebook資料鏈接

你可以嘗試用上述目標檢測中提到的方式進行計算,結果是一樣的,其中的道理也是一樣的,只不過簡化了計算流程(在很多的博客中介紹的AP就是這樣的計算方式-因爲這種場景很常見)

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