耿慶華,劉偉銘,劉瑞康
(華南理工大學土木與交通學院,廣州 510640)
動車組列車在長途客運過程中,由于振動、磨損或腐蝕而引起的列車底部異常,如列車底部螺栓丟失、列車底部出現布條和紙屑等,給鐵路客運安全運輸工作帶來了巨大隱患。將動車組運行故障動態圖像檢測系統(TEDS,Trouble of moving EMU Detection System)應用于鐵路系統中,檢修人員通過檢查由TEDS捕獲的動車組序列圖像來代替現場檢測,從而實現動車組運行狀態監控。圖1為TEDS示意,線掃描相機安裝在軌道底部和軌道兩側,以捕獲動車組列車整車圖像,并將捕獲的序列圖像傳輸到檢測中心,檢查人員將判斷是否存在機械零部件故障[1];這種人工檢查的方式仍然需大量訓練有素的技術人員來完成故障檢測與確認,檢測效率和準確性易受到檢查人員工作狀態的影響,存在效率低、成本高和漏檢率高的缺點。

圖1 動車組運行故障動態圖像檢測系統示意
近年來,圖像處理與模式識別技術在鐵路維護中獲得了很大成功,大大提高了機械零部件故障檢測效率。目前,針對鐵路機械零部件故障檢測方法主要分為基于人工特征描述子的方法、基于圖像對齊與背景差分的方法[1]和基于深度學習的方法。基于人工特征描述子[2-4]的方法需根據目標的具體特征選擇最優特征提取算法來提取目標的特征,以確定檢測目標,并通過分類器完成目標檢測任務。ZOU等[5]提出采用梯度編碼直方圖和支持向量機相結合的方法,來檢測角度旋塞手柄的狀態(故障或無故障)。基于人工特征描述子的檢測方法需根據不同類型目標設計出不同的特征描述子,具有很大的局限性,且特征提取過程復雜,難以設計出最優特征描述子。基于圖像對齊與背景差分的方法僅能檢測是否存在異常,而無法對異常進行分類。基于深度學習的方法,特別是卷積神經網絡(CNN)技術可為不同類型的檢測目標自適應地選擇相應的特征,且能夠同時檢測不同類別的目標。因此,卷積神經網絡技術已廣泛用于圖像分割[6-8]、對象檢測[9-10]、圖像分類[11]和其他領域。基于深度學習的經典的目標檢測方法主要包括SSD[12]、YOLO[13]、 R-CNN[14]、FasterR-CNN[10]和FPN[15]等。PAHAWA等[16]采用兩級CNN實現了軌道閥的高精度圖像分割;ZHOU等[17]提出一種檢測螺栓故障的CNN模型,該模型以Resnet101作為骨干網絡,結合在線難例挖掘和變形卷積網絡方法,從而提高小目標的檢測精度;劉偉銘等[18]針對動車組裙板螺栓丟失問題,采用K-Means聚類分析,并在YOLOv2中添加Spatial Pyramid Pooling(SPP)層的方法,提出了一種改進的YOLOv2算法。SSD與YOLO無需事先生成候選區域(RoI),因此,檢測速度較快。在實際應用中,將線掃描相機捕獲的動車組列車序列圖像存儲在工作站中以進行離線分析,但由于動車組列車的序列圖像屬于高分辨圖像,數據量很大,而在檢測過程中,又對時間有一定要求。因此,選擇檢測速度較快的SSD算法,并在SSD算法中融合多層特征信息、同時引入注意力機制以提高目標檢測精度與召回率。
在自然語言處理(NLP)領域,已廣泛采用自注意力機制對句子深層次的依存關系進行建模。Transformer[19]作為一種新的簡單網絡架構,消除了重復與卷積,完全基于注意力機制在輸入和輸出之間建立了全局依賴關系。受此啟發,引入注意力機制以在特征圖的所有特征像素之間建立深層次的依存關系。與Transformer類似,本文算法能夠在特征圖的不同區域建立深層次依存關系,從而更有效地進行目標檢測,減少在檢測過程中存在誤檢和漏檢情況,降低動車組列車底部出現異常不能及時被確認而導致交通事故的概率。
以Resnet-101作為基本骨架,采用特征融合與注意力機制相結合對SSD網絡進行改進,并結合TEDS捕獲的動車組列車序列圖像,實現對動車組列車底部異常自動檢測。該檢測任務主要特點是異常目標尺度多樣化,如輸入圖像為1400×2048像素,最小異常(螺釘丟失)尺度約為40×40像素,僅占整幅圖像的0.05%,最大布條尺度為384×293像素,占整幅圖像的3.924%,多尺度異常目標檢測成為動車組列車底部異常檢測的一個挑戰,尤其是對小目標異常的檢測。
原始SSD算法包含VGG基礎網絡和目標檢測網絡,并融合不同特征層上的特征以有效檢測不同尺寸的目標。但原始SSD算法淺層特征的語義信息不夠豐富,對小目標檢測效果不夠理想。提高小目標檢測效果的方法是構建更多的卷積神經網絡層,以細化特征圖特征,或將語義信息從深層融合到淺層。為提高SSD算法對小目標的識別能力,對原始的SSD進行了改進,改進后的網絡結構如圖2所示。

