張澤寧 鄭樹彬 李立明
(上海工程技術大學城市軌道交通學院 上海 201600)
軌道扣件作為連接鋼軌與軌枕的重要部分,其是否處于工作狀態會直接影響鋼軌與軌枕的連接強度進而影響列車行車安全。軌道扣件狀態巡檢更是鐵路工務部門對鐵路線路日常維護的重要工作。在傳統軌道扣件檢測算法中,張雯柏等[1]提出改進的Sobel算子結合二值化形態學的軌道扣件分割算法。邊緣特征和形態學分割對亮度十分敏感;DOU Yunguan等提出首先運用模板匹配算法根據軌道的幾何關系來定位扣件,然后采用最近鄰分類器判斷扣件是完整狀態還是丟失狀態。模板匹配需要消耗大量計算資源無法做到實時檢測,同時極易遭受干擾而致使匹配失敗。其他利用淺層特征進行扣件定位的方法,如HOG(histogram of oriented gradient)特征[2]、紋理特征[3]、SIFT特征[4]都非常容易受到光照和對比度等因素影響,并且需要根據不同特征進行不同的預處理,難以廣泛使用。
目前,隨著計算機視覺、深度學習等領域的不斷發展,圖像中更深層次的特征被廣泛應用,愈來愈多優秀的目標檢測算法隨之出現。在軌道交通行業,利用抗干擾能力更強、適應性更廣、準確率更高的深度學習目標檢測算法來輔助人工巡檢已是重點研究方向。在計算機視覺和深度學習如火如荼的發展中主要出現了兩類目標檢測算法,即two stage目標檢測算法和one stage目標檢測算法。前者主要思路是先通過啟發式方法或者卷積神經網絡(Convolutional Neural Networks,CNN)在圖片中產生大量稀疏的候選區域(region proposals),再將每個候選區域送入多層CNN中進行分類和回歸[5];后者不需要生成候選區域,直接將圖片送入CNN,根據特征圖以不同尺度和寬高比對圖片進行密集抽樣,再利用CNN提取特征后進行分類和回歸。現階段SSD作為優秀的one stage算法在voc2007數據集中目標檢測的準確率和速率(77%mAP/46FPS)均領先two stage算法中性能較好Faster R-CNN算法(73%mAp/7FPS)[6]。
本文充分利用SSD算法優勢,結合軌道扣件快速彈條狀態檢測任務的特點,優化先驗框尺度和寬高比,并且使用遷移學習的方法提高了訓練速度和檢測精度。最終能夠準確識別軌道扣件快速彈條和鋼軌表面的具體位置,為軌道扣件快速彈條狀態檢測提出一種新方法。
SSD算法使用多層神網絡提取一系列不同尺度的特征圖,利用不同寬高比的先驗框對全圖各子區域進行分類和回歸。其在VGG-16基礎上刪除dropout層和全連接層并增加更多卷積層以獲得不同大小的特征圖。保存經過卷積層Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2所得到的六個特征圖,將其作為物體類別和位置坐標預測的基礎。在SSD算法中不同大小的特征圖負責檢測的物體大小不同,較大的特征圖中包含更多細節特征,適合檢測較小的物體,較小的特征圖有更大的感受野,適合檢測較大的物體[7]。SSD優于其他深度學習目標檢測算法的原因就在于SSD算法為不同大小的特征圖設置不同尺度和寬高比的先驗框(同一個特征圖中每個單位的先驗框數量相同)[8]。使得不同尺度和寬高比的先驗框能夠囊括更多大小各異的物體。
對于尺度,其遵循線性遞增的規則,即隨著特征圖大小的降低,先驗框尺度線性增加:

其中,m指特征圖數量,sk指先驗框尺度相對于輸入圖片的比例,而smin和smax分別表示該比例的最小值和最大值(取0.2和0.9)。一般情況下將第一個先驗框尺度比例設置為s1=smin/2=0.1。




圖1 SSD網絡整體結構




進一步,根據損失函數計算l與g的綜合損失,利用梯度下降的方法更新卷積層參數權重[11]。在訓練過程中,對于圖片中每一個已經標注的真實框找到與其交并比(Intersection-over-Union,IoU)大于0.5的先驗框。將這些先驗框所對應的邊界框作為正樣本,而沒有與之匹配的邊界框則與背景匹配,將這些邊界框作為負樣本[12]。由于圖片中標注的真實框一般僅有幾個而負樣本數量非常多,為解決正負樣本不平衡的問題,以正負樣本1∶3的比例篩選負樣本中背景置信度較高的邊界框[13]。
SSD算法需要對物體的類別和位置坐標進行預測,因此其損失函數由類別置信度損失(confidence loss,conf)和位置坐標損失(locatization loss,loc)兩部分加權而成[14]。在本文中類別置信度損失采用softmax損失函數進行計算,而位置坐標損失由smoothL1損失函數獲得,兩者的權重相同取權重系數α=1。總體損失函數可表達為

其中,x表示輸入,c表示邊界框中物體類別的得分值,l表示邊界框的編碼值,g表示真實框,N表示正負樣本整體個數。
3.2.1 類別置信度損失




特別地,SSD算法將圖片的背景定義為特殊的類別,若邊界框置信度最高的一項為背景類,那么該邊界框沒有檢測到目標物體。
3.2.2 位置坐標損失
在位置坐標損失中,邊界框位置預測其實是一個回歸問題,通常回歸問題可以使用L2(平方)損失函數。但是本網絡層次較深,多次迭代容易產生梯度消失現象,而且L2損失函數對離群點十分敏感,對較大的損失懲罰很高。L1(絕對)損失函數沒有上述問題,不過L1損失函數在0點不可導,反向傳播計算梯度的時候容易出現無法求導的問題。因此,本文結合L2損失函數和L1損失函數的優點選用smoothL1函數作為位置坐標損失函數。

smoothL1函數在自變量x∈(-1,1)時為平方函數,其他位置為絕對函數,函數圖像如圖2所示。

圖2 s moot hL1函數
在使用smoothL1作為損失函數時,第i個預測框與第j個真實框關于類別p的位置坐標損失可表示為

快速彈條軌道扣件系統作為新扣件產品,代表著鐵路扣件技術的最新水平和發展方向,已經被廣泛應用于德國、法國、日本、澳大利亞及北美等國家的鐵路上。目前在我國合武、石太等客運專線均鋪設了這樣的軌道扣件系統[16]。
根據石太客運專線現場CCD線陣相機采集到的圖片如圖3所示,左側快速彈條在水平方向上向左彈出,其與鋼軌的水平距離較遠未扣緊鋼軌,存在安全隱患;右側快速彈條扣緊鋼軌處于正常狀態,不存在安全隱患。實驗使用1336張石太客運專線現場軌道扣件圖片作為實驗原始數據,其中有32張圖片中存在快速彈條未扣緊的情況。

圖3 石太客運專線現場圖片
SSD目標檢測需要大量數據作為支持,同時為了使網絡具有更強的泛化能力,參考常用的數據增強與擴展方法,對原始圖片進行隨機水平翻轉,隨機尺度變換,隨機對比度和亮度調整,使得最終數據量達到原始數據量的5倍[17]。之后,將所有圖片轉換成300像素×300像素圖片。使用labelImg程序標注扣件快速彈條區域和鋼軌區域。生成包含圖片名稱、物體位置、物體類別等信息的xml文件。最終,取數據集中80%的圖片作為訓練集進行訓練。
考慮到軌道扣件快速彈條狀態檢測任務的一致性和特定性,有針對性的設置SSD網絡參數與超參數顯得尤為重要。由于待檢測的對象只有扣件、鋼軌、背景,同時原始的圖片大小統一,待檢測對象的形狀、大小固定不變,僅有鋼軌與軌道扣件快速彈條的相對位置發生變化。在使用先驗框進行密集抽樣時,可以有針對性地設置先驗框的尺度和寬高比,減少生成先驗框的數量,提高運行速度。同時,更少的先驗框可以大大減少負樣本數量,改善傳統SSD模型中正負樣本極不平靜的問題,有利于提高模型精度。

