李忠海,白秋陽,王富明,劉海榮
沈陽航空航天大學 自動化學院,沈陽110135
列車運行和自然環境的長期影響,會使鋼軌表面形成孔洞、擦傷和疤痕等各種缺陷[1],這些缺陷對鐵路安全運行造成嚴重威脅,因此,鋼軌表面缺陷檢測成為保障鐵路安全運營的一個重要手段。目前,軌道表面缺陷檢測主要依靠人工實現,人工檢測需要耗費大量的人力資源,檢測效率較低,不具備實時性,而且檢測準確性受主觀因素影響較大,很大程度上依賴于技術人員的經驗水平,這些因素導致人工檢測已經無法滿足現代鐵路,尤其是中國高鐵(CRH)日常檢查的需求[2]。因此,迫切需要建立一個高效快速的自動檢測系統,對運行線路中的鋼軌表面進行實時檢測。
隨著計算機科學和數字圖像處理技術的快速發展,利用圖像檢測鋼軌表面缺陷,逐漸成為主要的研究方向,經過各大高校和鐵路研究院所的不懈努力,已取得大量成果,主要包括:茅正沖等人提出了改進類間方差法對鋼軌表面缺陷進行直接提取,但檢測精度較差,無法滿足工業需求[3];唐湘娜等人利用灰度投影法實現軌道表面區域的快速分割,但該算法的適應性較差[4],袁小翠等人利用改進Ostu算法對缺陷進行分割,但該算法的閾值選取需要根據具體場景進行調整,不具備通用性[5];賀振東等人利用均值背景差分算法提取表面缺陷,但受環境和噪聲等因素影響較大,算法魯棒性較差[6];李清勇等人建立了缺陷圖像的稀疏模型,一定程度上解決了光照不均勻和遮擋等環境問題,但算法復雜度較大,不具備實時性[7]。
通過對國內外的研究現狀進行分析,目前的研究成果主要存在以下問題:
(1)魯棒性較差,對于光照不均勻、背景噪聲較大的圖像,檢測精度無法滿足要求。
(2)側重于檢測精度的研究,算法較為復雜,耗時較長,但根據工程應用的要求,需盡可能地降低算法的計算成本,提高系統的實時性和適應性。
(3)側重于算法研究,雖然在仿真實驗上取得了較好的效果,但忽略了許多現實因素,工程應用仍存在許多障礙,使得我國仍大規模采用人工檢測的方法[8]。
針對以上問題,本文將基于深度學習的語義分割網絡應用于鋼軌表面缺陷檢測上,提出了一種輕量型的語義分割模型,并結合圖像采集、人機交互等模塊,建立了一個完善的鋼軌表面缺陷實時檢測系統。系統不僅可以實現缺陷的快速識別與定位,還可以提供缺陷位置和類型等各種信息,以便維護人員能及時進行相關的分析和處理。利用本文的系統進行軌道表面檢測,將極大地提高檢測效率,降低檢測成本,增強檢測工作的自動化水平。
本文設計的鋼軌表面缺陷檢測系統如圖1所示,系統由系統控制模塊、圖像采集模塊、目標區域定位模塊、缺陷檢測模塊和人機交互模塊五大部分組成。其中系統控制模塊主要用于測速測距和控制相機的工作方式,為了達到精確控制的目的,本文不再使用傳統的光電編碼器,而是利用列車上的現有資源“黑匣子”,即機車運行監控裝置(LKJ)進行精確測控;圖像采集模塊主要用于采集鋼軌表面圖像,為了減少外部復雜光照的影響,在該模塊中增加了遮光罩和LED輔助光源,為圖像采集提供穩定的光照環境;目標區域定位模塊主要用于在采集到的圖像中快速定位目標區域(即鋼軌表面區域),從而減少后續缺陷檢測的計算量,節省檢測時間;缺陷檢測模塊主要用于對軌道表面缺陷進行快速識別和分析,為了滿足系統實時性的要求,采用計算復雜度較低的輕量型語義分割模型進行缺陷定位分割,采用緊湊型卷積神經網絡模型進行缺陷分類;人機交互模塊主要用于實時顯示和記錄檢測結果,并給出有效的報警信息,該模塊設計了友好的操作界面,使用簡易方便,以便維護人員能快速對缺陷進行分析和處理。下面對這五個模塊分別進行詳細介紹。
工業上通常采用面陣相機和線陣相機兩種相機來采集二維圖像,這兩種相機各有優缺點,需要根據應用場景和系統要求進行選擇。線陣相機的傳感器利用單線感光元素進行掃描,能夠實現高掃描頻率和高分辨率,因此具有動態范圍大,圖像失真小,采集速度快等優點,被廣泛應用于工業測量場合[9]。針對系統對高速采集和高分辨率的要求,本文選用CCD線陣相機和工業級鏡頭進行圖像采集。
在圖像采集模塊中,采集光源會直接影響采集圖像的質量,從而對后續的缺陷檢測產生影響,為了避免光照不均勻等現象的出現,本文在該模塊中加入遮光罩和LED輔助光源,通過精確調整遮光罩和輔助光源的位置和亮度,保證采集模塊處于穩定的光照環境中。
確定好圖像采集設備后,需要對其進行合理布局,從而保證采集到的圖像完全覆蓋鋼軌表面,本文的采集模塊布局結構圖如圖2所示。該模塊安裝在列車車廂底部,列車運行時,LED輔助光源以一定角度照射鋼軌表面,并結合遮光罩使采集模塊處于穩定的光照環境中,在嵌入式系統的控制下,通過CCD線陣相機連續采集現場軌道圖像,并將圖像通過通信接口進行傳輸保存,以供系統后續檢測分析使用。

