大雁與飛機
假設現在有這樣一個測試集,測試集中的圖片只由大雁和飛機兩種圖片組成,如下圖所示:
假設你的分類系統最終的目的是:能取出測試集中所有飛機的圖片,而不是大雁的圖片。
現在做如下的定義:
True positives : 飛機的圖片被正確的識別成了飛機。
True negatives: 大雁的圖片沒有被識別出來,系統正確地認為它們是大雁。
False positives: 大雁的圖片被錯誤地識別成了飛機。
False negatives: 飛機的圖片沒有被識別出來,系統錯誤地認為它們是大雁。
假設你的分類系統使用了上述假設識別出了四個結果,如下圖所示:
那么在識別出的這四張照片中:
True positives : 有三個,畫綠色框的飛機。
False positives: 有一個,畫紅色框的大雁。
沒被識別出來的六張圖片中:
True negatives : 有四個,這四個大雁的圖片,系統正確地沒有把它們識別成飛機。
False negatives: 有兩個,兩個飛機沒有被識別出來,系統錯誤地認為它們是大雁。
Precision 與 Recall
Precision其實就是在識別出來的圖片中,True positives所占的比率:
其中的n代表的是(True positives + False positives),也就是系統一共識別出來多少照片 。
在這一例子中,True positives為3,False positives為1,所以Precision值是 3/(3+1)=0.75。
意味着在識別出的結果中,飛機的圖片占75%。
Recall 是被正確識別出來的飛機個數與測試集中所有飛機的個數的比值:
,通常\(t_p+f_n\)在目標檢測中指groundTruth中的真實目標數量,
Recall的分母是(True positives + False negatives),這兩個值的和,可以理解為一共有多少張飛機的照片。
在這一例子中,True positives為3,False negatives為2,那么Recall值是 3/(3+2)=0.6。
意味着在所有的飛機圖片中,60%的飛機被正確的識別成飛機.。
AP(Average Precision)
AP是Precision-Recall曲線所圍成的面積。具體計算可如下圖所見:
這是預測結果框(紅色)和GroundTruth(綠色)的對比。
通過這張圖,我們可以將每個候選框的預測信息標記出來。這里設定IOU>0.5為TP,否則為FP。
根據這張圖可以畫出PR曲線,按照置信度進行一次新的排序,就更加清晰明了。
由上表,將這些(recall,precision)點標記在坐標軸中:
根據這個代碼進行計算。
參考:
https://blog.csdn.net/asasasaababab/article/details/79994920