胡 爽, 董超俊, 張秀杰
(五邑大學(xué)信息工程學(xué)院, 廣東 江門 529020)
隨著人工智能領(lǐng)域的快速發(fā)展,自動駕駛技術(shù)備受關(guān)注。目標(biāo)檢測作為計算機視覺領(lǐng)域的重要分支,同時也是自動駕駛的關(guān)鍵技術(shù)之一。無可否認,在目標(biāo)檢測領(lǐng)域,深度神經(jīng)網(wǎng)絡(luò)的性能優(yōu)于傳統(tǒng)機器學(xué)習(xí)方法。目標(biāo)檢測的深度學(xué)習(xí)方法可以分為兩種:基于區(qū)域提名的方法和基于回歸的方法。而基于區(qū)域提名的方法包括 R-CNN[1],SPP-net[2],F(xiàn)ast R-CNN[3],F(xiàn)aster R-CNN[4]和R-FCN[5]等。這些方法對于目標(biāo)的檢測可以分為兩個階段:第一階段生成預(yù)選框,第二階段使用深度神經(jīng)網(wǎng)絡(luò)進行分類和位置回歸。早期的R-CNN,SPP-net和Fast R-CNN通過選擇性搜索方法產(chǎn)生區(qū)域提名,這是整個算法的瓶頸。隨后,F(xiàn)aster R-CNN放棄了選擇性搜索方法,而使用區(qū)域提名網(wǎng)絡(luò)(RPN)來生成區(qū)域提名。目前而言,基于R-CNN的方法檢測準確率相對較高,但它們無法實現(xiàn)實時處理。
為了提高檢測速度,研究者們提出了基于回歸的方法,包括YOLO[6]和SSD[7],它們只使用單一網(wǎng)絡(luò)同時生成邊界框并且完成分類。這些方法可以在GPU上實現(xiàn)實時處理。YOLO對輸入圖像劃分網(wǎng)格,每個網(wǎng)格預(yù)測兩個對象框的置信度和位置。但是當(dāng)多個對象在一個網(wǎng)格中時,模型也只能預(yù)測出一個目標(biāo),這是YOLO的短板所在,所以YOLO的檢測精度不盡如人意。SSD是沖著YOLO的缺點來的,它分為兩部分:前半部分是基于VGG16的網(wǎng)絡(luò),去掉了分類相關(guān)的層;后半部分是引入的額外的多尺度特征提取層,達到檢測不同大小目標(biāo)的目的。雖然相對于YOLO,SSD在檢測精度上有了很大提高,但是對于小目標(biāo)的檢測性能還是不能令人滿意。
鑒于SSD不遜于Faster R-CNN的準確率,而且檢測速度可以達到實時處理,本文重新設(shè)計了SSD的網(wǎng)絡(luò)結(jié)構(gòu),通過增加卷積核的類型,在VGG-16之后的附加層中引入了Inception模塊[8],這增加了模型對小物體的敏感度,可以提取到更多小目標(biāo)的信息。
SSD中附加層的尺寸相對較小,其中包含的小物體信息是有限的,而且隨著SSD網(wǎng)絡(luò)的深入,這些信息變得越來越少。一般來說,模型的性能可以通過提高它們的深度和寬度來得以提升,但是,這會導(dǎo)致參數(shù)增加,使得計算量幾何增長并容易過擬合。文獻[8]認為解決由參數(shù)增加引起的這兩個問題的基本方法是將整個連接層或甚至一半卷積層轉(zhuǎn)換為稀疏鏈接,而Inception結(jié)構(gòu)不僅利用了密集矩陣的高性能,而且保持了網(wǎng)絡(luò)的稀疏性,近似一個稀疏結(jié)構(gòu)。因此,本文認為,在不增加網(wǎng)絡(luò)復(fù)雜性的情況下,Inception模塊可以捕獲更多信息。
下頁圖1所示為Inception模塊的基本結(jié)構(gòu),它將 1×1、3×3、5×5 的卷積核堆疊在一起,一方面增加了網(wǎng)絡(luò)的寬度,另一方面增加了網(wǎng)絡(luò)對尺度的適應(yīng)性,而且提高了網(wǎng)絡(luò)內(nèi)部計算資源的利用率。本文對Inception模塊的結(jié)構(gòu)進行改變:將5×5的卷積核替換成兩個3×3卷積核,這樣可以保留更多的目標(biāo)細節(jié);同時減少Inception模塊的每一層中的特征圖數(shù)量,保持特征圖的總和與原始附加層中的特征圖的總和相同;為了反映不同尺度卷積核的重要性,給三種卷積 conv1×1、conv3×3、conv5×5 的輸出分別賦予不同的權(quán)重1/4、1/2、1/4;為了加快模型的訓(xùn)練速度,在Inception模塊的每個卷積層后使用BN(Batch Normalization,批歸一化)。改進后的Inception模塊如圖2所示。

圖1 Inception模塊結(jié)構(gòu)

