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