圖1 檢測系統原理圖

圖2 圖像采集布局結構
列車在運行過程中無法全程保持勻速行駛,因此相機和鋼軌之間的相對運動速度是隨時變化的,由于CCD相機的線性掃描方式,會導致圖像采集過程中出現圖像失真現象。當相機采集速率和列車行駛速率保持一致,獲取的缺陷圖像沒有發生變形,如圖3(a)所示,對其的后續檢測結果最接近缺陷的真實尺寸;當相機采集速率大于列車行駛速率,缺陷將被拉長,如圖3(b)所示,對其的后續檢測結果將大于缺陷真實值;當相機采集速率小于列車行駛速率,缺陷將被壓縮,如圖3(c)所示,對其的后續檢測結果將小于缺陷真實值。

圖3 線陣CCD掃描圖像
為了避免上述現象的出現,本文引入了系統控制模塊,該模塊根據列車運行速度產生相應的觸發脈沖,通過觸發脈沖調整圖像采集速率,實現CCD相機掃描的同步控制。
傳統的同步控制方式主要是通過光電編碼器來實現的,其基本原理如下:假設列車的車輪周長為C,在單位時間t內轉動了N圈,列車的行駛距離為S=N×C。在車輪的軸承上安裝光電編碼器,車輪每轉動一周,光電編碼器就會均勻地發出m個脈沖信號,若在單位時間t內光電編碼器發出的脈沖個數為K,則列車行駛距離為S=C×K/m,列車的瞬時行駛速度為v=Δs/Δt。這樣便可以通過光電編碼器獲得列車的行駛速度和瞬時速度,從而進一步獲得缺陷的位置信息。同時光電編碼器觸發信號傳輸到線陣CCD相機的外部觸發輸入端,直接控制相機的線性掃描頻率,從而實現相機的同步掃描[10]。
利用光電編碼器進行測速測距和同步控制,存在較多問題,主要包括:精度較低、受復雜因素影響較大,需要進行誤差補償和可靠性驗證。為了解決以上問題,本文不再使用光電編碼器,而是利用列車上的現有資源,即機車運行監控裝置(LKJ)。LKJ采用先進的傳感技術和智能微機技術,能夠實時采集記錄列車的運行速度、位置、里程和時間等信息,利用LKJ對線性CCD相機進行外部觸發以及獲取圖像的位置信息,將極大提高系統的準確性和精度,同時充分利用了列車現有資源,使系統更加具有經濟性和可操作性。
在實際的缺陷檢測中,需要對鋼軌缺陷進行實時檢測,系統對檢測時間有嚴格要求,因此,需要從采集圖像中快速定位鋼軌表面區域,從而節省后續處理時間,本文利用鋼軌表面區域的色調特性,提出了一種鋼軌表面區域快速定位分割算法。
色調、飽和度和亮度(HSL)是工業中常用的一種顏色標準,該標準包括了人類視覺所能感知的所有顏色。其中色調(Hue,H)作為顏色的第一特征,可以用來準確區分不同顏色,且H值受光照條件影響變化較小,即在一定光照條件下,可以認為該特征值不受外部光照的影響[11]。H的計算表達式如式(1)所示:

