王運(yùn)明,彭國(guó)都,周奕昂,李衛(wèi)東
(1.大連交通大學(xué) 自動(dòng)化與電氣工程學(xué)院,遼寧 大連 116028;2.中車(chē)長(zhǎng)春軌道客車(chē)股份有限公司 國(guó)家工程技術(shù)中心,吉林 長(zhǎng)春 130000)
城市有軌電車(chē)是一種能提供高質(zhì)量公共交通服務(wù)、降低交通擁堵、改善空氣環(huán)境的低成本高效率的交通工具,未來(lái)將成為公共交通系統(tǒng)的新生力量。城市有軌電車(chē)主要采用人工駕駛的方式行駛在城市骨干道路中,與汽車(chē)、行人共同占用道路空間。然而,駕駛員受視覺(jué)盲區(qū)、精力不集中、突發(fā)情況等因素影響,難以準(zhǔn)確觀察電車(chē)軌道前方的障礙物,尤其是行人、動(dòng)物等小目標(biāo)障礙物,容易引發(fā)交通事故,影響城市有軌電車(chē)行車(chē)安全。近年來(lái),深度學(xué)習(xí)技術(shù)的快速發(fā)展,在計(jì)算機(jī)視覺(jué)領(lǐng)域得到廣泛應(yīng)用,大大提升了目標(biāo)檢測(cè)的精度,可為有軌電車(chē)前方小目標(biāo)障礙物檢測(cè)提供新的技術(shù)手段,對(duì)提高城市有軌電車(chē)行車(chē)安全具有重要意義。目前,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為兩類。一類是以R-CNN[1]、Fast R-CNN[2]、Faster R-CNN[3]為主的基于區(qū)域的雙階段目標(biāo)檢測(cè)算法,該類算法具備檢測(cè)精度高的優(yōu)點(diǎn),但檢測(cè)速度較慢。文獻(xiàn)[4]在Faster R-CNN算法的基礎(chǔ)上,設(shè)計(jì)全局平均池化層替換全連接層,增加先驗(yàn)框數(shù)量,提高目標(biāo)建議區(qū)域的精確性,提升了鐵路侵限障礙物的識(shí)別能力,但實(shí)時(shí)性較差。另一類是以YOLO[5]、SSD[6]為主的單階段目標(biāo)檢測(cè)算法,該類算法不需要提前生成真實(shí)的先驗(yàn)框,直接將目標(biāo)邊界框定位問(wèn)題轉(zhuǎn)換為回歸問(wèn)題,具有檢測(cè)速度快的優(yōu)點(diǎn)。文獻(xiàn)[7]在YOLO-V3的基礎(chǔ)上,采用k-means算法聚類分析缺陷先驗(yàn)框的尺寸,提高軌道扣件缺陷的檢測(cè)準(zhǔn)確性和效率;劉力等[8]針對(duì)YOLO-V4網(wǎng)絡(luò)的先驗(yàn)框,采用歐式距離度量改進(jìn)k-means算法的聚類中心選取方法,獲得更加吻合實(shí)際檢測(cè)對(duì)象大小的先驗(yàn)框尺寸,提升鐵路侵限障礙物的檢測(cè)精度。YOLO改進(jìn)算法的檢測(cè)精度仍低于SSD算法。張?jiān)谱舻萚9]改進(jìn)了SSD網(wǎng)絡(luò)結(jié)構(gòu)的網(wǎng)絡(luò)寬度和網(wǎng)絡(luò)深度,提升了鐵路隧道漏纜卡具的檢測(cè)精度;李兆洋等[10]采用ResNet101替換SSD的VGG16網(wǎng)絡(luò),利用膨脹卷積擴(kuò)大網(wǎng)絡(luò)的感受野,提高高鐵軌道扣件的檢測(cè)精度;王煥民等[11]提出了一種基于MobileNet-SSD的鐵路信號(hào)燈檢測(cè)算法,提升了鐵路信號(hào)燈的檢測(cè)精度和速度。上述SSD改進(jìn)算法提取低層特征層的語(yǔ)義信息能力有限,致使鐵路小目標(biāo)障礙物的檢測(cè)精度不高。
為提高有軌電車(chē)軌道小障礙物的檢測(cè)精度和效率,在SSD算法的基礎(chǔ)上,本文提出了一種基于DA-SSD的有軌電車(chē)軌道小目標(biāo)障礙物檢測(cè)算法。
城市有軌電車(chē)運(yùn)行在與汽車(chē)、行人等共用的復(fù)雜城市主干道路上,前方經(jīng)常出現(xiàn)各類障礙物,尤其是小目標(biāo)障礙物,嚴(yán)重影響有軌電車(chē)的行車(chē)安全和行車(chē)效率。為提高有軌電車(chē)檢測(cè)前方障礙物的智能化水平,本文在SSD目標(biāo)檢測(cè)算法的基礎(chǔ)上,設(shè)計(jì)雙段反卷積模塊,增加自適應(yīng)注意力機(jī)制模塊,建立了DA-SSD網(wǎng)絡(luò)結(jié)構(gòu)模型,提升軌道小目標(biāo)障礙物的檢測(cè)能力。DA-SSD網(wǎng)絡(luò)結(jié)構(gòu)模型見(jiàn)圖1,圖中De表示對(duì)特征層進(jìn)行反卷積,C表示通道級(jí)聯(lián)融合,A表示自注意力機(jī)制模塊。

