李兆洋,李柏林,羅建橋,歐 陽
(西南交通大學機械工程學院,成都 610031)
鐵路扣件是保障鐵路沿線正常運營的重要部件。受多種因素的影響,扣件會出現斷裂、丟失等異常狀態,這將會對列車的運行帶來嚴重的安全隱患[1-12]。隨著我國高速鐵路的發展,實現自動化的扣件檢測將成為必然??奂ㄎ蛔鳛榭奂z測的重要一環,引起了研究者們越來越多的關注。
近年來,國內外提出了多種扣件定位方法,包括傳統的視覺方法和深度學習方法。文獻[13]采用改進的Rank變換窗口以突出圖像中的墊板與軌枕接觸的邊界信息,完成扣件區域的定位。文獻[14]利用canny算子提取圖像的邊緣特征,然后通過LSD直線提取鋼軌邊緣坐標并結合先驗信息實現扣件定位。因該算法中的閾值選擇過于敏感,對不同光照下的扣件定位適應性很差。龍炎等[15]采用Faster R-CNN深度卷積神經網絡搭建了一套高鐵扣件檢測系統,因其網絡結構的計算量巨大,導致檢測速度較慢。扣件的定位仍存以下兩個方面的難點:(1)扣件的目標較小。道岔處扣件圖像中的背景極其復雜,準確區分扣件和背景需要較強的特征提取能力。(2)圖像質量變化大。戶外天氣變化引起的圖像光照不均、車輛振動造成圖像模糊等,都嚴重影響圖像的質量,對扣件的定位帶來巨大的影響。
基于上述分析,提出一種膨脹殘差網絡結合SSD[16]深度學習的扣件定位算法。通過采用ResNet增加網絡的深度,提高扣件特征的提取能力。利用膨脹卷積和非極大加權抑制,提高扣件定位的穩定性和輸出框的準確性,實現快速定位的同時提高了定位的精確度。
SSD是由Liu等人提出的一種快速高效的目標檢測方法,由Faster R-CNN和YOLO[17]的檢測模型衍生而來,其檢測框架如圖1所示。SSD的檢測框架主要由兩部分構成:第一部分是位于前端的卷積神經網絡,經典模型中為VGG16,用于目標初步的特征提??;第二部分是位于后端的多尺度特征檢測網絡,對前端網絡產生的特征層進行不同尺度條件下的特征提取。圖1中的SSD在Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2和Conv11_2特征層的每一個單元中按照不同長寬比分別提取4~6個默認框。

圖1 SSD檢測框架
模型訓練時,檢測框架的總體目標損失函數用位置損失(Lloc)和置信損失(Lconf)的加權和表示,如式(1)所示:

(1)
式中,N表示匹配到真實目標的先驗框(prior box)的數量;l表示先驗框;g表示真實的框;c是Softmax函數對每類別的置信度;α參數用于調整位置損失和置信損失之間的比例,默認α為1。
置信損失如式(2)所示

(2)

置信損失如式(3)所示

(3)

(4)

平滑L1損失如式(5)所示

(5)
模型測試時,每個默認框都和標注框進行重疊率匹配,并按照匹配分數從高到低排序,利用非極大值抑制[18]的方法,將檢測結果最優化。
在分辨率為900×1 100的軌道圖像中,單個扣件的分辨率僅為50×70,因此扣件在軌道圖像中占的尺寸很小。原始SSD中,首先采用VGG16模型提取特征,然后使用Conv4_3層的特征層來檢測小目標,因此,小目標的特征提取不豐富,檢測的精度不高。文獻[19]的相關研究表明,通過增加網絡層數可以豐富特征,目標檢測的精度也會隨著網絡層數深度的增加而提高。然而,隨著神經網絡深度的不斷加深,模型的學習能力會在某個深度達到穩定,繼續增加模型的層數時,模型前面一個細小改變都會在模型后面引起很大的變化,即出現“梯度消失”或“網格退化”現象,但退化問題并不是由過擬合引起的,而是過多的層數及參數導致網絡難以找到最優解。因此,He等[20]提出了殘差網絡(Residual Network),該網絡結構使得更深的網絡更容易訓練,因而可通過增加網絡層數提高識別準確率。具體而言,即兩個或兩個以上連續的神經網絡層形成一堆疊層,在這個堆疊層上添加一個快捷連接(Shortcut Connection),實現快捷連接的過程叫恒等映射(Identity Mapping),即輸入跳過堆疊層直接連接到堆疊層的輸出位置,如圖2所示。

