1. 程式人生 > 實用技巧 >目標檢測基礎

目標檢測基礎

目標檢測基礎

1x1卷積

GoogleNet/Inception
在這裡插入圖片描述
用不同尺度卷積提取不同尺度特徵
得到同樣尺度特徵圖,拼接起來

1x1卷積
1.增加非線性
1x1卷積核的卷積過程相當於全連線層的計算過程,並且還加入了非線性啟用函式,從而可以增加網路的非線性,使得網路可以表達更加複雜的特徵
2.特徵降維
通過控制卷積核的數量達到通道數大小的放縮。特徵降維帶來的好處是可以減少引數和減少計算量

計算量在這裡插入圖片描述
Inception module加1x1卷積特徵降維在這裡插入圖片描述
a的weights大小

1x1x192x64 + 3x3x192x128 + 5x5x192x32 = 387072
a的輸出feature map大小
28x28x64 + 28x28x128 + 28x28x32 + 28x28x192 = 28x28x416

b的weights大小
1x1x192x64 + (1x1x192x96 + 3x3x96x128) + (1x1x192x16 + 5x5x16x32) + 1x1x192x32 = 163328
b的輸出feature map大小
28x28x64 + 28x28x128 + 28x28x32 + 28x28x32 = 28x28x256

空洞卷積

空洞卷積 (atrous convolutions) 又名擴張卷積 (dilated convolutions),向卷積層引入了一個稱為“擴張率 (dilation rate)” 的新引數,該引數定義了卷積核處理資料時各值得間距。空洞卷積提供了更大的感受野。

在這裡插入圖片描述
在相同感受野的情況下,使用空洞卷積可以得到更大的特徵圖,可以獲得更加密集的資料。
在相同感受野的情況下,更大的特徵圖有助於在目標檢測和目標分割的任務中對小物體的識別分割效果。
在這裡插入圖片描述

轉置卷積

轉置卷積 (transposed convolutions) 又名反捲積 (deconvolution) 或是分數步長卷積 (fractially straced convolutions)。

從字面上理解就是卷積的逆過程。值得注意的是反捲積雖然存在,但是在深度學習中並不常用。而轉置卷積雖然又名反捲積,卻不是真正意義上的反捲積。轉置卷積是一種上取樣的方式 (Upsampling), 可以讓小圖片變成大圖片。

在這裡插入圖片描述

目標檢測簡單方法介紹

傳統的目標檢測方法-採用不同大小的視窗
滑動視窗法+傳統機器學習分類器

  1. 識別效果不夠好,準確率不高
  2. 計算量比較大,執行速度慢
  3. 可能會出現多個正確識別的結果

滑動視窗法+CNN提升識別的準確率

全卷積網路FCN介紹

我們知道對於一個各層引數結構都設計好的神經網路來說,輸入的圖片大小需要是固定的,如AlexNet, VGGNet, GoogleNet等網路都需要輸入固定大小的圖片才能正常工作。

FCN的精髓是讓一個已經設計好的網路可以輸入任意大小的圖片。
在這裡插入圖片描述
把input當做一個視窗
在這裡插入圖片描述
藍色區域
在這裡插入圖片描述
綠色區域代表一個視窗

交併比和mAP介紹

評判目標檢測結果好壞
IoU
在這裡插入圖片描述
mAP
在這裡插入圖片描述
檢測速度

mAP的具體計算方法

多標籤影象分類任務中圖片的標籤不止一個,因此評價不能用普通單標籤影象分類的標準。
首先用訓練好的模型得到所有測試樣本的置信度(confidence score),比如某個類別有20個測試樣本:

在這裡插入圖片描述
接下來按照置信度的大小重新排序:在這裡插入圖片描述
我們想得到top-5的結果:在這裡插入圖片描述
這個例子中:
Precision=2/5=40%
Recall=2/6=30%

實際多類別分類任務中,我們需要知道從top-1到top-N(N是所有測試樣本個數,我們的例子中是20)對應的precision和recall。顯然隨著我們選定的樣本越來越多,recall一定會越來越高,而precision整體上會呈下降趨勢。把recall當成橫座標,precision當成縱座標,即可得到常用的precision-recall曲線:
在這裡插入圖片描述
Pascal VOC Challenge

接下來說說AP的計算,這裡參考的是Pascal VOC Challenge的計算方法。首先設定一組閾值,[0, 0.1, 0.2, …, 1]。然後對於recall大於每一個閾值(比如recall>0.3),我們都會得到一個對應的最大precision。這樣,我們就計算出了11個precision。AP即為這11個precision的平均值。這種方法英文叫做11-point interpolated average precision。

Pascal VOC Challenge是計算機視覺中分類和檢測的一個基準測試,提供了檢測演算法和學習效能的標準影象標註資料集和標準的評估系統。2005年至2012年,該組織每年都會提供一系列的,帶有標籤的圖片,挑戰者通過設計各種演算法來對圖片進行分類,檢測。通過最終的結果來一決高下。

Pascal VOC Challenge自2010年後就換了另一種計算方法。新的計算方法假設這N個樣本中有M個正例,那麼我們會得到M個recall值(1/M, 2/M, …, M/M),對於每個recall值r,我們可以計算出對應(r’ >= r)的最大precision,然後對這M個precision值取平均即得到最後的AP值。
在這裡插入圖片描述
AP衡量的是模型在每個類別上的好壞,mAP衡量的是模型在所有類別上的好壞,得到AP後mAP的計算就變得很簡單了,就是取所有AP的平均值。

非極大值抑制NMS

選出置信度最高的候選框,如果和當前最高分的候選框重疊面積IoI大於一定閾值,就將其刪除。

閾值越高,刪的框越少,剩下的框越多。

當存在多預測目標時,先選取置信度對大的候選框b1,然後根據IoU閾值來去除b1候選框周圍的候選框。然後再選取置信度第二大的候選框b2,然後取出b2候選框周圍的候選框。在這裡插入圖片描述