我的一個github開源項目star數(shù)過百了,非常開心,感謝大家。
前言
前面只顧著講算法,講損失,講訓(xùn)練參數(shù)設(shè)置和細(xì)節(jié),缺忽視了一個重要的東西,那就是目標(biāo)檢測的評價標(biāo)準(zhǔn)是什么?這一節(jié),我們就來搞懂這個問題。
評價指標(biāo)
1.準(zhǔn)確率(Accuracy)
檢測時分對的樣本數(shù)除以所有的樣本數(shù)。準(zhǔn)確率一般被用來評估檢測模型的全局準(zhǔn)確程度,包含的信息有限,不能完全評價一個模型性能。
2.混淆矩陣(Confusion Matrix)
混淆矩陣是以模型預(yù)測的類別數(shù)量統(tǒng)計信息為橫軸,真實標(biāo)簽的數(shù)量統(tǒng)計信息為縱軸畫出的矩陣。對角線代表了模型預(yù)測和數(shù)據(jù)標(biāo)簽一致的數(shù)目,所以準(zhǔn)確率也可以用混淆矩陣對角線之和除以測試集圖片數(shù)量來計算。對角線上的數(shù)字越大越好,在混淆矩陣可視化結(jié)果中顏色越深,代表模型在該類的預(yù)測結(jié)果更好。其他地方自然是預(yù)測錯誤的地方,自然值越小,顏色越淺說明模型預(yù)測的更好。
3.精確率(Precision)和召回率(Recall)和PR曲線
一個經(jīng)典例子是存在一個測試集合,測試集合只有大雁和飛機兩種圖片組成,假設(shè)你的分類系統(tǒng)最終的目的是:能取出測試集中所有飛機的圖片,而不是大雁的圖片。然后就可以定義:
- True positives: 簡稱為TP,即正樣本被正確識別為正樣本,飛機的圖片被正確的識別成了飛機。
- True negatives: 簡稱為TN,即負(fù)樣本被正確識別為負(fù)樣本,大雁的圖片沒有被識別出來,系統(tǒng)正確地認(rèn)為它們是大雁。
- False Positives: 簡稱為FP,即負(fù)樣本被錯誤識別為正樣本,大雁的圖片被錯誤地識別成了飛機。
- False negatives: 簡稱為FN,即正樣本被錯誤識別為負(fù)樣本,飛機的圖片沒有被識別出來,系統(tǒng)錯誤地認(rèn)為它們是大雁。
精確率就是在識別出來的圖片中,True positives所占的比率。也就是本假設(shè)中,所有被識別出來的飛機中,真正的飛機所占的比例,公式如下:
,其中N代表測試集樣本數(shù)。
召回率是測試集中所有正樣本樣例中,被正確識別為正樣本的比例。也就是本假設(shè)中,被正確識別出來的飛機個數(shù)與測試集中所有真實飛機的個數(shù)的比值,公式如下:
所謂PR曲線就是改變識別閾值,使得系統(tǒng)依次能夠識別前K張圖片,閾值的變化同時會導(dǎo)致Precision與Recall值發(fā)生變化,從而得到曲線。曲線圖大概如下,這里有3條PR曲線,周志華機器學(xué)習(xí)的解釋如下:
4.平均精度(Average-Precision,AP)和mAP
AP就是Precision-recall 曲線下面的面積,通常來說一個越好的分類器,AP值越高。
mAP是多個類別AP的平均值。這個mean的意思是對每個類的AP再求平均,得到的就是mAP的值,mAP的大小一定在[0,1]區(qū)間,越大越好。該指標(biāo)是目標(biāo)檢測算法中最重要的一個。
5.ROC曲線
如下圖所示:
ROC的橫軸是假正率(False positive rate, FPR),F(xiàn)PR = FP / [ FP + TN] ,代表所有負(fù)樣本中錯誤預(yù)測為正樣本的概率,假警報率。
ROC的縱軸是真正率(True positive rate, TPR),TPR = TP / [ TP + FN] ,代表所有正樣本中預(yù)測正確的概率,命中率。
ROC曲線的對角線坐標(biāo)對應(yīng)于隨即猜測,而坐標(biāo)點(0,1)也即是左上角坐標(biāo)對應(yīng)理想模型。曲線越接近左上角代表檢測模型的效果越好。
那么ROC曲線是怎么繪制的呢?有如下幾個步驟:
- 根據(jù)每個測試樣本屬于正樣本的概率值從大到小排序。
- 從高到低,依次將“Score”值作為閾值threshold,當(dāng)測試樣本屬于正樣本的概率大于或等于這個threshold時,我們認(rèn)為它為正樣本,否則為負(fù)樣本。
- 每次選取一個不同的threshold,我們就可以得到一組FPR和TPR,即ROC曲線上的一點。
當(dāng)我們將threshold設(shè)置為1和0時,分別可以得到ROC曲線上的(0,0)和(1,1)兩個點。將這些(FPR,TPR)對連接起來,就得到了ROC曲線。當(dāng)threshold取值越多,ROC曲線越平滑。
6.AUC(Area Uner Curve)
即為ROC曲線下的面積。AUC越接近于1,分類器性能越好。AUC值是一個概率值,當(dāng)你隨機挑選一個正樣本以及一個負(fù)樣本,當(dāng)前的分類算法根據(jù)計算得到的Score值將這個正樣本排在負(fù)樣本前面的概率就是AUC值。當(dāng)然,AUC值越大,當(dāng)前的分類算法越有可能將正樣本排在負(fù)樣本前面,即能夠更好的分類。AUC的計算公式如下:

