于 洋,王 晴,宋建輝
(沈陽理工大學 自動化與電氣工程學院,沈陽 110159)
隨著計算機和傳感器技術的迅速發展,室外移動機器人在軍事、科研等領域都得到了成功的應用,既可以代替士兵完成戰場偵查、巡邏等危險任務,也可以幫助人類完成外星和某些考古遺跡的勘探、樣本采集和分析工作[1],室外障礙物檢測技術成為研究者日益關心的研究方向。
針對室外環境的障礙物檢測,Gao等提出了以可行性區域檢測為任務的檢測方法[2];Kong等提出了以消失點檢測為任務的檢測方法[3];這些方法以檢測任務為導向,識別目標明確,不需要人為標記的訓練數據,但環境理解的內容有局限[4-5];Bischof等提出條件規則產生(Conditional rule generation,CRG)方法[6]。但這些方法不能滿足復雜環境下的障礙物檢測,檢測效率較低。
在目前常見的深度學習目標檢測方法[7]中,基于區域候選的神經網絡模型準確率相對較高,但速度較慢,不能滿足實時性的需求;基于回歸的目標檢測算法可以滿足實時的復雜環境障礙物檢測,然而在小物體目標檢測方面效果較差。
本文針對基于回歸的網絡模型算法中小目標障礙物漏檢嚴重的問題進行改進,通過在基礎網絡層中增加擴張卷積[2]、使用K均值聚類[8]等方式,在保證障礙物檢測實時性的同時,降低小目標障礙物的漏檢率,對于深度學習技術進一步應用于室外障礙物檢測具有重要意義。
SSD(Single Shot Multi-Box Detector)算法[9]的原理是在基礎網絡后添加多個卷積特征層,用卷積濾波器產生固定的預測集合,預測不同尺度預測框對于默認邊界框的置信度。同時對標簽的位置和類別信息進行處理后,使預測框與相應的默認框對應,并根據兩者的杰卡德相似性系數來尋找對應的預測框。

(1)
式中Lconf為多類別置信損失,定義如式(2)所示。

(2)



函數損失的值僅由正樣本計算得到。SmoothL1的計算如式(4)所示。
(4)
原算法在PASCAL VOC數據集上進行訓練,平均檢測準確率mAP為74.3%,檢測速度為45FPS。
原SSD算法的網絡框架如圖1所示。

圖1 SSD算法網絡結構圖
使用VGG-16網絡模型的前5層進行特征抽取,輸入數據進入各個卷積層的變化如表1所示,conv4_3特征圖的分辨率縮小到1/8,在conv5_3縮小到1/16,導致輸入圖片的特征信息有較大的損失。
因對小目標檢測需要較高的圖像分辨率,而SSD算法主要在語義信息不夠豐富的底部特征層進行檢測;另一方面,卷積神經網絡結構的最底層特征圖過小,之后的檢測和回歸都無法滿足要求,故對此進行改進。

表1 VGG-16各網絡層參數
擴張卷積[10]是增加了名為膨脹率的超參數的卷積模型。感受野經過普通卷積層和擴張卷積層后的變化對比效果如圖2所示,左邊為經過普通卷積層稀疏特征提取得到的感受野,分辨率僅為原圖的1/4;右邊為經過擴張卷積后的稠密特征提取過程,輸入數據經過更大的延拓和卷積運算,輸出的分辨率提高,降低了特征圖的信息損失。

圖2 感受野的變化對比
然而擴張卷積的加入會導致信息連續性的損失。由較大膨脹率所得到的信息只對一些大物體分割效果明顯,對于在高速條件下的小物體檢測有弊無利。根據文獻[11],混合空洞卷積框架(Hybrid Dilated convolution,HDC)結構可以緩解圖像網格化所產生的影響,使輸出的感受野沒有任何空洞和邊緣丟失,完全覆蓋整個圖像區域,比普通擴張卷積獲取更寬闊的區域信息。本文在前端網絡中加入一種膨脹率滿足式(5)的HDC卷積,增強對小物體的檢測效果。
Mi=max[Mi+1-2ri,Mi+1-2(Mi+1-ri),ri]
(5)
式中:ri為第i層的膨脹率;Mi為兩個非零點間的最大距離,即在第i層最大的膨脹率。
HDC可使用任意的擴張率,擴大了接收野且不需要添加額外的模塊。使用不同擴張率的擴張卷積,能同時滿足小目標和大目標兩者的分割要求。
結合經典SSD算法網絡框架和HDC型擴張卷積的工作原理,具體改進措施如下。
(1)在步長分別設置為4和8的conv3-3和conv4-3兩個卷積層同時提取特征,并將得到的特征進行歸一化處理;
(2)使用膨脹率分別為(1,2,3)的H型擴張卷積替換VGG-16網絡的fc-6、fc-7層和池化層,從中進行采樣得到參數;
(3)將網絡的最大池化層均轉換成感受野為3×3、擴張率為2的擴張卷積層,并增添HDC卷積結構。
上述改進措施可以在保證感受野的同時使得特征圖的分辨率變化較小,精細網絡輸出結果。改進后的前置網絡結構如圖3所示。