采集圖像通常由鋼軌表面、道砟、軌枕和扣件四大區域組成,不同區域的H值分布存在較大差異。為了進一步分析不同區域的H值分布特性,本文選取4組不同光照強度的環境進行圖像采集,4組光照強度分別為500~1 000 lx,1 000~5 000 lx,5 000~10 000 lx,10 000~100 000 lx,每組平分10個點,共計40個采樣點進行采集,每個采樣點采集100張圖像,總共采集4 000張圖像,這些圖像涵蓋了實際采集過程中所存在的大部分光照強度,對以上圖像中不同區域的H值進行統計,得到不同區域的H值分布曲線,如圖4所示。由圖可知,鋼軌表面區域H值整體偏大,且具有較小突變;道砟區域H值具有多個較大突變;扣件區域H值曲線波動變化,且具有單個較大突變;軌枕區域H值整體偏小,且較為平滑。

圖4 不同區域H值曲線
根據不同區域H值的變化特性,本文提出了一種鋼軌表面區域快速定位分割算法。算法步驟如下:
(1)建立圖像坐標系。以采集圖像左下角為坐標原點O;圖像的兩側分別為x軸和y軸,建立圖像坐標系O xy,具體示意圖如圖5所示。假設圖像大小為u×v,(x,y)為圖像中的一個像素點,對應的H值為h(x,y),且x和y的取值范圍為:


圖5 圖像坐標系示意圖
(2)檢索突變點。如果對整幅圖像每列像素點的H值都進行計算,從而檢索突變點,會導致計算量增大,無法快速確定鋼軌表面區域邊界。因此,將采集到的圖像沿x軸正方向進行垂直n等分,在等分線上沿著y軸正方向檢索H值突變點。其中,直線P表示等分線,(xp,y)表示等分線P上的像素點,h(xp,y)表示對應的H值,t表示是否存在H值突變,t的計算表達式為:

t=1時,表明該等分線上存在突變點,將突變點保存記錄下來;t=0時,表明該等分線上不存在突變點,需要在該等分線周圍區域重新檢索。設定單位步長為:

其中,u c為圖像水平像素點總數,當t=0時,對該等分線左右兩側5d范圍內與等分線平行的10條直線依次進行突變點檢索。若在設定范圍內的直線上找到突變點,則停止檢索其他直線,用該直線將等分線進行替換;若設定范圍內的直線上未找到突變點,為了避免陷入循環檢索,將該等分線刪除,不參與后續計算。
(3)確定邊界點。假設等分線上兩個相鄰的H值突變點為(xp,y q)和(x p,y q+1),則按式(6)進行判斷。

其中,w r為采集圖像中鋼軌表面區域寬度的像素總數,如果滿足式(6),(xp,y q)則將作為鋼軌表面區域的下邊界點,(x p,y q+1)將作為鋼軌表面區域的上邊界點。
(4)擬合邊界。對確定的個邊界點進行線性擬合,得到鋼軌表面區域的上下邊界,從而快速定位到采集圖像中鋼軌表面區域。定位結果如圖6所示。

圖6 邊界擬合結果圖
(5)圖像分割。利用定位到的鋼軌表面區域對原始圖像進行分割,分割結果如圖7所示。

圖7 鋼軌表面區域分割結果

圖8 鋼軌表面缺陷檢測模塊結構圖
缺陷檢測模塊由缺陷識別和缺陷分類兩部分組成,模塊設計結構圖如圖8所示。其中,在缺陷識別部分,首先利用語義分割網絡將鋼軌表面圖像轉化為像素級預測掩模;然后對預測結果進行二值化操作,得到缺陷輪廓;利用檢測器對缺陷區域進行裁剪,將裁剪結果作為分類部分的輸入。在缺陷分類部分,利用一種緊湊型CNN網絡進行分類。整個檢測模塊在保證檢測準確率的基礎上,盡可能降低算法復雜度,減少計算量,從而實現鋼軌表面缺陷的實時檢測。具體缺陷檢測網絡模型在第2章進行詳細介紹。
為了方便操作人員使用,本模塊設計了友好的操作界面。本文采用MATLAB GUI完成軟件界面的設計開發工作,鋼軌表面缺陷檢測系統界面如圖9所示。

