余寧 魏世斌 李穎 侯智雄
(1.中國鐵道科學研究院研究生部,北京 100081;2.中國鐵道科學研究院集團有限公司基礎設施檢測研究所,北京 100081)
鐵路線路的曲線段結構特殊,容易發(fā)生軌道病害,而且危害較大,是軌道的薄弱環(huán)節(jié)。曲線段的線路狀態(tài)不僅關系到列車實際運行的最高速度[1],還直接影響乘車舒適性和車輛運行安全性[2]。只有對曲線參數(shù)進行準確的檢測,及時發(fā)現(xiàn)病害,才能進行有效的養(yǎng)護維修,保持曲線區(qū)段線路的良好狀態(tài)。曲線參數(shù)包括曲線長度、曲線正矢、軌距加寬、超高設置以及曲線上的軌道不平順等,準確定位曲線特征點是精確檢測曲線參數(shù)的基礎。
我國自主研發(fā)的軌道檢測系統(tǒng)中,曲線特征點檢測算法是基于曲率和曲率變化率實現(xiàn)的[3]。由于實際線路中曲線半徑范圍過大,在普速鐵路上識別較好的參數(shù)在高速鐵路上容易發(fā)生漏檢的情況,在高速鐵路上檢測效果較好的參數(shù)在普速鐵路上容易發(fā)生誤檢的情況。即使識別出了曲線特征點,往往也會由于某些閾值設置不當而出現(xiàn)檢測位置和實際位置偏差較大的問題。
本文結合當下流行的機器學習算法,提出一種全新的基于卷積神經(jīng)網(wǎng)絡的曲線特征點檢測方法。該方法識別準確率高,同時適用于高速鐵路和普速鐵路的曲線特征點檢測。
從平面位置來看,軌道由直線段和曲線段組成。曲線段由兩段曲率逐漸變化的緩和曲線和一段曲率恒定的圓曲線組成,如圖1 所示。曲線段上鋼軌外軌頂面應高于內軌頂面,形成一定的高度差(超高),以使得車體重力的分力抵消其離心力。緩和曲線段的作用是使得直線段到圓曲線段的曲率和超高連續(xù)變化,提高乘車舒適性[4-5]。
圖1 曲線段的組成及曲線特征點
曲線特征點有4個,分別是:直線與緩和曲線的交點(ZH)、緩和曲線與圓曲線的交點(HY)、圓曲線與緩和曲線的交點(YH)、緩和曲線與直線的交點(HZ)。
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)在計算機視覺任務中運用廣泛,與傳統(tǒng)BP(Back Propagation)神經(jīng)網(wǎng)絡相比,具有局部連接、權值共享和下采樣三大特性[6]。局部連接即卷積層的節(jié)點僅和上一層的部分節(jié)點相連,只用來提取局部特征。權值共享是指一個卷積核會對輸入數(shù)據(jù)的不同區(qū)域做卷積計算來檢測相同的特征,不同的卷積核參數(shù)不同,CNN 通過訓練多個卷積核來提取不同的特征,從而可以大大減少網(wǎng)絡參數(shù)的數(shù)量。下采樣是指可以在保留有用信息的同時大幅度降低數(shù)據(jù)維度,從而降低網(wǎng)絡復雜度,使網(wǎng)絡具有更高的魯棒性,同時又能有效防止過擬合。由于這三大特性,CNN 很適合處理縮放、平移和其他扭曲形式的輸入數(shù)據(jù),在計算機視覺任務中,可以直接以原始圖片作為輸入,無須進行復雜的預處理工作。
曲線特征點檢測包含兩個任務,即需要得到一段曲線中的特征點類別及其位置信息,分別對應機器學習中的分類任務和回歸任務。超高和曲率均能反映出曲線處的4 個特征點,故可以用超高或者曲率的數(shù)據(jù)作為CNN 的輸入。對于計算機視覺任務而言,CNN的輸入數(shù)據(jù)通常是一張彩色圖片,包含三個維度,即圖片的寬、高及RGB 顏色通道(RGB 即光學三原色,Red,Green,Blue),而卷積核通常是二維的。將CNN應用到曲線特征點檢測任務中,其輸入數(shù)據(jù)是一維的超高或者曲率數(shù)據(jù),卷積核也是一維的。CNN 輸入數(shù)據(jù)的維度通常是固定不變的,實際線路中曲線長度差異較大,故難以一次找到曲線的4 個特征點。最好的辦法是選擇一段合適長度的數(shù)據(jù),使其中只包含4 個特征點中的1 個,然后通過CNN 計算得到特征點的類別及其相對位置。由于CNN 適合處理平移之后的數(shù)據(jù),可以不用對全線的數(shù)據(jù)逐點計算,一次計算后可以跳過一定長度的數(shù)據(jù)進行下一次計算,這樣可以很大程度上減少計算量。
國內現(xiàn)役軌道檢測系統(tǒng)中,超高是通過傾角計、滾動陀螺以及2 個垂向位移計得到的[7],曲率是通過安裝在車體的搖頭陀螺得到的[3]。曲線段的超高和曲率檢測結果如圖2所示。
圖2 曲線段的超高和曲率檢測結果示例
由圖2 可以看出,超高和曲率均能反映曲線的4 個特征點,但是超高在特征點處的轉折更加明顯,更有利于CNN 分類。因此,選擇超高數(shù)據(jù)來檢測曲線特征點。
國內現(xiàn)役軌道檢測系統(tǒng)采取等空間間隔采樣的方法采集傳感器數(shù)據(jù)并進行合成計算,其空間采樣間隔為0.25 m。選擇連續(xù)Z個點的超高數(shù)據(jù)作為CNN的輸入,Z的選擇至關重要。Z過大會造成計算量大幅增加,且有可能在選擇的數(shù)據(jù)段中包含多個特征點,對分類不利;Z過小,特征點處超高的局部變化規(guī)律容易和直線段受高頻分量干擾的變化規(guī)律混淆,影響分類的準確性。
根據(jù)GB 50090—2006《鐵路線路設計規(guī)范》[8]的表3.1.5 和TB 10621—2014《高速鐵路設計規(guī)范》[9]的表5.2.5,緩和曲線段的最短長度不得小于20 m;根據(jù)GB 50090—2006 的表3.1.6 和TB 10621—2014 的式5.2.6-2,普速鐵路中兩緩和曲線段間的圓曲線和兩相鄰曲線段間的夾直線段長度不得小于30 m,高速鐵路中不得小于48 m。因此,在50 m 范圍內出現(xiàn)2 個及以上特征點的概率幾乎為0。考慮一定的富余,最終選擇40 m 長度的超高數(shù)據(jù)作為CNN 的輸入,即Z=160。
神經(jīng)網(wǎng)絡對輸入數(shù)據(jù)的尺度是比較敏感的,而實際線路的超高會因設計速度和曲線半徑的不同而不同,因此須對輸入數(shù)據(jù)做歸一化處理,但又不能影響其在特征點處的變化規(guī)律。常用歸一化處理方法有最大值歸一化、最大值最小值歸一化、反正切函數(shù)歸一化、對數(shù)歸一化等[10]??紤]到不能影響其在特征點處的變化規(guī)律,選擇最大值最小值歸一化的方法,計算公式為
式中:Unorm,i為第i個原始數(shù)據(jù)歸一化之后的結果;Di為第i個原始數(shù)據(jù);D(I)為I個原始數(shù)據(jù)的集合;I為數(shù)據(jù)個數(shù);max(D(I)),min(D(I))分別為集合D(I)的最大值和最小值。
實際路線中由于曲線的方向變化,超高會出現(xiàn)正負交替的現(xiàn)象。圓曲線段的超高為正值稱為左曲線,為負值稱為右曲線。經(jīng)最大值最小值歸一化后,左右曲線在同一個特征點處的變化規(guī)律不同。若分類類別定義為4 種特征點類別,則要對超高數(shù)據(jù)取絕對值才能保證左右曲線在同一特征點處的變化規(guī)律相同。但是,對超高取絕對值會由于超高的零線偏移導致其在零線附近出現(xiàn)轉折,破壞特征點處的變化規(guī)律,如圖3所示。
圖3 取絕對值對超高變化規(guī)律的影響
由圖3 可以看出,曲線特征點前后的一段數(shù)據(jù)包括傾斜向上(U),傾斜向下(D)和水平(H)3個類別,將其兩兩組合后有傾斜向上然后水平(UH)、傾斜向下然后水平(DH)、水平然后傾斜向上(HU)、水平然后傾斜向下(HD)4 個類別,共計7 個類別。同一類別對應于左右曲線不同特征點。以HU 類型為例,其分別對應于左曲線的ZH 點和右曲線的YH 點,ZH 點附近超高值絕對值較小,而YH 點附近超高值絕對值較大,故設置一個合適的閾值即可區(qū)分是左曲線的ZH 點還是右曲線的YH點。
一條訓練數(shù)據(jù)中包括Z個點歸一化處理后的超高數(shù)據(jù)、超高數(shù)據(jù)的類別及特征點相對位置。特征點相對位置即特征點相對于其所在的數(shù)據(jù)段中的位置除以Z。對于U,D,H 類別的超高數(shù)據(jù),特征點相對位置為0。對于HU,HD,UH,UD 類別的超高數(shù)據(jù),希望特征點的位置在中心位置附近,這樣特征點處的變化規(guī)律更加明顯,有利于提高分類準確率。實際制作訓練集數(shù)據(jù)時,可以設置一個范圍閾值(本文設為40)。確定特征點偏離中心位置超出此閾值的超高數(shù)據(jù)的類別時,根據(jù)其數(shù)據(jù)分布情況設為與U,D,H最接近的一種。7 種類別的超高數(shù)據(jù)經(jīng)最大值最小值歸一化后如圖4所示。
圖4 歸一化處理后的7種類別超高數(shù)據(jù)
本文所使用的CNN 模型可視化網(wǎng)絡結構如圖5所示。采用了2 層卷積層(C1,C2)和2 層下采樣層(S1,S2),而后緊跟1 層64 個神經(jīng)元的全連接層(L1),最后2個全連接層中L2_1(7個神經(jīng)元)用于分類,L2_2(1 個神經(jīng)元)用于回歸輸出特征點的相對位置。使用RELU(Rectified Linear Units)激活函數(shù),超高數(shù)據(jù)經(jīng)過卷積核提取特征、下采樣和非線性激活后,得到寬度為10、高度為1、深度為32 的特征數(shù)據(jù),而后與全連接層連接。
圖5 CNN模型可視化網(wǎng)絡結構
6.1.1 訓練集和測試集數(shù)據(jù)
根據(jù)京廣(北京—廣州)鐵路(普速)、成貴(成都—貴陽)高速鐵路和石太(石家莊—太原)高速鐵路的超高原始檢測數(shù)據(jù),生成了約11萬條數(shù)據(jù),各類別的樣本數(shù)據(jù)分布見表1。可以看出,各類別分布較均衡。從各類別的數(shù)據(jù)中隨機抽取80%,作為訓練集數(shù)據(jù)來訓練模型,另外20%作為測試集數(shù)據(jù)來驗證模型準確性。
表1 訓練集樣本分布
6.1.2 損失函數(shù)
損失函數(shù)(也稱代價函數(shù))即待優(yōu)化的目標函數(shù)。對于多分類任務,CNN 輸出對各類別的觀測值,其值大小不確定。通常使用softmax 分類器[6]進行處理,將各類別的觀測值轉化為0~1的概率值,計算公式為
觀測值經(jīng)softmax 分類器處理后,使用交叉熵[6]計算預測概率分布和真實概率分布的差異作為損失函數(shù)。交叉熵起源于信息論,主要用于度量兩個概率分布的差異,計算公式為
式中:J為交叉熵損失函數(shù);n為樣本編號;N為一次迭代的訓練樣本數(shù)量;yn為第n個樣本的真實類別,取1到K之間的整數(shù)。
對于回歸任務,最常用的損失函數(shù)為均方誤差損失函數(shù)。均方誤差[6](Mean Squre Error,MSE)度量的是預測值和真實值差異的平方的均值,只考慮誤差的平均大小而不考慮其正負。由于計算經(jīng)過平方,會使得導致預測結果偏差較大的網(wǎng)絡參數(shù)得到更多的調整。均方誤差損失函數(shù)M的計算公式為
式中:yp,n,yt,n分別為第n個樣本的預測值和真實值。
最終的目標是通過同一個網(wǎng)絡實現(xiàn)對曲線特征點的分類及其相對位置的預測,分別對應交叉熵損失函數(shù)J和均方誤差損失函數(shù)M。訓練模型時有兩種處理方法,可以對J和M賦予相應的權重后組合成一個損失函數(shù),也可交替使用J和M。試驗表明,在迭代相同次數(shù)后兩種方法最終在測試集上的表現(xiàn)幾乎沒有差異,但第一種方法訓練速度更快。本文采用第一種方法,組合成的損失函數(shù)L的計算公式為
6.1.3 訓練結果
使用tensroflow 深度學習框架搭建并訓練CNN 模型,每次迭代時隨機從訓練集中選取2048 條數(shù)據(jù),迭代20萬次后模型在測試集上的分類準確率達到99%,相對位置預測的平均偏差小于2%。訓練過程中訓練集的損失函數(shù)以及測試集的分類準確率和特征點相對位置均方誤差見圖6。
圖6 訓練結果
模型訓練完成后,使用京包高速鐵路的超高數(shù)據(jù)進行預測。為了減少計算量,若某一數(shù)據(jù)段的預測分類結果為U,D,H 之一,則直接跳過40 個點進行下一次預測。為了提高預測結果的準確性,對于預測分類結果為HU,HD,UH,DH 之一的數(shù)據(jù)段,將CNN 預測的特征點相對位置加上數(shù)據(jù)段的起始位置得到初始中心點位置P,將P前后移動5個、10個點,得到4個中心位置P-10,P-5,P5,P10。以這5 個位置為中心從原始超高數(shù)據(jù)中取5 段數(shù)據(jù),經(jīng)歸一化處理后用CNN 進行預測,得到5 份預測結果,用這5 次預測的類別對最終類別進行投票。若某一類別得票大于4,則認為找到了某個特征點F,特征點位置為5 次預測中預測類別與F一致的預測位置的平均值。京包高速鐵路曲線特征點的預測結果如圖7 所示??梢钥闯?,模型能夠相當準確地識別出曲線特征點并找到其位置。
圖7 京包線曲線特征點檢測結果
利用CNN 計算圖7中5條曲線的特征點檢測結果對應的曲線長度,并與現(xiàn)役軌道檢測系統(tǒng)對此5 條曲線長度的檢測結果進行對比,見表2??梢钥闯觯珻NN對曲線長度的檢測結果與實際情況更加接近。因此,CNN對曲線特征點的定位更準確。
表2 現(xiàn)役軌道檢測系統(tǒng)和CNN檢測結果 m
本文提出的基于卷積神經(jīng)網(wǎng)絡的曲線特征點檢測算法具有準確率高,檢測效果不受線路等級影響等優(yōu)勢。不足之處在于卷積神經(jīng)網(wǎng)絡計算量較大。本文在確保檢測精度要求的基礎上已經(jīng)盡可能縮小了網(wǎng)絡模型,但仍難以滿足實時檢測的要求?,F(xiàn)有軌道檢測系統(tǒng)運行在QNX(Quick UNIX)實時操作系統(tǒng)上,對算法實時性要求較高。若將卷積神經(jīng)應用到檢測系統(tǒng)當中,一種解決方案是對曲線特征點檢測采取異步檢測的方案,即不要求算法實時輸出,由于檢測時無需對每一段超高數(shù)據(jù)進行計算,因此仍能在檢測車運行時間內得到最終結果;另一種解決方案是將曲線特征點識別算法遷移至軌道檢測系統(tǒng)的后端服務器上,利用GPU(Graphic Processing Unit)加速其計算過程。本文只研究了該算法的理論可行性,關于如何將其應用到軌道檢測系統(tǒng)上仍有很多工作要做。