1. 程式人生 > 實用技巧 >總結Learning Efficient Single-stage Pedestrian Detectors by Asymptotic Localization Fitting

總結Learning Efficient Single-stage Pedestrian Detectors by Asymptotic Localization Fitting

在這裡插入圖片描述
Code

**

Introduction

**
以Faster R-CNN為代表的兩階段通用目標檢測器經過改進後在行人檢測上雖精度較高但速度不給力,主要原因是它需要兩階段的處理:RPN與ROI pooling特徵的分類。
使用一階段的SSD做行人檢測時存在兩個問題,一是雖然速度還可以但在常用的行人資料集上(Citypersons和Caltech)檢測精度的結果較差。
上面的問題使得作者想去搞明白使Faster R-CNN精度高的key,以及如何將這個key轉移到SSD上。
由於SSD和Faster R-CNN都具有先驗框,因此作者認為關鍵是先驗框的兩步預測,一是RPN,二是ROI預測,而不是ROI pooling模組。

基於SSD行人檢測的第二個問題是使用單個閾值訓練造成的。一方面,較低的IoU閾值(例如0.5)有助於定義足夠數量的陽性樣本,尤其是當訓練資料中的行人例項有限時。但是在訓練過程中單個較低的IoU閾值將導致推理過程中會出現許多“接近但不正確”的誤報。另一方面在訓練過程中較高的IoU閾值(例如0.7)有助於在推理過程中拒絕接近的假陽性,但是在較高的IoU閾值下,匹配的陽性數要少得多。
這種正負的定義難題使得很難訓練高質量的SSD,但是Faster R-CNN中的兩步預測緩解了這個問題。
上面的分析使得作者想通過改進本地化和提高IoU閾值來分多個步驟訓練SSD。
Asymptotic Localization Fitting(ALF):它直接從SSD中的先驗框開始,並逐步地演化所有錨框,從而將更多的錨框推近GTbox真值框。
**

Related work

**
以Two-stage的framework衍生出了很多methods來提升檢測效能,包括專注於改進網路架構、訓練策略、輔助上下文資訊挖掘等,但是計算負擔重仍然不可避免。
One-stage檢測器直接回歸先驗框,因此計算效率更高,但與兩級方法相比結果不太令人滿意。
而且在one-stage 的framework上進行行人檢測的工作很少。
以Two-stage方法,尤其是R-CNN系列衍生出了許多行人檢測的方法,包括TA-CNN、DeepParts、RPN+BF、SA-FastR-CNN等。但這些方法相比速度更多的關注於精度。
**

Approach

**
Asymptotic Localization Fitting


通過上述分析我們知道單階段方法次優主要是因為很難要求單個預測器p_n (⋅)在均勻鋪設先驗框的feature map上完美執行。一個合理的解決方案是堆疊一系列預測值p_n^t (⋅)應用於由粗到細的錨框B_n^t,其中t表示第t_th步。
在這裡插入圖片描述
其中T是總的步驟數,B_n^0 表示在第n層鋪設的先驗框,B_n^t 〖表示由B〗_n^(t−1) 得到的錨框。
使用上述方式,也就是隨著錨框的逐步細化,這意味著可以獲得更多的正樣本,後面步驟中的預測器可以用更高的IoU閾值來訓練,這有助於在推理過程中產生更精確的定位。這種方式的另一個優點是,在所有步驟中用不同IoU閾值訓練的多個分類器將以“多專家”的方式對每個錨框進行評分,因此如果正確融合,評分將比單個分類器更有把握。

圖2給出了兩個示例影象,以證明所提出的ALF模組的有效性。從圖2 (a)可以看出,在IoU閾值為0.5的情況下,分配為正樣本的先驗框分別只有7個和16個,隨著ALF步驟的增加,正樣本的先驗框數量逐漸增加,與groundtruth的平均重疊值也在增加。結果表明,前者能向後者交出更多且IOU較高的錨框。
在這裡插入圖片描述
Overall Framework

方法基於一個全卷積網路,該網路產生一組包圍盒和指示是否存在行人例項的置信度分數。基本網路層由用於影象分類的標準網路(例如ResNet-50[18]或MobileNet[20])擷取而來。
以Resnet-50為例,首先從階段3、4和5的最後一層的feature map(表示為Φ3、Φ4和Φ5,圖3(A)中的黃色塊)中發出分支,並在末端附加一個額外的卷積層,以產生Φ6,生成輔助分支(圖3(A)中的綠色塊)。在{φ3,φ4,φ5,φ6 }上執行檢測,大小分別按輸入影象的8,16,32,64 w.r.t .下采樣。對於提議生成,將寬度為{(16,24),(32,48),(64,80),(128,160)}畫素且單個縱橫比為0.41的錨框分別分配給每層的feature map。
然後,在圖3(B)所示的卷積預測器塊(CPB)上添加了幾個用於包圍盒分類和迴歸的堆疊步驟。
在這裡插入圖片描述
**

Training and Inference

**
Training:如果錨框與任何GT的IOU高於閾值u_ℎ,則設定為正樣本s_+,如果IOU低於閾值u_l,則設定為負樣本s_− 。IOU在[u_l,u_h)的錨框則忽略掉。
在每一步t中,結合兩個目標的預測器的多工損失函式為:
在這裡插入圖片描述
這裡的迴歸損失l_loc 為SmoothL1 loss。l_cls 為二分類交叉熵損失。λ為平衡引數。
l_cls 由Foacl loss改進而來,其形式為:
在這裡插入圖片描述
其中,p_i 為樣本i為正的可能性。α和γ為focusing parameter,分別設為0.25和2。
為了增加訓練資料的多樣性,每個影象都增加了以下選項:在隨機顏色失真和水平影象翻轉(概率為0.5)之後,我們首先裁剪原始影象大小為[0.3,1]的色塊 ,然後調整色塊的大小,以使較短的一面具有N個畫素(對於CityPersons為N = 640,對於Caltech為N = 336),同時保持影象的長寬比。
**Inference:**對於每個級別,先從最終預測器中獲得迴歸錨框,並從所有預測器中獲得混合置信度得分。首先濾除分數低於0.01的框,然後將剩餘的所有框以閾值為0.5進行非最大抑制(NMS)合併。

Experiments

在這裡插入圖片描述