圖9 缺陷檢測軟件界面圖
系統實時攝像機采集到的圖像,以圖像的形式顯示采集圖像及處理結果,以文本形式顯示當前圖像中包含的缺陷類型,并進行報警提示;以曲線形式記錄檢測結果,并將檢測結果以文本數據格式進行保存。其中數據曲線的水平坐標為測量時間,檢測結果隨測量時間動態變化;保存的文本數據中包括測量時間、缺陷位置及缺陷類型等內容。本模塊能夠實時顯示檢測結果,并將其記錄保存,操作界面簡潔,使用方便,可以有效地協助鐵路維護人員完成檢修保養工作。
鋼軌表面缺陷區域和背景區域具有不同的紋理特征,缺陷區域通常是均勻紋理的局部異常部分,利用數據驅動的方式,通過神經網絡學習表面缺陷的共同特征,將缺陷檢測問題轉化為語義分割問題,利用語義分割網絡將輸入圖像轉化成像素級的預測掩碼,從而實現缺陷的定位與分割。
本文的語義分割網絡由兩個級聯自編碼網絡構成,兩個自編碼網絡具有相同的網絡結構。其中前一個自編碼網絡的輸出預測掩碼作為后一個自編碼網絡的輸入,后者通過對像素標簽的進一步微調,從而提高語義分割的預測結果。自編碼網絡的結構如圖10所示。網絡由編碼器和解碼器兩部分組成。其中,編碼器部分包括10個卷積層,每個卷積層的卷積核采用7×7的空洞卷積核[12],激活函數采用ReLu函數。每兩層卷積層后設置一個池化層,池化層的stride設置為2,采用2×2的最大池化操作。在經過池化層后,將特征圖的厚度增加一倍,從而減少語義信息的丟失。解碼器是編碼器的逆操作,結構與其相似,但每經過兩層卷積層后,需要進行2×2的上采樣操作,將上采樣操作得到的結果與編碼器部分的對應特征映射,通過concatenatee操作進行連接,從而獲得最終的特征映射。最后一層利用softmax函數將輸出轉換成概率圖的形式,并將其調整為與輸入圖像大小相同。
本文在進行卷積操作時,采用7×7的空洞卷積核,空洞卷積核與傳統卷積核對比如圖11所示,由圖可知,空洞卷積核在保證計算量大致不變的基礎上,擴大了感受野,同時可以捕獲圖像多尺度上下文信息,從而更加有效地提取圖像缺陷特征。

圖10 自編碼網絡結構圖

圖11 不同卷積核對比
通常來說,鋼軌表面圖像中背景區域遠遠大于缺陷區域,因此為了使訓練后的網絡模型更加適應缺陷檢測的要求,本文設計了一種加權交叉熵損失函數L seg,具體計算方法如式(7)、(8)所示。

其中,w1表示缺陷權重,本文將其設置為0.2,w2表示背景權重,本文將其設置為0.8,K表示類別數量(背景和缺陷),M表示訓練樣本的數量,N表示每幅樣本圖像的像素總數,表示第i幅圖像中的第j個像素點,表示其對應標簽,表示像素點為標簽k的概率值。
通過對語義分割網絡得到的概率圖進行像素級閾值操作,可以進一步細化預測掩碼結果,提高語義分割的效果,二值化操作方法如式(9)所示:

其中,I pm表示經過語義分割網絡后得到的概率圖,I f表示最終的預測掩碼圖像,G s表示細化閾值,可以根據實際情況進行調整,本文通過實驗驗證,將其設定為100,0表示缺陷區域像素值,1表示無缺陷區域像素值。為了突出顯示檢測后的缺陷,用紅色在原始圖像上標記缺陷區域像素點。最終的檢測結果如圖12所示。

圖12 最終檢測結果
根據上文得到的語義分割結果,提取缺陷的最小矩形包圍區域(MER),MER具有隨機方向,需要通過仿射變換,將其轉換為正向MER,正向MER能夠準確地反映缺陷包絡區域,將其從原圖像中裁剪出來作為CNN網絡的輸入,可以更好地訓練網絡模型,準確地對缺陷進行分類。MER提取結果如圖13所示。

圖13 MER提取結果
本文提出的緊湊CNN模型包括5層卷積層和3層最大池化層、卷積層的激活函數采用PReLU激活函數,同時在前兩層卷積層后添加一個批量規范化層,通過零均值和零單位方差對每個通道中的數據進行規范化,加快網絡模型訓練過程,模型最終通過全連接層,利用softmax函數實現缺陷分類任務,網絡模型整體結構如圖14所示,模型具體參數設置如表1所示。

圖14 緊湊CNN模型結構

表1 緊湊型CNN的模型具體參數(輸入227×227)
本文提出的緊湊CNN模型在進行模型訓練時,不使用經典的分類網絡作為預訓練模型,而是基于提取到的缺陷MER區域數據重新開始訓練,這樣可以極大地減少模型訓練時間,同時本文提出的緊湊CNN模型結構緊湊,網絡規模較小,從而大大縮短了分類時間。與經典的分類網絡如Google-Net和ResNet相比,在保證分類準確率的同時,極大地減少了模型訓練時間和分類時間,更加適用于鋼軌表面缺陷的實時檢測。
實驗配置對最終的實驗結果有重要的影響,本節將詳細地描述實驗需要的數據集、重要的參數設置以及實驗平臺,下面將對以上內容進行具體闡述:
(1)數據集。在深度學習中,數據集的選擇是一個關鍵環節,將直接影響到模型訓練的效果。為了解決鋼軌表面缺陷的分割問題,本文建立了一個較為龐大的具有語義分割標注的鋼軌表面缺陷數據集。首先利用圖像采集模塊對不同場景下的鋼軌進行采集,然后利用目標區域定位模塊提取鋼軌表面區域圖像,最后結合專家經驗,通過人工的方式對圖像中的鋼軌缺陷進行逐一篩選、分類,并利用Photoshop軟件進行標注。
本文選取600幅鋼軌表面缺陷圖像作為原始缺陷圖像,這些圖像覆蓋了不同光照、不同類型的鋼軌。由于攝像頭采集到的圖像為4 096×4 096高分辨率圖像,無法直接作為神經網絡的輸入,因此需要對原始的圖像進行裁剪,裁剪后的圖像大小為512×512,經過裁剪,存在一些不包含缺陷的圖像,需要進一步進行過濾,經過裁剪和過濾后,數據集的總量為15 000。采用專業的圖像處理軟件Photoshop對上述圖像進行標注,利用不同顏色繪圖筆刷對不同類型缺陷進行覆蓋,同時為了獲得缺陷的全局信息,畫筆的寬度需比缺陷寬度多5~8個像素。
為了更好地訓練網絡模型,增加數據集的代表性,本文將RSSD數據集按照上述步驟進行篩選標注,作為增廣數據集添加到本文的表面缺陷數據集中。最終得到的數據集中包含16 000幅圖像,尺寸為512×512,將其中12 000幅圖像作為訓練數據集進行網絡模型訓練,將剩余的4 000幅圖像作為測試數據集進行網絡模型測試。
(2)實驗平臺。本文采用的實驗平臺配置如下:GPU采用Intel Corei7-7700HQ四核處理器,主頻2.80 GHz;內存為32 GB;GPU采用NVIDIA GTX-2080 Ti;操作系統為Ubuntu 16.04;開發環境采用CUDA10.0,網絡框架采用Pytorch1.0。
(3)參數設置。對于語義分割網絡,對第一個自編碼網絡進行30個epoch的訓練,學習率設置為0.000 1,第二個自編碼網絡以同樣的學習率進行20個epoch的訓練,兩個自編碼網絡的批處理大小(batchsize)都設置為2。對于緊湊CNN網絡,使用均值為0,標準差為0.001的高斯分布函數對每層權值進行初始化,batchsize設置為8,初始學習率設置為0.000 1,動量設置為0.9,權重衰減設置為5×10-5,最大迭代次數設置為30 000。
為了評估本文提出的語義分割網絡在鋼軌缺陷分割方面的性能,選用了閾值分割算法[13]和全卷積神經網絡FCN[14]進行對比實驗,實驗結果如圖15所示。由圖15可知,Ostu閾值分割算法容易過度檢測,導致大量的背景噪聲被當作缺陷進行分割;FCN網絡對于明顯的規則缺陷檢測效果較好,但對于擦傷、疤痕等不規則缺陷,容易出現漏檢或檢測不全等現象,不能分割出完整的缺陷區域。而本文提出的語義分割網絡模型對于不同場景下的鋼軌表面缺陷圖像,均具有較好的分割效果,具有較強的魯棒性。