圖1 DA-SSD網(wǎng)絡(luò)結(jié)構(gòu)模型
DA-SSD網(wǎng)絡(luò)結(jié)構(gòu)模型以VGG16主干網(wǎng)絡(luò)為基礎(chǔ)進(jìn)行設(shè)計(jì)。首先,設(shè)計(jì)雙段反卷積模塊(Two stage deconvolution module),替換VGG16網(wǎng)絡(luò)中用于檢測(cè)小目標(biāo)障礙物的conv4_3、fc7兩層低層特征層,生成融合特征層fu_conv4_3、fu_fc7;其次,增加自適應(yīng)注意力機(jī)制模塊(Adaptive attention mechanism module),生成具有更強(qiáng)語(yǔ)義信息和更精確位置信息的new_conv4_3、new_fc7;最后,修正先驗(yàn)框生成方式,增強(qiáng)電車(chē)檢測(cè)軌道小目標(biāo)障礙物的適應(yīng)性,提升小目標(biāo)障礙物的檢測(cè)精度。
深度卷積網(wǎng)絡(luò)的低層特征層包含豐富的特征信息,SSD目標(biāo)檢測(cè)算法主要通過(guò)低層特征層檢測(cè)小目標(biāo)。SSD算法在低層特征層的卷積次數(shù)較少,產(chǎn)生較少的語(yǔ)義信息,影響電車(chē)軌道小目標(biāo)障礙物的檢測(cè)效果。為增強(qiáng)SSD算法在低層特征層的特征表達(dá)能力,本文設(shè)計(jì)了低層雙段反卷積模塊,對(duì)conv6_2、fc7兩層特征層分別進(jìn)行反卷積操作[12],按照通道級(jí)聯(lián)方式與前一層特征層進(jìn)行融合。低層雙段反卷積模塊結(jié)構(gòu)見(jiàn)圖2。

圖2 低層雙段反卷積模塊結(jié)構(gòu)
低層雙段反卷積模塊首先對(duì)conv6_2進(jìn)行反卷積,得到與fc7大小、通道數(shù)均相同的De_conv6_2,然后按照通道級(jí)聯(lián)方式與Fc7進(jìn)行融合,得到fu_fc7;同理,對(duì)新生成的fu_Fc7進(jìn)行反卷積,得到與Conv4_3大小、通道數(shù)均相同的De_fu_fc7,再按照通道級(jí)聯(lián)方式與Conv4_3進(jìn)行融合,得到fu_conv4_3。
VGG16網(wǎng)絡(luò)的各個(gè)輸入特征層包含許多不同大小的向量,且向量之間存在一定的相關(guān)性。然而,在實(shí)際訓(xùn)練中,通常無(wú)法充分利用這些輸入特征之間的相關(guān)性;同時(shí),由于多尺度特征圖的感受野大小不同,導(dǎo)致各個(gè)特征圖包含的特征信息存在差異,造成生成的特征圖無(wú)法充分反映不同尺度下空間特征的重要性。上述問(wèn)題將導(dǎo)致模型預(yù)測(cè)結(jié)果出現(xiàn)偏移,影響訓(xùn)練效果,降低預(yù)測(cè)精度。因此,在低層雙段反卷積模塊新生成的fu_conv4_3、fu_Fc7之后,增加CBAM自適應(yīng)注意力機(jī)制模塊,自適應(yīng)地調(diào)整融合特征層中的參數(shù),更加關(guān)注對(duì)當(dāng)前任務(wù)有意義的關(guān)鍵信息,生成New_Conv4_3、New_fc7,提升新的小目標(biāo)預(yù)測(cè)層中通道間的相關(guān)性和目標(biāo)間的空間依賴關(guān)系。
CBAM自適應(yīng)注意機(jī)制包含通道注意力模塊和空間注意力模塊,見(jiàn)圖3。

(a)通道注意力模塊
通道注意力模塊,以通道為單位,對(duì)低層雙段反卷積模塊中融合生成的特征圖Fi∈RH×W×C分別做全局最大池化和全局平均池化,生成Fi1、Fi2,Fi1、Fi2∈R1×1×C,該過(guò)程可分別表示為:
Fi1=Max Pool (Fi)
(1)
Fi2=Avg Pool (Fi)
(2)
Fi1、Fi2傳遞到一個(gè)共享的全連接層。全連接層共包含兩層,第一層全連接層神經(jīng)元個(gè)數(shù)較少,第二層全連接層神經(jīng)元個(gè)數(shù)和輸入特征圖通道數(shù)相同。對(duì)全連接層輸出的兩個(gè)長(zhǎng)度為C的特征長(zhǎng)條進(jìn)行相加處理,并取sigmoid,使其值固定在0~1,得到Channelattention(Fi),簡(jiǎn)稱CA(Fi),CA(Fi)∈R1×1×C,該過(guò)程可表示為:
CA(Fi)=S[FR(Fi1)+FR(Fi2)]
(3)
最后,將CA(Fi)乘以輸入特征圖。
空間注意力模塊以每個(gè)通道對(duì)應(yīng)的點(diǎn)為單位,對(duì)CA(Fi)分別做全局最大池化和全局平均池化,生成CA(Fi1)、CA(Fi2)和CA(Fi1)、CA(Fi2)∈RH×W×1,CA(Fi1)和CA(Fi2)堆疊得到CA(Fi3)。
再對(duì)CA(Fi3)特征圖取卷積,卷積核的通道數(shù)為1,生成一個(gè)大小為H×W×1的特征長(zhǎng)條,特征長(zhǎng)條取sigmoid,使值固定在0~1,得到Spatial attention(Fi),簡(jiǎn)稱SA(Fi),該過(guò)程可表示為:
SA(Fi)=S{C[CA(Fi3)]}
(4)
最后,將該值分別乘以輸入CA(Fi),得到新的特征預(yù)測(cè)層。
SSD算法采用默認(rèn)先驗(yàn)框的方式,處理不同層的特征圖,回歸位置信息。算法以不同尺寸縮放每層特征層的先驗(yàn)框,即:
Sk=0.2+0.17(k-1),k∈[1,m]
(5)
式中:Sk表示第k+1層先驗(yàn)框的大小相對(duì)于輸入圖片的比例;m設(shè)置為5。
第一層特征層生成的先驗(yàn)框相對(duì)于輸入圖片的比例為0.1,其他5層特征層生成的先驗(yàn)框相對(duì)于輸入圖片的比例分別為0.1、0.2、0.37、0.54、0.71、0.88,若輸入圖片大小為300×300,則每層特征層生成長(zhǎng)寬比為1的先驗(yàn)框大小為30、60、111、162、213、264。



圖4 自制數(shù)據(jù)集尺寸分布
由圖4可以看出,自制數(shù)據(jù)集中真實(shí)框的尺寸分布在0~40,均為小目標(biāo)障礙物,應(yīng)根據(jù)真實(shí)框的變化范圍設(shè)置先驗(yàn)框的尺寸。SSD算法中原始先驗(yàn)框的生成方法在訓(xùn)練時(shí)易產(chǎn)生較大的回歸偏差。
因此,本文將第一層特征層先驗(yàn)框相對(duì)圖片的比例調(diào)整為0.05;同時(shí)對(duì)先驗(yàn)框的生成公式進(jìn)行修改,修改之后的公式為:
Sk=0.1+0.05(k-1),k∈[1,m]
(6)
則各層特征層生成的先驗(yàn)框相對(duì)于輸入圖片的比例分別為:0.05、0.10、0.15、0.20、0.25、0.30,每層特征層生成長(zhǎng)寬比為1的先驗(yàn)框大小分別為:15、30、45、60、75、90。
SSD模型生成的先驗(yàn)框中負(fù)樣本的數(shù)量遠(yuǎn)大于正樣本數(shù)量,會(huì)導(dǎo)致模型收斂速度變慢、漏檢率偏高。DA-SSD模型仍通過(guò)計(jì)算先驗(yàn)框和真實(shí)框的iou區(qū)分正負(fù)樣本,iou大于閾值為正樣本,否則為負(fù)樣本。模型按照正、負(fù)樣本1∶3的比例刪除負(fù)樣本中置信度低的先驗(yàn)框,保證訓(xùn)練過(guò)程中正負(fù)樣本數(shù)量的均衡性。
試驗(yàn)采用分段衰減的方式調(diào)整學(xué)習(xí)率,初始學(xué)習(xí)率設(shè)置為5×10-4,每訓(xùn)練1 000次學(xué)習(xí)率下降為前一階段的1/10,當(dāng)?shù)螖?shù)達(dá)到10 000次后,學(xué)習(xí)率大小保持不變。選用VGG16網(wǎng)絡(luò)在VOC2007數(shù)據(jù)集上的訓(xùn)練權(quán)值作為本試驗(yàn)的預(yù)訓(xùn)練參數(shù),設(shè)置訓(xùn)練集和測(cè)試集的比例為4∶1,input_shape為325×500,classes為3,batch_size為8。本試驗(yàn)在Python 3.8.3環(huán)境下的tensorflow深度學(xué)習(xí)框架開(kāi)展訓(xùn)練和測(cè)試。
試驗(yàn)采用實(shí)地拍攝的電車(chē)軌道障礙物圖片制作數(shù)據(jù)集。拍攝圖片數(shù)量為2 000張,障礙物分為人、動(dòng)物兩類小目標(biāo),每類障礙物包含1 000張圖片,預(yù)處理過(guò)程將圖片大小調(diào)整為325×500;通過(guò)對(duì)每張圖片進(jìn)行鏡像操作達(dá)到數(shù)據(jù)集增廣的目的,增廣后的障礙物圖片見(jiàn)圖5。

圖5 數(shù)據(jù)鏡像增廣樣本
最終數(shù)據(jù)集共4 000張圖片,包含兩類6 328個(gè)小目標(biāo)障礙物。通過(guò)tensorflow中Labelimg標(biāo)注工具,標(biāo)注數(shù)據(jù)集中障礙物目標(biāo)區(qū)域及其所屬類別,生成相應(yīng)的xml文件,圖片和對(duì)應(yīng)標(biāo)注文件的存儲(chǔ)格式與VOC2007數(shù)據(jù)集相同。
為了更直觀地衡量DA-SSD算法檢測(cè)有軌電車(chē)前方小目標(biāo)障礙的能力,采用平均精度均值MAP(Mean Average Precision)和每秒傳輸幀數(shù)FPS(Frame Per Second,即每秒處理圖片數(shù)量)作為評(píng)價(jià)指標(biāo)。平均精度均值MAP是所有類別平均精度AP的平均值,平均精度AP是綜合數(shù)據(jù)樣本中某個(gè)類別的精確率(Precision, P)和召回率(Recall, R)的評(píng)價(jià)指標(biāo)。
精確率指被正確檢測(cè)的數(shù)量占全部檢出數(shù)量的百分比,召回率指被正確檢測(cè)的數(shù)量占全部標(biāo)注數(shù)量的百分比。根據(jù)檢測(cè)結(jié)果繪制縱軸為精確率,橫軸為召回率的P-R曲線,P-R曲線的面積為平均精度值,計(jì)算公式如下:

(7)
為驗(yàn)證本文所提出的雙段反卷積模塊和自適應(yīng)注意力機(jī)制模塊對(duì)有軌電車(chē)小目標(biāo)障礙物的檢測(cè)效果,通過(guò)特征圖可視化,對(duì)比SSD在conv4_3和DA-SSD算法在New_conv4_3輸出的特征圖,結(jié)果見(jiàn)圖6。

圖6 兩種算法在conv4_3層輸出的特征圖
由圖6可以看出,SSD算法在conv4_3特征層輸出的可視化特征圖中狗的空間特征較為模糊,說(shuō)明SSD算法經(jīng)過(guò)多層卷積后空間信息丟失明顯,導(dǎo)致狗的特征逐漸抽象化;DA-SSD算法在New_conv4_3特征層輸出的特征圖中狗的空間特征更為清晰,說(shuō)明采用雙段反卷積模塊和自適應(yīng)注意力機(jī)制模塊能夠豐富低層特征圖的語(yǔ)義信息和空間信息,有利于提高小目標(biāo)障礙物的檢測(cè)精度。
同時(shí),為驗(yàn)證本文針對(duì)小目標(biāo)障礙物檢測(cè)提出的先驗(yàn)框生成方式,在VOC2007訓(xùn)練集中分別對(duì)SSD算法和執(zhí)行先驗(yàn)框改進(jìn)操作的SSD算法(Improve-SSD)進(jìn)行訓(xùn)練,訓(xùn)練過(guò)程中損失函數(shù)Loss變化曲線見(jiàn)圖7。

圖7 Loss曲線對(duì)比圖
由圖7可知,迭代約8 000次后,SSD算法與Improve-SSD算法達(dá)到收斂狀態(tài),SSD算法的收斂值約為0.7,Improve-SSD算法的收斂值約為0.65。說(shuō)明修正先驗(yàn)框生成方式,提升了算法的性能,更適用于檢測(cè)小目標(biāo)障礙物。
為評(píng)估DA-SSD算法對(duì)城市有軌電車(chē)軌道小目標(biāo)障礙物的檢測(cè)性能,利用SSD算法和DA-SSD算法在自制數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試,Riou設(shè)置為0.6,測(cè)試集中Precision、Recall、AP三個(gè)指標(biāo)的測(cè)試結(jié)果見(jiàn)表1。

表1 兩種算法的AP測(cè)試結(jié)果
由表1可知,DA-SSD算法的各項(xiàng)測(cè)試指標(biāo)均高于SSD算法,檢測(cè)人和動(dòng)物兩類小目標(biāo)障礙物的Precious值均大于89%,AP值均大于77%,DA-SSD算法提高了電車(chē)軌道小目標(biāo)障礙物的檢測(cè)精度。
為進(jìn)一步驗(yàn)證本文所提出算法的優(yōu)越性,將DA-SSD算法與Faster RCNN、YOLO-V3、SSD、FSSD 4種先進(jìn)的目標(biāo)檢測(cè)算法進(jìn)行對(duì)比。其中,FSSD算法是對(duì)SSD的經(jīng)典改進(jìn)算法,提出了一種特征融合的方式,將VGG16產(chǎn)生的不同尺度的特征圖,利用雙線性插值法變換為與conv4_3大小、通道數(shù)相同的的特征圖,再按照通道級(jí)聯(lián)的方式將多個(gè)特征圖進(jìn)行特征融合。所有用于對(duì)比的目標(biāo)檢測(cè)算法均在自制的城市軌道電車(chē)障礙物數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試。不同算法的Loss曲線見(jiàn)圖8,性能對(duì)比見(jiàn)表2。

圖8 各種目標(biāo)檢測(cè)算法的Loss曲線對(duì)比圖