圖2 殘差模塊
殘差網絡通過自動擬合獲得殘差函數F(x)并與輸入的特征圖x相加,從而生成輸出特征圖函數H(x),如式(6)所示
H(x)=F(x)+x
(6)
扣件在定位過程中存在較多的干擾因素,如天氣、光照、扣件損壞、道岔背景復雜等,不同的干擾因素均會引起定位不準、定位穩定性不高的問題。準確的定位扣件需要考慮目標附近的鄰域信息,以增強判斷的依據。原始SSD網絡中,對于扣件的定位魯棒性較差,主要是因為基礎模型采用VGG16的低層特征層檢測小目標,低層卷積層雖然分辨率高,但感受野較小,語義信息也很低,對于扣件信息的提取不充分,邊緣結構也會有一定的丟失,不能滿足扣件定位的魯棒性。
因此,本文采用膨脹卷積的方式,通過在原始卷積的基礎上增加了膨脹參數d,將卷積核擴張到膨脹系數所約束的尺度中,并將原卷積核中未被占用的區域填充0,在不減小圖像大小的同時獲得比較大的感受野。傳統卷積運算和膨脹卷積運算公式分別如式(7)和(8)

(7)

(8)
圖3顯示了不同膨脹系數下的感受野。其中,圖3(a)表示d=1的膨脹卷積核,與普通的卷積操作相同,感受野為3×3;圖3(b)表示d=2的膨脹卷積核,感受野為7×7;圖3(c)表示d=4的膨脹卷積核,感受野為15×15。

圖3 膨脹卷積
將ResNet101與膨脹卷積結合。ResNet101具有101層網絡結構,總體上分為5個區塊,每個區塊包含若干的殘差模塊單元。假定殘差網絡輸入的圖像尺寸為300×300,原來第五層卷積層的輸出特征圖為10×10,特征圖的分辨率縮小為原來的1/30,特征圖分辨率的降低會造成影像大量局部細節信息的丟失,嚴重影響目標識別結果對邊緣結構信息的保留能力。在原始殘差網絡的前三層中,對原始的輸入進行近8倍的降采樣,特征圖的尺寸為38×38;在最后兩層的輸出相對于輸入分別降低了2倍和4倍,38×38的分辨率足夠識別圖像場景的結構,并且保存了圖像的大多數信息。因此,為了解決信息丟失的問題,對原始殘差網絡區域塊中第4層和第5層進行膨脹系數為2和膨脹系數為4的膨脹卷積,這樣能夠使信息最大程度的保留,使感受野和第三層輸出的相同,而不增加新的參數。
采用膨脹卷積殘差網絡的優點如下:(1)在保持卷積核參數大小不變的同時,增大卷積的視野。無需通過下采樣處理降低特征圖的分辨率,也可以學習到高層的語義特征,解決邊緣結構信息丟失的問題;(2)未引入額外參數,能夠保證一定的計算速度。由于使用了不同的膨脹系數,能夠獲得不同的感受野,在進行特征下采樣也可以改善對于扣件這種小目標檢測精度不高的問題,增加了魯棒性。
在后續的扣件狀態檢測過程中,需要判斷扣件的狀態,如丟失、斷裂、異位等,而扣件定位的精度可以提高在扣件狀態檢測過程中的準確率和效率,因此扣件定位的精度顯得至關重要。原始SSD通過非極大值抑制(Non-Maximum Suppression,NMS)的方式來產生最后的定位結果,當IoU(Intersection over Union)的值高于設定的閾值時,找到的一組邊框被認為是同一類目標,通過選擇最高置信度的框為最后的輸出框。但通過選擇最高置信度的框會存在遺漏一些包含最大特征但置信度并非最高的預測框。因此,提出一種通過加權的方法來獲取最終輸出框的算法,即非極大加權抑制(Non-Maximum weighted Suppression,NWS)。
當扣件作為目標確定時,會產生一系列預測框,通過加權來確定最終的輸出框

(9)
wi=Ci×iou(Fi,Farg maxCi)
(10)
式中,box為最后的輸出框;w為每一個預測框的權重;Fi為扣件預測框的集合;Ci為第i個預測框的置信度;iou(Fi,Farg maxCi)為第i個預測框和最大置信度預測框的交互比;n為預測框的數量。
改進的SSD深層網絡模型流程如圖4所示。輸入的圖像為300×300的RGB圖像,通過一系列的卷積運算后,在Res3b3_ReLu層達到分辨率為38×38,從res3b3_relu層至res5c_relu層的過程中,采用膨脹卷積殘差模塊;在區塊4中采用如圖3(b)所示的膨脹系數為2的膨脹卷積;在區塊5中采用如圖3(c)所示的膨脹系數為4的膨脹卷積,通過膨脹卷積增大了感受野,同時不增加新的參數。因此可以不通過下采樣處理來降低特征圖的分辨率,也可學習到比較高層的語義特征,提高對扣件特征的表征能力,保留更多的扣件細節。

圖4 改進的SSD模型
此外,改進的模型在膨脹卷積殘差網絡后額外添加了8個卷積層和1個池化層,在其中的Conv1_2、Conv2_2、Conv3_2、Conv4_2上添加相應的默認檢測盒,后續的特征層檢測需要對檢測盒進行檢測,因此,圖4中只畫出添加檢測盒的4個卷積層。新添加的卷積層Conv1_2的分辨率為19×19,Conv2_2的分辨率為10×10,Conv3_2的分辨率為5×5,Conv4_2的分辨率為3×3,最后的池化層為均值池化。不同卷積層的卷積核大小不同,其中:1×1的卷積核在不同的通道之間做線性變化,可以跨通道聚合,它的通道數為256;3×3的卷積核,則有512個通道,具體的卷積層對應的感受野與通道數如表1所示。
在最后的檢測階段,將每一個預測框與標注框進行重疊率匹配,利用非極大加權抑制的方法,對檢測結果進行約簡。

表1 額外添加層
本文的實驗數據是由國內某高鐵工務段提供的真實扣件圖像,其中包含普通軌道圖像7 000張,道岔軌道圖像3 000張。部分樣本圖像如圖5和圖6所示。為增加模型訓練樣本選取的隨機性,采用十折交叉驗證的方式驗證實驗結果。具體而言,將原始數據均分為10個子集,選擇其中的9個子集作為訓練集,余下的那個子集作為驗證集,因此總共進行10次驗證實驗。將10次實驗的平均值作為最終的結果,從而有效提高訓練模型的泛化能力。

圖5 普通軌道

