論文源址:https://arxiv.org/abs/1704.05776
開源代碼:https://github.com/xiaohaoChen/rrc_detection
摘要
大多數目標檢測及定位算法基於R-CNN類型的兩階段處理方法,第一階段生成可行區域框,第二步對決策進行增強。盡管簡化了訓練過程,但在benchmark獲得較高mAP的結果下,單階段的檢測方法仍無法匹敵兩階段的方法。
本文提出了一個新的單階段的目標檢測網絡用於克服上述缺點,稱為循環滾動卷積結構,在多尺寸feature maps上構建目標分類器及邊界框回歸器。其在語義信息上較深。
介紹
在許多現實世界的應用中,高精度定位,但粗檢測物體意味着以較高的IOU預測邊界框進行定位。目前,目標檢測依賴於前向卷積網絡的成功應用,大致可分為兩個分支,其中一個是R-CNN類型的兩階段方法。另一個是消除區域候選框階段直接訓練得到一個單階段的檢測器。單階段檢測器更易於訓練而且更有效的部署生產中。然而,在benchmark的測試中,考慮較高IOU的條件下,其優勢並不明顯,而兩階段的方法在benchmark上的表現要優於單階段的。本文后文會介紹,上述弱勢並不是在復雜場景中無法目標識別的原因,但會導致無法生成高質量的邊界框。如下圖所示。
實驗發現大多數低質量的邊界框來自於小目標及重疊目標的失敗定位。在任意情形下,傳統的框回歸變得越來越不可利用,由於正確邊界框的准確定位必須由文本信息決定(像封閉區域附近的多尺度信息及特征),因此,通過利用一些上下文信息的形式來增強處理,進而有效的消除錯誤。Faster R-CNN的RoI Pooling及分類階段可以看作是通過采樣feature maps從而利用上下文信息的一種簡便方式。
本文展示了在單階段網絡中通過融合上下文信息增強處理過程也是可能的。通過RRC結構可以實現deep in context。有必要時,上下文信息可以逐漸地,有選擇性的引入邊界框回歸器中。整個處理過程是數據驅動,而且是端到端的訓練方式。
本文貢獻如下:(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