計算機視覺界已經(jīng)集中在度量 mAP 上,來比較目標檢測系統(tǒng)的性能。在這篇文章中,我們將深入了解平均精度均值 (mAP) 是如何計算的,以及為什么 mAP 已成為目標檢測的首選指標。
目標檢測的快速概述
在我們考慮如何計算平均精度均值之前,我們將首先定義它正在測量的任務(wù)。目標檢測模型試圖識別圖像中相關(guān)對象的存在,并將這些對象劃分為相關(guān)類別。例如,在醫(yī)學(xué)圖像中,我們可能希望能夠計算出血流中的紅細胞 (RBC)、白細胞 (WBC) 和血小板的數(shù)量,為了自動執(zhí)行此操作,我們需要訓(xùn)練一個對象檢測模型來識別這些對象并對其進行正確分類。
EfficientDet(綠色)與 YOLOv3(黃色)的示例輸出
這兩個模型都預(yù)測了圖片中細胞周圍的邊界框,然后他們?yōu)槊總邊界框分配一個類。對于每個任務(wù),網(wǎng)絡(luò)都會對其預(yù)測的置信度進行建模,可以在此處看到我們共有三個類別(RBC、WBC 和Platelets)。
我們應(yīng)該如何決定哪個模型更好?查看圖像,看起來 EfficientDet(綠色)繪制了過多的 RBC 框,并且在圖像邊緣漏掉了一些細胞。這當然是從事物表面來看——但是我們可以相信圖像和直覺嗎?
如果我們能夠直接量化每個模型在測試集中的圖像、類和不同置信閾值下的表現(xiàn),那就太好了。要理解平均精度均值,我們必須花一些時間來研究精度-召回曲線。
精確-召回曲線
精確是“模型猜測它正確猜測的次數(shù)?” 的一個衡量標準,召回是一種衡量“模型每次應(yīng)該猜到的時候都猜到了嗎?” 。假設(shè)一個具有有 10 個紅細胞的圖像,模型只找到這 10 個中正確標記的一個,因為“RBC”具有完美的精度(因為它做出的每一個猜測都是正確的),但并不同時具有完美的召回(僅發(fā)現(xiàn)十個 RBC 細胞中的一個)。
包含置信元素的模型可以通過調(diào)整進行預(yù)測所需的置信水平來權(quán)衡召回的精確度。也就是,如果模型處于避免假陽性(當細胞是白細胞時說明存在紅細胞)比避免假陰性更重要的情況下,它可以將其置信閾值設(shè)置得更高,以鼓勵模型只產(chǎn)生以降低其覆蓋率(召回)為代價的高精度預(yù)測。
精度-召回曲線是繪制模型精度和以召回率作為模型置信閾值函數(shù)的過程。它是向下傾斜的,因為隨著置信度的降低,會做出更多的預(yù)測,進而預(yù)測的準確性會降低(影像精確度)。
一個 NLP 項目中不同模型的精度、召回率和置信度
隨著模型越來越不穩(wěn)定,曲線向下傾斜,如果模型具有向上傾斜的精度和召回曲線,則該模型的置信度估計可能存在問題。
人工智能研究人員偏向于指標,并且可以在單個指標中捕獲整個精確召回曲線。第一個也是最常見的是 F1,它結(jié)合了精度和召回措施,以找到最佳置信度閾值,其中精度和召回率產(chǎn)生最高的 F1 值。接下來是 AUC(曲線下面積),它集成了精確性和召回曲線下的繪圖量。
精確召回匯總指標圖
最終的精確-召回曲線指標是平均精度 (AP),它被計算為在每個閾值處實現(xiàn)的精度的加權(quán)平均值,并將前一個閾值的召回率增加用作權(quán)重。
AUC 和 AP 都捕獲了精確-召回曲線的整個形狀,選擇一個或另一個進行目標檢測是一個選擇問題,研究界已經(jīng)將注意力集中在AP 的可解釋性上。
通過并集上的交點測量正確性
目標檢測系統(tǒng)根據(jù)邊界框和類標簽進行預(yù)測。
真正的目標檢測圖
在實踐中,X1、X2、Y1、Y2 坐標中預(yù)測的邊界框肯定會偏離地面真實標簽(即使稍微偏離)。我們知道如果邊界框預(yù)測是錯誤的類,我們應(yīng)該將其視為不正確的,但是我們應(yīng)該在哪里繪制邊界框重疊的線?
Intersection over Union (IoU) 提供了一個度量來設(shè)置這個邊界,與地面真實邊界框重疊的預(yù)測邊界框的數(shù)量除以兩個邊界框的總面積。
真正對 IoU 指標的圖形描述。
為 IoU 指標選擇正確的單個閾值似乎是任意的,一位研究人員可能會證明 60% 的重疊是合理的,而另一位則認為 75% 似乎更合理,那么為什么不在一個指標中考慮所有閾值呢?
繪制mAP精度-召回曲線
為了計算 mAP,我們繪制了一系列具有不同難度級別的 IoU 閾值的精確-召回曲線。
我們真正繪制的 mAP 精確召回曲線圖
在上圖中,紅色繪制的是對 IoU 的最高要求(可能是 90%),橙色線繪制的是對 IoU 的最低要求(可能是 10%),要繪制的線數(shù)通常由挑戰(zhàn)設(shè)置。例如,COCO 挑戰(zhàn)設(shè)置了十個不同的 IoU 閾值,從 0.5 開始,以 0.05 的步長增加到 0.95。
最后,我們?yōu)榘搭愋蛣澐值臄?shù)據(jù)集繪制這些精度-召回曲線。
由我們真正按對象類別劃分的 mAP 圖
該指標在所有 IoU 閾值上單獨計算每個類的平均精度 (AP),然后該指標對所有類別的 mAP 進行平均以得出最終估計值。
在實驗中使用平均精度均值(mAP)
我最近在一篇文章中使用了mAP,比較了最先進的EfficientDet和YOLOv3檢測模型,我想看看哪個模型在識別血液中的細胞表現(xiàn)更好。
在對測試集中的每個圖像進行推理后,我導(dǎo)入了一個 python 包來計算Colab筆記本中的mAP,結(jié)果如下!
EfficientDet 對細胞物體檢測的評價:
78.59% = Platelets AP
77.87% = RBC AP
96.47% = WBC AP
mAP = 84.31%
YOLOv3對細胞物體檢測的評價:
72.15% = Platelets AP
74.41% = RBC AP
95.54% = WBC AP
mAP = 80.70%
因此,與本文開頭的單一推斷圖片相反,事實證明EfficientDet在建模細胞目標檢測方面做得更好!我們還將注意該指標是按對象類劃分的,這告訴我們,白細胞比血小板和紅細胞更容易檢測,這是有道理的,因為它們比其他細胞大得多,并且不同。
地圖也經(jīng)常被分成小、中、大對象,這有助于識別模型(和/或數(shù)據(jù)集)可能出現(xiàn)錯誤的地方。