論文源址:https://arxiv.org/abs/1704.05776git
開源代碼:https://github.com/xiaohaoChen/rrc_detectiongithub
摘要算法
大多數目標檢測及定位算法基於R-CNN類型的兩階段處理方法,第一階段生成可行區域框,第二步對決策進行加強。儘管簡化了訓練過程,但在benchmark得到較高mAP的結果下,單階段的檢測方法仍沒法匹敵兩階段的方法。網絡
本文提出了一個新的單階段的目標檢測網絡用於克服上述缺點,稱爲循環滾動卷積結構,在多尺寸feature maps上構建目標分類器及邊界框迴歸器。其在語義信息上較深。函數
介紹學習
在許多現實世界的應用中,高精度定位,但粗檢測物體意味着以較高的IOU預測邊界框進行定位。目前,目標檢測依賴於前向卷積網絡的成功應用,大體可分爲兩個分支,其中一個是R-CNN類型的兩階段方法。另外一個是消除區域候選框階段直接訓練獲得一個單階段的檢測器。單階段檢測器更易於訓練並且更有效的部署生產中。然而,在benchmark的測試中,考慮較高IOU的條件下,其優點並不明顯,而兩階段的方法在benchmark上的表現要優於單階段的。本文後文會介紹,上述弱勢並非在複雜場景中沒法目標識別的緣由,但會致使沒法生成高質量的邊界框。以下圖所示。測試
實驗發現大多數低質量的邊界框來自於小目標及重疊目標的失敗定位。在任意情形下,傳統的框迴歸變得愈來愈不可利用,因爲正確邊界框的準肯定位必須由文本信息決定(像封閉區域附近的多尺度信息及特徵),所以,經過利用一些上下文信息的形式來加強處理,進而有效的消除錯誤。Faster R-CNN的RoI Pooling及分類階段能夠看做是經過採樣feature maps從而利用上下文信息的一種簡便方式。ui
本文展現了在單階段網絡中經過融合上下文信息加強處理過程也是可能的。經過RRC結構能夠實現deep in context。有必要時,上下文信息能夠逐漸地,有選擇性的引入邊界框迴歸器中。整個處理過程是數據驅動,並且是端到端的訓練方式。spa
本文貢獻以下:(1)端對端的訓練一個單階段的網絡在知足高精度定位的要求下產生一個很是準確的定位結果。(2)改進單階段檢測器的關鍵是經過RRC結構循環的引入上下文信息到邊界框迴歸器中。設計
方法分析
當前方法的不足之處:
一個魯棒性較強的檢測系統一定能夠檢測不一樣尺寸及大小的物體。在Faster R-CNN中,依賴於在最後一層卷積層上進行3x3的重疊區域的較大的感覺野同時檢測大尺寸及小尺寸的物體。因爲pooling 層的使用,最後一層的Feature map要比輸入圖片的分辨率要小的多。這對小目標的檢測是存在問題的。由於,低分辨率的feature map對小目標的細節表示是薄弱的。將多尺寸的圖片送入網絡是解決上述問題的一種方式,但計算效率仍不足。
SSD提出了一種有效的替換措施。利用大多數CNN網絡中存在的一種狀況進行目標檢測,不一樣層的中間feature maps因爲pooling操做從而具備不一樣的尺寸。所以,能夠,利用高分辨率的feature maps檢測相對小的目標,而利用低分辨率的feature maps檢測相對較大的目標。這種方法的優勢在於不只能夠經過在高分辨率的feature map上進行分類和框迴歸操做從而對小目標進行更高精度的定位,並且做爲單階段的處理方法,要比之前的兩階段處理方法要快的多,由於,這種多尺寸的處理方式相比於原始的backone 網絡並未增長額外的計算量。
然而,SSD仍沒法超越兩階段的處理方法。實際上當在較高IOU的比較上,兩者之間的差距還會加大。下文對SSD的限制進行解釋,並提出解決方法,SSD的數學定義能夠用下式表示。
上式等式(2)能夠發現其依賴較強的假設。因爲每層中的feature map都只負責對應尺寸的輸出,所以,對於每一個自身要足夠的複雜,以致於能夠用於對感興趣物體的檢測及精肯定位。這意味着如下幾個條件(1)要有足夠的分辨率來表示物體的細節信息。(2)將輸入圖片變爲feature maps的函數要足夠的深從而能夠在feature map中構建足夠多的抽象信息。(3)feature maps中包含適量的上下文信息。能夠魯棒的肯定重疊對象,遮擋對象及小目標,模糊物體的準肯定位。從上式能夠觀察到,當k很大時,要比深得多。結果是將第(n-k)層的feature maps變爲檢測輸出,相比要弱一些,同時,要更難訓練一點。而Faster R-CNN並無深度問題,由於region proposals從最後一層的featue map上獲得。
然而,上式仍存在問題,由於其破壞了上面的第(1)個條件,所以,本文認爲定義以下函數用於單階段的目標檢測。函數知足上述前兩個條件,由於輸出的feature maps不只共享相同分辨率的feature maps,並且結合了更深層網絡中的,對等式(2)的改造仍爲單階段的處理方法是值得的。
換言之,若是等式(4)知足第(3)個條件,同時,設計了一個高效的結構能夠對其進行訓練,就能夠克服單階段的不足,同時,甚至在較高的IOU閾值下超過兩階段的方法。
循環滾動卷積
RNN用於條件特徵聚合
本文詳細描述,該函數生成有用的上下文信息用於檢測。對於不一樣的感興趣物體,中的上下文信息不一樣。好比,當檢測小目標時,應該返回包含該目標高分辨率特徵用於表示丟失的細節。當檢測有遮擋的物體時,其會返回包含該目標大量抽象信息,使其遮擋時的特徵具備相對不變性。當檢測重疊物體時,函數應該返回包含邊界信息及高層次抽象信息用於區分不一樣的目標物體。然而,對於像中間層的特徵信息,上述的全部上下文信息均可以從其低級層或者上檢索到信息。難點在於很難給人爲固定一種規則在H中由至來檢索合適的feature maps。並且人爲選擇q及r是困難的。所以,必須從數據中系統的學習特徵檢索及聚合過程。
然而,也許會比較麻煩,由於爲包含不一樣層多個feature maps的幾何,並不明確哪一層應該被包含,對於當前目標應該在feature map上加入什麼操做。所以,從至有用的創建直接映射,必需要利用具備多層非線性且較深的網絡。計算上並不高效,同時單階段網絡也難於訓練。替換方法爲設計一個迭代的處理過程,每一步都改變一點,但一直保持增加。處理過程能夠用以下表達式進行描述。
上式描述過程以下圖,輸入爲I,輸出特徵圖爲,當函數應用於分類及邊界迴歸,輸出僅限於。函數能夠執行特徵融合用於生成足夠的上下文信息。同時,在第2步中獲得,函數輸出一個基於更新後的feature map的一個加強的結果。值得注意的是能夠在訓練的每一步引入一個監督信號從而能夠在特徵聚合中找到有用的上下文信息,從而能夠提升檢測效果。若是和中權重在每一步都是共享的,這是一個循環網絡。因爲循環用於確保每一個步驟都進行特徵聚合,所以沒法被忽略。使每步的特徵融合都很平滑。不然,極易發生過擬合進而致使意想不到的誤差。
RRC模型細節
RRC模型細節
若是對每一個feature map 應用上式(5),就是本文提出的RRC結構。值得一提的是,是的一個函數,同時其直接相關層爲,,若是對於前面兩個feature map有獨立的,在迭代足夠屢次之後,中的值將會被中的全部feature maps所影響。提出的RRC模型以下圖所示。使用精簡後的vgg-16做爲backbone。
網絡的輸入大小爲1272x375x3,原始的conv4_3層及FC7層的尺寸爲159x47x512 ,80x24x1024,另外,在特徵融合前。使用額外的3x3的卷積層來進一步下降通道數至256。相似於SSD,使用conv8_2,conv9_2及conv10_2用於多尺寸的檢測,不一樣點在於RRC中conv8_2層的通道數爲256而不是512。本文經過實驗發現,多尺度特徵圖中處理後的通道數能夠促進特徵聚合。
本文使用一個卷積層及反捲積層來進行特徵聚合。好比,對於conv8_2帶1x1的卷積層用於生成大小爲40x12x19的feature maps,而後,通過ReLU及反捲積層後拼接在FC7層的後面。上圖中全部左箭頭表明進行向下操做,使用,一個卷積層及最大池化層來執行向上特徵融合操做。以conv8-2舉例,一個1x1的卷積跟在ReLU及最大池化層的後面,生成20x6x19大小的feature maps 接在conv9_2。類似的是,全部圖中的右箭頭表明向上操做。因爲左箭頭及右箭頭的操做,將特徵聚合過程爲"rolling"。
RRC 討論
RRC是一個循環的處理過程,每次迭代過程當中收集聚合用於檢測的相關特徵。這些重要特徵包含對具備挑戰性的目標有重要的上下文信息。對於每一個RRC,都有一個單獨的損失函數對其進行指導學習。這能夠確保逐漸導入相關特徵,並在每次迭代中實現指望中的進展。因爲RRC能夠執行屢次,所以,獲得的特徵是"deep in context"。RRC並非針對特定邊界框制定的。所以,能夠利用上下文信息中的深度來檢測每一個目標物體。
損失函數
訓練時,每次迭代都有本身loss 函數,聽從SSD,對目標類別分類的損失函數爲交叉熵損失。Smooth L1 loss用於邊界框的迴歸。
邊界框迴歸及空間離散化
一層中的一組feature maps用於固定邊界框大小的迴歸。因爲邊界框的迴歸爲一個重要的線性過程,若是範圍過大或者feature 過於複雜,邊界框迴歸的穩健性將會受到很大的影響。因爲RRC結構增長了feature maps中大量的上下信息,將不可避免的豐富feature maps,而基於此feature map,對於原目標區域,邊界框的迴歸會更加困難。爲了克服這個問題,並使邊界框的迴歸更加穩健,經過給特定的feature map增長大量的迴歸器來進一步離散化邊界框的迴歸空間,是每一個迴歸器對應更簡單的任務。
實驗
Reference
[1] D.Bahdanau,K.Cho,andY.Bengio. Neuralmachinetranslation by jointly learning to align and translate. In ICLR, 2015. 2
[2] Z. Cai, Q. Fan, R. S. Feris, and N. Vasconcelos. A unified multi-scaledeepconvolutionalneuralnetworkforfastobject detection. In ECCV, 2016. 7
[3] X.Chen,K.Kundu,Z.Zhang,H.Ma,S.Fidler,andR.Urtasun. Monocular 3d object detection for autonomous driving. In CVPR, 2016. 7
[4] X.Chen,K.Kundu,Y.Zhu,A.Berneshawi,H.Ma,S.Fidler, andR.Urtasun. 3dobjectproposalsforaccurateobjectclass detection. In NIPS, 2015. 7
[5] J. Dai, Y. Li, K. He, and J. Sun. R-fcn: Object detection via region-basedfullyconvolutionalnetworks. InNIPS,2016. 2
[6] A. Geiger, P. Lenz, and R. Urtasun. Are we ready for autonomous driving? the kitti vision benchmark suite. In CVPR, 2012. 1, 6