您好,登錄后才能下訂單哦!
這篇文章主要為大家分析了如何進(jìn)行mAP計(jì)算的思考的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì)易懂,操作細(xì)節(jié)合理,具有一定參考價(jià)值。如果感興趣的話,不妨跟著跟隨小編一起來(lái)看看,下面跟著小編一起深入學(xué)習(xí)“如何進(jìn)行mAP計(jì)算的思考”的知識(shí)吧。
從直觀理解,一個(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 中截取的部分模型列表。
算得快這一點(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)行了平均。
mAP 的計(jì)算大致可以分解為以下幾步:
階段 | 輸出 | 關(guān)鍵變量 |
---|---|---|
針對(duì)單個(gè)目標(biāo) | TP、FP、FN | IOU(交并比) |
針對(duì)單個(gè)類別 | PR-Curve、AP | Confidence(置信度) |
針對(duì)測(cè)試集全集 | mAP |
針對(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)一的閾值。
針對(duì)單個(gè)目標(biāo),問(wèn)題簡(jiǎn)化為分類結(jié)果的判定。
首先將 GT (Ground Truth) 和 Predictions 分別按照各自的類別分組。
在每一個(gè)類別內(nèi),對(duì) GT 和 Predictions 兩組數(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。
完成對(duì)整個(gè)測(cè)試集上每個(gè)目標(biāo)的判斷后,分類別統(tǒng)計(jì) Precision 和 Recall:
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ì)算得到的 Precision 和 Recall 也不同。
根據(jù)不同的閾值,可以得到一系列 Precision 和 Recall 的值,連起來(lái)即可得到PR曲線。
在實(shí)際操作中,將所有目標(biāo)按照置信度從高到低排序,每一步都只累加一個(gè)目標(biāo),統(tǒng)計(jì)當(dāng)前的P-R值。
PR曲線示例如上圖所示。
PR曲線會(huì)有折線的原因。每累加一步,如果:
當(dāng)前累加的目標(biāo)是FP,則 Recall 值不變, Precision 值變小,對(duì)應(yīng)圖中豎直向下的線段;
當(dāng)前累加的目標(biāo)是TP,則 Recall 和 Precision 都變大,對(duì)應(yīng)圖中斜向右上方的線段。
至此,針對(duì)每一個(gè)類別,都計(jì)算得到一條PR曲線。
PR曲線與x軸所圍成的面積,即為當(dāng)前類別的AP值。
Average 是指對(duì)不同 Confidence 閾值下的結(jié)果進(jìn)行平均。
所有類別AP值的均值,即為 mAP。
mean 是指對(duì)不同類別之間結(jié)果進(jì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í)的極限情況示意:
類似的IOU值實(shí)際可能代表的不同情況:
在對(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)題就比較大)
(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í)到DIOU
或CIOU
。
那么在測(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ù)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)站!
免責(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)容。