圖3 前置網絡結構
改進后的基礎網絡參數如表2所示。
SSD算法引入默認框來預測目標物體的位置信息。網絡中的目標預選框通過softmax分類和目標框回歸獲得真實目標的位置。前置網絡后的每一張特征圖將按照不同的大小和長寬比生成k個默認框,每個默認框的大小計算如式(6)所示。
(6)


表2 各網絡層參數對比
原SSD算法的目標框維度寬高比為一組人為選取的固定的數值比例,樣本數據在網絡的訓練過程中得到的預選框維度往往不具有足夠的代表性。本文提出基于K均值聚類生成預選框的改進方法,即不使用人為取值的目標預選框,而是通過K均值算法對目標數據集的位置標簽進行聚類實驗,確定預選框的維度寬高比,使改進后的網絡更易學習到準確的預測位置。
對目標框維度的聚類操作如下:首先根據輸入標簽數據的位置信息計算出預選框的維度值,由式(7)將其轉換為相對于柵格邊長的比例i(i∈(0,1));其次取k個對象作為初始聚類中心,進行聚類實驗;最后把得到的聚類中心的維度比例值作為預選框比例值,由改進SSD算法通過預選框直接預測坐標。
(7)
式中:md表示降采樣倍率;wr表示預選框的寬度;wk表示輸入圖像的寬度;hr表示預選框的高度;hk表示輸入圖像的高度。
原算法中,預選框的比例共5種,實驗選取k=5,以數據集中車、人和自行車三類數據目標框作為初始數據輸入,進行目標框維度聚類實驗,得到的預選框比例如表3所示。

表3 預選框比例值
根據表3中數據可知,標簽為車的樣本目標框寬高維度比例大概為(3.5,3,2.3,1.5,1);標簽為人的樣本目標框寬高維度比例大概為(1,0.8,0.7,0.5,0.2);標簽為自行車的樣本目標框寬高維度比例大概為(2,1.6,1.3,1,0.5)。選擇其中最大、最小和出現頻率較高的四個數據作為改進算法的預選框的寬高比,即使用更符合樣本的(7/2,2,3/2,1,1/2,1/4)作為改進SSD算法的預選框的寬高比,提高算法對特定障礙目標的預選框生成速度,進一步提高算法的檢測速度。
SSD算法中多級別的物體基本尺寸比例大小為0.1至0.8,即當輸入為1024×1024時,最小網格大小為102×102,對于分辨率較低的小目標障礙物仍然過大。
為了多級別障礙物在網絡模型中能具有較好的輸入,綜合各類別的數據集的預選框寬高比聚類結果,使用(7/2,2,3/2,1,1/2,1/4)作為改進SSD算法的預選框的寬高比,調整默認框與原始圖像的比例為[1/32,1/16,1/8,1/4,1/2,1],增加網絡對小目標障礙物的敏銳性、減少漏檢情況,使改進算法對小目標障礙物的定位更加精確。
實驗硬件配置:Intel Xeon E5-1603 v4處理器、2x GeForce GTX1080顯卡,32GBRAM的服務器。軟件環境配置:Ubuntu16.04系統、CUDA、OpenCV、tensorflow框架。
改進網絡模型在訓練過程主要超參數的設置如表4所示。

表4 超參數設置
實驗選取PASCAL VOC數據集進行訓練和測試,訓練數據集與測試數據集比例為9∶1。訓練損失圖像如圖4所示。其中橫坐標為迭代次數,縱坐標為訓練loss值。

