目標檢測評價指標


對於使用機器學習解決的大多數常見問題,通常有多種可用的模型。每個模型都有自己的獨特之處,並隨因素變化而表現不同。

每個模型在“驗證/測試”數據集上來評估性能,性能衡量使用各種統計量如准確度(accuracy),精度(precision),召回率(recall)等。選擇的統計量通常針對特定應用場景和用例。 對於每個應用場景,選擇一個能夠客觀比較模型的度量指標非常重要。

這篇文章將介紹目標檢測(Object Detection)問題中的最常用評估指標-Mean Average Precision,即mAP。

大多數時候,這些指標很容易理解和計算。例如,在二元分類中,精確度和召回率是一個一個簡單直觀的統計量。然而,目標檢測是一個非常不同且有趣的問題。即使你的目標檢測器在圖片中檢測到貓,但如果你無法定位,它也沒有用處。由於你要預測的是圖像中各個物體是否出現及其位置,如何計算mAP將非常有趣。

在講解mAP之前,我們先定義目標檢測問題。

目標檢測問題

在目標檢測問題中,給定一個圖像,找到它所包含的物體,找到它們的位置並對它們進行分類。目標檢測模型通常是在一組特定的類集合上進行訓練的,所以模型只會定位和分類圖像中的那些類。另外,對象的位置通常采用矩形邊界框表示。因此,目標檢測涉及圖像中物體的定位和分類。

圖1 幾個常見的計算機視覺問題(來自Stanford’s CS231n)

下面所述的Mean Average Precision特別適用於同時預測物體位置及類別的算法。 因此,從圖1可以看出,它對評估定位模型、目標檢測模型和分割模型非常有用。

評估目標檢測模型

為什么是mAP?

目標檢測問題中的每個圖片都可能包含一些不同類別的物體。如前所述,需要評估模型的物體分類和定位性能。因此,用於圖像分類問題的標准指標precision不能直接應用於此。 這就是為什么需要mAP。 我希望讀完這篇文章后,你將能夠理解它的含義。

關於Ground Truth

對於任何算法,評估指標需要知道ground truth(真實標簽)數據。 我們只知道訓練、驗證和測試數據集的ground truth。對於目標檢測問題,ground truth包括圖像中物體的類別以及該圖像中每個物體的真實邊界框。

Ground truth可視化

這里給出了一個實際圖片(jpg、png等格式),以及相應的文本注釋(邊界框坐標 [公式] 和類別),如圖中紅色框以及文本標簽所示。

對於這個特殊例子,模型在訓練時需要原始的圖片:

原始圖片

以及ground truth的3個坐標及類別(這里假定圖片大小是1000x800px,所有的坐標值都是以像素為單位的近似值):

下面讓我們動一下手,去看如何計算mAP。這里我們不談論不同的目標檢測算法,假定我們已經有了一個訓練好的模型,現在只需要在驗證集上評估其性能。

mAP含義及計算

前面展示了原始圖像和以及對應的ground truth。訓練集和驗證集中所有圖像都以此方式標注。

訓練好的目標檢測模型會給出大量的預測結果,但是其中大多數的預測值都會有非常低的置信度(confidence score),因此我們只考慮那些置信度高於某個閾值的預測結果。

將原始圖片送入訓練好的模型,在經過置信度閾值篩選之后,目標檢測算法給出帶有邊界框的預測結果:

模型的預測結果

現在,由於我們人類是目標檢測專家,我們可以知道這些檢測結果大致正確。但我們如何量化呢?我們首先需要判斷每個檢測的正確性。這里采用IoU(Intersection over Union),它可以作為評價邊界框正確性的度量指標。 這是一個非常簡單的指標。從名稱看,有些人會發現這個名字是自解釋的,但我們需要更好的解釋。這里會以簡短的方式解釋IoU,如果想深入理解,可以參考Adrian Rosebrock這篇文章(Intersection over Union (IoU) for object detection)

IoU

IoU是預測框與ground truth的交集和並集的比值。這個量也被稱為Jaccard指數,並於20世紀初由Paul Jaccard首次提出。為了得到交集和並集,我們首先將預測框與ground truth放在一起,如圖所示。

預測框與ground truth(這里只給出horse)

對於每個類,預測框和ground truth重疊的區域是交集,而橫跨的總區域就是並集。其中horse類的交集和並集如下圖所示(這個例子交集比較大):

其中藍綠色部分是交集,而並集還包括橘色的部分。那么,IoU可以如下計算:

鑒別正確的檢測結果並計算precision和recall

為了計算precision和recall,與所有機器學習問題一樣,我們必須鑒別出True Positives(真正例)、False Positives(假正例)、True Negatives(真負例)和 False Negatives(假負例)。

1) True positives(TP): 被正確地划分為正例的個數,即實際 為正例且被分類器划分為正例的實例數(樣本數);

2)False positives(FP): 被錯誤地划分為正例的個數,即實際為負例但被分類器划分為正例的實例數;

3)False negatives(FN):被錯誤地划分為負例的個數,即實際為正例但被分類器划分為負例的實例數;

