論文原址:https://arxiv.org/abs/1509.04874
github:https://github.com/CaptainEven/DenseBox
摘要
本文先提出了一個問題:如何將全卷積網絡應用到目標檢測中去?本文提出DenseBox,一個集成的FCN 框架可以直接在圖像的位置上預測出目標物的邊框及類別。本文兩方面貢獻:(1)FCN可以用於檢測不同的目標(2)在多任務學習過程中結合landmark定位可以進一步提高對目標的檢測的准確性。
介紹
本文只關注一個問題,即如何將FCN應用到目標檢測當中去?本文提出DenseBox不需要生成proposal,在訓練過程中也可以達到最優。與現存的基於滑動窗的FCN的檢測框架相類似,DenseBox更偏重於小目標及較為模糊目標的檢測。本文通過對DenseBox訓練,使用hard negative mining技術來提升檢測性能。為了進一步提高,后面多任務聯合學習結合了landmark定位來進一步提升性能。
DenseBox for Detection
DenseBox的整體流程如下圖所示,單一的卷積網路同時輸出不同的預測框及類別分數。DenseBox中的所有目標檢測模塊都為全卷積網絡結構,除了NMS處理部分,因此,proposal的生成是沒有必要的。測試時,輸入圖片大小為(mxnx3),輸出為(m/4 x n/4 *5),將目標邊界框左上角及右下角的點的坐標域定義為及
,則第i個位置的像素的輸出feature map用一個5維向量描述
其中s^代表為目標的分數,剩余幾個變量代表輸出邊界框於真是邊框之間的距離。最后對帶有邊框及類別分數的框進行NMS處理。
Ground Truth的生成
沒有必要將整張圖片送人網絡中訓練,這樣會造成不必要的計算資源的消耗。一種有效的方式是裁剪較大塊包含目標物及足夠背景信息的patches進行訓練。本文進行單一尺度訓練,多尺度測試。
該網絡的訓練方式形似分割的類型,訓練時,圖片被裁剪並調整到240x240的大小,輸出的ground truth 是一個經過4倍下采樣后大小為60x60x5的map,在ground truth map的第一個通道中,positive labeld區域設置一個半徑為rc的圓,該圓位於邊界框的中心。半徑rc與邊界框的大小是成比例的。其縮放系數,針對輸出坐標域中邊框大小設置為0.3。如下圖所示,剩余 的四個通道代表最相近(與ground truth比較)邊框中左上角及右下角像素點的距離。如果patch中存在多個目標,將那些位於patch中心(0.8至1.25)區域的目標標記為正樣本,像素的第一個通道,代表類別的分數,在ground truth中是目標像素值為1,否則為0.本文的方法中每個像素就可以產生一個邊框,因此,可以將每個像素當作一個訓練樣本。
模型設計
網絡結構如下圖所示,基於VGG19進行的改進,整個網絡包含16層卷積,前12層由VGG19初始化,輸出conv4_4后接4個1x1的卷積,前兩個卷積產生1-channel map用於類別分數,后兩個產生4-channel map用於預測相對位置。最后一個1x1的卷積擔當這全連接層的作用。
多層次特征融合
Part-Level特征關注於目標物的局部細節,進而借此可以區分外形的不同,然而object-level或者high-level特征通常通過一個較大的感受野來對目標進行識別。感受野的范圍越大,其上下文信息越豐富,越有利於提高准確性能。本文將conv3_4與conv4_4進行了拼接處理。conv3_4感受野的大小為48x48,與本文的訓練目標尺寸大小相似,而conv4_4的感受野更大,為118x118,可以有效的利用全局的文本及上下文信息用於檢測。而conv4_4的feature map是conv3_4的一半,因此首先將其進行上采樣至相同的分辨率。
多任務學習
本文使用基於ImageNet預訓練的VGG19網絡來初始化DenseBox,實際只初始化了前12層卷積,其余的卷積層使用新的卷積替換,並使用xavier進行初始化。
與Fast R-CNN相似,本文也存在兩個子分支輸出,第一個輸出為目標的類別分數(輸出map中的每一個像素),ground truth label為y* 屬於{0,1},分類的損失定義如下,使用L2損失(Hinge 損失及交叉熵損失),L2損失效果已經很好。
第二個分支輸出邊界框的回歸損失,定義如下,用於最小化目標偏移及預測偏移之間的L2損失。
平衡采樣
在學習過程中,負樣本的采樣挑選是至關重要的部分。如果簡單的將mini-batch中的所有負樣本都進行處理,將會使模型傾向於負樣本。另外,檢測器遇到正負樣本之間的樣本時會發生塌陷。本文使用一個二值mask輸出像素,用於決定是否為訓練樣本。
忽略灰度區域
將正負區域之間的區域定義為忽略區域,該區域的樣本既不是正樣本也不是負樣本,其損失權重也應設置為0。在輸出坐標空間中,對於每一個非正標記的像素,只要其半徑范圍2內存在任意一個帶正標記的像素,則ignore flag fign設置為1。
Hard Negative Mining
通過尋找預測較差的樣本來提高學習效率。經過negative mining后,分錯的負樣本更容易被挑出來,對於這些樣本基於隨機梯度下降的學習可以產生噪音小而且更為魯棒的預測。negative mining可以通過在線提升來提高性能。在前向傳遞過程中,按分類損失將像素按降序排列,top1%的為hard-negative。在實驗中,將positive於negative的比例設置在1:1.在negative samples中,一半來自於hard-negative,剩余的從非hard-negative中隨機采樣。為了方便,將被挑選的像素設置標記fsel=1.
Loss with Mask
為每個樣本,定義mask
,函數如下
本文的整體損失為,回歸損失只對正樣本起作用,本文將目標d*除以標准目標的高(ground truth map中為50/4)進行正則化,設置
細節增強
將特定尺寸中心處包含目標中心的輸入patch稱為"positive patch",這些patches在正樣本的周圍只包含負樣本。本文將輸入圖片中隨機進行裁剪,並resize到相同的大小送入網絡中,這類patch稱為"random patches","positive patch"與"random patch"的比例為1:1,另外,為了提升網絡的魯棒性,對每個patch進行了jitter操作,left-right flip,translation shift(25個像素),尺寸變形([0.8,1.25])
基於mini-batch的SGD訓練,batchsize=10,loss及梯度通過貢獻的像素個數進行正則化。global learning rate開始為0.001,每100K迭代,學習率衰減10倍。momentum設置為0.9,權重衰減為0.0005
Refine with Landmark Localization
在DenseBox中由於是全卷積網絡,因此,基於landmark定位可以通過簡單添加一些層來進行實現。通過融合landmark heatmaps及目標score maps來對檢測結果進行增強。如下圖所示,增加了一個分支用於landmark定位,假設存在N個landmarks,landmark 定位分支將會輸出N個響應maps,其中,每個像素值代表該位置為landmark的置信分數。該任務的ground truth maps與檢測的十分相似,對於一個landmark 實例,landmark k的第i個實例,其對應的ground truth 是位於輸出坐標空間中第k個響應 map上的positive 標記的區域。半徑rl應當較小從而避免准確率的損失。與分類任務相似,landmark 定位損失也是定義為預測值與真實值的L2損失。同樣使用negative mining及ignore region。
將分類score map及landmark localization maps作為輸入的增強分支的最終輸出用於增強檢測結果。通過一些高層次空間模型來了解landmark confidence及邊界框分數的方法來進一步提高檢測性能。本文使用帶ReLU的卷積來近似空間模型,增加了增強分支后的整體損失函數如下所示。
Experiment
References
[1] Y. Bengio, A. Courville, and P. Vincent. Representation learning: A review and new perspectives. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 35(8):1798–1828, 2013.
[2] G. Bertasius, J. Shi, and L. Torresani. Deepedge: A multi-scale bifurcated deep network for top-down contour detection. arXiv preprint arXiv:1412.1123, 2014.
[3] X. Chen, K. Kundu, Y. Zhu, A. Berneshawi, H. Ma, S. Fidler, and R. Urtasun. 3d object proposals for accurate object class detection. In NIPS, 2015.
[4] R. G. Cinbis, J. Verbeek, and C. Schmid. Segmentation driven object detection with fisher vectors. In Computer Vision (ICCV), 2013 IEEE International Conference on, pages 2968– 2975. IEEE, 2013.