圖4 改進算法損失曲線
從圖4中可以看出,使用Momentum SGD算法進行模型的訓練實驗,迭代次數在4000次以內時,使用較大的學習率,損失函數曲線下降速度較快;當迭代次數達到8000次,損失函數曲線波動變小;減小訓練使用的學習率數值,繼續對網絡模型的訓練,直到損失曲線的波動更加平緩,且趨近于零,得到針對室外障礙物檢測的網絡權重數據。
為證明在小物體目標檢測上改進SSD算法的檢索能力更強,選取一系列具有代表性的樣本圖片進行針對性對比,測試數據中人、車、自行車三種類別的目標障礙物數量基本平均,定義分辨率小于70×70的障礙物為小目標,測試樣本中標注物體共1142個,屬于小目標的標注物體共972個。
以其中較易觀測的樣本作為代表,兩種算法的檢測效果對比如圖5所示。

圖5 檢測效果對比
圖5a、圖5c為原算法檢測效果,圖5b、圖5d為改進算法的檢測效果。圖5a、圖5b中共5個目標物體,其中人、自行車以及存在部分遮擋的汽車3個目標物體可被認做小目標障礙物;原算法均未對圖像中的小目標障礙物做出準確檢測;改進算法檢測出2個小目標物體,漏檢圖中存在部分遮擋的汽車障礙,且檢測出的類別置信度較原算法均有提高。圖5c、圖5d中共7個目標物體,被大車遮擋的2人和遠處的3車和1人可被視作小目標障礙物;原算法檢測出1個小目標障礙;改進算法檢測出3個小目標障礙;漏檢被大車嚴重遮擋的1人和遠處分辨率過低的1車1人。實驗結果表明,在輸入圖像分辨率較好的情況下,改進SSD算法能檢測出更多的小目標障礙物,且類別置信度和定位精確度皆高于原算法。
檢索能力由F表示,其表達式如式(8)所示。
(8)
式中:P為準確率;R為召回率。
由于同一目標檢測算法對不同的數據類別的識別差異較大,分別把三類數據樣本分為六組進行實驗比較,并根據多數據輸入得到的F值繪制原算法與改進SSD算法的小目標檢索能力對比,結果如圖6所示。

圖6 小目標檢索能力對比
綜合所有小目標數據集實驗結果,原算法的F值為0.51,改進算法的F值為0.62,提高了21.5%。
在多類別目標檢測中,存在檢測目標的樣本被稱為正樣本(P),存在非檢測目標的為負樣本(N)。通常由平均準確率(mean Average Precision, mAP)衡量檢測器在所有類別上的性能好壞,其計算方式為計算完每個類別的平均檢測精度(AP)后再取所有類別的平均值。mAP的計算方式見公式(9)。
(9)
每個類別的AP值為PR(precision,recall)曲線的線下面積。PR曲線根據F1獲得,F1的計算方法如式(10)所示。
F1=2×p×r×(p+r)
(10)
式中:p為準確率;r為召回率。
IoU(Intersection over Union)是指模型預測得到的目標框和真值框之間交集與并集的面積比值,使用IoU作為判定目標是否被檢測到的依據,實驗選取0.5作為IoU閾值對算法的檢測精度進行評估,以PASCAL VOC2007中測試數據集中的車、自行車、人標簽的數據為測試樣本,分別對本文改進算法與原SSD算法、YOLO算法、Faster R-CNN等目前流行的目標檢測算法進行比較,計算其關于室外障礙物相關類別的mAP值和算法的檢測速度(FPS),實驗結果如表5所示。

表5 各目標檢測算法對比
從表5中可以看出,在輸入圖像的尺寸為300×300的情況下,四種檢測算法中,Faster R-CNN、原SSD算法和本文的改進算法在檢測準確率上表現較好,但Faster R-CNN算法模型的速度過慢,不能滿足場景所需的實時檢測需求。本文提出的改進算法mAP為78.0%,和原SSD算法相比提高了3.9個百分點,且在針對各個類別的檢測上皆有一定程度的提升。由于改進模型在前置網絡上增加了多尺度的HDC提取特征,模型的檢測速度相較原SSD算法下降了8FPS,但仍可滿足室外環境下的實時檢測的需要。
針對室外小目標障礙物檢測提出一種以SSD算法為基礎的改進算法。本算法通過在網絡結構中增添HDC新型卷積、fc層轉換為HDC卷積網絡層進行采樣,減少圖像經過卷積層后的信息損失,精細網絡的輸出結果;使用K-means聚類法提取數據集圖像目標框的維度,計算預選框的長寬比例,并調整默認框與原始圖像比例值,增加網絡對小目標障礙物的敏銳性,精確本算法對目標的定位。實驗結果表明,改進SSD算法相比于傳統目標檢測算法在小目標的檢索能力和檢測準確率上均有較大進步,能夠在圖像分辨率較低的情況下對小目標障礙進行準確迅速的檢測,滿足實時檢測的需求。