(安徽理工大學 電氣與信息工程學院,安徽 淮南 232000)
鐵軌的傷損檢測在鐵路安全運營中意義重大,國內(nèi)由于鐵路客貨混跑、行車密度大、客運提速等因素,導致鐵軌表面易造成傷損,如果發(fā)現(xiàn)不及時,會使缺陷進一步加大,從而引起嚴重的交通安全事故[1]。截至2016年,通過分析統(tǒng)計的全球鐵路里程數(shù)據(jù),國內(nèi)鐵路總里程數(shù)據(jù)排名世界第二,其中高速鐵路總里程數(shù)據(jù)排名世界第一。若對提速后的火車線路完全依靠人工巡檢,不僅耗費巨大的人力物力,而且增加鐵路巡檢工作的危險性。在鐵軌傷損方面研制快速自動檢測技術(shù)對鐵軌安全運行變得極為重要。目前,在鐵軌表面?zhèn)麚p檢測中,大多都是運用機器視覺方法對鐵軌樣本圖像進行判別[2-4],如西南交通大學官鑫的學習向量量化神經(jīng)網(wǎng)絡(luò)算法、江南大學茅正沖的圖像增強與分割的算法等。但這些算法前期都要對樣圖進行煩瑣的圖像預(yù)處理或特征提取工作,且鐵軌樣本圖像的分類精度嚴重依賴預(yù)處理和特征提取的合適與否。
深度學習中在探究模式識別時引用卷積神經(jīng)網(wǎng)絡(luò),且應(yīng)用卷積網(wǎng)絡(luò)的效果明顯,因此學術(shù)界對于卷積網(wǎng)絡(luò)很關(guān)注[5]。卷積神經(jīng)網(wǎng)絡(luò)識別圖像在前期可省略復(fù)雜的特征提取工作,再對圖片進行識別。卷積網(wǎng)絡(luò)具有網(wǎng)絡(luò)學習特點,經(jīng)學習后得到的圖片特征相對于人工方法提取的特征,更能反映樣本背后的規(guī)律,對于復(fù)雜度高的圖像也能實現(xiàn)高精度分類[6-8]。
卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)訓練過程和BP神經(jīng)網(wǎng)絡(luò)的訓練過程類同[9],其中相關(guān)參數(shù)的計算為參數(shù)的前向過程傳遞和誤差的反向過程回饋。卷積神經(jīng)網(wǎng)絡(luò)訓練在每次迭代過程中包含對多層卷積層計算過程與池化層池化計算過程,這極為耗費時間。因此提出一種改進卷積神經(jīng)網(wǎng)絡(luò)模型,用于鐵軌傷損與非傷損樣本圖像的識別。改進算法在保證識別準確率下減少了卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)訓練時間,在鐵軌探傷方面提高了檢測速度。
20世紀60年代,Hubel和Wiesel在研究神經(jīng)網(wǎng)絡(luò)時針對貓腦皮層的局部敏感和方向選擇的神經(jīng)元,得出卷積網(wǎng)絡(luò)具有獨特的網(wǎng)絡(luò)結(jié)構(gòu),可以有效降低網(wǎng)絡(luò)反饋方面存在的復(fù)雜性問題。在構(gòu)建好的卷積神經(jīng)網(wǎng)絡(luò)中直接輸入圖像,網(wǎng)絡(luò)訓練過程對參數(shù)進行前向傳遞并對誤差進行反向傳播回饋,不斷重復(fù)計算、修正參數(shù)使輸出值達到期望值。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)簡圖
在圖1中,卷積網(wǎng)絡(luò)結(jié)構(gòu)包含輸入層、一層卷積層、一層池化層和一層全連接層。建立的卷積神經(jīng)網(wǎng)絡(luò)中輸入60像素×60像素的圖片,實現(xiàn)卷積計算作用的卷積層選擇卷積核的大小為5×5,卷積計算過程中采取的步長為1,卷積層中卷積計算使用的激活函數(shù)類型有Sigmoid、Relu函數(shù),選擇Relu函數(shù)時不需要再進行引入稀疏性工作;池化作用的池化層選擇池化核的大小為2×2,池化計算的步長為2,采用最大池化法計算后得到的值作為池化層輸出值,能減少采樣過擬合問題。最后一層全連接層可以將圖片樣本學習后得到的分布式特征與建立的樣本標記空間通過映射建立關(guān)系。
卷積神經(jīng)網(wǎng)絡(luò)在網(wǎng)絡(luò)結(jié)構(gòu)上可以建立多卷積層,卷積層在功能上實現(xiàn)特征提取,數(shù)學表達式為
(1)
式中,αj-1+l,k+m為卷積神經(jīng)網(wǎng)絡(luò)卷積計算中第j個卷積層所在的第k個神經(jīng)元相對應(yīng)的輸入表示;αj,k為卷積神經(jīng)網(wǎng)絡(luò)卷積計算中第j個卷積層所在的第k個神經(jīng)元的輸出表示;f為卷積神經(jīng)網(wǎng)絡(luò)卷積計算中卷積層使用的激活函數(shù);ω為在卷積神經(jīng)網(wǎng)絡(luò)卷積計算中卷積層使用卷積核5×5大小的共享矩陣;b為共享偏置。
池化層在降低過擬合問題時利用局部平均計算和子抽樣計算來實現(xiàn),通過降低樣本的輸出來簡化輸出特征量的大小。池化作用可獲得有映射關(guān)系的樣本特征,特征通過平移形式或者其他形式變形后,特征敏感度能夠降低,數(shù)學表達式為
αj+1=β·Pool(αj)
(2)
式中,β為下采樣層的權(quán)重系數(shù);Pool為池化作用的函數(shù),有max-pooling函數(shù)。
BP神經(jīng)網(wǎng)絡(luò)在結(jié)構(gòu)上有進行數(shù)據(jù)學習的輸入層、包含多個隱含節(jié)點的隱含層與輸出網(wǎng)絡(luò)學習結(jié)果的輸出層,其中隱含層學習可以由多層結(jié)構(gòu)構(gòu)成。BP神經(jīng)網(wǎng)絡(luò)在學習訓練過程中使用的是一種多層網(wǎng)絡(luò)學習算法,計算內(nèi)容包括對參數(shù)進行前向傳遞和對誤差進行反向傳播回饋。對于實際輸出量的計算,計算方向是從輸入到輸出的方向。其中隱含層和輸出層包含的神經(jīng)元節(jié)點相關(guān)的輸入輸出計算數(shù)學表達式[10]如下:
隱含層第m個節(jié)點的輸入
(3)
隱含層第m個節(jié)點的輸出
(4)
輸出層第k個節(jié)點的輸入
(5)
輸出層第k個節(jié)點的輸出
(6)
式中,Wmn為在BP網(wǎng)絡(luò)學習計算中該隱含層所在的第m個隱含神經(jīng)元節(jié)點與到相鄰輸入層包含的第n個神經(jīng)元節(jié)點連接的權(quán)值參數(shù);Wkm為在網(wǎng)絡(luò)學習計算中該輸出層所在的第k個輸出神經(jīng)元節(jié)點與到相鄰輸入層所包含的第m個節(jié)點連接的權(quán)值參數(shù);xn為在BP網(wǎng)絡(luò)學習計算中該輸入層所在的第n個神經(jīng)元節(jié)點的輸入;θm為在網(wǎng)絡(luò)學習計算中該隱含層第m個神經(jīng)元節(jié)點的閾值參數(shù);αk為在BP網(wǎng)絡(luò)學習計算中該輸出層第k個神經(jīng)元節(jié)點的閾值參數(shù);φ為在網(wǎng)絡(luò)學習計算中該隱含層選擇的激勵函數(shù)。訓練網(wǎng)絡(luò)的權(quán)值與閾值通過梯度下降反向調(diào)整誤差,從輸出到輸入反轉(zhuǎn)修正隱含層,其中權(quán)值的誤差函數(shù)為[10]
(7)
訓練學習過程中由選擇的訓練樣本構(gòu)成一個訓練集,訓練集的樣本數(shù)量為T個。式中,Tk為輸出層第k個神經(jīng)元節(jié)點要求的期望輸出,Ok為輸出層包含的第k個神經(jīng)元節(jié)點的實際輸出。通過相關(guān)誤差公式計算,反向調(diào)整相應(yīng)權(quán)值和閾值,使用的計算數(shù)學表達式[10]為
(8)
通過式(7)與式(8)式來計算期望輸出與實際輸出的誤差量,使用誤差梯度下降法反饋調(diào)整該輸出層包含的各層神經(jīng)元的權(quán)值與閾值大小,重復(fù)訓練直到期望輸出與設(shè)定期望值接近。
構(gòu)建了卷積、BP網(wǎng)絡(luò)進行圖像識別,結(jié)果分析得出:卷積網(wǎng)絡(luò)的識別準確率高但訓練時間過長,BP網(wǎng)絡(luò)的識別效果不理想但訓練時間短。設(shè)計一種改進的鐵軌傷損圖片識別算法用于鐵軌傷損與非傷損圖片的分類識別。改進后的算法結(jié)構(gòu)如圖2所示。
圖2 改進算法的結(jié)構(gòu)簡圖
改進算法在網(wǎng)絡(luò)模型上由卷積神經(jīng)網(wǎng)絡(luò)與BP神經(jīng)網(wǎng)絡(luò)組成,其中設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是用于初步提取鐵軌圖像的特征,設(shè)計的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是用于訓練卷積提取后的低維度鐵軌圖像特征。
改進算法中,對用于特征提取的卷積網(wǎng)絡(luò)設(shè)計了3層卷積-池化層。每層卷積-池化層中,進行卷積計算的卷積核大小為5×5,卷積的計算步長為1,實現(xiàn)該卷積層卷積功能的激活函數(shù)選擇Sigmoid激活函數(shù);池化層通過池化計算來簡化特征量,采用的池化核大小為2×2,池化作用的計算步長為2,池化函數(shù)類型選擇max-pooling;最后一層是全連接層,它的作用是將經(jīng)卷積-池化學習得到的4像素×4像素的圖片轉(zhuǎn)變?yōu)橐痪S向量形式的16個特征。
改進算法中,BP網(wǎng)絡(luò)的輸入層節(jié)點數(shù)為16,是經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)一次前向運算得到的低維度鐵軌特征圖的特征數(shù)。改進算法中BP網(wǎng)絡(luò)結(jié)構(gòu)包含的隱含層神經(jīng)元節(jié)點數(shù)目選擇,第一層隱含層神經(jīng)元節(jié)點數(shù)目為24,第二層隱含層神經(jīng)元節(jié)點數(shù)目為8。輸出層的神經(jīng)元節(jié)點數(shù)目是2(二分類問題,識別傷損與非傷損圖片)。
鐵軌在其使用過程中,會發(fā)生鐵軌面壓潰、壓裂等傷損現(xiàn)象,這會影響和限制著鐵軌的使用性能,即鐵軌的傷損。實驗中鐵軌表面圖片是利用超聲波獲取鐵軌表面狀態(tài)信息,經(jīng)專用軟件處理后而獲得的。經(jīng)軟件處理后獲取的鐵軌表面圖片包括傷損點、焊接點和磨損點,如圖3所示。
圖3 鐵軌超聲波探測圖
圖片中出現(xiàn)的“X、Y、V、W、八”形狀是傷損部位,需要被識別出來,磨損點和焊接點視為正常部位,不需檢測出來。實驗中,改進卷積神經(jīng)網(wǎng)絡(luò)的輸入鐵軌表面圖片是從圖3中獲取的60像素×60像素的圖片,包括傷損點圖片、焊接點圖片、磨損點圖片如圖4所示。
圖4 鐵軌超聲波探測局部圖
鐵軌表面?zhèn)麚p與否在超聲波圖片里表現(xiàn)為不同的形狀,與色彩無關(guān),為減少圖片里的冗余信息,將其轉(zhuǎn)換成灰度圖片作為改進算法的輸入數(shù)據(jù)。其中,傷損圖片組和非傷損圖片組各200張,從兩組中隨機各選取320張圖片用于算法的模型訓練,樣本剩余的80張傷損圖與非傷損圖用于測試已訓練好的模型、分析識別性能。
由改進算法構(gòu)建的網(wǎng)絡(luò)模型訓練學習中,得到的鐵軌傷損與非傷損圖片識別的訓練誤差曲線和誤差變化率曲線(即error(i+1)-error(i))如圖5所示。實驗中,改進算法的網(wǎng)絡(luò)訓練迭代次數(shù)為4000次,圖中只畫出網(wǎng)絡(luò)訓練初期迭代前3000次的誤差和誤差變化曲線。
由圖5可知,改進算法在鐵軌表面樣圖識別的模型訓練階段,誤差變化大約在第600次迭代時達到最大后慢慢減小。經(jīng)歷1000次迭代,網(wǎng)絡(luò)誤差就已小于0.05,網(wǎng)絡(luò)誤差的收斂速度效果好,且網(wǎng)絡(luò)的誤差變化較平滑。改進算法測試結(jié)果如表1所示。
表1中訓練誤差是指在訓練過程中每次迭代計算得到的期望值與實際值的差值;測試精度是指測試分類效果時正確識別圖片數(shù)量與總體數(shù)量的百分比。由表1可知改進算法在迭代4000次后訓練誤差達到0.0049,訓練好的模型用于待測數(shù)據(jù)測試結(jié)果精度達到95%,可以達到較好的識別效果。鐵軌傷損圖片識別實驗結(jié)果表明,改進卷積神經(jīng)網(wǎng)絡(luò)用于鐵軌探傷圖像的特征提取識別具有可行性,能應(yīng)用于鐵軌探傷檢測作業(yè)。
用改進算法、BP算法與卷積神經(jīng)網(wǎng)絡(luò)算法在相同學習因子等參數(shù)下對320張圖片進行模型訓練。實驗中,BP神經(jīng)網(wǎng)絡(luò)算法建模采用三層網(wǎng)絡(luò)結(jié)構(gòu),第一層由數(shù)目為3600個神經(jīng)元構(gòu)成的輸入層(像素大小60×60=3600);第二層由數(shù)目為96個神經(jīng)元構(gòu)成的隱含層;最后一層由數(shù)目為2個神經(jīng)元構(gòu)成的輸出層(二分類問題,傷損與非傷損圖片)。卷積網(wǎng)絡(luò)在建模中設(shè)計三層卷積-池化結(jié)構(gòu),每個卷積層后連接一個池化層,三層卷積-池化層由相應(yīng)的卷積層、池化層連接。三層卷積-池化層具有的卷積層的卷積核大小都為5×5,卷積計算步長為1,在每層卷積層后連接實現(xiàn)壓縮簡化特征作用的池化層的池化核大小都為2×2,池化作用計算的步長為1。其中關(guān)于卷積層、全連接層中神經(jīng)元數(shù)具體數(shù)目選擇,對于第一層卷積層的神經(jīng)元數(shù)目為6,第二、三層卷積層的神經(jīng)元數(shù)目為12,在卷積網(wǎng)絡(luò)算法中設(shè)計的網(wǎng)絡(luò)結(jié)構(gòu)所包含全連接層神經(jīng)元數(shù)目為192,網(wǎng)絡(luò)的輸出層神經(jīng)元數(shù)目為2(二分類,傷損與非傷損圖片)。改進算法、BP算法與卷積神經(jīng)網(wǎng)絡(luò)三種神經(jīng)網(wǎng)絡(luò)算法等同學習條件下的的網(wǎng)絡(luò)訓練誤差曲線如圖6所示。
圖6 3種算法誤差曲線比較圖
在圖6中包含了3種算法在進行4000次迭代計算后得到的網(wǎng)絡(luò)訓練誤差曲線。分析3種神經(jīng)網(wǎng)絡(luò)算法誤差曲線可知,在大概200次迭代前BP網(wǎng)絡(luò)訓練變化誤差下降最快;在200~700次迭代中,卷積神經(jīng)網(wǎng)絡(luò)誤差下降最快;大約在經(jīng)歷750次迭代后,改進算法的訓練誤差先達到最小。3種算法中CNN、BP訓練誤差曲線收斂效果不太理想,改進算法的誤差曲線收斂效果較好,誤差變化較平滑。采用改進算法、BP算法與卷積神經(jīng)網(wǎng)絡(luò)算法在相同學習因子等參數(shù)下對相同鐵軌樣本圖片進行訓練與測試,實驗結(jié)果如表2所示。
由表2可知,改進算法在圖片識別實驗中測試精度最高,為95.00%,BP算法的測試精度最低,為76.25%,CNN算法居中,為93.75%;改進算法的訓練時間最少,為22.46 s,CNN的訓練時間最多,為1012.87 s,BP算法居中,為307.16 s。此外,BP神經(jīng)網(wǎng)絡(luò)的訓練誤差約為0.0499,而測試精度只有
76.25%,表明BP網(wǎng)絡(luò)訓練已過擬合。綜合鐵軌圖片在3種算法下的識別實驗數(shù)據(jù)分析,可得改進的卷積神經(jīng)網(wǎng)絡(luò)結(jié)合BP神經(jīng)網(wǎng)絡(luò)新算法在鐵軌傷損圖片識別中性能最好。
表2 三種算法實驗數(shù)據(jù)結(jié)果
鐵軌表面?zhèn)麚p的快速識別,在鐵路安全運營中意義重大。本文設(shè)計的改進卷積神經(jīng)網(wǎng)絡(luò)識別傷損圖像,不僅減少了傳統(tǒng)模式識別中存在的預(yù)處理和特征處理工作量,而且提高了卷積神經(jīng)網(wǎng)絡(luò)對鐵軌表面?zhèn)麚p圖片的識別性能。并將該算法與BP算法、卷積算法進行性能比較,通過對訓練時間、測試誤差與測試精度3個方面的比較,得出改進算法在鐵軌探傷識別性能上有較高的識別速率與識別精度。實驗結(jié)果表明,基于改進卷積神經(jīng)網(wǎng)絡(luò)算法在鐵軌傷損檢測識別上具有很好的應(yīng)用前景。