PR曲線和ROC曲線選用時機
目標(biāo)檢測中用的最多的是MAP值,但我們最好再了解一下PR曲線和ROC曲線的應(yīng)用場景,在不同的數(shù)據(jù)集中選擇合適的評價標(biāo)準(zhǔn)更好的判斷我們的模型是否訓(xùn)好了。
PR曲線
從PR的計算公式可以看出,PR曲線聚焦于正例。類別不平衡問題中由于主要關(guān)心正例,所以在此情況下PR曲線被廣泛認(rèn)為優(yōu)于ROC曲線。
ROC曲線
當(dāng)測試集中的正負(fù)樣本的分布發(fā)生變化時,ROC曲線可以保持不變。因為TPR聚焦于正例,F(xiàn)PR聚焦于與負(fù)例,使其成為一個比較均衡的評估方法。但是在關(guān)心正例的預(yù)測準(zhǔn)確性的場景,ROC曲線就不能更好的反應(yīng)模型的性能了,因為ROC曲線的橫軸采用FPR,根據(jù)FPR公式 ,當(dāng)負(fù)例N的數(shù)量遠(yuǎn)超正例P時,F(xiàn)P的大幅增長只能換來FPR的微小改變。結(jié)果是雖然大量負(fù)例被錯判成正例,在ROC曲線上卻無法直觀地看出來。
因此,PR曲線和ROC曲線的選用時機可以總結(jié)如下:
從目標(biāo)檢測任務(wù)來講,一般關(guān)心MAP值即可。
數(shù)據(jù)集介紹
剛才介紹了目標(biāo)檢測算法的常見評價標(biāo)準(zhǔn),這里再介紹一下目標(biāo)檢測常用的數(shù)據(jù)集。以下介紹來自于github工程整理:DeepLearning-500-questions
PASCAL VOC數(shù)據(jù)集
VOC數(shù)據(jù)集是目標(biāo)檢測經(jīng)常用的一個數(shù)據(jù)集,自2005年起每年舉辦一次比賽,最開始只有4類,到2007年擴充為20個類,共有兩個常用的版本:2007和2012。學(xué)術(shù)界常用5k的train/val 2007和16k的train/val 2012作為訓(xùn)練集,test 2007作為測試集,用10k的train/val 2007+test 2007和16k的train/val 2012作為訓(xùn)練集,test2012作為測試集,分別匯報結(jié)果。
MSCOCO數(shù)據(jù)集
COCO數(shù)據(jù)集是微軟團(tuán)隊發(fā)布的一個可以用來圖像recognition+segmentation+captioning的數(shù)據(jù)集,該數(shù)據(jù)集收集了大量包含常見物體的日常場景圖片,并提供像素級的實例標(biāo)注以更精確地評估檢測和分割算法的效果,致力于推動場景理解的研究進(jìn)展。依托這一數(shù)據(jù)集,每年舉辦一次比賽,現(xiàn)已涵蓋檢測、分割、關(guān)鍵點識別、注釋等機器視覺的中心任務(wù),是繼ImageNet Chanllenge以來最有影響力的學(xué)術(shù)競賽之一。
相比ImageNet,COCO更加偏好目標(biāo)與其場景共同出現(xiàn)的圖片,即non-iconic images。這樣的圖片能夠反映視覺上的語義,更符合圖像理解的任務(wù)要求。而相對的iconic images則更適合淺語義的圖像分類等任務(wù)。
COCO的檢測任務(wù)共含有80個類,在2014年發(fā)布的數(shù)據(jù)規(guī)模分train/val/test分別為80k/40k/40k,學(xué)術(shù)界較為通用的劃分是使用train和35k的val子集作為訓(xùn)練集(trainval35k),使用剩余的val作為測試集(minival),同時向官方的evaluation server提交結(jié)果(test-dev)。除此之外,COCO官方也保留一部分test數(shù)據(jù)作為比賽的評測集。
Google Open Image數(shù)據(jù)集
pen Image是谷歌團(tuán)隊發(fā)布的數(shù)據(jù)集。最新發(fā)布的Open Images V4包含190萬圖像、600個種類,1540萬個bounding-box標(biāo)注,是當(dāng)前最大的帶物體位置標(biāo)注信息的數(shù)據(jù)集。這些邊界框大部分都是由專業(yè)注釋人員手動繪制的,確保了它們的準(zhǔn)確性和一致性。另外,這些圖像是非常多樣化的,并且通常包含有多個對象的復(fù)雜場景(平均每個圖像 8 個)。
ImageNet數(shù)據(jù)集
ImageNet是一個計算機視覺系統(tǒng)識別項目, 是目前世界上圖像識別最大的數(shù)據(jù)庫。ImageNet是美國斯坦福的計算機科學(xué)家,模擬人類的識別系統(tǒng)建立的。能夠從圖片識別物體。Imagenet數(shù)據(jù)集文檔詳細(xì),有專門的團(tuán)隊維護(hù),使用非常方便,在計算機視覺領(lǐng)域研究論文中應(yīng)用非常廣,幾乎成為了目前深度學(xué)習(xí)圖像領(lǐng)域算法性能檢驗的“標(biāo)準(zhǔn)”數(shù)據(jù)集。Imagenet數(shù)據(jù)集有1400多萬幅圖片,涵蓋2萬多個類別;其中有超過百萬的圖片有明確的類別標(biāo)注和圖像中物體位置的標(biāo)注。
DOTA數(shù)據(jù)集
DOTA是遙感航空圖像檢測的常用數(shù)據(jù)集,包含2806張航空圖像,尺寸大約為4kx4k,包含15個類別共計188282個實例,其中14個主類,small vehicle 和 large vehicle都是vehicle的子類。其標(biāo)注方式為四點確定的任意形狀和方向的四邊形。航空圖像區(qū)別于傳統(tǒng)數(shù)據(jù)集,有其自己的特點,如:尺度變化性更大;密集的小物體檢測;檢測目標(biāo)的不確定性。數(shù)據(jù)劃分為1/6驗證集,1/3測試集,1/2訓(xùn)練集。目前發(fā)布了訓(xùn)練集和驗證集,圖像尺寸從800x800到4000x4000不等。
后記
本文介紹了目標(biāo)檢測算法中的常見標(biāo)準(zhǔn)和常見的目標(biāo)檢測評測數(shù)據(jù)集,算是對各種論文解讀文章細(xì)節(jié)的一個補充,希望能夠熟記最主要的評測指標(biāo)和常用的幾個數(shù)據(jù)集,一般來講頂會論文的實驗部分都會以介紹的這幾個數(shù)據(jù)集為基準(zhǔn)測評表現(xiàn)。
參考
https://www.cnblogs.com/eilearn/p/9071440.html
https://github.com/scutan90/DeepLearning-500-questions
《周志華:機器學(xué)習(xí)》
歡迎關(guān)注我的微信公眾號GiantPadaCV,期待和你一起交流機器學(xué)習(xí),深度學(xué)習(xí),圖像算法,優(yōu)化技術(shù),比賽及日常生活等。