當前位置:
首頁 > 最新 > 什麼是MAP?理解目標檢測模型中的性能評估

什麼是MAP?理解目標檢測模型中的性能評估

【導讀】近日,機器學習工程師Tarang Shah發布一篇文章,探討了機器學習中模型的度量指標的相關問題。本文首先介紹了機器學習中兩個比較直觀和常用的度量指標:精確度和召回率,然後詳細講解了目標檢測領域最常用的度量指標——均值平均精度(mAP),並圖解了給定邊界框的正確性的度量標準IoU – 交並比。通過閱讀本文,你將掌握機器學習模型,特別是目標檢測領域的各種度量指標,這有助於在科研和項目中衡量你的模型。專知內容組編輯整理。

What is mAP ? Understanding the statistic of choice for comparing Object Detection models

對於使用機器學習解決的大多數常見問題,通常有多種可用的模型。每種模型都有自己的特點,會根據各種因素表現不同。

在數據集上判斷模型的性能,通常稱為驗證/測試數據集。這種性能是使用各種統計數據-準確度,精確度,召回率等來衡量的。選擇的性能度量通常是針對您的特定應用和使用情況來定。而對於每個應用程序來說,找到可用於客觀比較模型的度量標準至關重要。

在本文中,我們將討論用於目標檢測問題的最常用的度量指標 - 均值平均精度,即mAP。(對每個類的AP再求平均)

大多數時候,這些指標很容易理解和計算。例如,在二元分類中,精確度和召回率是一個簡單直觀的統計量。

目標檢測另一方面是一個相當不同的...有趣的問題。

即使您的物體檢測器在圖像中檢測到貓,但如果您無法找到它所在的圖像中的哪個位置,它也是無用的。

由於您預測了圖像中目標的發生位置,因此我們如何計算這個度量值是非常有趣的。

首先,讓我們定義目標檢測問題。

目標檢測問題

「目標檢測問題」是指:

給定一個圖像,找到其中的目標,找到他們的位置和並且對目標進行分類。

目標檢測模型通常是在一組固定的類上進行訓練的,所以模型只能定位和分類圖像中的那些類。

此外,目標的位置通常是邊界矩形的形式。所以,目標檢測涉及圖像中目標的位置信息和對目標進行分類

圖1圖像處理幾個經典問題示意圖

如下所述,均值平均精度(Mean Average Precision),特別適用於我們預測目標與類的位置的演算法。因此,從圖1中,我們可以看出它對於評估模型定位性能,目標檢測模型性能和分割模型性能是有用的。

評估目標檢測模型

為什麼選擇mAP?

目標檢測問題中的每個圖像都可能具有不同類別的不同目標。如前所述,模型的分類和定位都需要進行評估。因此,在圖像分類問題中使用的精度的標準度量不能直接應用於此。這就是mAP(均值平均精確度)出現的地方。我希望在這篇文章的最後,你將能夠理解它的含義和意義。

關於Ground Truth

對於任何演算法,度量總是與數據的真實值(Ground Truth)進行比較。我們只知道訓練,驗證和測試數據集的Ground Truth信息。

對於物體檢測問題,Ground Truth包括圖像,圖像中目標的類別以及該圖像中每個目標的邊界框。

一個例子:

圖顯示實際人手工標註的ground truth

我們給了一個真實的圖像(JPG,PNG等)和其他標註信息作為文本(邊界框坐標(X,Y,寬度和高度)和類),其中上圖的紅色框和文本標籤僅僅是為了更好地理解,手工標註可視化顯示。

所以對於這個特定的例子,我們的模型在訓練中得到的是這個

和3組數字定義的ground truth(讓我們假設這個圖像是1000x800px,所有這些坐標都是構建在像素層面上的)

現在,讓我們看看如何計算mAP。

我將在另一篇文章中介紹各種目標檢測演算法,方法和性能。現在,讓我們假設我們有一個已經訓練好的模型,我們正在驗證集上評估它的結果。

計算mAP(Calculating the mAP)

假設原始圖像和真實的標註信息( ground truth)如上所述。 訓練和驗證數據以相同的方式都進行了標註。

