溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行mAP計(jì)算的思考

發(fā)布時(shí)間:2022-01-18 15:34:51 來(lái)源:億速云 閱讀:132 作者:柒染 欄目:大數(shù)據(jù)

這篇文章主要為大家分析了如何進(jìn)行mAP計(jì)算的思考的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì)易懂,操作細(xì)節(jié)合理,具有一定參考價(jià)值。如果感興趣的話,不妨跟著跟隨小編一起來(lái)看看,下面跟著小編一起深入學(xué)習(xí)“如何進(jìn)行mAP計(jì)算的思考”的知識(shí)吧。

1. 基本要求

從直觀理解,一個(gè)目標(biāo)檢測(cè)網(wǎng)絡(luò)性能好,主要有以下表現(xiàn):

  • 把畫面中的目標(biāo)都檢測(cè)到——漏檢少

  • 背景不被檢測(cè)為目標(biāo)——誤檢少

  • 目標(biāo)類別符合實(shí)際——分類準(zhǔn)

  • 目標(biāo)框與物體的邊緣貼合度高—— 定位準(zhǔn)

  • 滿足運(yùn)行效率的要求——算得快

下圖是從 Tensorflow Object Detection API 的 Model Zoo 中截取的部分模型列表。

如何進(jìn)行mAP計(jì)算的思考

算得快這一點(diǎn)通過(guò) Speed 來(lái)體現(xiàn)。而其他因素,使用了mAP (mean average Precision) 這一個(gè)指標(biāo)來(lái)綜合體現(xiàn)。

mean 和 average 都有平均的意思,因此從字面理解,mAP 指標(biāo)至少?gòu)膬蓚€(gè)方面進(jìn)行了平均。

2. mAP指標(biāo)計(jì)算

mAP 的計(jì)算大致可以分解為以下幾步:

階段輸出關(guān)鍵變量
針對(duì)單個(gè)目標(biāo)TP、FP、FNIOU(交并比)
針對(duì)單個(gè)類別PR-Curve、APConfidence(置信度)
針對(duì)測(cè)試集全集mAP

2.1 輸出檢測(cè)結(jié)果

針對(duì)不同類型的目標(biāo)檢測(cè)網(wǎng)絡(luò),模型推理的原始輸出可能的形式多種多樣。

首先需要完成目標(biāo)解碼,生成標(biāo)準(zhǔn)化的目標(biāo)列表,至少包含每個(gè)目標(biāo)的:

  • 類別

  • 2DBBox

  • 置信度

這里的置信度與推理使用時(shí)的置信度閾值有差別,沒有固定的閾值,只要在該通道有響應(yīng),都輸出為目標(biāo)。

不同類型的網(wǎng)絡(luò),置信度數(shù)值的含義也不同,因此也無(wú)法設(shè)定一個(gè)統(tǒng)一的閾值。

2.2 針對(duì)單個(gè)目標(biāo)

針對(duì)單個(gè)目標(biāo),問(wèn)題簡(jiǎn)化為分類結(jié)果的判定。

首先將 GT (Ground Truth) 和 Predictions 分別按照各自的類別分組。

在每一個(gè)類別內(nèi),對(duì) GTPredictions 兩組數(shù)據(jù)進(jìn)行匹配,匹配的依據(jù)是 IOU

匹配結(jié)果可能有如下幾種:

  • TP (True Positive):一個(gè)正確的檢測(cè),IOU ≥ threshold。即預(yù)測(cè)的目標(biāo)分類正確,且邊框與 GT 重合度夠高。

  • FP (False Positive):一個(gè)錯(cuò)誤的檢測(cè),沒有匹配上 GT 的目標(biāo),或IOU < threshold。即預(yù)測(cè)的目標(biāo)分類不正確,或邊框與 GT 重合度不夠高。

  • FN (False Negative):漏檢的 GT。即沒有被匹配上目標(biāo)的 Ground Truth。

2.3 針對(duì)單個(gè)類別

完成對(duì)整個(gè)測(cè)試集上每個(gè)目標(biāo)的判斷后,分類別統(tǒng)計(jì) PrecisionRecall

  • Precision:準(zhǔn)確率(查準(zhǔn)率),模型只找正確目標(biāo)的能力。

    Precision = TP / (TP + FP),其中 TP+FP 即模型找到的所有目標(biāo)。

  • Recall:召回率(查全率),模型找到所有目標(biāo)的能力。

    Recall = TP / (TP + FN),其中 TP+FN 即所有的 GT

在單個(gè)目標(biāo)的處理步驟中,只需要記錄TP。則對(duì)于所有檢測(cè)目標(biāo),非TP即為FP,對(duì)于所有 GT,非TP即為FN。

當(dāng)設(shè)定不同的 Confidence 閾值時(shí),輸出的檢測(cè)目標(biāo)數(shù)量不同,由此計(jì)算得到的 PrecisionRecall 也不同。

根據(jù)不同的閾值,可以得到一系列 PrecisionRecall 的值,連起來(lái)即可得到PR曲線。

在實(shí)際操作中,將所有目標(biāo)按照置信度從高到低排序,每一步都只累加一個(gè)目標(biāo),統(tǒng)計(jì)當(dāng)前的P-R值。

如何進(jìn)行mAP計(jì)算的思考

PR曲線示例如上圖所示。

PR曲線會(huì)有折線的原因。每累加一步,如果:

  • 當(dāng)前累加的目標(biāo)是FP,則 Recall 值不變, Precision 值變小,對(duì)應(yīng)圖中豎直向下的線段;

  • 當(dāng)前累加的目標(biāo)是TP,則 Recall 和 Precision 都變大,對(duì)應(yīng)圖中斜向右上方的線段。

2.4 針對(duì)全集

至此,針對(duì)每一個(gè)類別,都計(jì)算得到一條PR曲線。

PR曲線與x軸所圍成的面積,即為當(dāng)前類別的AP值。

Average 是指對(duì)不同 Confidence 閾值下的結(jié)果進(jìn)行平均。

所有類別AP值的均值,即為 mAP。

mean 是指對(duì)不同類別之間結(jié)果進(jìn)行平均。

3. 存在問(wèn)題及改進(jìn)思路

3.1 問(wèn)題

(1)誤檢/漏檢少、分類準(zhǔn)、定位準(zhǔn),這些要求并沒有在 mAP 的整個(gè)計(jì)算過(guò)程中一直傳導(dǎo)到最終結(jié)果。

首先按照目標(biāo)類別進(jìn)行分類處理。

在對(duì)單個(gè)目標(biāo)的處理中,將IOU作為匹配的指標(biāo),將檢測(cè)到的目標(biāo)二分類為TP/FP。在選定IOU閾值后,TP/FP的分配也就確定了。在后續(xù)的步驟中,目標(biāo)被抽象為正確/錯(cuò)誤兩類,但正確或錯(cuò)誤的程度被忽略了。

下圖為 IOU=0.5 時(shí)的極限情況示意:

如何進(jìn)行mAP計(jì)算的思考

類似的IOU值實(shí)際可能代表的不同情況:

如何進(jìn)行mAP計(jì)算的思考

在對(duì)所有目標(biāo)的處理中,主要考察不同的 Confidence 閾值下,檢測(cè)出正確目標(biāo)的能力。

因此,誤檢/漏檢少、分類準(zhǔn)、定位準(zhǔn)這幾個(gè)要求是按照一種串行的方式,分階段組織起來(lái)的。

(2)問(wèn)題是多樣化的,只用一個(gè)指標(biāo),沒法知道目前的性能瓶頸在哪里。

根據(jù) mAP 的高低,我們只能較為概括地知道網(wǎng)絡(luò)整體性能的好壞,但比較難分析問(wèn)題具體在哪。