注:a為注意力機制圖2 本文網絡結構
改進后SSD算法借鑒了殘差網絡的思想,以Resnet101代替VGG16作為SSD的骨干網絡。通過學習殘差加深神經網絡的層次結構可有效避免過擬合和網絡梯度消失的問題,從而提取更多紋理特征和語義特征,增強特征的表達能力,提高目標分類和定位能力。
殘差網絡Resnet-101比VGG-16更能細化特征圖的特征[11],此外,相比其他網絡,Resnet-101的結構較為簡單,確保了網絡的實時性。Resnet-101采用捷徑連接(shortcut connection)架構,這使其能夠解決隨網絡層次加深時性能下降問題。殘差映射公式為
y=F(x)+x
(1)
式中,x為單位映射;y為最優解;F(x)為最優解和單位映射之間的殘差。
引入多尺度特征融合的方法,提高特征表達能力,增強語義信息,進一步改善SSD算法對小目標檢測效果差的問題。原始SSD將多尺度特征層的特征信息用于目標檢測,卻忽略了不同特征層的特征信息之間的關系,而每一層特征圖都包含特殊的特征信息;低層特征圖分辨率高,包含豐富的位置、細節信息,這有利于目標定位,但缺乏語義信息而不利于目標分類;頂層包含豐富的語義信息,這有利于目標分類,但分辨率較低,細節感知能力弱而不利于目標定位[20]。如采用一種有效策略來融合不同特征層的特征信息,可使底層特征圖包含豐富的位置信息、細節信息和語義信息。因此,對原始SSD算法進行了改進,使底層特征圖包含豐富的位置信息、細節信息和語義信息。
融合過程包括上采樣和融合。上采樣的方式很多,如最近鄰近插值、雙線性插值和三次插值,本文選擇了雙線性插值和最大池化。對于融合方法,采用基于特征圖矩陣拼接的方式,在特征融合過程中,所有特征圖的大小必須相同,通過上采樣來調整每個特征層的形狀,特征圖融合的細節如圖2所示。完成特征圖的特征信息融合后,使較低層的特征圖包含了更加豐富的位置、細節和語義信息。為使較高層的特征層與較低特征層具有相同的形狀,對較高層的特征層使用大小調整策略;由于每層特征值分布具有很大差異,在融合之前須進行規范化操作,通過上采樣來調整每個特征層的形狀,并對特征圖矩陣進行拼接,即完成了特征圖的特征信息的融合,從而使較低特征圖包含了更加豐富的位置、細節和語義信息。
本文多尺度特征圖的特征信息融合,充分利用了不同尺度特征圖的特征信息之間的關系。將頂層特征圖的語義信息融合到低層特征圖中,這有助于采用低層特征圖的特征信息以利于檢測小目標。多尺度特征圖的特征信息融合使得前端預測網絡能夠兼顧不同尺度的目標,模型的泛化能力得到了增強。語義融合過程表述為

