終于把目標(biāo)檢測搞懂了!
什么是目標(biāo)檢測
目標(biāo)檢測算法是計算機視覺領(lǐng)域的一類算法,主要用于從圖像或視頻中識別出特定的對象,并確定它們的位置和大小。這些算法可以識別多種對象,并能同時輸出這些對象的邊界框(bounding boxes)位置。目標(biāo)檢測在許多實際應(yīng)用中非常關(guān)鍵,例如自動駕駛、安防監(jiān)控、人臉識別和增強現(xiàn)實等。
現(xiàn)在讓我們借助下圖稍微簡化一下這個陳述。
圖片
我們不必對這些圖片中的狗進行分類,而是要實際定位圖片中的狗。也就是說,我必須找出圖片中狗的位置?是在中間還是在左下角?我們可以在圖像中的狗周圍創(chuàng)建一個框,并指定該框的 x 和 y 坐標(biāo)。
圖片
現(xiàn)在,假設(shè)圖像中物體的位置可以用這些框的坐標(biāo)來表示。
圖像中物體周圍的這個框被稱為邊界框?,F(xiàn)在,這變成了一個圖像定位問題,我們得到一組圖像,我們必須確定圖像中物體的位置。
請注意,這里我們只有一個類。如果我們有多個類怎么辦?
圖片
在這張圖片中,我們必須找到圖像中的物體,但請注意,并非所有物體都是狗。這里有一只狗和一輛車。
所以我們不僅要找到圖像中的物體,還要將找到的物體分類為狗或汽車。所以這變成了一個目標(biāo)檢測問題。
對于目標(biāo)檢測問題,我們必須對圖像中的物體進行分類,并確定這些物體在圖像中的位置。
而圖像分類問題只有一個任務(wù),即對圖像中的物體進行分類。
圖片
總的來說,對于目標(biāo)檢測任務(wù),我們需要確認以下三個問題。
- 要識別圖像中是否存在物體?
- 這個物體位于哪里?
- 這是什么物體?
圖片
具體到這個例子,我們在圖像中有一個物體。我們可以在這個物體周圍創(chuàng)建一個邊界框,這個物體是一輛緊急車輛。
用于目標(biāo)檢測的訓(xùn)練數(shù)據(jù)
在本節(jié)中,我們將了解使用深度學(xué)習(xí)進行目標(biāo)檢測的數(shù)據(jù)是什么樣的。
我們首先從分類問題中舉一個例子。在下圖中,我們有一個輸入圖像和針對這個輸入圖像的目標(biāo)類。
圖片
現(xiàn)在,假設(shè)手頭的任務(wù)是檢測圖像中的汽車。因此,在這種情況下,不僅要有一張輸入圖像,還要有一個目標(biāo)變量,該變量具有表示圖像中物體位置的邊界框。
圖片
因此,在這種情況下,這個目標(biāo)變量有五個值,值 p 表示物體出現(xiàn)在上圖中的概率,而四個值 Xmin、Ymin、Xmax 和 Ymax 表示邊界框的坐標(biāo)。
下面讓我們了解如何計算這些坐標(biāo)值。
請考慮圖像上方的 x 軸和 y 軸。在這種情況下,Xmin 和 Ymin 將是邊界框的左上角,而 Xmax 和 Ymax 將是邊界框的右下角。
現(xiàn)在,目標(biāo)變量只回答了兩個問題?
- 圖像中是否存在物體?
如果不存在物體,則 p 將為零,而當(dāng)圖像中存在物體時,p 將為 1。 - 如果圖像中存在一個物體,那么該物體位于哪里?
你可以使用邊界框的坐標(biāo)找到對象的位置。
當(dāng)有更多類別時會發(fā)生什么?在這種情況下,目標(biāo)變量將如下所示。
圖片
因此,如果你有兩個類別,即緊急車輛和非緊急車輛,那么你將有兩個附加值 c1 和 c2 表示上圖中的物體屬于哪個類別。
如果我們考慮這個例子,我們將圖像中存在物體的概率定為一個。我們給定 Xmin、Ymin、Xmax 和 Ymax 作為邊界框的坐標(biāo)。然后,由于這是一輛緊急車輛,因此 c1 等于 1,而由于這是一輛非緊急車輛,因此 c2 為 0。
圖片
現(xiàn)在,訓(xùn)練數(shù)據(jù)應(yīng)該像上圖那樣。
假設(shè)我們建立了一個模型并從模型中得到了一些預(yù)測,這是你可以從模型中獲得的可能輸出。
物體出現(xiàn)在這個預(yù)測邊界框中的概率為 0.8。你有這個藍色邊界框的坐標(biāo),也就是預(yù)測的邊界框,分別是 (40,20) 和 (210,180),最后是 c1 和 c2 的類值。
所以現(xiàn)在我們了解了什么是目標(biāo)檢測,以及目標(biāo)檢測問題的訓(xùn)練數(shù)據(jù)是什么樣的。
邊界框評估
在本節(jié)中,我們將討論一個非常有趣的概念,即并集與交集 (IoU)。我們將使用它來確定我們創(chuàng)建的各個塊的目標(biāo)變量。
考慮以下場景,這里我們有兩個邊界框,box1 和 box2?,F(xiàn)在如果我問你這兩個框中哪一個更準(zhǔn)確,顯然答案是 box1。
圖片
為什么?因為它有 WBC(白細胞) 的主要區(qū)域,并且正確檢測到了 WBC(白細胞)。但是我們?nèi)绾螐臄?shù)學(xué)上找出這一點?
如果我們能夠找出實際和預(yù)測邊界框的重疊,我們將能夠決定哪個邊界框是更好的預(yù)測。
圖片
可以看到,邊界框 box1 與實際邊界框重疊度更高,交集面積約為實際邊界框的 70%。所以我們可以說,在這兩個邊界框中,box1 顯然是更好的預(yù)測。
讓我們考慮另一個例子,假設(shè)我們創(chuàng)建了多個不同大小的邊界框或補丁。
圖片
在這里,左側(cè)邊界框的交集肯定是 100%,而在第二張圖片中,這個預(yù)測邊界框交集只有 70%。所以在這個階段,你會說左側(cè)邊界框的預(yù)測更好嗎?顯然不是。右側(cè)邊界框更準(zhǔn)確。
因此,為了處理這種情況,我們還考慮了并集面積。
圖片
我們可以說,這個并集面積(藍色區(qū)域)越大,預(yù)測的邊界框的準(zhǔn)確度就越低。
現(xiàn)在,這被稱為并集交集 (IoU),即交集的面積除以并集的面積。
圖片
那么,IoU 的取值范圍是多少呢?讓我們考慮一些極端的情況。
如果我們有實際邊界框和預(yù)測邊界框,并且它們之間完全沒有重疊,那么交集的面積將為零,而并集的面積將是這兩塊面積的總和。因此,總體而言,IoU 將為零。
圖片
另一種可能的情況是預(yù)測邊界框和實際邊界框完全重疊,在這種情況下,交集的面積將等于重疊的面積,并集的面積也將相同。由于在這種情況下分子和分母相同,因此 IoU 將為 1。
圖片
所以,IoU 范圍在 0 到 1 之間。
現(xiàn)在需要定義一個閾值,以確定預(yù)測的邊界框是否是正確的預(yù)測。假設(shè) IoU 大于閾值(可以是 0.5 或 0.6)。在這種情況下,我們會認為實際邊界框和預(yù)測邊界框非常相似。
圖片
而如果 IoU 小于特定閾值,我們會說,預(yù)測的邊界框與實際邊界框完全不接近。
圖片
計算 IoU
在上一節(jié)中,我們討論了如何計算 IoU 值。我們需要交集面積和并集面積。
現(xiàn)在的問題是,我們?nèi)绾握页鲞@兩個值?
要找出交集面積,我們需要這個藍色框的面積。我們可以使用此藍色框的坐標(biāo)來計算。
為了找出 Xmin 的值,我們將使用這兩個邊界框的 Xmin 值,表示為 X1min 和 X2min。
圖片
現(xiàn)在,正如你在圖上看到的,這個藍色邊界框的 Xmin 完全等同于 X2min。我們還可以說,這個藍色框的 Xmin 始終是 X1min 和 X2min 這兩個值中的最大值。
對于這個藍色邊界框的 Xmax,我們將比較 X1max 和 X2max 的值。我們可以看到,這個藍色邊界框的 Xmax 等于 X1max。它也可以寫成 X1max 和 X2max 中的最小值。
圖片
同樣,為了找出 Ymin 和 Ymax 的值。我們將比較 Y1min 和 Y2min 以及 Y1max 和 Y2max。Ymin 的值將是 Y1min 和 Y2min 中的最大值,Ymax 將是 Y1max 和 Y2max 中的最小值。
現(xiàn)在我們有了這四個值,即 Xmin、Ymin、Xmax 和 Ymax。我們可以通過將這個矩形的長乘以寬來計算出交點的面積,這個矩形就是這里的藍色矩形。
圖片
接下來,重點是計算并集面積。因此,為了計算并集面積,我們將使用這兩個邊界框(即綠色邊界框和紅色邊界框)的坐標(biāo)值。
圖片
現(xiàn)在請注意,當(dāng)我們計算 box1 和 box2 的面積時,我們實際上計算了這個藍色陰影區(qū)域兩次。因為,這是綠色矩形和紅色矩形的一部分。由于這部分被計算了兩次,因此我們必須減去一次,才能得到并集面積。
所以,最終的并集面積將是 box1 的面積與 box2 的面積之和,之后必須減去交集面積。
圖片
現(xiàn)在我們得到了兩個邊界框的交集面積,也得到了兩個邊界框的并集面積?,F(xiàn)在我們可以簡單地用交集面積除以并集面積來計算 IoU。
評估指標(biāo)
現(xiàn)在,我們將討論目標(biāo)檢測中常用的評估指標(biāo)。
目標(biāo)檢測的評估指標(biāo)主要有:
- 交并比 (IoU)
- 平均準(zhǔn)確率(mAP)
我們之前討論了 IoU,這里我們重點介紹 mAP
精度
精確度是在所有預(yù)測為正類的樣本中,真正屬于正類的比例。它重點評估了分類器在預(yù)測正類上的表現(xiàn)。
現(xiàn)在,讓我們舉一個例子來了解如何計算精度。
假設(shè)我們有一組邊界框預(yù)測。除此之外,我們還通過將這些邊界框預(yù)測與實際邊界框進行比較來計算 IoU 分?jǐn)?shù)。
假設(shè)我們的閾值是 0.5。
圖片
因此,在這種情況下,我們可以將這些預(yù)測分為真陽性和假陽性。一旦我們得到了真陽性和假陽性的總數(shù),我們就可以計算出精確率。在這種情況下,精確率為 0.6。
AP(平均精度)
對于每個類別,計算其平均精度(AP),步驟如下。