卜德飛,孫韶媛,黃 榮,王宇嵐,劉致驛
(東華大學(xué) a.信息科學(xué)與技術(shù)學(xué)院;b.數(shù)字化紡織服裝技術(shù)教育部工程研究中心,上海201620)
目前大部分無(wú)人駕駛的環(huán)境感知相關(guān)研究集中于白天場(chǎng)景,而夜間場(chǎng)景下的研究相對(duì)較少,這使得無(wú)人駕駛在夜間的應(yīng)用十分有限。夜間無(wú)人駕駛可以利用紅外相機(jī)感知周邊環(huán)境物體的溫感成像,但形成的圖像較普通,圖像存在紋理信息少、噪聲多、圖像模糊等缺點(diǎn)[1],故夜間目標(biāo)檢測(cè)難度較大。有效的夜間目標(biāo)檢測(cè)能夠減少交通事故的發(fā)生,應(yīng)用價(jià)值較高。
目前,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法已經(jīng)超越傳統(tǒng)檢測(cè)方法,成為當(dāng)前目標(biāo)檢測(cè)算法的主流,主要包括單階式(One-stage)目標(biāo)檢測(cè)和兩階式(Two-stage)目標(biāo)檢測(cè)算法兩類。Two-stage算法以Faster RCNN(faster region convolution neural network)網(wǎng)絡(luò)[2]系列目標(biāo)檢測(cè)方法為主,需要進(jìn)行候選區(qū)域的提取,速度相對(duì)較慢,無(wú)法滿足實(shí)時(shí)性的要求。One-stage算法以SSD(single shot multibox detector)網(wǎng)絡(luò)[3]和YOLO(you only look once)網(wǎng)絡(luò)[4]為主,這類網(wǎng)絡(luò)直接進(jìn)行端到端的學(xué)習(xí)。SSD網(wǎng)絡(luò)與YOLO網(wǎng)絡(luò)的思想均是將目標(biāo)檢測(cè)任務(wù)由分類問(wèn)題轉(zhuǎn)化為回歸問(wèn)題,一次完成目標(biāo)定位與分類。SSD網(wǎng)絡(luò)基于Faster RCNN網(wǎng)絡(luò)中的錨點(diǎn)機(jī)制,提出了相似的Prior box方法。SSD網(wǎng)絡(luò)加入基于特征金字塔的檢測(cè)方式,即在不同感受野的特征圖上預(yù)測(cè)目標(biāo)。
針對(duì)紅外圖像特征紋理低、噪聲多和圖像模糊等問(wèn)題,本文提出改進(jìn)SSD網(wǎng)絡(luò)的算法:(1)采用特征提取能力更強(qiáng)的Densenet網(wǎng)絡(luò)[5]替換SSD網(wǎng)絡(luò)原有的特征提取網(wǎng)絡(luò),提升表征能力;(2)重新利用特征圖,增強(qiáng)淺層特征的利用程度;(3)引入反卷積網(wǎng)絡(luò),豐富特征的語(yǔ)義信息;(4)采用無(wú)預(yù)訓(xùn)練模型的方法訓(xùn)練網(wǎng)絡(luò),使得網(wǎng)絡(luò)參數(shù)得到最優(yōu)解。本文針對(duì)改進(jìn)部分做了不同的對(duì)比試驗(yàn),最終驗(yàn)證了改進(jìn)算法的有效性。
本文以SSD網(wǎng)絡(luò)為基礎(chǔ),將特征提取網(wǎng)絡(luò)由VGG-16(visual geometry group network)[6]網(wǎng)絡(luò)替換為Densenet網(wǎng)絡(luò),利用稠密連接的方式將網(wǎng)絡(luò)中多尺度的特征圖進(jìn)行重利用,并添加反卷積層[7],最終將卷積層和反卷積層中相同分辨率的特征圖進(jìn)行融合后送入預(yù)測(cè)層。
SSD網(wǎng)絡(luò)檢測(cè)速度快且精確率較高。借鑒YOLO網(wǎng)絡(luò)將目標(biāo)檢測(cè)任務(wù)由分類問(wèn)題轉(zhuǎn)化為回歸問(wèn)題的思想,無(wú)需區(qū)域候選框的提取過(guò)程,大大縮短了檢測(cè)時(shí)間。同時(shí)借鑒Faster RCNN網(wǎng)絡(luò)的錨點(diǎn)機(jī)制,即在特征圖的每個(gè)像素上產(chǎn)生一定個(gè)數(shù)(4或6)且縱橫比確定的默認(rèn)框。SSD網(wǎng)絡(luò)的主要貢獻(xiàn)是在不同尺度的特征圖做預(yù)測(cè),提高對(duì)物體的檢測(cè)準(zhǔn)確性。
SSD網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,輸入表示為一張圖像(300像素×300像素),首先根據(jù)其輸入特征提取網(wǎng)絡(luò),原始的SSD網(wǎng)絡(luò)結(jié)構(gòu)采用VGG -16網(wǎng)絡(luò),將VGG -16網(wǎng)絡(luò)的fc6和fc7層轉(zhuǎn)化為卷積層,去掉所有的Dropout層和fc8層,添加額外的卷積層Conv9、Conv10、Conv11。與YOLO網(wǎng)絡(luò)、Faster RCNN網(wǎng)絡(luò)等不同,SSD網(wǎng)絡(luò)對(duì)不同分辨率的特征圖(Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2)進(jìn)行多尺度預(yù)測(cè),并利用兩個(gè)卷積層(卷積核尺寸為3×3)分別進(jìn)行位置回歸和類別置信度預(yù)測(cè)。最后經(jīng)過(guò)非極大值抑制刪除一部分重疊或者不正確的邊界框,生成最終的邊界框集合。
位置回歸采用smoothL1損失,置信度損失采用softmax損失,總的損失為兩者之和,如式(1)所示。Lconf(x,c)表示置信度損失,Lloc(x,l,g)表示位置回歸損失,這兩個(gè)損失所占的比重通過(guò)系數(shù)α調(diào)節(jié)。
圖1 SSD網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of SSD
(1)
位置回歸損失的回歸默認(rèn)框d的中心偏移量(cx,cy)以及寬w、高h(yuǎn),如式(2)所示。
(2)
(3)
(4)
(5)
(6)
置信度損失是多個(gè)類別的softmax損失之和,如式(7)所示。
(7)
本文對(duì)SSD網(wǎng)絡(luò)進(jìn)行了改進(jìn),其網(wǎng)絡(luò)框架如圖2所示,在卷積層之后加入反卷積層,對(duì)卷積層的特征圖與反卷積層的特征圖進(jìn)行融合,將融合后的特征圖送入預(yù)測(cè)器,損失函數(shù)和原SSD網(wǎng)絡(luò)一樣。
圖2 改進(jìn)的SSD網(wǎng)絡(luò)框架Fig.2 Improved SSD network framework
改進(jìn)的SSD網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,在原網(wǎng)絡(luò)中引入稠密連接,并在最后一層卷積層后加入反卷積層,將其特征圖尺寸通過(guò)反卷積操作一直擴(kuò)大到與原SSD網(wǎng)絡(luò)卷積層Conv4_3特征圖的尺寸相同。然后通過(guò)對(duì)降采樣之后的特征圖做反卷積操作,將特征圖尺寸擴(kuò)大,并獲取比卷積層輸出相同尺寸的特征圖更加豐富的語(yǔ)義信息。預(yù)測(cè)階段將卷積操作生成的特征圖與反卷積操作生成的特征圖進(jìn)行拼接,再將拼接后的結(jié)果送入檢測(cè)器和分類器中進(jìn)行處理。
1.2.1 特征提取網(wǎng)絡(luò)的替換
相比VGG-16網(wǎng)絡(luò),Densenet網(wǎng)絡(luò)含有更少的參數(shù)量,可促進(jìn)特征重利用,并具有隱含監(jiān)督等優(yōu)勢(shì)。本文借鑒深度監(jiān)督目標(biāo)檢測(cè)器DSOD[8]的替換規(guī)則,將卷積過(guò)程中的特征提取網(wǎng)絡(luò)VGG-16換成了Densenet網(wǎng)絡(luò),以降采樣后特征圖尺寸相同為標(biāo)準(zhǔn),用Densenet網(wǎng)絡(luò)中的模塊代替VGG-16網(wǎng)絡(luò),以確保最終送入檢測(cè)器的特征圖尺寸與原網(wǎng)絡(luò)的特征圖尺寸保持一致。
1.2.2 特征圖的重利用
SSD網(wǎng)絡(luò)按照逐層卷積的方式,將特征圖依次傳播下去,每個(gè)卷積層生成的特征圖僅使用1次。本文對(duì)特征圖進(jìn)行稠密連接,融合后重利用。特征圖的拼接需要保證尺寸一致,故將上一卷積層產(chǎn)生的特征圖進(jìn)行尺寸減半操作,如圖4所示,其中h和w是圖像的高和寬,P1和P2是圖像的通道數(shù)。由圖4可知,將上一卷積層的特征圖利用1個(gè)1×1卷積層和1個(gè)2×2最大池化層進(jìn)行尺寸的減半,接著與當(dāng)前卷積層得到的特征圖進(jìn)行拼接操作。為了避免特征圖的稠密連接導(dǎo)致通道數(shù)過(guò)度增加的問(wèn)題,本文在每次拼接操作之后利用1×1卷積進(jìn)行降維。
圖3 改進(jìn)的SSD網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure of improved SSD
圖4 特征圖重利用Fig.4 Reusing feature map
1.2.3 反卷積的引入
卷積過(guò)程中尺寸大的特征圖往往具有較小的感受野,而具有大感受野的特征圖的尺寸較小,對(duì)小物體不敏感,這導(dǎo)致SSD網(wǎng)絡(luò)對(duì)中小目標(biāo)的檢測(cè)不夠準(zhǔn)確。本文引入反卷積操作,不僅能夠?qū)Τ叽缧〉惺芤按蟮奶卣鲌D進(jìn)行尺寸放大,而且在操作過(guò)程中使用稠密連接能夠增加特征的重利用,具體操作如圖5所示。先對(duì)小尺寸的特征圖進(jìn)行反卷積操作,然后對(duì)擴(kuò)大了尺寸的特征圖進(jìn)行3×3卷積和批處理正則化[9],通過(guò)點(diǎn)積的方式將反卷積處理后的特征圖與卷積過(guò)程得到的特征圖進(jìn)行融合。
圖5 反卷積模塊Fig.5 Deconvolutional module
本試驗(yàn)數(shù)據(jù)由載有紅外攝像頭的無(wú)人車在夜晚拍攝所得,將被檢測(cè)的物體分為行人和車輛。完整數(shù)據(jù)集包括4 500張紅外圖像(共標(biāo)記27 891位行人、15 548輛車),其中,訓(xùn)練集為3 500張,驗(yàn)證集為500張,測(cè)試集為500張。
本文對(duì)紅外數(shù)據(jù)集進(jìn)行分析,發(fā)現(xiàn)該數(shù)據(jù)集適合使用無(wú)預(yù)訓(xùn)練方法進(jìn)行訓(xùn)練,原因如下:
(1) 數(shù)據(jù)特征不同。紅外圖像與公開數(shù)據(jù)集(如ImageNet[10]、Pascal_VOC[11])中的圖像格式不一致,主要表現(xiàn)為紅外圖像是單通道的灰度圖像,而公開數(shù)據(jù)集則是三通道的RGB圖像。灰度圖像具有紋理低、圖像清晰度低、噪聲多等不良特性。直接從RGB圖像數(shù)據(jù)集進(jìn)行遷移學(xué)習(xí)可能會(huì)使模型達(dá)到局部最優(yōu)解,但無(wú)法擬合全局最優(yōu)解。
(2) 樣本數(shù)量不均衡。相比經(jīng)預(yù)訓(xùn)練模型訓(xùn)練的公開數(shù)據(jù)集,本地?cái)?shù)據(jù)集樣本較少,且公開的預(yù)訓(xùn)練模型多在公開數(shù)據(jù)集上迭代10萬(wàn)次以上才得以生成,這將導(dǎo)致模型擬合的特性更加偏向于樣本數(shù)量多的公開數(shù)據(jù)集。
(3) 網(wǎng)絡(luò)結(jié)構(gòu)受限。采用預(yù)訓(xùn)練模型的訓(xùn)練方式時(shí),需要在預(yù)訓(xùn)練模型上進(jìn)行參數(shù)微調(diào),并要求網(wǎng)絡(luò)必須采用與預(yù)訓(xùn)練模型相匹配,這將增大網(wǎng)絡(luò)結(jié)構(gòu)調(diào)整難度。
(4) Densenet網(wǎng)絡(luò)的“深度監(jiān)督”與正則化效應(yīng)。Densenet網(wǎng)絡(luò)的稠密連接優(yōu)化了網(wǎng)絡(luò)中的信息流和梯度,每個(gè)隱層都可以直接從損失函數(shù)和原始輸入信號(hào)中獲得梯度,從而產(chǎn)生隱含的深度監(jiān)督,這有助于模型的訓(xùn)練。稠密連接也具有正則化效應(yīng),緩解了因訓(xùn)練集樣本數(shù)量少而導(dǎo)致的過(guò)擬合現(xiàn)象[6]。因此,借助Densenet網(wǎng)絡(luò)的優(yōu)點(diǎn)能夠使訓(xùn)練網(wǎng)絡(luò)快速擬合。
本文算法使用Caffe框架[12],試驗(yàn)的軟硬件配置如表1所示。
表1 試驗(yàn)的軟硬件配置
試驗(yàn)流程如圖6所示。由圖6可知,利用紅外相機(jī)進(jìn)行數(shù)據(jù)采集(數(shù)據(jù)集有行人和車輛兩類),并通過(guò)標(biāo)記工具LabelImg對(duì)采集到的圖像進(jìn)行標(biāo)注,將標(biāo)注后的數(shù)據(jù)圖像生成為適合Caffe輸入的lmdb文件。使用訓(xùn)練集對(duì)改進(jìn)的SSD網(wǎng)絡(luò)進(jìn)行迭代訓(xùn)練,設(shè)置基本學(xué)習(xí)率為0.1,動(dòng)量為0.9,每迭代10 000 次對(duì)學(xué)習(xí)率除以10,迭代次數(shù)為50 000次,訓(xùn)練耗時(shí)約213 h(8.9 d)。不斷的迭代學(xué)習(xí)使網(wǎng)絡(luò)模型收斂,然后將網(wǎng)絡(luò)模型參數(shù)存儲(chǔ)下來(lái),最后用測(cè)試集進(jìn)行測(cè)試和驗(yàn)證。
圖6 試驗(yàn)流程圖Fig.6 Flow chart of the experiment
反卷積參數(shù)如表2所示,反卷積的輸入為卷積最后一層的輸出特征圖,根據(jù)式(8)來(lái)確定使用的卷積核參數(shù),以保證得到需要的特征圖尺寸。
Fout=s×(Fin-1)+a-2p1
(8)
式中:Fout表示輸出特征圖尺寸;Fin表示輸入特征圖尺寸;s表示步長(zhǎng);a表示卷積核大??;p1表示填充。
不同檢測(cè)網(wǎng)絡(luò)的損失值隨訓(xùn)練迭代次數(shù)的變化如圖7所示,所有網(wǎng)絡(luò)均采用相同的損失函數(shù)。圖8為最后10 000次迭代的結(jié)果。SSD_YES是使用了預(yù)訓(xùn)練模型的SSD網(wǎng)絡(luò);SSD_NO是未使用預(yù)訓(xùn)練模型的SSD網(wǎng)絡(luò);Ours(k=12),Ours(k=48)為本文提出的改進(jìn)SSD網(wǎng)絡(luò),區(qū)別是Densenet網(wǎng)絡(luò)中生長(zhǎng)率k的取值不同。
圖7 訓(xùn)練損失隨訓(xùn)練迭代次數(shù)的變化Fig.7 Training loss varying with the number of iterations
對(duì)比圖7中SSD_YES與SSD_NO的曲線,可以看出,有預(yù)訓(xùn)練模型的SSD_YES能夠很快收斂,而SSD_NO則在訓(xùn)練開始會(huì)有劇烈的波動(dòng)。這是因?yàn)闊o(wú)預(yù)訓(xùn)練模型的方法是對(duì)參數(shù)進(jìn)行隨機(jī)初始化,這將使得剛開始的梯度較大。在圖8中繼續(xù)對(duì)比這兩條曲線,SSD_NO能夠達(dá)到更小的損失值,說(shuō)明其能夠達(dá)到更優(yōu)的局部最優(yōu)解或全局最優(yōu)解。這一結(jié)果表明采用無(wú)預(yù)模型訓(xùn)練方法能夠得到更優(yōu)的模型參數(shù)。
圖8 最后104次迭代的損失變化Fig.8 Loss varying with the last 104 iterations
由圖8可知,使用生長(zhǎng)率為k=48的本文網(wǎng)絡(luò)相比使用生長(zhǎng)率為k=12的損失值更低。這表明濾波器通道數(shù)的增加能夠提取更多的特征,更好地學(xué)習(xí)數(shù)據(jù)的特性。
表3為不同算法的性能對(duì)比:SE-MSSD網(wǎng)絡(luò)為劉學(xué)等[13]針對(duì)紅外圖像行人檢測(cè)而改進(jìn)的SSD網(wǎng)絡(luò),其中使用Mobilenet網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò),加入SENet模塊進(jìn)行特征提取,并使用深度可分離卷積加快運(yùn)行速度;SE-MSSD_NO為SE-MSSD網(wǎng)絡(luò)通過(guò)無(wú)預(yù)訓(xùn)練模型方式訓(xùn)練得到的結(jié)果;SE-MSSD_YES為SE-MSSD網(wǎng)絡(luò)加載了預(yù)訓(xùn)練模型得到的結(jié)果。文獻(xiàn)[13]中提到在數(shù)據(jù)集上SE-MSSD網(wǎng)絡(luò)要比SSD網(wǎng)絡(luò)的準(zhǔn)確率更高,而在本文的數(shù)據(jù)集上,效果卻很差。分析原因是本文所使用的數(shù)據(jù)集圖像質(zhì)量更差,目標(biāo)更小,且目標(biāo)重疊密集,而SENet模塊在做特征權(quán)重分配時(shí)更加注重主要特征而忽略次要信息,因此對(duì)小目標(biāo)和密集目標(biāo)的檢測(cè)效果較差。
與SSD_YES相比,SSD_NO有著更高的平均準(zhǔn)確率,兩者網(wǎng)絡(luò)結(jié)構(gòu)完全一樣,表明無(wú)訓(xùn)練模型方法可更好地?cái)M合數(shù)據(jù)集特性。De_SSD_NO是加入反卷積后的SSD網(wǎng)絡(luò)不加載預(yù)訓(xùn)練模型得到的訓(xùn)練結(jié)果[15],De_SSD_NO相比SSD_NO準(zhǔn)確率提高,這證明了引入反卷積確實(shí)是有益的。SSD_densenet(k=48)是更換特征提取網(wǎng)絡(luò)為Densenet(k=48)的SSD網(wǎng)絡(luò),SSD_densetnet(k=48)相比SSD_NO能夠得到更高的平均準(zhǔn)確率,這表明Densenet網(wǎng)絡(luò)取代VGG網(wǎng)絡(luò)是有效的。對(duì)比Ours(k=48)與SSD_densenet(k=48)和De_SSD_NO,結(jié)果證明同時(shí)使用這兩個(gè)操作比單獨(dú)使用一個(gè)有著更高的準(zhǔn)確率。
表3 不同算法的性能對(duì)比
特征提取網(wǎng)絡(luò)VGG-16的參數(shù)量為22 935 232個(gè),Densenet網(wǎng)絡(luò)的參數(shù)量為12 184 324個(gè),但由表3可知,本文的Ours(k=48)的檢測(cè)速度低于SSD網(wǎng)絡(luò),其原因在于Densenet網(wǎng)絡(luò)進(jìn)行特征提取時(shí)相比VGG-16網(wǎng)絡(luò)使用了更大的特征圖,增加了計(jì)算復(fù)雜度。
本文的Ours(k=12)與YOLO-v3網(wǎng)絡(luò)的平均準(zhǔn)確率相同,但檢測(cè)速度卻更高。改進(jìn)的Ours(k=48)在保證更高的檢測(cè)準(zhǔn)確率的同時(shí),依然有很快的速度,滿足了無(wú)人車夜間檢測(cè)的需求。
圖9分別展示了測(cè)試圖像、人工標(biāo)記圖像、SSD網(wǎng)絡(luò)的檢測(cè)結(jié)果和本文算法的檢測(cè)結(jié)果,人工標(biāo)記圖像中的深紅色框?yàn)閷?shí)際目標(biāo)檢測(cè)框,而SSD算法結(jié)果圖與本文算法結(jié)果圖中的矩形框?yàn)槟P皖A(yù)測(cè)得到的目標(biāo)位置框,其上方顯示了這個(gè)目標(biāo)框內(nèi)目標(biāo)的類別與概率得分。
本文對(duì)無(wú)人駕駛的夜間目標(biāo)檢測(cè)方法進(jìn)行分析,鑒于紅外圖像成像質(zhì)量差,并且現(xiàn)階段目標(biāo)檢測(cè)算法對(duì)中小目標(biāo)檢測(cè)效果較差,嘗試使用Densenet網(wǎng)絡(luò)進(jìn)行特征提取,并對(duì)包含中小目標(biāo)信息的特征圖進(jìn)行重利用,以增強(qiáng)特征提取能力,并在原有網(wǎng)絡(luò)的基礎(chǔ)上加入反卷積層,將卷積層的特征圖與反卷積層相同尺寸的特征圖融合,結(jié)果證明這對(duì)于特征圖的信息提取是有益的。
圖9 紅外圖像目標(biāo)檢測(cè)Fig.9 Infrared image target detection