天天看點

ap 目标檢測算法map_目标檢測的名額AP與mAP

最近在處理實驗資料的時候,想到了之前學習的分類混淆矩陣當時沒有完全弄懂,剛好借着這個機會給深入的學習一下,做好相應的筆記

一、檢測名額

在目标檢測任務中,通過不同的IoU門檻值來進行檢測器的整體的性能評估,對于MS COCO目标檢測,有如下檢測名額

ap 目标檢測算法map_目标檢測的名額AP與mAP

對于MS COCO關鍵點檢測,官方給出的評價名額為OKS(object keypoints similarity),其評價名額和檢測的IoU也很類似,在不同的門檻值下來實作整體的性能評估

ap 目标檢測算法map_目标檢測的名額AP與mAP

二、precious(準确率)和recall(回歸率)

以上的檢測衡量名額中,都看到了AP和AR,分别代表Average Precious和Average Recall

ap 目标檢測算法map_目标檢測的名額AP與mAP
ap 目标檢測算法map_目标檢測的名額AP與mAP

(用來評估預測出來的正确率)

ap 目标檢測算法map_目标檢測的名額AP與mAP

(用來評估預測出來了多少正确的樣本)

ap 目标檢測算法map_目标檢測的名額AP與mAP

對應關系如圖所示,Precious表示預測為正确結果中,由多少是對的,即反映預測準确的參數;但是隻是預測準确率很高,但是很多沒有預測出來那也是不行的(有100個樣本,預測了1個正例,99個反例,而且這個1個正例預測是正确的,那麼準确率是100%,單純的這樣來衡量是沒有道理的,因為還有99個直接給否定了),是以Recall這個名額就是為了衡量這個問題,一共的正例的樣本,成功預測出來多少個,當這兩個名額都很高的時候,那麼說明這個結果才是好的。

top1錯誤率

top1就是你預測的label取最後機率向量裡面最大的那一個作為預測結果,你的預測結果中機率最大的那個類必須是正确類别才算預測正确。而top5就是最後機率向量最大的前五名中出現了正确機率即為預測正确。

top5錯誤率

ILSRVRC(ImageNet 圖像分類大賽) 比賽設定如下:1000類圖像分類問題,訓練資料集126萬張圖像,驗證集5萬張,測試集10萬張(标注未公布)。評價标準采用 top-5 錯誤率——即對一張圖像預測5個類别,隻要有一個和人工标注類别相同就算對,否則算錯。

三、AP的概念

第二章介紹了Precious和Recall的概念,那麼AP的概念也就比較簡單了

ap 目标檢測算法map_目标檢測的名額AP與mAP

随機樣本的準确率和回歸率計算

1、PR圖

由上表以Recall值為橫軸,Precision值為縱軸,我們就可以得到PR曲線。我們會發現,Precision與Recall的值呈現負相關,在局部區域會上下波動。

ap 目标檢測算法map_目标檢測的名額AP與mAP

2、AP(Average Precision)

AP為平均精度,使用積分的方式來計算PR曲線與坐标軸圍成的面積

ap 目标檢測算法map_目标檢測的名額AP與mAP

但是在實際應用中,我們不是去對其進行計算,而是對其平滑操作來簡化計算,對PR曲線上的每個點,Precision的值取該點右側最大的Precision的值,結果如下圖所示:

ap 目标檢測算法map_目标檢測的名額AP與mAP
ap 目标檢測算法map_目标檢測的名額AP與mAP

計算出AP之後,對所有的類别的AP求平均就可以得出整個資料集上的mAP

三、目标檢測中的mAP

不同的資料集給出不同的mAP的計算方法

檢測出來的bbox包含score和bbox,按照score降序排序,是以每添加一個樣本,就代表門檻值降低一點(真實情況下score降低,iou不一定降低)。這樣就是可以有很多種門檻值,每個門檻值情況下計算一個Precious和Recall。使用區域選擇算法得到候選區域

對候選區域,計算每一個候選區域和标定框(groud truth)的iou

設定一個iou門檻值,大于這個的标為正樣本,小于的标為負樣本,由此得到一個類似于分類時的測試集。

将給定的測試集(正負樣本),通過分類器,算出每一個圖檔是正樣本的score

設定一個score門檻值,大于等于此值的視作正樣本,小于的作為正樣本

根據上一步的結果可以算出準确率和召回率

調節score門檻值,算出召回率從0到1時的準确率,通過計算所有類的AP就可以計算mAP了。

1、Interplolated AP(Pascal Voc 2008 的AP計算方式)

Pascal VOC 2008中設定IoU的門檻值為0.5,如果一個目标被重複檢測,則置信度最高的為正樣本,另一個為負樣本。在平滑處理的PR曲線上,取橫軸0-1的10等分點(包括斷點共11個點)的Precision的值,計算其平均值為最終AP的值。

ap 目标檢測算法map_目标檢測的名額AP與mAP

2、MS COCO mAP

對于coco資料集來說,使用的也是Interplolated AP的計算方式。與Voc 2008不同的是,為了提高精度,在PR曲線上采樣了100個點進行計算。而且Iou的門檻值從 0.5 - 0.95 的區間上每隔0.05計算一次mAP的值,取所有結果的平均值作為最終的結果。除了AP,還有

ap 目标檢測算法map_目标檢測的名額AP與mAP

,

ap 目标檢測算法map_目标檢測的名額AP與mAP

等值,分别代表了如下含義

ap 目标檢測算法map_目标檢測的名額AP與mAP

:IoU門檻值為0.5時的AP測量值

ap 目标檢測算法map_目标檢測的名額AP與mAP

:IoU門檻值為0.75時的測量值

ap 目标檢測算法map_目标檢測的名額AP與mAP

: 像素面積小于

ap 目标檢測算法map_目标檢測的名額AP與mAP

的目标框的AP測量值(小尺度)

ap 目标檢測算法map_目标檢測的名額AP與mAP

: 像素面積在

ap 目标檢測算法map_目标檢測的名額AP與mAP

-

ap 目标檢測算法map_目标檢測的名額AP與mAP

之間目标框的測量值(中等尺度)

ap 目标檢測算法map_目标檢測的名額AP與mAP

: 像素面積大于

ap 目标檢測算法map_目标檢測的名額AP與mAP

的目标框的AP測量值(大尺度)

通常來說AP是在單個類别下的,mAP是AP值在所有類别下的均值。在這裡,在coco的語境下AP便是mAP,這裡的AP已經計算了所有類别下的平均值,這裡的AP便是mAP。