模型訓練分為兩個階段進行,第一階段使用VGG16預訓練權重參數作為SSD算法的初始化權重參數。雖然VGG16預訓練權重參數所使用的物體類別和數量與本實驗不同,但相比初始化形成的隨機權重參數,預訓練權重參數能使模型更快收斂減少過擬合現象的發生,大大節省了算力和訓練時間;第二階段使用本網絡對預訓練網絡參數進行微調訓練,設置迭代次數為5000次,批數據量設置為32。使用均方根反向傳播(Root Mean Square Prop,RMSProp)[18]優化算法進行優化。
實驗使用GPU為GTX1080ti,tensorflow-gpu版本為1.13.1,CUDA版本為10.0并配置cuDNN 7.4。實驗采用優化后的先驗框參數,配合遷移學習的方法對模型進行訓練。同時,以傳統SSD網絡作為對比實驗。兩種方法均在本文構建的數據集上進行訓練,隨著迭代次數增加損失值變化如圖4所示。

圖4 損失值隨迭代次數變化情況
由于傳統SSD算法訓練5000次時損失值仍高于2,識別率僅為54.8%,損失值還在下降過程中,因此繼續訓練至20000次后損失值穩定在0.33附近。本文算法訓練5000次時已經穩定,識別結果如圖5所示。能以較高的準確率識別定位到快速彈條和鋼軌的具體位置,取得了很好的識別效果。

圖5 本文算法識別結果
在交叉驗證集上使用訓練好的模型參數對兩種方法進行驗證,識別結果如表1所示。

表1 檢測準確率與速率
實驗結果表明,本文方法即使用了遷移學習并優化網絡參數的SSD算法在迭代5000次時損失值趨近0.16,識別率達到95.2%。而沒有使用遷移學習的傳統SSD算法在迭代5000次時模型還沒有收斂,直到迭代20000次時損失值穩定在0.33附近,此時識別率為87.1%。
進一步,使用本文算法的識別結果,根據扣件快速彈條與鋼軌的相對位置距離,以本次實驗的300×300像素圖片為依據。在水平方向上,處于扣緊狀態的快速彈條識別框的中心坐標與軌道識別框的中心坐標之差小于78像素,換言之水平方向上兩者中心距離大于78像素的快速彈條被認為處于未扣緊狀態。對于準確定位的快速彈條和鋼軌,依據此相對位置可以完全準確地判斷出快速彈條的狀態。
本文使用遷移學習方法,利用已經訓練好的其他模型參數作為訓練初始化參數,在此基礎上使用現場軌道扣件數據集進行再訓練,大大減少了訓練時間、節約算力,提高了識別精度。除此之外,本文根據待檢測的快速彈條和鋼軌形狀調整先驗框尺度和寬高比,減少了負樣本數量,使先驗框更容易擬合到待檢測物體,相比傳統SSD算法有更高的檢測準確率和速率。
本文以傳統SSD目標檢測算法為基礎,在軌道扣件快速彈條檢測項目上對一千余張現場實際照片進行分析。結合軌道扣件快速彈條的形態特點,提出基于SSD的軌道扣件快速彈條狀態檢測方法。該方法通過調整先驗框尺度和寬高比使之能夠更好地框選待檢測物體。同時運用遷移學習的方法對數據集進行訓練,有效地提高了訓練速度和檢測準確度。在準確定位快速彈條與鋼軌的位置坐標后,通過設定兩者在水平方向上的距離閾值可以準確檢測出快速彈條是否處于扣緊狀態。未來會將此方法運用到實際扣件檢測系統中,并對其進一步完善。