舉幾個(gè)例子:

  • 如果網(wǎng)絡(luò)輸出的框很貼合,選擇合適的 Confidence 閾值時(shí),檢出和召回也較均衡,但是目標(biāo)的類別判斷錯(cuò)誤較多。由于首先根據(jù)類別結(jié)果分類處理,只要類別錯(cuò)了,定位、檢出和召回都很好,mAP 指標(biāo)也不會(huì)高。但從結(jié)果觀察,并不能很明確知道,問(wèn)題出在類別判斷上。

    比如 Faster-RCNN 系列網(wǎng)絡(luò),如果 RPN 部分效果很好,但是 RCNN 部分效果很差,只根據(jù) mAP, 是無(wú)法判斷出來(lái)的。

  • 如果兩個(gè)網(wǎng)絡(luò)的其他性能表現(xiàn)都類似,但是輸出框的定位精度不同。對(duì)于大部分判定為 TP 的目標(biāo),一個(gè)網(wǎng)絡(luò)的目標(biāo) IOU 值很高,框非常貼合 GT;另一個(gè)網(wǎng)絡(luò)的目標(biāo) IOU 值剛剛超過(guò)閾值。理論上這樣兩個(gè)網(wǎng)絡(luò)計(jì)算出來(lái)的 mAP 值是類似的,但實(shí)際使用的表現(xiàn)是有差別的。

(3)mAP 指標(biāo)關(guān)注的點(diǎn),與實(shí)際應(yīng)用時(shí)關(guān)注的點(diǎn),并不完全吻合

mAP 會(huì)統(tǒng)計(jì)所有 Confidence 值下的 PR值,而實(shí)際使用時(shí),會(huì)設(shè)定一個(gè) Confidence 閾值,低于該閾值的目標(biāo)會(huì)被丟棄,這部分目標(biāo)在統(tǒng)計(jì) mAP 時(shí)也會(huì)有一定的貢獻(xiàn)。部分針對(duì)比賽刷榜的漲點(diǎn)技巧,會(huì)關(guān)注這部分檢測(cè)結(jié)果對(duì) mAP 的影響。

此外,在 ADAS 應(yīng)用(特別是車輛檢測(cè))中一些比較關(guān)心的點(diǎn),mAP 指標(biāo)并沒有很好地體現(xiàn)。比如:

  • 最關(guān)心正前方近處的目標(biāo),對(duì)遠(yuǎn)處側(cè)面的目標(biāo)關(guān)注度相對(duì)低

  • 關(guān)注目標(biāo)框的下沿和寬度,而對(duì)上沿的要求不高

  • 關(guān)注連續(xù)幀中,同一個(gè)目標(biāo)檢測(cè)結(jié)果的穩(wěn)定性和連續(xù)性

  • 不同的類別錯(cuò)判,嚴(yán)重程度不同(比如卡車誤判為客車問(wèn)題不大,行人誤判為車輛問(wèn)題就比較大)

3.2 改進(jìn)

(1)考察不同 IOU 閾值下的性能表現(xiàn)

在 VOC 標(biāo)準(zhǔn)的 mAP 計(jì)算中,只取 IOU=0.5 一個(gè)閾值。

MS-COCO 標(biāo)準(zhǔn)對(duì)此進(jìn)行了改進(jìn),取0.5:0.05:0.95等間隔的11個(gè)閾值,分別統(tǒng)計(jì):

  • AP:在所有11個(gè) IOU 閾值上計(jì)算出來(lái)的 mAP 的均值(最主要的度量指標(biāo))

  • AP@.5IOU:閾值取0.5時(shí)的 mAP 值(等價(jià)于 VOC mAP)

  • AP@.75IOU:閾值取0.75時(shí)的 mAP 值