4)True negatives(TN): 被正確地划分為負例的個數,即實際為負例且被分類器划分為負例的實例數。

為了獲得True Positives and False Positives,我們需要使用IoU。計算IoU,我們從而確定一個檢測結果(Positive)是正確的(True)還是錯誤的(False)。最常用的閾值是0.5,即如果IoU> 0.5,則認為它是True Positive,否則認為是False Positive。而COCO數據集的評估指標建議對不同的IoU閾值進行計算,但為簡單起見,我們這里僅討論一個閾值0.5,這是PASCAL VOC數據集所用的指標。

為了計算Recall,我們需要Negatives的數量。由於圖片中我們沒有預測到物體的每個部分都被視為Negative,因此計算True Negatives比較難辦。但是我們可以只計算False Negatives,即我們模型所漏檢的物體。

另外一個需要考慮的因素是模型所給出的各個檢測結果的置信度。通過改變置信度閾值,我們可以改變一個預測框是Positive還是 Negative,即改變預測值的正負性(不是box的真實正負性,是預測正負性)。基本上,閾值以上的所有預測(Box + Class)都被認為是Positives,並且低於該值的都是Negatives。

對於每一個圖片,ground truth數據會給出該圖片中各個類別的實際物體數量。我們可以計算每個Positive預測框與ground truth的IoU值,並取最大的IoU值,認為該預測框檢測到了那個IoU最大的ground truth。然后根據IoU閾值,我們可以計算出一張圖片中各個類別的正確檢測值(True Positives, TP)數量以及錯誤檢測值數量(False Positives, FP)。據此,可以計算出各個類別的precision:
[公式]

既然我們已經得到了正確的預測值數量(True Positives),也很容易計算出漏檢的物體數(False Negatives, FN)。據此可以計算出Recall(其實分母可以用ground truth總數):
[公式]

mAP

在論文中經常見到一種參數是 mAP(平均均值精度),常見的目標檢測數據集 VOC/COCO都是以此為衡量標准,它跟 PR 曲線息息相關。先看一下 AP 的計算,以2010年為界它有兩種不同的計算方法,現在更常用的是第二種:

  1. 2010年以前:針對某一分類將召回率 R 等距划分為十一個值[0,0.1,0.2,...,1],對於每一個 R 值計算對應的最大准確率 P(從PR 曲線就可以查到),然后對這十一個P 值求均值,也就是AveragePrecision。
  2. 2010年以后:針對某一分類的 n 個樣本,假設它有 m 個正例,每一個正例就對應一個召回率 R 值(1/m,2/m,...,1),對每一個召回率計算最大准確率 P,然后對這m 個P 值求均值。

$$ AP = \frac{1}{m}\sum_{i}^{m}P_i = \frac{1}{m}*P_1 + \frac{1}{m}*P_2 + ... + \frac{1}{m}*P_m = \int P(R)\,\mathrm{d}R$$

注意到 AP 是針對於某一個類的,而一個數據集往往包含相當多的分類,對數據集所有類的 AP 求均值就得到 mAP。

$$ mAP = \frac{1}{C}\sum_{j}^{C}AP_j$$

所以,mAP 中:P 代表一個樣本的最大准確率,AP 代表一類樣本的平均准確率,mAP 就是數據集的平均准確率。

AP,AP50,AP75,APs,APm,APl

APs,APm,APl,AP0.5等的是在基於coco數據集處理目標檢測任務時候定義出來評論檢測模型的指標具體含義如下圖:

1)除非另有說明,否則AP和AR在多個交匯點(IoU)值上取平均值。具體來說,我們使用10個IoU閾值0.50:0.05:0.95。IoU=.50:.05:.95 指的是交並比從0.5開始間隔0.05一直取值到0.95,然后求均值。這是對傳統的一個突破,其中AP是在一個單一的0.50的IoU上計算的(這對應於我們的度量APIoU=.50 )。超過均值的IoUs能讓探測器更好定位。

2)AP是所有類別的平均值。傳統上,這被稱為“平均准確度”(mAP,mean average precision)。我們沒有區分AP和mAP(AR和mAR也是如此),並假定從上下文中可以清楚地看出差異。

3)  AP(所有10個IoU閾值和所有80個類別的平均值)將決定贏家。在考慮COCO性能時,這應該被認為是最重要的一個指標。

4)  在COCO中,比大物體相比有更多的小物體。具體地說,大約41%的物體很小(面積<322),34%是中等(322 < area < 962)),24%大(area > 962)。測量的面積(area)是分割掩碼(segmentation mask)中的像素數量。

5)AR是在每個圖像中檢測到固定數量的最大召回(recall),在類別和IoU上平均。AR與提案評估(proposal evaluation)中使用的同名度量相關,但是按類別計算。

6)所有度量標准允許每個圖像(在所有類別中)最多100個最高得分檢測進行計算。

7)除了IoU計算(分別在框(box)或掩碼(mask)上執行)之外,用邊界框和分割掩碼檢測的評估度量在所有方面是相同的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM