王運明,彭國都,周奕昂,李衛(wèi)東
(1.大連交通大學 自動化與電氣工程學院,遼寧 大連 116028;2.中車長春軌道客車股份有限公司 國家工程技術中心,吉林 長春 130000)
城市有軌電車是一種能提供高質量公共交通服務、降低交通擁堵、改善空氣環(huán)境的低成本高效率的交通工具,未來將成為公共交通系統(tǒng)的新生力量。城市有軌電車主要采用人工駕駛的方式行駛在城市骨干道路中,與汽車、行人共同占用道路空間。然而,駕駛員受視覺盲區(qū)、精力不集中、突發(fā)情況等因素影響,難以準確觀察電車軌道前方的障礙物,尤其是行人、動物等小目標障礙物,容易引發(fā)交通事故,影響城市有軌電車行車安全。近年來,深度學習技術的快速發(fā)展,在計算機視覺領域得到廣泛應用,大大提升了目標檢測的精度,可為有軌電車前方小目標障礙物檢測提供新的技術手段,對提高城市有軌電車行車安全具有重要意義。目前,基于深度學習的目標檢測算法主要分為兩類。一類是以R-CNN[1]、Fast R-CNN[2]、Faster R-CNN[3]為主的基于區(qū)域的雙階段目標檢測算法,該類算法具備檢測精度高的優(yōu)點,但檢測速度較慢。文獻[4]在Faster R-CNN算法的基礎上,設計全局平均池化層替換全連接層,增加先驗框數(shù)量,提高目標建議區(qū)域的精確性,提升了鐵路侵限障礙物的識別能力,但實時性較差。另一類是以YOLO[5]、SSD[6]為主的單階段目標檢測算法,該類算法不需要提前生成真實的先驗框,直接將目標邊界框定位問題轉換為回歸問題,具有檢測速度快的優(yōu)點。文獻[7]在YOLO-V3的基礎上,采用k-means算法聚類分析缺陷先驗框的尺寸,提高軌道扣件缺陷的檢測準確性和效率;劉力等[8]針對YOLO-V4網絡的先驗框,采用歐式距離度量改進k-means算法的聚類中心選取方法,獲得更加吻合實際檢測對象大小的先驗框尺寸,提升鐵路侵限障礙物的檢測精度。YOLO改進算法的檢測精度仍低于SSD算法。張云佐等[9]改進了SSD網絡結構的網絡寬度和網絡深度,提升了鐵路隧道漏纜卡具的檢測精度;李兆洋等[10]采用ResNet101替換SSD的VGG16網絡,利用膨脹卷積擴大網絡的感受野,提高高鐵軌道扣件的檢測精度;王煥民等[11]提出了一種基于MobileNet-SSD的鐵路信號燈檢測算法,提升了鐵路信號燈的檢測精度和速度。上述SSD改進算法提取低層特征層的語義信息能力有限,致使鐵路小目標障礙物的檢測精度不高。
為提高有軌電車軌道小障礙物的檢測精度和效率,在SSD算法的基礎上,本文提出了一種基于DA-SSD的有軌電車軌道小目標障礙物檢測算法。
城市有軌電車運行在與汽車、行人等共用的復雜城市主干道路上,前方經常出現(xiàn)各類障礙物,尤其是小目標障礙物,嚴重影響有軌電車的行車安全和行車效率。為提高有軌電車檢測前方障礙物的智能化水平,本文在SSD目標檢測算法的基礎上,設計雙段反卷積模塊,增加自適應注意力機制模塊,建立了DA-SSD網絡結構模型,提升軌道小目標障礙物的檢測能力。DA-SSD網絡結構模型見圖1,圖中De表示對特征層進行反卷積,C表示通道級聯(lián)融合,A表示自注意力機制模塊。
圖1 DA-SSD網絡結構模型
DA-SSD網絡結構模型以VGG16主干網絡為基礎進行設計。首先,設計雙段反卷積模塊(Two stage deconvolution module),替換VGG16網絡中用于檢測小目標障礙物的conv4_3、fc7兩層低層特征層,生成融合特征層fu_conv4_3、fu_fc7;其次,增加自適應注意力機制模塊(Adaptive attention mechanism module),生成具有更強語義信息和更精確位置信息的new_conv4_3、new_fc7;最后,修正先驗框生成方式,增強電車檢測軌道小目標障礙物的適應性,提升小目標障礙物的檢測精度。
深度卷積網絡的低層特征層包含豐富的特征信息,SSD目標檢測算法主要通過低層特征層檢測小目標。SSD算法在低層特征層的卷積次數(shù)較少,產生較少的語義信息,影響電車軌道小目標障礙物的檢測效果。為增強SSD算法在低層特征層的特征表達能力,本文設計了低層雙段反卷積模塊,對conv6_2、fc7兩層特征層分別進行反卷積操作[12],按照通道級聯(lián)方式與前一層特征層進行融合。低層雙段反卷積模塊結構見圖2。
圖2 低層雙段反卷積模塊結構
低層雙段反卷積模塊首先對conv6_2進行反卷積,得到與fc7大小、通道數(shù)均相同的De_conv6_2,然后按照通道級聯(lián)方式與Fc7進行融合,得到fu_fc7;同理,對新生成的fu_Fc7進行反卷積,得到與Conv4_3大小、通道數(shù)均相同的De_fu_fc7,再按照通道級聯(lián)方式與Conv4_3進行融合,得到fu_conv4_3。
VGG16網絡的各個輸入特征層包含許多不同大小的向量,且向量之間存在一定的相關性。然而,在實際訓練中,通常無法充分利用這些輸入特征之間的相關性;同時,由于多尺度特征圖的感受野大小不同,導致各個特征圖包含的特征信息存在差異,造成生成的特征圖無法充分反映不同尺度下空間特征的重要性。上述問題將導致模型預測結果出現(xiàn)偏移,影響訓練效果,降低預測精度。因此,在低層雙段反卷積模塊新生成的fu_conv4_3、fu_Fc7之后,增加CBAM自適應注意力機制模塊,自適應地調整融合特征層中的參數(shù),更加關注對當前任務有意義的關鍵信息,生成New_Conv4_3、New_fc7,提升新的小目標預測層中通道間的相關性和目標間的空間依賴關系。
CBAM自適應注意機制包含通道注意力模塊和空間注意力模塊,見圖3。
(a)通道注意力模塊
通道注意力模塊,以通道為單位,對低層雙段反卷積模塊中融合生成的特征圖Fi∈RH×W×C分別做全局最大池化和全局平均池化,生成Fi1、Fi2,Fi1、Fi2∈R1×1×C,該過程可分別表示為:
Fi1=Max Pool (Fi)
(1)
Fi2=Avg Pool (Fi)
(2)
Fi1、Fi2傳遞到一個共享的全連接層。全連接層共包含兩層,第一層全連接層神經元個數(shù)較少,第二層全連接層神經元個數(shù)和輸入特征圖通道數(shù)相同。對全連接層輸出的兩個長度為C的特征長條進行相加處理,并取sigmoid,使其值固定在0~1,得到Channelattention(Fi),簡稱CA(Fi),CA(Fi)∈R1×1×C,該過程可表示為:
CA(Fi)=S[FR(Fi1)+FR(Fi2)]
(3)
最后,將CA(Fi)乘以輸入特征圖。
空間注意力模塊以每個通道對應的點為單位,對CA(Fi)分別做全局最大池化和全局平均池化,生成CA(Fi1)、CA(Fi2)和CA(Fi1)、CA(Fi2)∈RH×W×1,CA(Fi1)和CA(Fi2)堆疊得到CA(Fi3)。
再對CA(Fi3)特征圖取卷積,卷積核的通道數(shù)為1,生成一個大小為H×W×1的特征長條,特征長條取sigmoid,使值固定在0~1,得到Spatial attention(Fi),簡稱SA(Fi),該過程可表示為:
SA(Fi)=S{C[CA(Fi3)]}
(4)
最后,將該值分別乘以輸入CA(Fi),得到新的特征預測層。
SSD算法采用默認先驗框的方式,處理不同層的特征圖,回歸位置信息。算法以不同尺寸縮放每層特征層的先驗框,即:
Sk=0.2+0.17(k-1),k∈[1,m]
(5)
式中:Sk表示第k+1層先驗框的大小相對于輸入圖片的比例;m設置為5。
第一層特征層生成的先驗框相對于輸入圖片的比例為0.1,其他5層特征層生成的先驗框相對于輸入圖片的比例分別為0.1、0.2、0.37、0.54、0.71、0.88,若輸入圖片大小為300×300,則每層特征層生成長寬比為1的先驗框大小為30、60、111、162、213、264。
圖4 自制數(shù)據(jù)集尺寸分布
由圖4可以看出,自制數(shù)據(jù)集中真實框的尺寸分布在0~40,均為小目標障礙物,應根據(jù)真實框的變化范圍設置先驗框的尺寸。SSD算法中原始先驗框的生成方法在訓練時易產生較大的回歸偏差。
因此,本文將第一層特征層先驗框相對圖片的比例調整為0.05;同時對先驗框的生成公式進行修改,修改之后的公式為:
Sk=0.1+0.05(k-1),k∈[1,m]
(6)
則各層特征層生成的先驗框相對于輸入圖片的比例分別為:0.05、0.10、0.15、0.20、0.25、0.30,每層特征層生成長寬比為1的先驗框大小分別為:15、30、45、60、75、90。
SSD模型生成的先驗框中負樣本的數(shù)量遠大于正樣本數(shù)量,會導致模型收斂速度變慢、漏檢率偏高。DA-SSD模型仍通過計算先驗框和真實框的iou區(qū)分正負樣本,iou大于閾值為正樣本,否則為負樣本。模型按照正、負樣本1∶3的比例刪除負樣本中置信度低的先驗框,保證訓練過程中正負樣本數(shù)量的均衡性。
試驗采用分段衰減的方式調整學習率,初始學習率設置為5×10-4,每訓練1 000次學習率下降為前一階段的1/10,當?shù)螖?shù)達到10 000次后,學習率大小保持不變。選用VGG16網絡在VOC2007數(shù)據(jù)集上的訓練權值作為本試驗的預訓練參數(shù),設置訓練集和測試集的比例為4∶1,input_shape為325×500,classes為3,batch_size為8。本試驗在Python 3.8.3環(huán)境下的tensorflow深度學習框架開展訓練和測試。
試驗采用實地拍攝的電車軌道障礙物圖片制作數(shù)據(jù)集。拍攝圖片數(shù)量為2 000張,障礙物分為人、動物兩類小目標,每類障礙物包含1 000張圖片,預處理過程將圖片大小調整為325×500;通過對每張圖片進行鏡像操作達到數(shù)據(jù)集增廣的目的,增廣后的障礙物圖片見圖5。
圖5 數(shù)據(jù)鏡像增廣樣本
最終數(shù)據(jù)集共4 000張圖片,包含兩類6 328個小目標障礙物。通過tensorflow中Labelimg標注工具,標注數(shù)據(jù)集中障礙物目標區(qū)域及其所屬類別,生成相應的xml文件,圖片和對應標注文件的存儲格式與VOC2007數(shù)據(jù)集相同。
為了更直觀地衡量DA-SSD算法檢測有軌電車前方小目標障礙的能力,采用平均精度均值MAP(Mean Average Precision)和每秒傳輸幀數(shù)FPS(Frame Per Second,即每秒處理圖片數(shù)量)作為評價指標。平均精度均值MAP是所有類別平均精度AP的平均值,平均精度AP是綜合數(shù)據(jù)樣本中某個類別的精確率(Precision, P)和召回率(Recall, R)的評價指標。
精確率指被正確檢測的數(shù)量占全部檢出數(shù)量的百分比,召回率指被正確檢測的數(shù)量占全部標注數(shù)量的百分比。根據(jù)檢測結果繪制縱軸為精確率,橫軸為召回率的P-R曲線,P-R曲線的面積為平均精度值,計算公式如下:
(7)
為驗證本文所提出的雙段反卷積模塊和自適應注意力機制模塊對有軌電車小目標障礙物的檢測效果,通過特征圖可視化,對比SSD在conv4_3和DA-SSD算法在New_conv4_3輸出的特征圖,結果見圖6。
圖6 兩種算法在conv4_3層輸出的特征圖
由圖6可以看出,SSD算法在conv4_3特征層輸出的可視化特征圖中狗的空間特征較為模糊,說明SSD算法經過多層卷積后空間信息丟失明顯,導致狗的特征逐漸抽象化;DA-SSD算法在New_conv4_3特征層輸出的特征圖中狗的空間特征更為清晰,說明采用雙段反卷積模塊和自適應注意力機制模塊能夠豐富低層特征圖的語義信息和空間信息,有利于提高小目標障礙物的檢測精度。
同時,為驗證本文針對小目標障礙物檢測提出的先驗框生成方式,在VOC2007訓練集中分別對SSD算法和執(zhí)行先驗框改進操作的SSD算法(Improve-SSD)進行訓練,訓練過程中損失函數(shù)Loss變化曲線見圖7。
圖7 Loss曲線對比圖
由圖7可知,迭代約8 000次后,SSD算法與Improve-SSD算法達到收斂狀態(tài),SSD算法的收斂值約為0.7,Improve-SSD算法的收斂值約為0.65。說明修正先驗框生成方式,提升了算法的性能,更適用于檢測小目標障礙物。
為評估DA-SSD算法對城市有軌電車軌道小目標障礙物的檢測性能,利用SSD算法和DA-SSD算法在自制數(shù)據(jù)集上進行訓練和測試,Riou設置為0.6,測試集中Precision、Recall、AP三個指標的測試結果見表1。
表1 兩種算法的AP測試結果
由表1可知,DA-SSD算法的各項測試指標均高于SSD算法,檢測人和動物兩類小目標障礙物的Precious值均大于89%,AP值均大于77%,DA-SSD算法提高了電車軌道小目標障礙物的檢測精度。
為進一步驗證本文所提出算法的優(yōu)越性,將DA-SSD算法與Faster RCNN、YOLO-V3、SSD、FSSD 4種先進的目標檢測算法進行對比。其中,FSSD算法是對SSD的經典改進算法,提出了一種特征融合的方式,將VGG16產生的不同尺度的特征圖,利用雙線性插值法變換為與conv4_3大小、通道數(shù)相同的的特征圖,再按照通道級聯(lián)的方式將多個特征圖進行特征融合。所有用于對比的目標檢測算法均在自制的城市軌道電車障礙物數(shù)據(jù)集上進行訓練和測試。不同算法的Loss曲線見圖8,性能對比見表2。
圖8 各種目標檢測算法的Loss曲線對比圖
表2 不同算法的性能對比
由圖8可知,由于DA-SSD網絡模型更為復雜,在訓練的初始階段,DA-SSD算法的損失值高于SSD、Faster-RCNN、YOLO-V3 3種算法,但低于FSSD算法。在迭代約7 000次后,DA-SSD算法達到收斂狀態(tài),收斂速度快于SSD算法和FSSD算法,這是因為DA-SSD算法增加了自適應注意力機制模塊,能夠自適應地分配權重,快速排除干擾,提升訓練收斂速度;DA-SSD算法的收斂值約為1.5,低于其余4種算法。
由表2可知,DA-SSD算法檢測人、動物兩類小目標障礙物的AP值均高于其他4種算法,提升了小目標障礙物的檢測精度。在測試集下,相比于Faster RCNN、YOLO-V3、SSD、FSSD 4種目標檢測算法,MAP分別提升了0.12%、0.5%、0.28%、0.21%。從檢測速度上看,DA-SSD算法的FPS在測試集上達到23.4 f/s,檢測速度與SSD、FSSD基本保持一致,能夠滿足城市有軌電車對障礙物檢測速度的要求。
為避免試驗過程中由于Riou取值的不同,使試驗結果產生偶然性,在測試集上設置Riou分別為0.5、0.7。DA-SSD算法與其他算法的檢測精度隨迭代次數(shù)的變化情況見圖9,其中圖9(a)為Riou=0.5時的測試結果,圖9(b)為Riou=0.7時的測試結果。
(a) Riou=0.5
由圖9可以看出,當Riou取不同值時,經過約4 000次迭代后,DA-SSD算法的MAP值逐漸超過Faster RCNN、YOLO-V3、SSD、FSSD 4種算法。經過約6 000次迭代后,DA-SSD算法的MAP曲線進入穩(wěn)定的收斂狀態(tài),且MAP值大于其余4種算法,表明無論Riou取任何值,DA-SSD算法對有軌電車小目標障礙物的檢測效果均優(yōu)于Faster RCNN、YOLO-V3、SSD、FSSD 4種主流的目標檢測算法。
最后,采用自制數(shù)據(jù)集中的測試集對訓練后的SSD模型和DA-SSD模型進行小目標障礙物的檢測測試,見圖10。圖10(a)為SSD算法檢測動物和人的結果,圖10(b)為DA-SSD算法檢測動物和人的結果。
(a) SSD算法
由圖10可以看出,相比于SSD算法,DA-SSD算法提升了預測框的位置精度和置信度,提高了有軌電車軌道小目標障礙物的檢測精度。DA-SSD算法通過引入低層雙段反卷積模塊和自注意力機制模塊,豐富了低層特征層的語義信息,通過修正先驗框生成方式,增強了電車檢測軌道小目標障礙物的適應性,提升了小目標障礙物的檢測精度。
本文為提高SSD算法檢測有軌電車軌道小目標障礙物的精度,提出了一種基于DA-SSD的有軌電車軌道小目標障礙物檢測算法。該算法利用反卷積和通道融合,設計雙段反卷積模塊,豐富低層特征層語義信息;增加自注意力機制模塊,生成新的具有更強語義信息和精確位置信息的特征預測層;結合實際應用場景,縮小SSD算法先驗框大小,增強軌道小目標障礙物檢測的適應性。在自制的有軌電車軌道障礙物數(shù)據(jù)集上進行訓練與測試,結果表明:該算法保持檢測速度的基礎上,提高了軌道小目標障礙物的檢測精度,為有軌電車安全行駛提供保障。