該模型將返回大量的預測,但是在這些模型中,其中大多數都具有非常低的置信度分數,因此我們只考慮高於某個置信度分數的預測信息。

我們通過我們的模型運行原始圖像,在置信閾值確定之後,下圖是目標檢測演算法返回的帶有邊框的圖像區域(bounding boxes)。

現在,由於我們人類就是目標檢測的專家,所以我們可以說上面這些檢測區域是正確的。但是我們如何在實際中量化呢?

我們首先需要知道每個檢測的正確性。告訴我們一個給定的邊界框的正確性的度量標準是IoU –交並比(檢測評價函數), 這是一個非常簡單的視覺量。

有人會說這個名詞可以意會,但是我們需要更好的解釋。 我將以簡短的方式解釋IoU,對於那些真正想要詳細解釋的人,Adrian Rosebrock有一篇很好的文章,你可以參考。

https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/

IoU

交並比是預測的框和真實ground truth的框的交集和並集之間的比例。這個數據也被稱為Jaccard指數,並於20世紀初由Paul Jaccard首次發表。

為了得到交集和並集值,我們首先將預測框疊加在ground truth實際框的上面。(見圖)

現在對於每個類,與預測框和真實框重疊的區域是交集區域,並且兩者的總面積是並集框。

圖是馬的一個IoU示意圖

在上面的目標馬的交集和聯合看起來是這樣的,

圖上兩者的交集蠻大的

交集包括重疊區域(青色區域),並集包括橙色和青色區域。

IoU將會像這樣計算

識別正確的檢測和計算精度

使用IoU,我們現在必須確定檢測是否正確。最常用的閾值是0.5 -如果IoU> 0.5,則認為是真實的檢測(true detection),否則認為是錯誤的檢測(false detection)。

我們現在計算模型得到的每個檢測框(置信度閾值後)的IoU值。使用這個值和我們的IoU閾值(比如0.5)比較,我們計算圖像中每個類的正確檢測次數(A)。

現在,對於每個圖像,我們都有ground truth的數據(即知道每一張圖像的真實目標信息),它告訴我們該圖像中給定類別的實際目標(B)的數量。而且我們已經計算了正確預測的數量(A)(True possitive)。因此,我們現在可以使用這個公式來計算該類模型的精度(A / B)。

公式是給定一張圖像的類別C的Precision =圖像的正確預測(True Positives)的數量除以在圖像上這一類的總的目標數量。

對於給定的類,我們能夠為驗證集中的每張圖像計算此值。假設我們在驗證集中有100個圖像,並且我們知道每個圖像都有其中的所有類(基於ground truth)。

現在我們將有100個精度值(每個圖像1個值)。讓我們取這100個值的平均值。這個平均值被稱為該類的平均精度。

一個類C的平均精度=在驗證集上所有圖像對於類C的精度值的和/有類C這個目標的所有圖像的數量

現在,我們整個集合中有20個類。對於每個類別,我們都會遵循相同的方法來計算IoU - >精度- >平均精度。所以我們現在有20個不同的平均精度值。使用這些平均精度的值,我們可以輕鬆地判斷任何給定類別的模型的性能。

為了用一個單一的數字來表示一個模型的表現(一個度量來統一它們),我們取所有類的平均精度值的平均值。這個新的價值,是我們的均值平均精度- MAP!(非常有創意地命名,我必須說)

MAP =所有類別的平均精度求和除以所有類別

所以,均值的平均精度就是數據集中所有類的平均精度的平均值。

當我們比較MAP值時要記住一些重要的點

原文載於:

http://tarangshah.com/blog/2018-01-27/what-is-map-understanding-the-statistic-of-choice-for-comparing-object-detection-models/

參考鏈接:

https://towardsdatascience.com/what-is-map-understanding-the-statistic-of-choice-for-comparing-object-detection-models-1ea4f67a9dbd

-END-

專 · 知

人工智慧領域主題知識資料查看獲取【專知薈萃】人工智慧領域26個主題知識資料全集(入門/進階/論文/綜述/視頻/專家等)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 專知 的精彩文章:

深度學習需要了解的四種神經網路優化演算法

TAG:專知 |