圖6 道岔軌道
數據集的標注包括目標的類別和位置信息。其中位置信息是標注框的左上角和右下角坐標,用于評測模型精確度時,根據輸出框與標注框的重合率大小判定匹配分數,為網絡模型提供了預定義輸出。
本文的運行環境為Windows10,軟硬件配置包括:GPU為NVIDIA GTX1080Ti,CPU為Intel Core i7-6700 3.4 GHz,內存32GB,CAFFE,Python 3.6,深度學習網絡加速庫為CUDA 8.0結合CUDNN 5.1。
由于融合模型的復雜程度較大,因此總迭代次數設置為60 000次。其中,前3×104次迭代的學習率設置為10-4,后3×104次迭代的學習率設置為10-5,動量設置為0.9,圖像批處理大小設置為32,權重衰減設置為5×104。
3.3.1 評價指標
本文選用廣泛使用的召回率(Recall)和精度(Precision)對算法的性能進行定量評價。其中,召回率表示圖像中真實扣件被正確識別的比例,用R表示;精度表示正確預測的檢測框占所有檢測框的比例,用P表示。計算公式如下
(11)
式中,TP為正確識別的扣件數;FP為錯誤識別的扣件數;FN表示沒有識別出的扣件數。此外,定位速度也是扣件定位過程中的一個重要性能指標,定義為1 s處理的圖像數目,用FPS表示。
3.3.2 實驗結果
為驗證本文算法對扣件定位的準確性和魯棒性,分別選用經典SSD模型和多種扣件定位算法進行對比實驗,分別介紹如下。
(1)與經典SSD模型的對比
選用SSD+VGG16作為對比算法,為保障實驗的公平性,其學習率、權重衰減、總迭代次數與本文算法的設置保持一致。實驗結果如表2所示。

表2 不同算法定位召回率和精度
從表2可以看出,本文算法取得了更好的召回率R和精度P。原因在于:與SSD+VGG16相比,本文方法通過使用Resnet101網絡增加了神經網絡的深度,提高了模型對特征的抓取能力,從而有效地區分扣件和背景,召回率R提高了3.4%,而采用膨脹卷積的方式,擴大了感受野,解決扣件邊緣結構信息丟失的問題,增加了扣件定位的魯棒性,此外,采用非極大加權抑制的方法使得輸出框的位置更加精確,精度P提高了4.7%。部分樣本定位結果如圖7和圖8所示。

圖7 經典SSD定位結果

圖8 改進的SSD定位結果
(2)與其他扣件定位算法對比
將本文方法與文獻[13-15,17]中的算法進行對比。文獻[13]中Rank+LSD中的閾值T設為0.8,文獻[14]中Canny+LSD的模型參數與原文一致,文獻[15]中Faster RCNN以及文獻[17]中YOLO的總迭代次數均設置為60 000次,學習率和權重衰減等參數與本文算法設置一致。結果如表3所示。

表3 不同算法定位性能
從表3可以看出,在普通軌道上,Rank+LSD對于扣件的錯誤定位較多,速度較慢,并且該方法只適用于特定軌道扣件,通用性較差。Canny+LSD算法由于Canny算子的閾值過于敏感,對不同光照的扣件定位效果一般,速度較慢,此外,這兩種算法無法對道岔處的扣件進行定位。Faster RCNN采用滑動窗口遍歷全圖的方式定位扣件,因此速度較慢。YOLO采用了較少的重復候選框,雖提高了速度,但在每個單元格只預測兩個邊界框,導致扣件定位的精度較低。本文方法不僅增加了網絡的深度,而且增大了感受野,沒有引入額外的參數,保證了一定的速度,有效利用了圖像的語義信息,定位精度在普通軌道區域和道岔區域明顯提高,分別為98.2%和88.7%。本文算法對不同軌道不同天氣的定位樣本如圖9所示。

圖9 扣件最終定位結果
針對傳統視覺方法定位扣件時存在的速度慢、精度低,且無法定位道岔軌道處的扣件問題,提出了一種改進的SSD網絡模型。改進的模型首先采用膨脹殘差網絡更新原有的VGG網絡,然后通過非極大值加權抑制的方式來提高最終輸出框位置的精度。因此,改進的算法不僅繼承了經典SSD網絡定位速度快的優點,而且改善了經典SSD網絡對于小目標定位精度差的缺點。實驗結果表明,改進的模型有更強的特征提取能力,而感受野的增加使模型的魯棒性更強,相較于其他主流定位算法,效果更好。