圖15 不同方法缺陷分割實驗結果
為了更加客觀、科學評價這三種算法的缺陷分割效果,選擇像素精度(PA)和交并比(IoU)兩項指標對三種算法的分割結果進行定量分析,PA定義如式(10)所示:

其中,k為類型總數,pij為類型標簽為i的像素預測類型為j,當i=j時,表示預測結果正確的像素點,當i≠j表示預測結果錯誤的像素點。
IoU定義如式(11)所示:

G T表示真實掩碼,P M表示預測掩碼。對比結果如表2所示。由表2可知,本文的語義分割網絡模型的PA和IoU值均高于閾值分割和FCN網絡,表明本文算法的缺陷分割性能更加優越,更符合工業檢測的需求。

表2 不同方法下的PA值和IoU值 %
為了定量評估緊湊CNN網絡模型的分類性能,本文將其與經典的分類網絡模型GoogleNet[15]和ResNet[16]進行比較,實驗結果如表3所示。

表3 不同方法下的正確率和檢測時間
由表3可知,本文提出的緊湊CNN模型分類正確率略高于GoogleNet模型,略低于ResNet模型,三種網絡模型的分類正確率基本相同,都達到90%以上,滿足工業缺陷分類的要求,但本文的模型分類時間遠遠小于其余兩種模型,由此可得,緊湊CNN模型在保證分類準確率的同時,極大地減少了模型訓練時間和分類時間,更加適用于鋼軌表面缺陷的實時檢測。
由于現有的鐵路中不存在同時包含疤痕、孔洞和擦傷缺陷的連續路段,因此分別選擇不同的線路,利用本文的系統以不同速度通過缺陷區域,并對檢測結果進行統計。其中疤痕、孔洞和擦傷缺陷均存在20處,統計結果如表4所示。

表4 鋼軌表面缺陷檢測結果
實驗結果表明,本文設計的系統在速度不超過200 km/h時,檢測到了全部60處缺陷,檢測效果良好,在缺陷分類時,僅有一處擦傷缺陷誤分為疤痕缺陷,其余缺陷全部分類正確,檢測效果極為理想。但在超過200 km/h時,由于采集圖像的質量嚴重下降,導致出現大量誤檢和漏檢現象。我國列車的常速行駛速度一般在100~160 km/h,因此本文的系統滿足我國的實際需求,可以安裝在大部分列車上進行鋼軌表面缺陷檢測,而且單幅圖像的平均處理時間達到245.61 ms,實現了對鋼軌表面缺陷的實時檢測。
本文構建了一個基于語義分割的的鋼軌表面缺陷實時檢測系統,設計了一種帶有LED輔助光源和遮光罩的圖像采集裝置,訓練了一種基于CASAE結構的輕量型語義分割網絡模型和一種緊湊CNN網絡模型對缺陷實時進行識別分類。將本文的系統進行現場實驗,驗證了系統對于鋼軌表面缺陷檢測的有效性,其檢測時間和檢測準確率均滿足工業檢測的需求,同時,系統設計了智能化的人機交互界面,極大地滿足了鐵路維護人員的檢測需求,可以在一定程度上替代人工對鋼軌表面進行檢測。
由于時間和實驗條件的制約,本文構建的系統只是軌道表面缺陷檢測自動化的初步實現,仍存在一些問題需要進一步進行研究,例如數據集的圖像數量較少,模型的學習能力還存在一定局限性,數據集的規模還有待進一步提高;同時對于有遮擋的鋼軌表面無法進行有效檢測,這些都是下一步需要特別關注的研究方向。