查准率、查全率、AP、map,參考知乎地址:https://zhuanlan.zhihu.com/p/94597205
TP (True Positive):一個正確的檢測,檢測的IOU ≥ threshold。即預測的邊界框(bounding box)中分類正確且邊界框坐標正確的數量。在實際預測中,經常會出現多個預測框與同一個gt的IOU都大於閾值,這時通常只將這些預測框中score最大的算作TP,其它算作FP。
FP (False Positive):一個錯誤的檢測,檢測的IOU < threshold。即預測的邊界框中分類錯誤或者邊界框坐標不達標的數量,即預測出的所有邊界框中除去預測正確的邊界框,剩下的邊界框的數量。
FN (False Negative):一個沒有被檢測出來的ground truth。所有沒有預測到的邊界框的數量,即正確的邊界框(ground truth)中除去被預測正確的邊界框,剩下的邊界框的數量。
Precision (准確率 / 精確率):「Precision is the ability of a model to identify only the relevant objects」,准確率是模型只找到相關目標的能力,等於TP/(TP+FP)。即模型給出的所有預測結果中命中真實目標的比例。對於某個類別A,我們先計算每張圖片中A類別TP和FP的數量並進行累加,即可得到類別A在整個數據集中TP和FP的數量,計算TP/(TP+FP)即可得到類別A的Precision (計算Precision的時候只需要用到TP和FP),但是會發現Precision的數值是受模型預測出的邊界框的數量(上述計算式的分母部分)影響的,如果我們控制模型輸出預測框的數量,就可以得到不同的Precision,所以我們可以設置不同的score閾值,最終得到不同數量的TP和FP。
Recall (召回率):「Recall is the ability of a model to find all the relevant cases (all ground truth bounding boxes)」,召回率是模型找到所有相關目標的能力,等於TP/(TP+FN)。即模型給出的預測結果最多能覆蓋多少真實目標。對於某個類別A,按上述方法進行累加TP的數量,計算TP/(n_gt)即可得到Recall,其中n_gt表示類別A在所有圖片中gt的數量之和。同理,如果控制模型輸出的預測框的數量,就會改變TP的數量,也就會改變Recall的值。
score、confidence:每個預測邊界框的分數/置信度,不同論文中的表達方式不同。即你的模型除了需要給出每個預測邊界框的分類結果和邊界坐標,還要給出這個邊界框包含目標的可能性,score/confidence高代表模型認為其包含目標的可能性大,或者說模型優先選擇score/confidence高的邊界框。
Precision x Recall curve (PR曲線):所有precision-recall點相連形成的曲線(一般會為每個類別的預測框建立各自的PR曲線)。至於為什么同一個recall值下會有多個precision值,可以看之后部分的解釋。想要得到PR曲線,可以通過改變score的閾值來控制模型輸出的預測框數量,從而得到不同的TP、FP、FN。不過在實際操作中,並不需要手動來設置score的閾值,因為每個預測框都有一個score,我們只需要將其按從小到大進行排序,然后每次選擇最后一個score作為閾值即可,這樣如果類別A在所有圖片中的預測框數量之和有100個,就可以計算100組類別A的Precision-Recall值。
AP (average Precision):平均精度,在不同recall下的最高precision的均值(一般會對各類別分別計算各自的AP)。
mAP (mean AP):平均精度的均值,各類別的AP的均值。
mmAp:https://zhuanlan.zhihu.com/p/55575423