表2 不同算法的性能對(duì)比
由圖8可知,由于DA-SSD網(wǎng)絡(luò)模型更為復(fù)雜,在訓(xùn)練的初始階段,DA-SSD算法的損失值高于SSD、Faster-RCNN、YOLO-V3 3種算法,但低于FSSD算法。在迭代約7 000次后,DA-SSD算法達(dá)到收斂狀態(tài),收斂速度快于SSD算法和FSSD算法,這是因?yàn)镈A-SSD算法增加了自適應(yīng)注意力機(jī)制模塊,能夠自適應(yīng)地分配權(quán)重,快速排除干擾,提升訓(xùn)練收斂速度;DA-SSD算法的收斂值約為1.5,低于其余4種算法。
由表2可知,DA-SSD算法檢測(cè)人、動(dòng)物兩類小目標(biāo)障礙物的AP值均高于其他4種算法,提升了小目標(biāo)障礙物的檢測(cè)精度。在測(cè)試集下,相比于Faster RCNN、YOLO-V3、SSD、FSSD 4種目標(biāo)檢測(cè)算法,MAP分別提升了0.12%、0.5%、0.28%、0.21%。從檢測(cè)速度上看,DA-SSD算法的FPS在測(cè)試集上達(dá)到23.4 f/s,檢測(cè)速度與SSD、FSSD基本保持一致,能夠滿足城市有軌電車(chē)對(duì)障礙物檢測(cè)速度的要求。
為避免試驗(yàn)過(guò)程中由于Riou取值的不同,使試驗(yàn)結(jié)果產(chǎn)生偶然性,在測(cè)試集上設(shè)置Riou分別為0.5、0.7。DA-SSD算法與其他算法的檢測(cè)精度隨迭代次數(shù)的變化情況見(jiàn)圖9,其中圖9(a)為Riou=0.5時(shí)的測(cè)試結(jié)果,圖9(b)為Riou=0.7時(shí)的測(cè)試結(jié)果。

(a) Riou=0.5
由圖9可以看出,當(dāng)Riou取不同值時(shí),經(jīng)過(guò)約4 000次迭代后,DA-SSD算法的MAP值逐漸超過(guò)Faster RCNN、YOLO-V3、SSD、FSSD 4種算法。經(jīng)過(guò)約6 000次迭代后,DA-SSD算法的MAP曲線進(jìn)入穩(wěn)定的收斂狀態(tài),且MAP值大于其余4種算法,表明無(wú)論Riou取任何值,DA-SSD算法對(duì)有軌電車(chē)小目標(biāo)障礙物的檢測(cè)效果均優(yōu)于Faster RCNN、YOLO-V3、SSD、FSSD 4種主流的目標(biāo)檢測(cè)算法。
最后,采用自制數(shù)據(jù)集中的測(cè)試集對(duì)訓(xùn)練后的SSD模型和DA-SSD模型進(jìn)行小目標(biāo)障礙物的檢測(cè)測(cè)試,見(jiàn)圖10。圖10(a)為SSD算法檢測(cè)動(dòng)物和人的結(jié)果,圖10(b)為DA-SSD算法檢測(cè)動(dòng)物和人的結(jié)果。

(a) SSD算法
由圖10可以看出,相比于SSD算法,DA-SSD算法提升了預(yù)測(cè)框的位置精度和置信度,提高了有軌電車(chē)軌道小目標(biāo)障礙物的檢測(cè)精度。DA-SSD算法通過(guò)引入低層雙段反卷積模塊和自注意力機(jī)制模塊,豐富了低層特征層的語(yǔ)義信息,通過(guò)修正先驗(yàn)框生成方式,增強(qiáng)了電車(chē)檢測(cè)軌道小目標(biāo)障礙物的適應(yīng)性,提升了小目標(biāo)障礙物的檢測(cè)精度。
本文為提高SSD算法檢測(cè)有軌電車(chē)軌道小目標(biāo)障礙物的精度,提出了一種基于DA-SSD的有軌電車(chē)軌道小目標(biāo)障礙物檢測(cè)算法。該算法利用反卷積和通道融合,設(shè)計(jì)雙段反卷積模塊,豐富低層特征層語(yǔ)義信息;增加自注意力機(jī)制模塊,生成新的具有更強(qiáng)語(yǔ)義信息和精確位置信息的特征預(yù)測(cè)層;結(jié)合實(shí)際應(yīng)用場(chǎng)景,縮小SSD算法先驗(yàn)框大小,增強(qiáng)軌道小目標(biāo)障礙物檢測(cè)的適應(yīng)性。在自制的有軌電車(chē)軌道障礙物數(shù)據(jù)集上進(jìn)行訓(xùn)練與測(cè)試,結(jié)果表明:該算法保持檢測(cè)速度的基礎(chǔ)上,提高了軌道小目標(biāo)障礙物的檢測(cè)精度,為有軌電車(chē)安全行駛提供保障。