葛 雯,馬 樂,屈樂樂
(沈陽航空航天大學電子信息工程學院,遼寧 沈陽 110136)
道路交通事故發(fā)生頻率不斷增加使人們逐漸正視交通安全問題,如不采取有效措施來提高交通安全質(zhì)量,人身安全將會受到巨大的威脅。近年來,由于深度學習技術(shù)取得了突破性進展,計算機視覺及工業(yè)自動化技術(shù)也得到了顯著提升。尤其在智能汽車領域,無人駕駛更是得到廣泛的關(guān)注。在無人駕駛的系統(tǒng)中,目標檢測能夠為無人駕駛車輛提供安全保障,是重要的關(guān)鍵技術(shù)。隨著科學技術(shù)的發(fā)展,深度學習逐漸成為目標檢測領域最有效的方法之一,隨之而來的卷積神經(jīng)網(wǎng)絡也成為了具有代表性的神經(jīng)網(wǎng)絡之一。卷積神經(jīng)網(wǎng)絡具有較強的自主學習、并行處理和容錯能力,其代表算法有:R-CNN[1]、Fast R-CNN[2]、Faster R-CNN[3]、SSD[4]、YOLO[5]等。本文將SSD模型進行了改進,對高速公路環(huán)境下無人駕駛中的圖像數(shù)據(jù)進行學習訓練及目標檢測,并通過仿真實驗驗證了該模型的檢測效果,能夠滿足對大量圖片數(shù)據(jù)進行準確、高效的目標檢測需求,為無人駕駛汽車目標檢測技術(shù)提供參考價值。
截至目前,SSD是最有效的主流目標檢測框架之一,它將目的框的輸出空間離散成一組具有不同形狀和尺寸的默認框。SSD繼承YOLO的回歸思想,能夠一次性完成目標的定位及分類,還繼承了Faster R-CNN的Anchor機制。采用回歸思想能夠?qū)碗s的神經(jīng)網(wǎng)絡計算化為簡單的回歸問題,從而提高算法的運行速度及實時性;采用Anchor機制能夠達到在不同尺寸的特征圖上產(chǎn)生不同預測的效果,從而提高檢測的精度。與此同時,SSD采用基于特征金字塔(Pyramidal Feature Hierachy)的檢測方法,即能夠達到在不同感受野的特征圖上預估目標,從而取得良好的檢測結(jié)果。相比于Faster R-CNN,SSD更具有實時性,而相比YOLO,其mAP也得到了顯著的提升,其在VOC2007數(shù)據(jù)集上的性能對比如表1所示。
表1 Faster R-CNN、SSD、YOLO性能對比
SSD以檢測速度快、準確率高等優(yōu)點進入大眾的視野,是一種單次檢測的深度神經(jīng)網(wǎng)絡。它在YOLO的基礎上進行了改進,將特征提取從整個特征圖縮小到局部。SSD網(wǎng)絡結(jié)構(gòu)包括基本網(wǎng)絡、輔助卷積層和預測卷積層,并以VGG16(visual geometry group)作為基本的網(wǎng)絡模型,之后在VGG16中加入不同的卷積層,從而得到不同尺度的特征圖,用于目標檢測。VGG16作為基本模型,首先在ILSVRCCLS-LOC數(shù)據(jù)集上對模型進行預訓練,然后利用DeepLab-LargeFOV將兩個完全連通的層(fc6和fc7)替換為普通的3×3和1×1卷積層(conv6和conv7)。在此基礎上,再增加幾個新的卷積層。其中,在檢測初始特征圖時需要利用conv4_3卷積層,隨后從新增加的卷積層中提取部分卷積層用于檢測其它特征圖,最終產(chǎn)生1*1的輸出。SSD300網(wǎng)絡結(jié)構(gòu)圖如圖1所示。
圖1 SSD網(wǎng)絡結(jié)構(gòu)圖
SSD采用了Faster R-CNN中anchor的機制,能夠把每一個特征圖轉(zhuǎn)化成不同尺寸、不同長寬比的默認框,預測框會以這些默認框為基準進行目標的預測,從而降低樣本訓練難度。默認框是在某一個特征圖上每一點處選取的長寬比不同的選框,以特征圖上的每一個點的中心為中心,能夠產(chǎn)生一系列同心的默認框。多數(shù)情況下,每個特征圖將首先設置一些不同大小和不同縱橫比的默認框。默認框的設置包括兩個方面:尺度和縱橫比。在每個特征圖中設置的默認框的數(shù)量是不同的。每個特征圖的默認框的大小遵循線性增加的原則,即默認框的大小隨著特征圖尺寸的減小而線性增加,其計算公式如式(1)所示
(1)
(2)
(3)
1) 分類網(wǎng)絡輸入的唯一來源是不同層的特征圖,這樣可能會導致同一個物體被不同尺寸的框同時檢測出來,從而使檢測結(jié)果不準確;
2) 模型中正樣本與負樣本極其不均衡,使模型訓練困難,模型的準確度略低;
3) 由于SSD模型使用了conv4_3低級特征卷積層來檢測較小的目標,缺少高級層的語義特征,存在特征提取不完整的問題,導致對小尺寸的物體檢測效果不佳;
4) SSD網(wǎng)絡中default boxs的基礎大小和形狀不能直接通過學習獲取,必須要手工設置。每一個特征卷積層所使用的默認框的尺寸和形狀都是不同的,在后期的調(diào)試帶來了極大的難度,尤其依賴工程師的經(jīng)驗。
針對傳統(tǒng)SSD算法以VGG16或VGG19作為基礎網(wǎng)絡,通過不同層的特征來對目標進行檢測,使其對尺寸的變化有較好的魯棒性,但在計算過程中參數(shù)較多、計算量較大,容易出現(xiàn)誤檢、漏檢等問題。本文引入DenseNet網(wǎng)絡模型,加強層與層之間的特征傳播,減少參數(shù)量的同時也減少了計算量,該網(wǎng)絡模型能夠有效地緩解梯度消失的問題,使圖像特征向更深層次傳播。除此之外還結(jié)合了空洞卷積(Dilated-Convolution)改進DenseNet網(wǎng)絡模型,構(gòu)成D-DenseNet網(wǎng)絡模型,以此代替?zhèn)鹘y(tǒng)SSD算法中的VGG16,從而提高模型的檢測速度和準確度。
DenseNet模型在ResNet模型基礎上做出創(chuàng)新,是近兩年新興的模型結(jié)構(gòu),由于連接方式的改變,使其相比于ResNet在各大數(shù)據(jù)集上都取得了更好的效果。DenseNet不通過增加網(wǎng)絡層數(shù)、擴寬網(wǎng)絡結(jié)構(gòu)來提高網(wǎng)絡的性能,它通過特征重用和旁路設置,提高了特征的傳播效率和利用效率,減少了網(wǎng)絡的參數(shù)量,又在一定程度上緩解梯度消失的問題,是一種前饋方式的密集連接型網(wǎng)絡。
假設輸入圖片為X0,經(jīng)過一個M層的神經(jīng)網(wǎng)絡,其中第i層的非線性變化記為Hi(*),Hi(*)是各種函數(shù)的累加,如:ReLU、BN或Conv等。如果第i層的特征輸出表示為Xi,則DenseNet的非線性變換方程如式(4)所示:
Xi=Hi([X0,X1,…,Xi-1])
(4)
例如在DenseNet-121中,第i層的非線性變化采用BN、ReLU激活函數(shù)及Conv(3×3)卷積的相結(jié)合的連接方式,在加強網(wǎng)絡各層之間的信息交換的同時,還提高了網(wǎng)絡的訓練效率,其網(wǎng)絡參數(shù)如表2所示。
表2 DenseNet-121網(wǎng)絡參數(shù)
DenseNet網(wǎng)絡共分為兩個組成部分:Dense_Block和Transition Layer,每個Dense_Block中特征圖的尺寸都相同,再對特征圖進行拼接。Transition Layer設置在相鄰兩個Dense_Block之間,負責進行下采樣。過渡層包含多種函數(shù)的累加、1×1的卷積層及2×2的平均池化層,在網(wǎng)絡中,過渡層會把輸入到該層的特征圖數(shù)量減少到原來的一半,從而在一定程度上減少計算量。
本文用改進的D-DenseNet-121代替?zhèn)鹘y(tǒng)SSD模型中用于圖像特征提取的映射卷積層,不僅能夠提高對目標的識別精度,還能極大程度的提高模型的運算速度。DenseNet-121首層為3×3的卷積層,之后輸入的圖像數(shù)據(jù)再經(jīng)過4個Dense_Block,依次為6層、12層、24層、16層,每兩個Dense_Block之間采用非線性變換BN+ReLU6+Conv(3×3)的組合。
為了提高卷積層對小目標的檢測精度,引入反向殘差結(jié)構(gòu)來減少學習過程中非線性變換在低維度中的特征信息損失。為了避免池化操作中特征信息丟失,本文將采用空洞卷積來替代卷積層中的下采樣操作,并將激活函數(shù)ReLU更換為精度更高的ReLU6,ReLU6激活函數(shù)數(shù)學形式如式(5)所示
ReLU6=min(6,max(0,x))
(5)
多尺度信息在目標檢測中起到至關(guān)重要的作用,在空洞卷積中,可以設置不同的參數(shù)來擴大感受野,從而獲得更多多尺度信息,這樣能夠精準定位目標,保證檢測精度。圖2顯示了卷積核尺寸為3×3,擴展率為2的空洞卷積操作,其感受野的大小為
F2=(22/2+2-1)×(22/2+2-1)=7×7
在模型訓練過程中,BN算法可以加快模型訓練的收斂速度,使訓練過程更加穩(wěn)定,防止梯度爆炸和梯度消失的情況發(fā)生,還能起到正則化的作用。
在DenseNet之后,有四個卷積層,包含了1×1和3×3的卷積層。選取最后兩層Dense_Block和4個卷積層進行目標框的選擇。優(yōu)化后的網(wǎng)絡模型簡單,能夠充分利用特征信息,提高小目標的檢測精度,優(yōu)化后的網(wǎng)絡模型如圖3所示。
圖2 空洞卷積操作
圖3 優(yōu)化后的網(wǎng)絡模型
損失函數(shù)可以用來衡量前期估計的值與實驗中真實值的誤差,在所有算法中損失函數(shù)即為最終需要優(yōu)化的目標函數(shù)。
在SSD算法中,損失函數(shù)由兩部分組成,分別為定位損失和置信度損失,如式(6)所示
(6)
其中,N為篩選過后默認邊界框的數(shù)量;c是經(jīng)過處理后的定位置信度;l為預測框的位置預測值;g就是真實框的位置值;α為可自己設置的權(quán)重系數(shù),通常將其設置為1;x為匹配系數(shù),x∈(0,1)。當x=0時表示預測框與Ground Truth不匹配;當x=1時表示預測框與Ground Truth完全匹配。Lconf(x,c)為置信損失函數(shù);Lloc(x,l,g)為定位損失函數(shù)。
定位損失函數(shù)Lloc(x,l,g)是預測框與真實物體框參數(shù)之間SmoothL1損失,其計算公式如式(7)所示
(7)
通常采用Softmax loss函數(shù)對置信損失Lconf(x,c)進行計算,如式(8)所示
(8)
目標損失函數(shù)對正負樣本比例進行了相關(guān)控制,不但能夠提高算法優(yōu)化的速度,還能提高訓練結(jié)果的穩(wěn)定性。
本次實驗的仿真環(huán)境為:計算機Win10操作系統(tǒng),CPU型號為Intel(R) Core(TM) i5-9400F。在以上硬件的基礎上搭建Pytorch機器學習平臺,采用Python3.8編程語言對相關(guān)模型進行訓練和測試,從而實現(xiàn)適用于無人駕駛汽車的目標檢測算法。
數(shù)據(jù)集是通過采集高速公路上道路情況的截圖,標注了高速公路上行駛的過程中包含汽車、人、動物等7類標簽的樣本圖片,并且結(jié)合了目標檢測中常用的V0C2012數(shù)據(jù)集中含有相同標簽的樣本圖片,共包含1150張圖片。為了減少訓練中的過擬合現(xiàn)象,提高數(shù)據(jù)集的質(zhì)量,本文在此基礎上進行數(shù)據(jù)樣本擴展,具體實現(xiàn)方式如表3所示。
表3 數(shù)據(jù)樣本擴展方法
通過表3的方法對數(shù)據(jù)集進行擴展,擴展后的數(shù)據(jù)集為2500張,擴展數(shù)據(jù)集由2000個訓練集和500個測試集組成。然后使用Labellmg軟件對數(shù)據(jù)集進行標記和注釋。
在訓練過程中,該算法進行了40000次迭代,初始化學習率base_lr=0.001,批尺寸batch_size=8,權(quán)重衰減因子設為0.0005,在一定程度上預防訓練過程中出現(xiàn)過擬合現(xiàn)象。在數(shù)據(jù)集訓練的過程中,損失值隨著迭代次數(shù)的增加而收斂。最后,經(jīng)過35000次迭代,訓練模型的損失值趨于穩(wěn)定。
利用訓練好的網(wǎng)絡模型對數(shù)據(jù)集進行檢測實驗。從檢測結(jié)果中看出,改進后的SSD網(wǎng)絡模型平均準確率均值達到83.82%,檢測速度為42fps。在同一數(shù)據(jù)集上,對本文提出的改進后的SSD網(wǎng)絡模型與其它網(wǎng)絡模型、原始SSD網(wǎng)絡模型進行測試及對比試驗。實驗結(jié)果如表4、表5所示。
表4 不同網(wǎng)絡模型實驗結(jié)果
表5 不同網(wǎng)絡模型在不同天氣、場景下實驗結(jié)果
由表4可知,本文改進的SSD模型的mAP為83.82%,F(xiàn)aster R-CNN模型的mAP為78.65%,YOLOv3模型的mAP為82.67%,原始的SSD模型的mAP為81.94%,結(jié)果表明改進后的SSD網(wǎng)絡模型準確率更高,從檢測速度分析,本文的檢測速度雖然比原始SSD模型檢測速度慢,但能夠達到應用要求。因此,改進的SSD模型在無人駕駛中對目標的檢測性能更好,四種網(wǎng)絡模型在不同天氣、場景檢測效果如圖4所示。
圖4 不同網(wǎng)絡模型結(jié)果對比
為了更好的保證無人駕駛系統(tǒng)的安全問題,本文結(jié)合傳統(tǒng)的SSD算法與DenseNet模型的優(yōu)勢,引入D-DenseNet網(wǎng)絡模型,提高了網(wǎng)絡的深度。前置網(wǎng)絡采用DenseNet代替?zhèn)鹘y(tǒng)SSD網(wǎng)絡中VGG16進行特征提取,使各層的網(wǎng)絡信息得到充分的利用,有益于網(wǎng)絡的訓練。輔助層網(wǎng)絡利用空洞卷積替換下采樣操作從而避免信息的丟失,同時還能提高對體積較小物體檢測的準確性,進一步提高了系統(tǒng)的檢測速度和準確度。實驗表明,本文改進后的算法相較于其它算法具有一定的優(yōu)越性,能夠運用于無人駕駛中的目標檢測技術(shù)中。在接下來的研究中,將增加更多復雜場景的數(shù)據(jù)集,完善數(shù)據(jù)集的多樣性,進一步提高算法的魯棒性。