圖2 改進的Inception模塊
SSD的網(wǎng)絡(luò)結(jié)構(gòu)如圖3-1所示,前面基于VGG16的 網(wǎng) 絡(luò) 包 括 conv1_1、conv1_2、conv2_1、conv2_2、conv3_1、conv3_2、conv3_3、conv4_1、conv4_2、conv4_3、conv5_1、conv5_2、conv5_3,F(xiàn)C6、FC7 原為全連接層,現(xiàn)改為卷積層,附加層包括 conv6_1、conv6_2、conv7_1、conv7_2、conv8_1、conv8_2、conv9_1、conv9_2、loss。使用 conv4_3,fc7,conv6_2,conv7_2,conv8_2 和conv9_2作為特征提取層,其中 conv4_3、FC7、conv6_2、conv7_2、conv8_2 用 3×3卷積核進行卷積,并且對其輸出再分別采用兩個3×3大小的卷積核進行卷積,這兩個卷積核是并列的,一個輸出分類用的confidence,一個輸出回歸用的localization。本文用 Inception 模 塊 代 替 conv6_1、conv6_2、conv7_1、conv7_2、conv8_1、conv8_2,仍然使用 conv4_3,fc7,conv6_2,conv7_2,conv8_2 和 conv9_2作為特征提取層來檢測對象。但是,隨著網(wǎng)絡(luò)的深入,融合變得越來越困難,為了克服這個問題,本文在附加層中引入了殘差結(jié)構(gòu):連接conv6_2的輸入和輸出作為conv7_1的輸入,連接conv7_2的輸入和輸出作為conv8_1的輸入。改進后的SSD網(wǎng)絡(luò)結(jié)構(gòu)如圖3(b)所示。

圖3 改進后的SSD網(wǎng)絡(luò)結(jié)構(gòu)與普通SSD網(wǎng)絡(luò)結(jié)構(gòu)的區(qū)別
本文使用深度學(xué)習(xí)框架Caffe來實現(xiàn)網(wǎng)絡(luò)重構(gòu)并訓(xùn)練。實驗環(huán)境:Ubuntu 14.04操作系統(tǒng),處理器為8G Intel(R)Core(TM)i7-7700K CPU@4.20 GHz,顯卡為8G GeForce GTX1080。
PVD(Pedestrian and Vehicle dataset)是根據(jù) PASCAL VOC數(shù)據(jù)集的格式制作的行人和車輛的數(shù)據(jù)集,包括 people、car、bus、bike、motorcycle 五個類別,圖片主要來源于車載攝像頭、網(wǎng)絡(luò)圖片及其他數(shù)據(jù)集。數(shù)據(jù)集共有5 000張圖片,約13 000個目標(biāo),選擇1 000張作為測試集。
訓(xùn)練時,采用SGD(隨機梯度下降),初始學(xué)習(xí)率base_lr為0.001,最大迭代次數(shù)max_iter設(shè)置為120 000次,stepsize為40 000,動量momentum為0.9,weight_decay為 0.000 5,batch_size為 32。
圖4為召回率隨交并比(LoU)的變化曲線,可以看出,當(dāng)IoU為0.5時,本文網(wǎng)絡(luò)召回率為72.8%,要高于SSD的71.0%,隨著IoU的上升,本文網(wǎng)絡(luò)的召回率仍然高于SSD。

圖4 召回率—IoU曲線
表1列出了SSD與本文網(wǎng)絡(luò)檢測的準確率和速度。可以看出,本文網(wǎng)絡(luò)在五類目標(biāo)的準確率和平均準確率上均高于SSD,本文網(wǎng)絡(luò)機構(gòu)的速度僅比SSD略慢,仍然能夠?qū)崿F(xiàn)實時檢測。

表1 準確率和速度對比

圖5 本文網(wǎng)絡(luò)檢測與SSD網(wǎng)絡(luò)檢測的區(qū)別
圖5是置信度閾值為0.6時的實際檢測效果圖,圖5-1為本文網(wǎng)絡(luò)檢測結(jié)果,圖5-2為SSD檢測結(jié)果。可以看出,本文網(wǎng)絡(luò)對于小目標(biāo)的檢測效果確實要比SSD好。
本文提出了一種改進的SSD網(wǎng)絡(luò),在SSD附加層中引入Inception模塊來提升網(wǎng)絡(luò)對小目標(biāo)的提取能力。通過在自制數(shù)據(jù)集上的實驗表明,相較于SSD網(wǎng)絡(luò),本文提出的方法確實提高了對小目標(biāo)的檢測準確率,而且網(wǎng)絡(luò)的速度可以達到實時檢測的效果。
[1]R Girshick,J Donahue,T Darrell,and J Malik.Rich feature hierarchies for accurate object detection and semantic segmentation[J].2014:580-587.
[2]Kaiming He,Xiangyu Zhang,Shaoqing Ren,and Jian Sun.Spatial pyramid pooling in deep convolutionalnetworks forvisual recognition[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2015:37(9):1 904-1 916.
[3]Ross Girshick.Fast r-cnn[J].Computer Science,2015.
[4]S.Ren,K.He,R Girshick,andJ.,Sun.Faster r-cnn:Towards real-time object detection with region proposal networks[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,201,39(6):1.
[5]Jifeng Dai,Yi Li,Kaiming He,and Jian Sun.R-fcn:Object detectionvia region-based fully convolutional networks[J].2016:379-387.
[6]Wei Liu,Dragomir Anguelov,Dumitru Erhan,Christian Szegedy,Scott Reed,Cheng Yang Fu,and Alexander C.Berg.Ssd:Single shot multibox detector[J].2016:21-37.
[7]Joseph Redmon,Santosh Divvala,Ross Girshick,and Ali Farhadi.You only look once:Unified,real-time object detection[J].Computer Science,2016:779-788,.
[8]C Szegedy,Wei Liu,Yangqing Jia,et.al.Going deeper with convolutions[J].in IEEE Conference on Computer Vision and Pattern Recognition,2015:1-9.