劉 騰,劉宏哲,李學(xué)偉+,徐 成
(1.北京聯(lián)合大學(xué) 北京市信息服務(wù)工程重點(diǎn)實(shí)驗(yàn)室,北京 100101; 2.北京聯(lián)合大學(xué) 機(jī)器人學(xué)院,北京 100101)
隨著智慧城市、智能交通系統(tǒng)、無人駕駛的建設(shè)與發(fā)展,其中車輛目標(biāo)檢測技術(shù)成為了關(guān)鍵。在交通管理、擁堵路段檢測等方面應(yīng)用廣泛,深度學(xué)習(xí)技術(shù)不斷發(fā)展并取得了巨大的突破,通過卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測算法的檢測準(zhǔn)確度大幅提升,并且具有更強(qiáng)的魯棒性,可以適應(yīng)更加復(fù)雜的識別場景。在車輛檢測中,容易出現(xiàn)車輛目標(biāo)相互遮擋,小尺度車輛目標(biāo)檢測難的問題,導(dǎo)致檢測精度有待提高,因此上述問題成為了車輛目標(biāo)檢測中亟待解決的問題。針對上述問題科研人員提出了特征金字塔等特征提取方法和無錨框的目標(biāo)檢測算法。
AlexNet[1]的提出拉開了深度學(xué)習(xí)的發(fā)展大幕,VGGNet的提出使得深度神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)成為可能。ResNet[2]的提出,通過殘差連接的方法解決了梯度爆炸問題,減少了模型收斂時(shí)間?,F(xiàn)在主流的目標(biāo)檢測算法主要分單階段和兩階段的方法,其中兩階段方法通過預(yù)測候選框,在生成的候選框基礎(chǔ)上進(jìn)行目標(biāo)的檢測,因此在具有較高的檢測精度時(shí),檢測速度較低。
因此,研究人員提出了單階段的目標(biāo)檢測算法,直接通過提取的圖像特征進(jìn)行目標(biāo)檢測。YOLO(you only look once)系列算法的提出[3],在保證識別準(zhǔn)確率的同時(shí),解決了算法實(shí)時(shí)性的問題。YOLOv1是一種無錨框檢測器,它將特征圖劃分為14*14個(gè)網(wǎng)格,同時(shí)預(yù)測包圍框和物體的中心,直接對每一個(gè)網(wǎng)格中的潛在目標(biāo)進(jìn)行分類和回歸。SSD[4]目標(biāo)檢測算法則通過生成不同尺度的候選框,來實(shí)現(xiàn)多尺度目標(biāo)檢測,具有很好的泛化性,文獻(xiàn)[5-8]在此基礎(chǔ)上進(jìn)行改進(jìn),將其應(yīng)用于車輛目標(biāo)的檢測。張昭等[9]通過加入ResNet,反卷積等方法改進(jìn)特征提取網(wǎng)絡(luò),增加小目標(biāo)車輛的檢測能力。曹磊等[10]則通過改進(jìn)RPN網(wǎng)路來改進(jìn)車輛檢測算法。馬麗萍等[11]在YOLOv3的基礎(chǔ)上改進(jìn)采樣方式并改進(jìn)訓(xùn)練策略,對道路場景的車輛多目標(biāo)進(jìn)行檢測。劉洋等[12]通過增加注意力模塊的方式改進(jìn)小目標(biāo)檢測的精度。
近年來出現(xiàn)了無錨框類的方法,直接通過關(guān)鍵點(diǎn)對目標(biāo)進(jìn)行檢測與定位,極大地減少了網(wǎng)絡(luò)的參數(shù)和計(jì)算量,提高了檢測速度,其檢測精度也高于傳統(tǒng)的單階段和兩階段方法。
單階段方法在圖像上滑動復(fù)雜排列的可能bounding box(錨點(diǎn)),然后直接對框進(jìn)行分類,而不會指定框中內(nèi)容。兩階段方法對每個(gè)潛在框重新計(jì)算圖像特征,然后將那些特征進(jìn)行分類。后處理,即非極大值抑制(non-maximum suppression,NMS),通過計(jì)算bounding box間的IOU來刪除相同目標(biāo)的重復(fù)檢測框。而無錨框目標(biāo)檢測網(wǎng)絡(luò)的方法不同于其它網(wǎng)絡(luò),如ConerNet[13]算法通過兩個(gè)角點(diǎn)來對目標(biāo)進(jìn)行預(yù)測,CenterNet[14]則通過目標(biāo)中心點(diǎn)來呈現(xiàn)目標(biāo),需要將圖像傳入卷積神經(jīng)網(wǎng)絡(luò)中,得到一個(gè)熱力圖,熱力圖的峰值中心點(diǎn)即為中心點(diǎn)。然后在中心點(diǎn)位置回歸出目標(biāo)的尺寸、位置等屬性,從而將目標(biāo)檢測問題變成了一個(gè)標(biāo)準(zhǔn)的關(guān)鍵點(diǎn)估計(jì)問題。
該類算法不同于傳統(tǒng)的單階段方法,CenterNet的錨點(diǎn)是放在位置上,可視為一個(gè)形狀位置的anchor,不需要人工設(shè)置閾值做前后景的區(qū)分,因此該網(wǎng)絡(luò)不需要預(yù)先準(zhǔn)備anchor。每個(gè)目標(biāo)僅有一個(gè)正anchor,因此也不需要NMS操作進(jìn)行候選框的篩選,極大地減少了網(wǎng)絡(luò)的參數(shù)和計(jì)算量。其檢測精度也高于傳統(tǒng)的單階段和兩階段方法,檢測速度滿足實(shí)時(shí)性檢測的要求,但仍存在多尺度特征提取不充分,對小尺度目標(biāo)、遮擋目標(biāo)的識別存在不精準(zhǔn),檢測時(shí)上下文信息不充分導(dǎo)致相鄰目標(biāo)錯(cuò)檢漏檢的問題。因此本文基于CenterNet網(wǎng)絡(luò)進(jìn)行改進(jìn),在小尺度車輛檢測問題中克服上述問題,提出I-CenterNet車輛目標(biāo)檢測方法。
本文提出一種基于單階段目標(biāo)檢測算法CenterNet的改進(jìn)算法。主要采用3種改進(jìn)方法:①提出自適應(yīng)特征提取方法;②自適應(yīng)特征融合結(jié)構(gòu);③中心點(diǎn)位置特征增強(qiáng)方法。改進(jìn)的網(wǎng)絡(luò)I-CenterNet(improved centernet)能充分提取低層網(wǎng)絡(luò)位置信息,減少特征融合時(shí)特征圖信息丟失,提高小目標(biāo)和遮擋目標(biāo)的檢測精度和速度。
為了解決車輛小目標(biāo)檢測中低緯度特征提取不充分的問題,采用自適應(yīng)上下文特征提取。為了克服網(wǎng)絡(luò)對高維特征比低維特征更敏感的問題,改進(jìn)了特征融合方式,增加小目標(biāo)特征的權(quán)重。對基于無錨框的檢測方法中目標(biāo)中心點(diǎn)位置預(yù)測不精準(zhǔn)的問題,提出中心點(diǎn)位置增強(qiáng)方法。提高改進(jìn)網(wǎng)絡(luò)在車輛小目標(biāo)檢測中的小尺度目標(biāo)和遮擋目標(biāo)的檢測能力,整體結(jié)構(gòu)如圖1所示。
在車輛目標(biāo)檢測的過程中存在目標(biāo)被遮擋,目標(biāo)過小的問題,在檢測過程中經(jīng)過卷積和池化操作會丟失大量的特征信息,導(dǎo)致檢測精度降低。并且CenterNet僅使用ResNet50/101作為骨干網(wǎng)絡(luò)進(jìn)行特征提取,易出現(xiàn)特征提取不充分的問題。
針對上述問題,本文通過自適應(yīng)上下文特征提取方法,對網(wǎng)絡(luò)的輸入層進(jìn)行如下改進(jìn),如圖2所示,將 Conv3-3 層的特征圖輸入特征圖池化到3×3,7×7,9×9,3個(gè)不同的尺度,來自不同感受野的上下文信息,每個(gè)池化后特征利用1×1卷積進(jìn)行通道整合,之后分別使用反卷積操作將各個(gè)特征圖進(jìn)行上采樣到相同的尺寸。
輸入的交通場景圖片中包含有各種尺度的車輛,不能簡單的將上下文特征進(jìn)行合并,所以在上下文特征提取網(wǎng)絡(luò)后增加尺度融合單元,將各特征加權(quán)相加,增加小尺度目標(biāo)的權(quán)重。并使用跳躍連接的方式將原始特征融合進(jìn)上采樣后的各特征中,操作具體如下式
yff=a·f1+b·f2+c·f3
(1)
其中, yff是自適應(yīng)上下文特征提取的輸出特征,fk(k∈{1,2,3,4}) 代表經(jīng)過上采樣后并使用點(diǎn)乘操作融合原始特征的不同層級提取的上下文特征圖,以f1為例公式如下
f1=f2×2·f2
(2)
其中,f1如上所述,f2×2為原始2×2卷積特征,f2為上采樣后的特征。
參數(shù)a,b,c代表尺度權(quán)重,網(wǎng)絡(luò)可自動學(xué)習(xí)到這些參數(shù),設(shè)置a+b+c=1, 并且a,b,c∈(0,1), 計(jì)算公式以a為例,如下所示
(3)
其中,at是平均池化和Sigmoid激活函數(shù)組成,通過相同的計(jì)算方式可計(jì)算得到b,c。
上下文特征提取后經(jīng)過1×1卷積進(jìn)行整合,后接改進(jìn)的特征融合模塊??梢宰赃m應(yīng)的通過加權(quán)的方式從上下文特征提取網(wǎng)絡(luò)中選取重要的空間位置信息和語義信息,融合各特征后完成信息融合。其中來自底層的特征包含了大量的空間信息,適合進(jìn)行目標(biāo)的定位。而高層的特征包含了大量的語義特征,適合進(jìn)行目標(biāo)的分類。但是原網(wǎng)絡(luò)不能有效地運(yùn)用底層網(wǎng)絡(luò)的空間信息和高層特征的語義信息,所以本文提出了改進(jìn)的特征提取模塊。
本文提出的改進(jìn)特征提取模塊能自適應(yīng)的進(jìn)行特征融合,如圖3所示。其中為特征提取的各層基礎(chǔ)特征圖。由于低和高層特征圖具有不同大小的分辨率和通道數(shù),所以采用雙線性插值法將其統(tǒng)一到相同大小。其中輸入fin為原始輸入,然后進(jìn)入特征選擇層,使用1×1卷積繼續(xù)特征平滑,在經(jīng)過一個(gè)3×3卷積層進(jìn)行分辨率和通道數(shù)的調(diào)節(jié),后接Sigmoid激活函數(shù)進(jìn)行輸出。其中學(xué)習(xí)權(quán)重參數(shù)為a,b,并通過如式(4)所示的方式進(jìn)行特征融合,由于低維和高維特征主要存在于網(wǎng)絡(luò)的對底層和最高層,所以本文中簡單的只取最底層特征為輸入的低維特征,取最高層的輸出為高維特征
y=a?fl+b?fh
(4)
其中,y代表特征融合模塊的最終輸出特征,fl代表處理后的低層特征,fh代表處理后的高層特征。?表示對應(yīng)位置相乘,⊕代表對應(yīng)位置相加。改進(jìn)后的特征融合模塊通過學(xué)習(xí)到的權(quán)重進(jìn)行對不同層的特征進(jìn)行加權(quán),進(jìn)行特征信息的篩選和融合,不僅加強(qiáng)了低層特征中的語義特征,還在高層特征中加入了更多的空間位置信息。
為了解決原始網(wǎng)絡(luò)生成熱圖后預(yù)測目標(biāo)中心點(diǎn)時(shí),中心點(diǎn)位置與真實(shí)中心點(diǎn)位置不匹配的問題,本文通過中心點(diǎn)特征增強(qiáng)的方式解決中心點(diǎn)位置匹配問題。
類似CBAM[15](convolutional block attention module)模塊,本文的通道注意力模塊結(jié)構(gòu)如圖4所示,首先將特征分別通過最大池化和平均池化操作,得到兩個(gè)一維矢量,再將兩個(gè)特征進(jìn)行融合得到特征的通道注意力,這樣能減少操作的復(fù)雜度,還能保持較高的通道注意力,計(jì)算可以用如式(5)所示
Mc(F)=σAvgPool(F)+ωMaxPool(F)
(5)
其中,以F表示輸入特征圖,AvgPool,MaxPool分別表示平均池化和最大池化,σ、ω表示兩個(gè)操作的權(quán)重,分別取1和0.5。
空間注意力結(jié)構(gòu)如圖5所示,首先做將輸入特征經(jīng)過最大池化,然后對池化后的特征進(jìn)行平均池化,后接卷積核為3×3的卷積操作,并使用跳躍連接,將輸入的原始特征,和經(jīng)過池化后的特征進(jìn)行融合,以增加空間特征注意力,最后通過Sigmoid函數(shù)進(jìn)行輸出,計(jì)算公式如下
Ms(F)=?(f3×3([AvgPool(F);MaxPool(F)])·F)
(6)
其中,?表示的是Sigmoid激活函數(shù),F(xiàn)表示輸入特征圖,AvgPool,MaxPool分別表示平均池化和最大池化。
本文將改進(jìn)后的通道和空間注意力進(jìn)行串聯(lián),由于中心點(diǎn)位置對空間信息敏感,所以增加一路空間注意力模塊,如圖6所示。
通過引入中心點(diǎn)特征增強(qiáng)模塊,增加了中心點(diǎn)預(yù)測的準(zhǔn)確性,解決了原始網(wǎng)絡(luò)中預(yù)測目標(biāo)中心點(diǎn)位置與真實(shí)中心點(diǎn)不匹配的問題。在車輛檢測中增加了對遮擋車輛和遠(yuǎn)處較小車輛的中心點(diǎn)預(yù)測準(zhǔn)確度。
總結(jié),本文提出自適應(yīng)上下文特征提取,不僅能提取多尺度上下文特征,還可以根據(jù)輸入圖片中潛在目標(biāo)的不同尺度分布自適應(yīng)進(jìn)行特征的加權(quán)融合,改進(jìn)的特征融合模塊可以將低層和高層的特征進(jìn)行加權(quán)融合,提高小目標(biāo)的權(quán)重。并在此基礎(chǔ)上加入中心點(diǎn)特征增強(qiáng)模塊,有效提高了目標(biāo)中心點(diǎn)位置的準(zhǔn)確度。綜上有效提高了網(wǎng)絡(luò)對車輛小目標(biāo),和遮擋目標(biāo)的檢測能力。
本文實(shí)驗(yàn)平臺如下:Intel(R)Xeon E5@1.5 GHz,32 G內(nèi)存,Ubuntu 18系統(tǒng),顯卡英偉達(dá)GTX 1080ti,程序運(yùn)行python環(huán)境為python3.6,使用pytorch 1.5,CUDA 10.1,數(shù)據(jù)集使用UA-DETRAC數(shù)據(jù)集,訓(xùn)練時(shí)對原始數(shù)據(jù)采取如下幾種數(shù)據(jù)增強(qiáng)方法,對數(shù)據(jù)進(jìn)行擴(kuò)增,以增加訓(xùn)練樣本的多樣性,包括隨機(jī)角度旋轉(zhuǎn)、亮度變化、噪聲干擾、適度變換等。
本文采用精確率P(precision)、召回率R(recall)和平均精度均值mAP(mean average precision)的指標(biāo)對模型進(jìn)行性能測試。
準(zhǔn)確率P,實(shí)際是正類且被預(yù)測為正類的樣本占所有預(yù)測為正類樣本的比例,公式如下
(7)
其中,TP(true positives)指原本為正類且被劃分為正類的樣本;FP(false positives)指原本為負(fù)類但被劃分為正類的樣本。
召回率R,實(shí)際是正類且被預(yù)測為正類的樣本占所有實(shí)際為正類樣本的比例,公式如下
(8)
其中,F(xiàn)N(false negative)指原本為正類但被劃分為負(fù)類的樣本。由P-R曲線圍成的面積則為平均精度均值mAP。
通過測試集進(jìn)行測試,最終平均精度均值為92.9%,準(zhǔn)確率P為94.3%,召回率R為93.7%。一般檢測速度高于30 fps即認(rèn)為具有實(shí)時(shí)檢測的能力,本文方法的檢測速度為59 fps,即滿足實(shí)時(shí)性檢測的需求。對主流的檢測模型進(jìn)行了對比,見表1,從表中可以看出,本文提出的方法的平均精度比原有網(wǎng)絡(luò)提高5.7%,速度幾乎相同,并且在檢測速度略有減少的情況下精度比YOLOv4更高4%,實(shí)驗(yàn)效果比Faster-RCNN有所提高,并且速度更快。
表1 多種檢測算法對比
實(shí)驗(yàn)效果如圖7所示,結(jié)果中對比了本文的I-CenterNet和Faster-RCNN、CenterNet。從圖中可以看出I-CenterNet對遠(yuǎn)處較小的車輛進(jìn)行了有效的識別,并且成功檢測出被遮擋車輛。Faster-RCNN、CenterNet則無法精準(zhǔn)的識別出遠(yuǎn)處較小的車輛,并且將遮擋的兩個(gè)車輛識別成一個(gè)目標(biāo),還出現(xiàn)個(gè)別車輛檢測不出來的情況。
本文對各模塊進(jìn)行了消融實(shí)驗(yàn),檢測方法同上。分別對比了原始CenterNet網(wǎng)絡(luò),CenterNet+改進(jìn)的特征提取和特征融合(CenterNet*),CenterNet+中心點(diǎn)特征增強(qiáng)(CenterNet**)和CenterNet+改進(jìn)的特征提取和特征融合+中心點(diǎn)特征增強(qiáng)(I-CenterNet)。并繪制了Bus,Truck類的P-R曲線,如圖8所示,從圖中可以看出在該數(shù)據(jù)集下,“Bus”類別的檢測效果有所改善,當(dāng)R=0.5時(shí),P=0.16,改進(jìn)后算法的準(zhǔn)確率相比CenterNet網(wǎng)絡(luò)提高了32%。并且從圖中可以看出在改進(jìn)后算法的P-R曲線包圍面積更多,其中本文提出的模型(I-CenterNet)在Bus類的識別中AP值為87.6%,相比原始模型增加了1.4%。本文提出的模型在Truck類的識別中AP值為91.5%,相比原始模型增加了0.8%,檢測效果更好。
我們還對比了中心點(diǎn)增強(qiáng)的結(jié)果,如圖9所示,可以看到原始網(wǎng)絡(luò)中預(yù)測的中心點(diǎn)比改進(jìn)的網(wǎng)絡(luò)預(yù)測的中心點(diǎn)有不同程度的偏移,并且在遠(yuǎn)景的小車輛中,預(yù)測的點(diǎn)靠得很近或沒有預(yù)測出來,這樣會導(dǎo)致預(yù)測的目標(biāo)框不精準(zhǔn),兩個(gè)距離很近的目標(biāo)識別成一個(gè)。
表2為對比改進(jìn)各模塊的檢測效果,從表中可以看出,在該數(shù)據(jù)集上,改進(jìn)后的模型相比原始模型在相同類別的檢測中,本文提出的方法相比原始網(wǎng)絡(luò)平均精度提高了5%,僅使用中心點(diǎn)特征增強(qiáng)的網(wǎng)絡(luò)相比原始網(wǎng)絡(luò)提升了4%,因此改進(jìn)后的算法整體表現(xiàn)最好,能夠解決車輛檢測中的小目標(biāo)檢測和目標(biāo)遮擋的問題。
表2 對比改進(jìn)各模塊的檢測效果
本文針對小目標(biāo)車輛檢測問題,提出一種基于無錨框目標(biāo)檢測網(wǎng)絡(luò)改進(jìn)的車輛目標(biāo)檢測算法,提出了自適應(yīng)上下文特征提取模塊,增加對多尺度車輛小目標(biāo)特征提取能力,改進(jìn)了原始網(wǎng)絡(luò)中只是用ResNet作為特征提取網(wǎng)絡(luò)對目標(biāo)提取能力的不足。改進(jìn)了特征融合方法,自適應(yīng)的將低層特征與高層特征通過加權(quán)的方式特征融合,克服了網(wǎng)絡(luò)對高維特征比低維特征更敏感的問題。提出了中心點(diǎn)特征增強(qiáng)方法,提升中心點(diǎn)位置的預(yù)測準(zhǔn)確度,并且能提升有效的特征權(quán)重并抑制無效權(quán)重,解決了原始網(wǎng)絡(luò)中相近目標(biāo)中心點(diǎn)位置預(yù)測不準(zhǔn)確的問題。使用UA-DETRAC數(shù)據(jù)集對本文算法在進(jìn)行了訓(xùn)練和測試,實(shí)驗(yàn)結(jié)果表明:在該數(shù)據(jù)集上,本文提出的模型,總體性能優(yōu)于原始的CenterNet網(wǎng)絡(luò),平均精度達(dá)到92.9%,并且檢測速度達(dá)到了59 fps。并通過實(shí)驗(yàn)驗(yàn)證了各模塊的有效性,在保證檢測速度的前提下,提高了網(wǎng)絡(luò)對車輛小目標(biāo)和遮擋車輛的檢測能力,并在實(shí)驗(yàn)室環(huán)境中達(dá)到了車輛檢測效果。后續(xù)將在此實(shí)驗(yàn)的基礎(chǔ)上進(jìn)行研究,提升在復(fù)雜背景下的車輛檢測能力。