目標(biāo)檢測(cè)mAP的概念及公式詳解
學(xué)習(xí)前言
在Github上我們可以看到許多模型,他們都有mAP值的評(píng)價(jià)指標(biāo),如下圖所示:
這到底是個(gè)啥呢?我查了好久的資料…
什么是TP、TN、FP、FN
TP的英文全稱為T(mén)rue Positives,其指的是被分配為正樣本,而且分配對(duì)了的樣本,代表的是被正確分類的正樣本。
TN的英文全稱為,其指的是被分配為負(fù)樣本,而且分配對(duì)了的樣本,代表的是被正確分類的負(fù)樣本。
FP的英文全稱為False Positives,其指的是被分配為正樣本,但分配錯(cuò)了的樣本,代表的是被錯(cuò)誤分類的負(fù)樣本。
FP的英文全稱為False Negatives,其指的是被分配為負(fù)樣本,但分配錯(cuò)了的樣本,代表的是被錯(cuò)誤分類的正樣本。
什么是Precision和Recall
Precision
指的是精度
Recall
指的是召回率
兩個(gè)分別代表什么意思呢?
Precision的具體含義是:分類器認(rèn)為是正類并且確實(shí)是正類的部分占分類器認(rèn)為是正類的比例
Recall的具體含義是:分類器認(rèn)為是正類并且確實(shí)是正類的部分占所有確實(shí)是正類的比例。
什么是mAP
說(shuō)到mAP,也要說(shuō)到,AP是什么。
說(shuō)到AP,就要聯(lián)系到上一部分所說(shuō)的Precision和Recall。
對(duì)于目標(biāo)檢測(cè)而言任務(wù),每一個(gè)類都可以計(jì)算出其Precision和Recall,通過(guò)合理的計(jì)算,每個(gè)類都可以得到一條P-R曲線,曲線下的面積就是AP的值。
假設(shè)存在M張圖片,對(duì)于其中一張圖片而言,其具有N個(gè)檢測(cè)目標(biāo),其具有K個(gè)檢測(cè)類,使用檢測(cè)器得到了S個(gè)Bounding Box(BB),每個(gè)BB里包含BB所在的位置以及對(duì)于K個(gè)類的得分C。
利用BB所在的位置可以得到與其對(duì)應(yīng)的GroundTruth的IOU值。
1、步驟1:
對(duì)于每一個(gè)類I而言,我們執(zhí)行以下步驟:
對(duì)所有的BB,計(jì)算BB所在的位置與其最對(duì)應(yīng)的GroundTruth的IOU值,,記為MaxIOU,此時(shí)再設(shè)置一個(gè)門(mén)限threshold,一般設(shè)置為0.5。
當(dāng)MaxIOU<threshold,認(rèn)為該預(yù)測(cè)框無(wú)真實(shí)框與其對(duì)應(yīng),此時(shí)可以記錄其屬于False Positive,使其FPi = 1,并記錄其屬于類I的分?jǐn)?shù)C。
當(dāng)MaxIOU>threshold,認(rèn)為該預(yù)測(cè)框與該真實(shí)框最對(duì)應(yīng);
此時(shí)再分兩類:
當(dāng)該框的類別屬于類型I時(shí),此時(shí)可以記錄其屬于True Positive,使其TPi = 1,并記錄其屬于類I的分?jǐn)?shù)C。
當(dāng)該框的類別不屬于類型I時(shí),此時(shí)可以記錄其屬于False Positive,使其FPi = 1,并記錄其屬于類I的分?jǐn)?shù)C。
2、步驟2:
由步驟1我們可以得到K * S個(gè)分?jǐn)?shù)C 和 TP 和 FP的元祖,在python中,我們可以將其構(gòu)成形如(C,TP, FP)的元組,對(duì)這K * S個(gè)元祖按照得分C進(jìn)行排序。
3、步驟3:
將得分從大到小排序后進(jìn)行截取,截取得分最大的S個(gè),通過(guò)該步驟可以獲得每個(gè)框是否成功對(duì)應(yīng)了自己所屬的類,計(jì)算每次截取所獲得的recall和precision。
(此處Recall所用的TP+FN = N(一張圖片所具有的N的目標(biāo),所有確實(shí)是正類的數(shù)量))
這樣得到S個(gè)recall和precision點(diǎn),便畫(huà)出PR曲線了。
通過(guò)PR曲線便可以得到AP值。
而mAP就是對(duì)所有的AP值進(jìn)行求平均即可。
以上就是目標(biāo)檢測(cè)mAP的概念及公式詳解的詳細(xì)內(nèi)容,更多關(guān)于目標(biāo)檢測(cè)mAP公式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何在網(wǎng)頁(yè)中顯示服務(wù)器時(shí)間
在網(wǎng)頁(yè)上顯示時(shí)間,如果取的是用戶本機(jī)的時(shí)間,由于用戶的時(shí)間往往不準(zhǔn)確,所以顯示的有問(wèn)題。而服務(wù)器時(shí)間一般不會(huì)誤差太大,所以最好顯示服務(wù)器時(shí)間2013-03-03使用.gitignore文件簡(jiǎn)化Git倉(cāng)庫(kù)管理
.gitignore文件用于指定在git中應(yīng)該被忽略的文件或目錄,前端的node_modules目錄包含大量文件,如果將其添加到版本管理系統(tǒng)中,會(huì)使倉(cāng)庫(kù)變得龐大,不利于倉(cāng)庫(kù)的管理,本文介紹了使用.gitignore文件來(lái)簡(jiǎn)化你的Git倉(cāng)庫(kù)管理2023-10-10基于prompt?tuning?v2訓(xùn)練好一個(gè)垂直領(lǐng)域的chatglm-6b
這篇文章主要為大家介紹了基于prompt?tuning?v2訓(xùn)練好一個(gè)垂直領(lǐng)域的chatglm-6b的過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04VSCode如何遠(yuǎn)程連接Linux教程(密鑰的使用)
本文主要介紹了VSCode如何遠(yuǎn)程連接Linux教程,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12