(2)
式中,Xσ∈RCσ×Nσ為σ層融合前的特征圖;Yσ∈RCσ×Nσ是σ層融合后的特征圖;Wσ∈RCσ×C′和bσ∈RCσ。在融合操作中,以第8層與第9層融合為例,融合前第9層通過雙線性插值進行上采樣,以使其特征圖尺寸與融合前第8層的特征圖尺寸對齊,并與融合前第8層特征圖融合。改進后的SSD遵循文獻[12]中SSD的錨框生成方法來設置錨框大小。具體而言,在尺度不同的特征圖上設置大小和縱橫比均不同的錨框。錨框計算公式如下

(3)

引入注意力機制,將注意力機制單元置于特征圖和預測模塊之間,在其中執行檢測框回歸和目標分類。在淺層,注意力單元指導模型將注意力集中在小目標上;而在深層,注意力單元會突出大尺寸的目標。
將文獻[18]中解決序列轉導問題的自我注意機制應用到本文目標檢測中。在序列轉換過程中,自我注意機制利用一個注意函數建立了輸入和輸出序列之間的全局依賴關系,該函數將查詢和一組對應的鍵值映射到輸出。在自我注意力機制中,輸入特征激發了注意力,注意力又被用于細化這些輸入特征。將問題視為類似的查詢問題,并從輸入特征中獲取相關信息,以在全局建立像素級的特征相關性。


(4)
將輸入特征Xσ轉換為Q和K的原因是為了減少計算量。Q和K矩陣運算可獲得特征的相似度,并創建一個揭示特征關系的N×N注意力圖。此類逐像素之間的關系是通過網絡學習獲得的。接下來,在V與softmax(aσ)之間應用矩陣乘法,獲得更新的特征圖,并將其作為每個位置處的特征加權和。最后,在矩陣乘法結果中減去融合后的特征圖矩陣Yσ。
O=(softmax(aσ)VT)T-Yσ
(5)
softmax(aσ)關聯了所有位置特征的深層次關系,因此,可得到特征圖全局的上下關系。它突出顯示了特征圖的相關部分,并通過細化信息指導目標檢測。
訓練目標是使損失函數最小化,這一點與SSD中的損失函數相同,損失函數是定位損失(loc)和置信度損失(conf)二者的加權和

(6)
式中,N為成功與真實框匹配的默認框數量。如果N=0,則設損失函數為0;x為區域候選框和不同類別的真實框的匹配結果,如果匹配,x=1,否則x=0;l為預測框的位置偏移信息;g為真實框與區域候選框的偏移信息;α為通常設置為1的位置損失權重。
由于動車組列車底部出現異常只是偶爾現象,因此,很難搜集到足夠多的包含螺栓丟失、布條和紙屑的動車組列車底部序列圖像,以完成本文算法模型的訓練。為此,通過剪切、復制、變形及旋轉等操作,使得數據集包含螺栓丟失、紙屑和布條的數量分別達到了914,916和920,滿足本文算法模型訓練的需要,建立了動車組列車底部異常數據集(EMU Anomaly Detection Dataset,EMUADD)。圖3展示了動車組列車底部常見異常,紅色標記部分為布條,綠色標記部分為丟失的螺釘,黑色標記部分為紙屑。如圖3所示,動車組列車底部螺栓丟失占據的區域很小。根據PASCAL VOC數據集的格式標記了所有圖像,并隨機選擇90%圖像進行訓練,其余10%進行測試。

