論文原址:https://arxiv.org/abs/1703.10295
github:https://github.com/lachlants/denet
摘要
本文重新定義了目標檢測,將其定義為用於評估一個規模較大但較為稀疏的的邊界框依賴性的概率分布。隨后,作者確定了一個評價稀疏分布的機制,Directed Sparse Sampling並將其應用至end-to-end的檢測模型當中。該方法擴展了以往SOTA檢測模型,並提高了eval 速率同時減少了人工設計。該方法存在兩個創新點, I: 基於角點的感興趣區域評估器 II: 基於CNNN模型的反卷積結構。最終得到的模型,去掉了人為設計reference boxes的工作量,進而對場景進行適應。
介紹
前向神經網絡在隨機梯度下降的優化方法條件下,通過隨機初始化可以得到很好的收斂性能,同時,特定設計的網絡結構通過訓練機制可以很好的提高模型對未遇見的數據的泛化能力。許多方法介紹其對圖像中軸對齊目標實例的回歸與分類的能力。
本文的重點不是在於提高模型的准確率,而是提高模型的檢測性能。本文貢獻如下:
I. 一種改進的理論用於解釋當代的檢測模型,並設計了一個通用的框架進行描述,如Directed Sparse Sampling
II. 創新的設計了一種更快的感興趣區域評估器,其並不需要手工設計參考框。
III. 創新性的進行反卷積應用並提高了evaluation的速度。
IV. 本文方法的六點強化,在較廣的標准中取得較好的檢測性能。
V. 基於 Theano框架開源了代碼。
相關工作
在基於區域的卷積檢測模型中。一張圖片首先經過Selective search ,RPN等region proposal算法。該算法產生的感興趣區域,然后將其進行rescale到固定維度后送入到基於CNN的分類器中。CNN對感興趣目標區域賦一個概率或者一個NULL的類別(不存在的情況下),並通過線性回歸得到一個改進的邊界框。該方法雖然准確率較高但需要占用較大的計算量(Multiple full CNN evaluations 及預處理) 。CNN大部分的計算量發生在前幾層。Fast R-CNN通過應用一個較淺層的CNN作用到圖像中,然后對每個區域,提取其固定尺寸的特征用於最后的分類。Faster R-CNN區域建議算法結合到CNN中形成了end-to-end的方法,改進了時間效率,同時,region proposal 與分類共享相似的特征。然而,基於區域的CNN檢測算法仍無法滿足實時的性能要求。
在YOLO中,不適用基於區域的region proposal方法,而是選擇一個預定義的矩形格子的檢測器。實際上,YOLO是將區域分類問題融合到RPN當中。基於該方法,CNN一次就可以產生所有detector的輸出,節省了大量的訓練及測試時間。SSD通過模型設計及改進的訓練方法,使得到的結果與基於區域的方法相當。SSD中根據場景認為的設計一些區域來包含圖像中的目標,這點與Faster R-CNN的區域建議框相類似。而本文認為,手工設計限制了不同問題的適應能力。
上述方法的主要區別在於模型如何對待及區分待分類的區域。基於R-CNN的方法通過一些預處理算法采樣稀疏的區域,並對這些區域進行標准化處理。而基於YOLO的方法通過手工預定義的檢測器進行密集的采樣,同時,並未對其區域並未進行標准化處理。密集的方法與當代的實現相適應,相比,稀疏采樣在時間上有一定的優勢。然而,本文提出了一種新的方法,該方法對於基於區域的稀疏方法緩解訓練,使具有場景適應能力,並提高了分類的准確率。而對於非基於區域的模型提高了其訓練及evaluate的速度。
Probabilistic Object Detection
本文針對多分類的目標檢測問題簡歷概率模型,首先評估如下概率分布。,其中
,一個隨機變量,一個類別為
或者NULL類別的概率,該實例由
產生,其中I為輸入圖片。上述公式存在一個前提條件就是,每個邊框中一個類別只有一個實例占據邊框。因此上述定義並不使用據實例級別的處理。但可以作為比如NMS算法的輸入等。
給定一個合適的神經網絡設計,可以通過一個給定邊界框標記的訓練數據集進行評估。然而單獨邊框的數量由
確定,其中(X,Y)代表圖片中的位置,(W,H)表示邊框維度的范圍。這種原始的方法變得十分棘手。在ImageNet數據集中,1000個類別,224x224的圖像,包含有效的邊框基於上述分布大於為629x1e9個數值或者以32位浮點精度存儲2.5TB的計算量。這對於當代硬件是一個十分棘手的問題。
在定位准確性可接受的損失的情況下,對輸出的邊界框進行下采樣是一種有效的方法。比如,通過精心的數據依賴性的手工設計,基於Faster R-CNN及YOLO的方法可以將分布降采樣到1e4到1e5個邊框的級別。這些框通過對一個局部區域更可能為邊框的部分進行線性回歸來進行增強。
相比於大規模的下采樣,本文利用一種現象,由於模糊等因素,本文期望邊框中很小的子集包含類別實例而不是NULL。因此,本文建立了一一種基於最強回歸能力的CNN用於評估在實時的操作喚醒中的高度稀疏分布。
Directed Sparse Sampling (DSS)
本文使用Directed Sparse Sampling 來表示應用於兩階段CNN的聯合優化方法。其中一個stage用於評估用戶定義的感興趣的值肯能發生的位置。另一個stage用於稀疏的區分定義的值,比如,基於R-CNN的檢測模型,對更可能包含非NULL類別的框進行評估,然后,對這些邊框進行分類。
Corner-based RoI Detector
這里介紹了用於高效感興趣區域評估的邊框角點評估的概念。通過評估一張包含實例的圖片中每個像素存在四個角點類型之一的概率來實現。,變量t為一個二值變量代表角點類型之一存在。其代表輸入圖片中位置(x,y)有出現角點中一個類型
的概率。本文認為由於自然中的移動不變性的原因,可以通過在數據集上進行訓練得到的一個標准的CNN對角點的分布進行評估。
有了定義后的角點分布,通過對邊框中的每個角點使用朴素貝葉斯分類器來評估邊框B中包含實例的概率。
其中,,表示邊界框的位置與每個角點類型k的聯系。為方便,定義了一個具有最大非NULL類別概率
的NXN的邊界框作為采樣邊界框作為采樣邊框
。變量N參考了計算以及內存需求模型可以檢測的最大的數量。當潛在的非NULL邊框建立后。從corner detector得到的預定義長度的特征向量傳送到最終的分類階段。因此,最終分類階段的函數形式為
其中,為單獨由采樣邊框
定義的特征向量。該特征與每個邊框是相互獨立的,這很重要。否則,如果
是相同的,則分類器將得不到任何區分邊界框之間的信息。構建特征向量的方法仍然值得討論,本文通過在預定義的位置處將最近的相鄰采樣特征進行串聯。特征向量中忽略了邊框的中心位置,因此,分類器可能會分不清圖像的偏移。
Training
訓練時,網絡首先,初始化前向傳播產生采樣邊框Bs。然后,本文結合ground truth boxes對采樣框Bs進行增強,進而隨機生成樣本。然后,對增強的采樣邊框樣本傳播其用於生成最終的分類分布
,同時更新邊框的參數。在進行梯度下降時,為了能夠進行end -to -end訓練,采樣邊框Bs保持固定。因此,可以結合邊框的分類以及評估任務對角點檢測網絡進行優化。在基於SGD的反向傳播過程中,前向傳播算法是一個十分重要的預處理過程。DeNet網絡並未引入任何時間上的損失。流程如下
DeNet模型同時優化角點概率分布,最后的分類分布及邊框回歸,損失如下
表示corner 及 分類分布的ground truth,
表示邊框的ground truth。
,為人為定義的常量,用於控制上述各個成分的重要度。
將每個成分標准化為1。角點分布
,將每個ground truth 的實例角點映射至corner map中的一個位置上,超過邊界的角點被舍棄。檢測分布
通過計算采樣邊框Bs及groundtruth box之間的IoU得到。通常,回歸目標邊框
通過選擇IoU最大的ground truth來確定。
檢測模型
殘差神經網絡已被證實可以在大規模的數據集上表現較強的回歸能力。本文分別選擇ResNet-34,ResNet101作為base來搭建DeNet-34及DeNet-101兩種模型。對每個基本模型,調整輸入大小為512x512,移除最后的均值池化及全連接層,同時在角點檢測器后增加了兩個反卷積層。角點檢測器用於生成交角點分布,同時,通過在每個位置學習一個Fs特征的映射來產生一個特征采樣map。反卷積層引入在base model中丟失的空間信息。因此,feature map及角點分布可以在更大的空間分辨率上進行定義計算。Corner detector 后面接着是稀疏層。用於觀察由corner detector檢測出的角點,同時生成一系列采樣邊框即RoIs。RoI用於產生來自feature sampling maps的NxN的特征向量。本文從4.2M個有效邊框中采樣NxN個白內框。通過提取與7x7網格相關的最相近的采樣特征即邊框的寬及高來構建特征向量。生成一個7x7xFs+2個值的特征向量。作為邊框角點最相鄰的特征采樣maps有相同的大小的分辨率,因此,使用相鄰采樣也足夠。最后,特征向量傳入到一個較低的全連接網絡中用於產生最終的分類,並對每個采樣RoI微調邊框。表一表二代表新添加的層,如下
Conv: 一系列2D卷積作用在輸入激活層中。filter 權重通過正態分布進行初始化,其中,nf代表filters的數量(nx,ny)代表其空間外形。每個卷積后面接着BN,ReLU。
Deconv: 應用一個可學習的反卷積(上采樣)操作,后面接着ReLU激活。其等價於放大了兩個維度然后應用一個卷積層。
Corner: 基於softmax函數來評估一個角點分布,同時產生一個采樣feature map。
Sparse:根據角點分布頂一個采樣邊框同時從采樣feature maps上得到一個固定的采樣特征。
Classifier: 基於softmax函數將激活層映射為目標概率分布同時產生邊框目標。
Skip Layer Variant
將DeNet模型增加一個跳躍結構。本文中,將base 模型的最后一層輸出與Deconv層進行連接,二者具有相同的空間維度。每個skip 層執行一種線性映射,在激活層 之前將二者的feature maps進行相加操作。
Wide Variant
通過另外的Deconv及Skip層將一個128x128的空間分辨率用於角點及特征采樣maps。將N增加至48產生2304個RoIs。該方法由於增加了CPU的分類負擔進而造成了一定時間上的損耗。
訓練細節
優化方法:Nesterov style SGD initial learning rate: 0.1 momentum: 0.9 weight decay: 0.0001 batch size: 128
Identifying Sampling Bounding Boxes(RoIs)
用於快速搜索非NULL邊框中角點分布的簡便算法
1. 搜索關於角點的角點分布,
2. 對於每個角點類型,選擇可能性最大的M個角點
3. 通過匹配CM中的top-left及bottom-right角點來產生一系列獨立邊框。
4. 通過最上面的等式1計算得到每個邊框為非NULL的概率。
5. 重復2,3操作作用於top-right,bootom-left角點。
6. 通過概率對邊框進行排序,並選擇N^2個最大的用於生成采樣邊框Bs。
由於大量角點落於步驟1中,因此,相比傳統的檢測所有可能的邊界框,本文方法速度更快。
Results
Reference
[1] M. Everingham, L. Gool, C. K. Williams, J. Winn, and A. Zisserman. The pascal visual object classes (voc) challenge. Int. J. Comput. Vision, 88(2):303–338, June 2010. 2, 3, 7, 8
[2] G. Ghiasi and C. C. Fowlkes. Laplacian pyramid reconstruction and refinement for semantic segmentation. In European Conference on Computer Vision, pages 519–534. Springer, 2016. 4
[3] R. Girshick. Fast r-cnn. In Proceedings of the IEEE International Conference on Computer Vision, pages 1440–1448, 2015. 2, 3
[4] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Regionbased convolutional networks for accurate object detection and segmentation. IEEE transactions on pattern analysis and machine intelligence, 38(1):142–158, 2016. 1, 2