物件檢測網路中的mAP到底怎麼計算出來的
一:相關名詞解釋
mAP是英文 mean Average Precision 的全稱,同時也是衡量深度學習中物件檢測演算法準確率的一個重要指標,mAP的計算涉及到很多專業的術語與解釋,首先就來認識一下這些術語名詞與解釋:
IOU 英文全稱是(Intersection-over-Union)並交比,
在物件檢測中只有那些並交比大於0.5的才被認為是TP(True Position)即正確匹配與預測。關於IOU的形象解釋如下圖:
對於正確標註資料框與預測資料框,交併比的圖示如下:
TP(Ture Position)
表示預測與真實標註框保持了一致,但是還沒有被正確的檢測出來的,簡單直白的點說就是將要成功預測。
FP(False Position)
表示預測與真實不符合,假設真實標註框是CAR、FP表示你有多少預測是CAR但是實際物件不是CAR,所謂的假陽性。
FN(False Negatives)
表示有多少個真實標註框沒有被檢測到,以VOC資料集中CAR為例,表示有多少CAR物件沒有被檢測出來。
二:計算均值平均精度(mAP)與召回率(recall)
搞清楚上面的幾個專業名詞解釋真實含義之後,計算mAP與recall就會相對比較容易理解。下面是給出來計算TP、FP、FN的虛擬碼如下:
iterate through entire list of predictions for all images
if IOU > threshold
if object not detected yet
TP++
else
FP++// nms should reduce # of overlapping predictions
else
FP++
if no prediction made for an image
FN++
最終計算mAP與召回率公式如下:
mAP = TP/(TP+FP)
Recall = TP/(TP+FN)
mAP與recall的曲線隨著訓練時間的推移,都會不斷的上升,預示著物件檢測率不斷提升、模型正在正常訓練過程中,如果發現訓練時候mAP曲線沒有上升或者有值一直很小,就說明模型訓練出現了問題,需要仔細檢查模型構造與資料。同時mAP指標也是衡量一個物件檢測模型好壞的重要指標資料,在tensorflow常用的物件檢測模型基於COCO資料集訓練得到mAP指標對比列表如下: