朱鋒彬, 應(yīng) 娜
(杭州電子科技大學(xué) 通信工程學(xué)院,浙江 杭州 310018)
在計(jì)算機(jī)視覺領(lǐng)域,車輛檢測作為一個(gè)實(shí)用而又具有挑戰(zhàn)的課題,得到了很多研究者的關(guān)注。道路監(jiān)管、輔助駕駛等人工智能都融入了車輛檢測的應(yīng)用。隨著科學(xué)技術(shù)的不斷發(fā)展,研究人員在不同階段取得了不同的成就。從最初的區(qū)域選擇[1]到特征提取[1],從機(jī)器學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)R-CNN到Fast R-CNN,Faster R-CNN模型,以及后來的SSD(single shot multiBox detector),YOLO(you only look once)算法,車輛檢測算法都在朝著更快更準(zhǔn)的方向發(fā)展,在檢測速度、定位精度上都得到了巨大提升。
在前人的基礎(chǔ)上,為了達(dá)到更快速、準(zhǔn)確地進(jìn)行車輛檢測目的,提出了一種改進(jìn)算法,在一個(gè)深度卷積網(wǎng)絡(luò)的基礎(chǔ)上搭建了2個(gè)神經(jīng)網(wǎng)絡(luò)。算法首先改進(jìn)VGG16網(wǎng)絡(luò)中的深度卷積神經(jīng)網(wǎng)絡(luò)(deep convolutional network,DCN),加入超特征技術(shù),融合不同卷積層的特征,得到圖片的超特征。然后在第一個(gè)建議網(wǎng)絡(luò)(proposal network,PN)采用了一組卷積層來生成錨箱,并利用錨箱直接提取出候選框,同時(shí)利用非極大抑制算法(NMS)丟棄不太可能的候選框。并將剩余的候選框送入第二個(gè)微調(diào)網(wǎng)絡(luò)(fine-tuning network,F(xiàn)TN)。算法融合PN網(wǎng)絡(luò)、FTN網(wǎng)絡(luò)以及不同卷積層的特征,使得車輛的識別和定位都得到了顯著的優(yōu)化。
如圖1所示,提出的改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)由:DCN,PN,F(xiàn)TN 3個(gè)子網(wǎng)絡(luò)組成。
首先利用DCN網(wǎng)絡(luò)產(chǎn)生豐富的圖像特征。采用VGG—16網(wǎng)絡(luò)模型中的卷積層和最大池化層,其中權(quán)重由ImageNet數(shù)據(jù)集預(yù)訓(xùn)練完畢,以確保檢測可以受益于不斷變化的大數(shù)據(jù)集。用多層具有小卷積核濾波器的卷積層代替一層濾波器卷積核較大的卷積層。最終將輸出的特征圖送入PN網(wǎng)絡(luò)和FTN網(wǎng)絡(luò)進(jìn)行進(jìn)一步處理。另外,該網(wǎng)絡(luò)還用到了各個(gè)卷積層之間的特征串聯(lián)。
圖1 改進(jìn)的卷積層框架結(jié)構(gòu)
在圖像檢測過程中,于數(shù)量較大的背景物體中有效地篩選出候選物體汽車是建立一個(gè)高效的車輛檢測系統(tǒng)必不可少的一步,可在特征提取頂端設(shè)計(jì)一個(gè)深度的分類網(wǎng)絡(luò)實(shí)現(xiàn),據(jù)此,設(shè)計(jì)了一個(gè)輕量級的特征提取網(wǎng)絡(luò)—PN網(wǎng)絡(luò),利用該網(wǎng)絡(luò)提取候選框,以及消除背景區(qū)域。PN網(wǎng)絡(luò)是由一個(gè)ROI池化層,一個(gè)深度卷積網(wǎng)絡(luò)和一個(gè)全連接層組成,具體步驟是:用一個(gè)帶有4個(gè)濾波器的卷積層(conv6_1)連接到DCN的輸出,得到一個(gè)256×144的特征映射。其中,conv6_1可使超特征更加精煉,同時(shí)減少占用內(nèi)存,與以下conv6_2作用相同。將特征映射到64×36的網(wǎng)格。對于每個(gè)網(wǎng)格,生成一組固定尺度(32×32,64×64,128×128,256×256,512×512)和不同比例(1∶2,2∶1,1∶1)的錨箱。與Faster R-CNN[2]不同的是,算法直接用錨箱提取出候選對象。ROI池化層從每個(gè)錨箱中取出一個(gè)14×14×4特征向量;將經(jīng)裁剪的特征向量送入一個(gè)128維的全連接層,得到候選框位置(x,y,w,h)和得分s。使用這個(gè)簡單但有效的建議網(wǎng)絡(luò),將帶來一個(gè)顯著的速度提升。
FTN負(fù)責(zé)微調(diào)剩余的候選框。除了使用一個(gè)有64個(gè)濾波器的卷積層(conv6_2)產(chǎn)生256×144特征圖,其他結(jié)構(gòu)上類似之前的PN網(wǎng)絡(luò)。FTN層主具體步驟是:ROI池化層為PN網(wǎng)絡(luò)產(chǎn)生的車輛候選框提取一個(gè)14×14×64的特征向量。連接一個(gè)640維的全連接層。本文涉及到兩個(gè)階段的特征串聯(lián):由現(xiàn)在的FTN網(wǎng)絡(luò)形成512維特征;由PN網(wǎng)絡(luò)形成128維特征(連接方式在圖1中用符號⊕表示)。然后再連接一個(gè)640維的全連接層。最后輸出微調(diào)后的候選框位置和置信度—一個(gè)5維的向量:標(biāo)出的物體框的位置、大小(x,y,w,h)以及區(qū)域得分s。
1)依據(jù)文獻(xiàn)[3]結(jié)論,本文采用融合多個(gè)不同層次卷積層的特征圖方法進(jìn)行特征融合。具體操作如下:文獻(xiàn)[4,5]顯示了將不同卷積層的特征圖結(jié)合的效果。仿效這種方案,本文將DCN網(wǎng)絡(luò)的多層特征進(jìn)行融合從而產(chǎn)生超特征。圖1顯示了多特征圖的連接。用卷積層計(jì)算整張輸入圖的特征圖時(shí),為了在同一分辨率下組合多層特征圖,算法對不同層使用不同的采樣策略。對低層進(jìn)行最大池化下采樣;高層特征使用反卷積操作進(jìn)行上采樣。將調(diào)整過的采樣結(jié)果各自通過一層卷積層進(jìn)行卷積操作,縮小維度并增強(qiáng)語義。采用局部響應(yīng)歸一化(local response normalization,LRN)[6]對特征圖進(jìn)行歸一化處理,并連接到一個(gè)單一的立方體輸出,產(chǎn)生Hyper特征。Hyper特征有以下幾個(gè)優(yōu)勢:多層抽象,分辨率適于檢測,計(jì)算效率高。
2)特征連接。將通過FTN網(wǎng)絡(luò)的候選框產(chǎn)生的全連接層特征與此候選框在PN網(wǎng)絡(luò)產(chǎn)生的全連接層特征進(jìn)行串聯(lián)。具體實(shí)現(xiàn):在PN網(wǎng)絡(luò)中記錄保留下的候選框,在FTN網(wǎng)絡(luò)中根據(jù)通過的候選框的序號找出PN網(wǎng)絡(luò)中對應(yīng)候選框產(chǎn)生的特征,進(jìn)行連接。本文將FTN網(wǎng)絡(luò)產(chǎn)生的128維特征圖與PN網(wǎng)絡(luò)產(chǎn)生的512維特征圖串聯(lián)得到640維的特征圖。
初始化,網(wǎng)絡(luò)中的DCN部分是由預(yù)訓(xùn)練好的ImageNet模型VGG—16的參數(shù)初始化,其他網(wǎng)絡(luò)部分參數(shù)則是由零均值、標(biāo)準(zhǔn)差為0.01的高斯分布隨機(jī)初始化。算法設(shè)置的初始化學(xué)習(xí)速率為0.001,經(jīng)過50×103次迭代之后降為0.000 1。該網(wǎng)絡(luò)總共要經(jīng)過70×103次的迭代訓(xùn)練。
算法利用隨機(jī)梯度下降法對模型進(jìn)行端到端的訓(xùn)練。將IOU(intersection over union)大于0.5的歸于正樣本候選框,小于0.3的歸于負(fù)樣本;利用閾值為0.7的非極大值抑制(non-maximum suppression,NMS)算法[7]來消除多余的框。對于FTN網(wǎng)絡(luò),將IOU≥0.45的歸于正樣本,將0.1≤IOU≤0.3歸于負(fù)樣本。并在訓(xùn)練過程中加入難分樣本。按降序排序分類損失,并選擇前70 %個(gè)樣本參與反向傳播,并且忽略簡單的例子。
PN層和FTN層的全連接層分別產(chǎn)生(x,y,w,h,s)和(x′,y′,w′,h′,s′)。類似于文獻(xiàn)[8],算法用t=(tx,ty,tw,th)來參數(shù)化第一階段PN產(chǎn)生的包圍盒
(1)
(2)
利用多級損失函數(shù)L共同訓(xùn)練2階段的分類和回歸
(3)
式中Lpn和Lftn為PN網(wǎng)絡(luò)和FTN網(wǎng)絡(luò)各自單獨(dú)的損失。α為平衡參數(shù),平衡兩個(gè)網(wǎng)絡(luò)。類回歸損失Lcls(s)=-logs為以類別得分s的對數(shù)形式表示。為了回歸包圍盒的位置,按照文獻(xiàn)[9]的做法定義位置損失函數(shù)Lloc
(4)
(5)
認(rèn)為PN網(wǎng)絡(luò)和FTN網(wǎng)絡(luò)重要性相同,則設(shè)置σ=0.5計(jì)算整個(gè)多階段損失函數(shù)。
算法在最新的DETRAC[10]車輛數(shù)據(jù)庫上訓(xùn)練模型。數(shù)據(jù)庫由140 000張捕捉幀和1 200 000標(biāo)記了的車輛組成。包含了84 000張訓(xùn)練用的圖片,而且進(jìn)一步將這些圖片劃分成56 000張訓(xùn)練圖片和28 000張驗(yàn)證圖片。另外在晴天、陰天、雨天或者晚上等場景下采集視頻,平均每個(gè)視頻幀包含8.6輛車輛。
實(shí)驗(yàn)一表1顯示了用控制變量法關(guān)閉不同組件評估檢測效果的對比實(shí)驗(yàn)。給出了整個(gè)網(wǎng)絡(luò)的平均檢測質(zhì)量(mean average precision,mAP)以及不同情況下的mAP。PN+FTN+Concat表示不使用特征圖融合(融合第一,三,五層卷積層的特征圖,產(chǎn)生超特征)而是只用到了最后一層卷積層輸出的特征圖。PN+FTN+Hyper表示關(guān)閉了兩個(gè)階段的特征串聯(lián)。整個(gè)模型的結(jié)構(gòu)是PN+FTN+Hyper+Concat。算法還與Faster RCNN進(jìn)行比較,F(xiàn)aster RCNN可以看作是使用PN網(wǎng)絡(luò)產(chǎn)生候選車輛,但直接回歸車輛檢測的結(jié)果,而且沒有微調(diào)檢測框。另外,F(xiàn)aster RCNN也沒有涉及使用特征融合和多階段特征串聯(lián)。
表1 DETRAC數(shù)據(jù)庫上不同算法組合的mAP和運(yùn)行時(shí)間
從實(shí)驗(yàn)結(jié)果可以看出,提出的整體模型在性能上取得了顯著的提升:1)對比于Faster RCNN,該模型取得了15.96 %mAP上的性能提升。其中,特征融合是至關(guān)重要的,到了14.1 %的增益。此外,多階段特征連接也使得mAP提高了1.59 %;2)雖然特征融合和特征連接帶來了額外的運(yùn)行時(shí)間,是整體的運(yùn)行速度還是可以接受的。
實(shí)驗(yàn)二將改進(jìn)的算法和一些先進(jìn)的算法在DETRAC數(shù)據(jù)集上進(jìn)行了mAP和檢測速度比較,實(shí)驗(yàn)結(jié)果如表2所示。總體上,本文對比其他算法算法的模型表現(xiàn)最好。可以看出:改進(jìn)的算法框架取得了顯著的性能提升。相比于RCNN算法,該算法取得了19.41 %mAP上的性能提升。而相比于Faster RCNN,則是9.91 %。在檢測速度上,該算法雖然略慢于Faster RCNN,但在可接受范圍內(nèi),且相比于其他算法取得了很大的提升。
表2 不同算法在 DETRAC測試集上的mAP和檢測速度
實(shí)驗(yàn)三圖2給出了DETRAC測試集上的檢測結(jié)果,圖3給出了本文自行采集的測試集上的檢測結(jié)果。算法成功地檢測到了不同外觀下的大多數(shù)車輛,特別是交通堵塞或者車輛遠(yuǎn)離相機(jī)的情況。當(dāng)然算法也有一些出錯(cuò)的情況。如車輛被分割成多個(gè)箱子,或未能識別出多個(gè)相鄰的車輛。
圖2 DETRAC測試集上的檢測結(jié)果
圖3 自行采集的測試集上的檢測結(jié)果
提出了一種改進(jìn)的物體檢測框架,并將該框架應(yīng)用于車輛檢測。在這個(gè)框架中,多個(gè)神經(jīng)網(wǎng)絡(luò)的串聯(lián)以及特征圖的融合改善了候選框的質(zhì)量。經(jīng)實(shí)驗(yàn)研究發(fā)現(xiàn),利用不同層的特征融合技術(shù)能更精準(zhǔn)地實(shí)現(xiàn)物體的檢測與定位。通過分析和優(yōu)化檢測過程每步,改進(jìn)算法在UA-DETRAC Benchmark數(shù)據(jù)集上取得了較高的準(zhǔn)確率。在自行采集的車輛數(shù)據(jù)集上進(jìn)一步驗(yàn)證了該算法的有效性。