如何绘制深度学习-目标检测评估指标P-R(precision-recall)曲线?如何计算AP(average-precision)?
參考文章:深度學(xué)習(xí)-目標(biāo)檢測(cè)評(píng)估指標(biāo)P-R曲線、AP、mAP
文章目錄
- P-R曲線:
- AP計(jì)算:
下面通過具體例子說明。
首先用訓(xùn)練好的模型得到所有測(cè)試樣本的confidence score,每一類(如car)的confidence score保存到一個(gè)文件中(如comp1_cls_test_car.txt)。假設(shè)共有20個(gè)測(cè)試樣本,每個(gè)的id,confidence score和ground truth label如下:??
ground truth label通過預(yù)測(cè)的bbox與ground truth的iou確定為正樣本或負(fù)樣本。
接下來對(duì)confidence score排序,得到:
P-R曲線:
我們得到top-5的結(jié)果,前score最高的前5個(gè)樣本,預(yù)測(cè)label為1,即:
此例中采用top-5評(píng)估,也可采用其他評(píng)估,如AP50,即當(dāng)預(yù)測(cè)框與真實(shí)框的IoU值大于這個(gè)閾值時(shí),該預(yù)測(cè)框才被認(rèn)定為真陽性(True Positive, TP),反之就是假陽性(False Positive,FP)。
在這個(gè)例子中,true positives就是指第4和第2張圖片,false positives就是指第13,19,6張圖片。是相對(duì)于方框內(nèi)的元素而言,在這個(gè)例子中,confidence score排在top-5之外的元素為false negatives和true negatives,即:
其中,false negatives是指第9,16,7,20張圖片,true negatives是指第1,18,5,15,10,17,12,14,8,11,3張圖片。
那么,這個(gè)例子中Precision=2/5=40%,意思是對(duì)于car這一類別,我們選定了5個(gè)樣本,其中正確的有2個(gè),即準(zhǔn)確率為40%;Recall=2/6=30%,意思是在所有測(cè)試樣本中,共有6個(gè)car,但是因?yàn)槲覀冎徽倩亓?個(gè),所以召回率為30%。此時(shí)為下圖中第5個(gè)樣本點(diǎn)。同理圖中第一個(gè)樣本點(diǎn):P=1,R=1/6,第二個(gè)樣本點(diǎn),考慮前兩個(gè)樣本,P=1,R=2/6=1/3。。。
這個(gè)例子的precision-recall曲線如下:
實(shí)際多類別分類任務(wù)中,我們通常不滿足只通過top-5來衡量一個(gè)模型的好壞,而是需要知道從top-1到top-N(N是所有測(cè)試樣本個(gè)數(shù),本文中為20)對(duì)應(yīng)的precision和recall。顯然隨著我們選定的樣本越來也多,recall一定會(huì)越來越高,而precision整體上會(huì)呈下降趨勢(shì)。把recall當(dāng)成橫坐標(biāo),precision當(dāng)成縱坐標(biāo),即可得到常用的precision-recall曲線。
AP計(jì)算:
接下來說說AP的計(jì)算,此處參考的是PASCAL VOC CHALLENGE的2010年之前計(jì)算方法。首先設(shè)定一組閾值,[0, 0.1, 0.2, …, 1]。然后對(duì)于recall大于每一個(gè)閾值(比如recall>0.3),我們都會(huì)得到一個(gè)對(duì)應(yīng)的最大precision。這樣,我們就計(jì)算出了11個(gè)precision。AP即為這11個(gè)precision的平均值。這種方法英文叫做11-point interpolated average precision。?
當(dāng)然PASCAL VOC CHALLENGE自2010年后就換了另一種計(jì)算方法。新的計(jì)算方法假設(shè)這N個(gè)樣本中有M個(gè)正例,那么我們會(huì)得到M個(gè)recall值(1/M, 2/M, …, M/M),對(duì)于每個(gè)recall值r,我們可以計(jì)算出對(duì)應(yīng)(r’ >= r)的最大precision,然后對(duì)這M個(gè)precision值取平均即得到最后的AP值。計(jì)算方法如下:?
相應(yīng)的Precision-Recall曲線(這條曲線是單調(diào)遞減的)如下:?
AP衡量的是學(xué)出來的模型在每個(gè)類別上的好壞,mAP衡量的是學(xué)出的模型在所有類別上的好壞,得到AP后mAP的計(jì)算就變得很簡(jiǎn)單了,就是取所有AP的平均值。
總結(jié)
以上是生活随笔為你收集整理的如何绘制深度学习-目标检测评估指标P-R(precision-recall)曲线?如何计算AP(average-precision)?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习目标检测中计算目标的AP(ave
- 下一篇: 20200207_Dontla_MBTI