胡 爽, 董超俊, 張秀杰
(五邑大學(xué)信息工程學(xué)院, 廣東 江門 529020)
隨著人工智能領(lǐng)域的快速發(fā)展,自動(dòng)駕駛技術(shù)備受關(guān)注。目標(biāo)檢測(cè)作為計(jì)算機(jī)視覺領(lǐng)域的重要分支,同時(shí)也是自動(dòng)駕駛的關(guān)鍵技術(shù)之一。無可否認(rèn),在目標(biāo)檢測(cè)領(lǐng)域,深度神經(jīng)網(wǎng)絡(luò)的性能優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)方法。目標(biāo)檢測(cè)的深度學(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]等。這些方法對(duì)于目標(biāo)的檢測(cè)可以分為兩個(gè)階段:第一階段生成預(yù)選框,第二階段使用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行分類和位置回歸。早期的R-CNN,SPP-net和Fast R-CNN通過選擇性搜索方法產(chǎn)生區(qū)域提名,這是整個(gè)算法的瓶頸。隨后,F(xiàn)aster R-CNN放棄了選擇性搜索方法,而使用區(qū)域提名網(wǎng)絡(luò)(RPN)來生成區(qū)域提名。目前而言,基于R-CNN的方法檢測(cè)準(zhǔn)確率相對(duì)較高,但它們無法實(shí)現(xiàn)實(shí)時(shí)處理。
為了提高檢測(cè)速度,研究者們提出了基于回歸的方法,包括YOLO[6]和SSD[7],它們只使用單一網(wǎng)絡(luò)同時(shí)生成邊界框并且完成分類。這些方法可以在GPU上實(shí)現(xiàn)實(shí)時(shí)處理。YOLO對(duì)輸入圖像劃分網(wǎng)格,每個(gè)網(wǎng)格預(yù)測(cè)兩個(gè)對(duì)象框的置信度和位置。但是當(dāng)多個(gè)對(duì)象在一個(gè)網(wǎng)格中時(shí),模型也只能預(yù)測(cè)出一個(gè)目標(biāo),這是YOLO的短板所在,所以YOLO的檢測(cè)精度不盡如人意。SSD是沖著YOLO的缺點(diǎn)來的,它分為兩部分:前半部分是基于VGG16的網(wǎng)絡(luò),去掉了分類相關(guān)的層;后半部分是引入的額外的多尺度特征提取層,達(dá)到檢測(cè)不同大小目標(biāo)的目的。雖然相對(duì)于YOLO,SSD在檢測(cè)精度上有了很大提高,但是對(duì)于小目標(biāo)的檢測(cè)性能還是不能令人滿意。
鑒于SSD不遜于Faster R-CNN的準(zhǔn)確率,而且檢測(cè)速度可以達(dá)到實(shí)時(shí)處理,本文重新設(shè)計(jì)了SSD的網(wǎng)絡(luò)結(jié)構(gòu),通過增加卷積核的類型,在VGG-16之后的附加層中引入了Inception模塊[8],這增加了模型對(duì)小物體的敏感度,可以提取到更多小目標(biāo)的信息。
SSD中附加層的尺寸相對(duì)較小,其中包含的小物體信息是有限的,而且隨著SSD網(wǎng)絡(luò)的深入,這些信息變得越來越少。一般來說,模型的性能可以通過提高它們的深度和寬度來得以提升,但是,這會(huì)導(dǎo)致參數(shù)增加,使得計(jì)算量幾何增長并容易過擬合。文獻(xiàn)[8]認(rèn)為解決由參數(shù)增加引起的這兩個(gè)問題的基本方法是將整個(gè)連接層或甚至一半卷積層轉(zhuǎn)換為稀疏鏈接,而Inception結(jié)構(gòu)不僅利用了密集矩陣的高性能,而且保持了網(wǎng)絡(luò)的稀疏性,近似一個(gè)稀疏結(jié)構(gòu)。因此,本文認(rèn)為,在不增加網(wǎng)絡(luò)復(fù)雜性的情況下,Inception模塊可以捕獲更多信息。
下頁圖1所示為Inception模塊的基本結(jié)構(gòu),它將 1×1、3×3、5×5 的卷積核堆疊在一起,一方面增加了網(wǎng)絡(luò)的寬度,另一方面增加了網(wǎng)絡(luò)對(duì)尺度的適應(yīng)性,而且提高了網(wǎng)絡(luò)內(nèi)部計(jì)算資源的利用率。本文對(duì)Inception模塊的結(jié)構(gòu)進(jìn)行改變:將5×5的卷積核替換成兩個(gè)3×3卷積核,這樣可以保留更多的目標(biāo)細(xì)節(jié);同時(shí)減少Inception模塊的每一層中的特征圖數(shù)量,保持特征圖的總和與原始附加層中的特征圖的總和相同;為了反映不同尺度卷積核的重要性,給三種卷積 conv1×1、conv3×3、conv5×5 的輸出分別賦予不同的權(quán)重1/4、1/2、1/4;為了加快模型的訓(xùn)練速度,在Inception模塊的每個(gè)卷積層后使用BN(Batch Normalization,批歸一化)。改進(jìn)后的Inception模塊如圖2所示。
圖1 Inception模塊結(jié)構(gòu)
圖2 改進(jìn)的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卷積核進(jìn)行卷積,并且對(duì)其輸出再分別采用兩個(gè)3×3大小的卷積核進(jìn)行卷積,這兩個(gè)卷積核是并列的,一個(gè)輸出分類用的confidence,一個(gè)輸出回歸用的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作為特征提取層來檢測(cè)對(duì)象。但是,隨著網(wǎng)絡(luò)的深入,融合變得越來越困難,為了克服這個(gè)問題,本文在附加層中引入了殘差結(jié)構(gòu):連接conv6_2的輸入和輸出作為conv7_1的輸入,連接conv7_2的輸入和輸出作為conv8_1的輸入。改進(jìn)后的SSD網(wǎng)絡(luò)結(jié)構(gòu)如圖3(b)所示。
圖3 改進(jìn)后的SSD網(wǎng)絡(luò)結(jié)構(gòu)與普通SSD網(wǎng)絡(luò)結(jié)構(gòu)的區(qū)別
本文使用深度學(xué)習(xí)框架Caffe來實(shí)現(xiàn)網(wǎng)絡(luò)重構(gòu)并訓(xùn)練。實(shí)驗(yà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 五個(gè)類別,圖片主要來源于車載攝像頭、網(wǎng)絡(luò)圖片及其他數(shù)據(jù)集。數(shù)據(jù)集共有5 000張圖片,約13 000個(gè)目標(biāo),選擇1 000張作為測(cè)試集。
訓(xùn)練時(shí),采用SGD(隨機(jī)梯度下降),初始學(xué)習(xí)率base_lr為0.001,最大迭代次數(shù)max_iter設(shè)置為120 000次,stepsize為40 000,動(dòng)量momentum為0.9,weight_decay為 0.000 5,batch_size為 32。
圖4為召回率隨交并比(LoU)的變化曲線,可以看出,當(dāng)IoU為0.5時(shí),本文網(wǎng)絡(luò)召回率為72.8%,要高于SSD的71.0%,隨著IoU的上升,本文網(wǎng)絡(luò)的召回率仍然高于SSD。
圖4 召回率—IoU曲線
表1列出了SSD與本文網(wǎng)絡(luò)檢測(cè)的準(zhǔn)確率和速度??梢钥闯?,本文網(wǎng)絡(luò)在五類目標(biāo)的準(zhǔn)確率和平均準(zhǔn)確率上均高于SSD,本文網(wǎng)絡(luò)機(jī)構(gòu)的速度僅比SSD略慢,仍然能夠?qū)崿F(xiàn)實(shí)時(shí)檢測(cè)。
表1 準(zhǔn)確率和速度對(duì)比
圖5 本文網(wǎng)絡(luò)檢測(cè)與SSD網(wǎng)絡(luò)檢測(cè)的區(qū)別
圖5是置信度閾值為0.6時(shí)的實(shí)際檢測(cè)效果圖,圖5-1為本文網(wǎng)絡(luò)檢測(cè)結(jié)果,圖5-2為SSD檢測(cè)結(jié)果??梢钥闯?,本文網(wǎng)絡(luò)對(duì)于小目標(biāo)的檢測(cè)效果確實(shí)要比SSD好。
本文提出了一種改進(jìn)的SSD網(wǎng)絡(luò),在SSD附加層中引入Inception模塊來提升網(wǎng)絡(luò)對(duì)小目標(biāo)的提取能力。通過在自制數(shù)據(jù)集上的實(shí)驗(yàn)表明,相較于SSD網(wǎng)絡(luò),本文提出的方法確實(shí)提高了對(duì)小目標(biāo)的檢測(cè)準(zhǔn)確率,而且網(wǎng)絡(luò)的速度可以達(dá)到實(shí)時(shí)檢測(cè)的效果。
[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.