圖3 動車組列車底部異常標記
計算機硬件資源為CPU,Intel Core i9 7920X;內存,48G DDR4;GPU,3個Nvidia Geforce GTX2080Ti;操作系統,64位Ubuntu 18.04;實驗框架為Pytorch開源框架。隨機梯度下降法將用于模型訓練,總訓練周期設置為1500,初始學習速率為0.001,當迭代次數為500、1000個循環時,學習速率降低10倍。其他訓練參數設置如下:動量0.9,權重衰減系數0.0001,batch_size為32,IoU的閾值0.5。
研究最終目標是正確檢測所有異常,并降低漏檢率和誤檢率。為更好地評估模型,定義TP(真正樣本)代表真實類別,即模型正確預測的正樣本;FP(偽正樣本)代表正樣本由模型預測為負樣本;FN(偽負樣本)代表負樣本被模型預測為正樣本;TN(True Negatives)代表負樣本類別被預測為負樣本。準確率和召回率公式為

(7)
本小節進行消融試驗,以探索注意力機制和特征融合對檢測速度和mAP的影響。在EMUADD測試集上研究了4個模型,即SSD513、SSD513+特征融合、SSD513+注意力機制、SSD513+特征融合+注意力機制如表1所示。從表1可以看出,僅融合模塊并沒有明顯提高mAP,相反,它帶來了更多的計算開銷;注意力機制可以顯著提高性能;當將注意力單元與融合模塊結合在一起時,性能進一步得到提升。據此可以推測,注意力機制具有分析不同層級語義信息的能力,并選擇有用的信息,因此,獲得了更好的檢測能力。

表1 EMUADD測試數據集的消融研究
本文算法是對SSD算法的一種改進,為體現本文算法在檢測動車組列車底部異常時的優越性,選擇與一些經典神經網絡算法FasterR-CNN、SSD 和YOLOV3進行對比試驗,實驗結果如表2所示。

表2 不同檢測模型在列車底部異常數據上的檢測結果
由表2可以看出,本文算法的mAP與FasterR-CNN、SSD和YOLOV3的mAP相比,分別提高了18.14%、5.26%和3.85%,其中,螺釘丟失的AP值分別增加了2.76%、2.66%和1.22%,紙屑的AP分別增加了51.66%、13.11%和10. 32%,這表明本文算法提高了小尺度目標的檢測精度。通過對比不同深度學習模型檢測速度(表3)可知,YOLOV3、SSD和本文算法的檢測速度幾乎相當,均明顯優于FasterR-CNN,可實現實時檢測。

表3 不同深度學習模型檢測速度
本文算法3個類別的PR曲線如圖4所示。可以看出,該網絡對多類別多尺度動車組列車底部異常檢測具有較好的檢測效果,藍色曲線代表螺釘丟失的PR曲線,紅色曲線代表布條的PR曲線,黑色代表紙屑的PR曲線。

圖4 本文算法3個類別的PR曲線
將改進后的SSD模型用于動車組列車底部異常檢測,在復雜領域中實現了較好的檢測性能,這歸因于對SSD的改進。本文算法用殘差網絡Resnet-101替換VGG-16,以更好地細化特征圖特征;引入新的特征融合策略,可有效利用SSD淺層細節信息和深層語義信息;引入注意力機制,以有助于在特征圖的空間中建立特征之間的關系,突出相關特征,抑制不相關的信息,為異常檢測提供可靠指導,并以此對原始SSD算法進行改進。與FasterR-CNN、SSD和YOLOV3相比,本文算法的mAP分別提高了18.14%、5.26%和3.85%,螺釘丟失的AP值分別提高了2.76%、2.66%和1.22%,紙屑的AP分別提高了51.66%、13.11%和10. 32%,這表明本文算法提高了小尺度目標的檢測精度。本文算法的檢測速度與YOLOV3和SSD幾乎相當,均明顯優于FasterR-CNN,可實現實時檢測。