目標檢測學習(2)map計算

2021-10-09 10:32:13 字數 1504 閱讀 1318

一、前言

二、tp、tn、fp、fn

這4個值由以下圖就很好理解了

tp:實際為真,**為真

tn:實際為假,**為假

fp:實際為假,**為真

fn:實際為真,**為假

三、accuracy、precision、recall

準確率 accuracy = (tp+tn)/(tp+tn+fp+fn) , 所有樣本中,**對的概率

精確類 precision = tp/(tp+fp),所有被**為真的樣本中,實際為真的概率

召回率 recall = tp/(tp+fn) ,所有實際為真的樣本中,被**為真的概率,也叫查全率

四、map的計算

map為平均準確度均值的意思,實際ap計算為pr曲線下的面積

對於目標檢測,先了解iou的定義,為基準框和**框的覆蓋面積比例,衡量兩者的重合程度

此外,還有給出**框的label、以及置信度閾值

取定某個置信度閾值,某個label,則對該label的所有大於等於該閾值的**框做統計,如果乙個**框iou大於0.5,則為tp,否則為fp,若有基準框沒被檢測出,則該框為fn。故可計算precision、recall值

通過取定多個閾值,可得到多組precision、recall值,可畫出rp曲線,對曲線下的面積做統計則為ap,對所有label的ap取平均值,則可得到map值

(1)voc2007的計算方法:

在計算ap時,首先要把結果按照置信度排序,公式如下:

(2)voc2010的計算方法:

比起07年,10年以後的新方法是取所有真實的recall值,得到所有recall/precision資料點以後,計算recall/precision曲線下的面積,如以下pr曲線:

a)07年的方法:我們選取recall >=的11處percision的最大值:1, 1, 1, 0.5, 0.5, 0.5, 0.5, 0.5, 0, 0, 0。ap = 5.5 / 11 = 0.5

b)voc2010及以後的方法,對於recall >= ,我們選取此時percision的最大值:1, 1, 1, 0.5, 0.5, 0.5, 0。計算recall/precision下的面積:ap = (0.14-0)x1 + (0.29-0.14)x1 + (0.43-0.29)x0.5 + (0.57-0.43)x0.5 + (0.71-0.57)x0.5 + (1-0.71)x0 = 0.5

計算出每個類別的ap以後,對於所有類別的ap取均值就得到map了。

目標檢測計算mAP

參考1 pascal voc從2007開始用interpolated法計算map coco的map低的原因 coco資料集結果評估 ssd計算map faster r cnn計算map coco資料annotation內容,bbox是 x,y,width,height 畫pr曲線 使用cocoapi...

目標檢測mAP值計算

tp true positives 意思是 被分為正樣本,並且分對了 tn true negatives 意思是 被分為負樣本,而且分對了 fp false positives 意思是 被分為正樣本,但是分錯了 fn false negatives 意思是 被分為負樣本,但是分錯了 按下圖來解釋,左...

深度學習 目標檢測mAP計算及旋轉檢測IOU

這裡僅作簡要分析,原始碼位址 有些許改變 1.資料夾分為兩個,真實標籤及檢測標籤 兩個資料夾中的檔案均為txt檔案,每張對應乙個txt檔案,其中真值標籤,每一行乙個目標,類別名 座標值 其中檢測標籤,每一行乙個目標,類別名 置信度 座標值 1.將所有真值標籤讀取並儲存json檔案,字典資料有以下3個...