此外還針對(duì)目標(biāo)大小分別進(jìn)行了統(tǒng)計(jì):

  • AP(small):像素面積小于32^2的目標(biāo),在所有11個(gè) IOU 閾值上的AP

  • AP(medium):像素面積介于32^2和96^2之間的目標(biāo),在所有11個(gè) IOU 閾值上的AP

  • AP(large):像素面積大于96^2的目標(biāo),在所有11個(gè) IOU 閾值上的AP

此外,還有 AR (Average Recall) 相關(guān)的一系列指標(biāo)。

可見, COCO mAP 對(duì)檢測(cè)性能進(jìn)行了更全面的評(píng)估,改進(jìn)了單一 IOU 閾值的問(wèn)題。

COCO mAP 的計(jì)算可以直接使用pycocotools,將檢測(cè)結(jié)果按照規(guī)定的格式提供,即可自動(dòng)完成計(jì)算。

(2)統(tǒng)一訓(xùn)練和評(píng)測(cè)的指標(biāo)

在網(wǎng)絡(luò)訓(xùn)練過(guò)程中,location 分支的輸出通常會(huì)用IOU Loss去進(jìn)行優(yōu)化,目前已經(jīng)升級(jí)到DIOUCIOU。

那么在測(cè)試過(guò)程中,也可以將 IOU 指標(biāo)替換為類似 DIOU 或 CIOU 的版本,實(shí)現(xiàn)更合理的評(píng)價(jià),以及訓(xùn)練和評(píng)測(cè)的統(tǒng)一。

(3)設(shè)計(jì)更多自定義的指標(biāo)

mAP 是一個(gè)基準(zhǔn)指標(biāo),屬于規(guī)定動(dòng)作,可以用來(lái)比較不同網(wǎng)絡(luò),包括與開源模型、外部團(tuán)隊(duì)開發(fā)的模型等進(jìn)行比較。

此外,基于我們關(guān)心的模型性能表現(xiàn),可以設(shè)計(jì)一些額外的指標(biāo)。包括:

  • mAP 計(jì)算過(guò)程中,可拆分出來(lái)的的一些中間指標(biāo)

  • mAP 沒有涵蓋到的指標(biāo)

(4)模型使用時(shí)的閾值選擇

使用模型進(jìn)行推理時(shí),在目標(biāo)解碼過(guò)程中涉及 Confidence 閾值的選取。通常是采用一刀切的方式,選擇一個(gè)統(tǒng)一的閾值。

在 mAP 的計(jì)算過(guò)程中,會(huì)輸出每個(gè)類別的PR曲線。一個(gè)典型PR曲線的示意如下:

如何進(jìn)行mAP計(jì)算的思考

根據(jù)PR曲線,既可以找到一個(gè)數(shù)學(xué)意義上的最優(yōu)點(diǎn),也可以根據(jù)實(shí)際使用時(shí),對(duì)于誤檢和漏檢的不同容忍程度,選定一個(gè)權(quán)衡值。

可以根據(jù)每個(gè)類別的不同情況,選取不同的 Confidence 閾值,來(lái)讓每一個(gè)類別的檢測(cè)結(jié)果達(dá)到最優(yōu)。

在實(shí)際操作中,可先根據(jù) class 通道的結(jié)果,判定類別,再根據(jù) conf 通道的結(jié)果和不同的閾值,篩選檢出的目標(biāo)。

對(duì)于類別性質(zhì)差異較大,類別不均衡現(xiàn)象較為嚴(yán)重的案例,可以實(shí)現(xiàn)更理想的輸出。

比如,在ADAS應(yīng)用中,對(duì)于車輛目標(biāo)、行人目標(biāo)、交通標(biāo)識(shí)目標(biāo)的識(shí)別要求可能存在差異。根據(jù)各自的PR曲線去定制閾值,是一個(gè)更合理的選擇。

關(guān)于“如何進(jìn)行mAP計(jì)算的思考”就介紹到這了,更多相關(guān)內(nèi)容可以搜索億速云以前的文章,希望能夠幫助大家答疑解惑,請(qǐng)多多支持億速云網(wǎng)站!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

map
AI