蘇 燁,李 筠,楊海馬,劉 瑾,江聲華
(1.上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093;2.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海201620;3.上海瑞紐機械股份有限公司,上海 201314 )
近年來,不斷提升的鐵路速度、貨物運輸?shù)闹剌d以及行車密度對鋼軌的質(zhì)量提出了更高的要求。在列車安全運行中,鋼軌表面是最薄弱的環(huán)節(jié)[1]。鋼軌表面缺陷主要有裂縫、疤痕、劃傷、磨損等,嚴重時會帶來列車脫軌的隱患。為此,國內(nèi)外專家學(xué)者采取不同的方法來檢測鋼軌的表面缺陷情況。
文獻[2]通過超聲波的反射波波形分析判斷鋼軌表面缺陷所在的位置以及損耗程度,但是該方法對環(huán)境有著較高的要求,且鋼軌和探頭需一直保持良好接觸。文獻[3]借助于電渦流發(fā)出的感應(yīng)電流檢測鋼軌表面缺陷的位置,但是自身或者周圍的電磁場會造成極大的干擾,易給最終結(jié)果帶來極大的誤差。文獻[4~5]通過機器視覺來獲取鋼軌表面信息,利用圖像處理分析鐵軌表面缺陷的特征。但是該技術(shù)在檢測過程中容易受到天氣惡劣和復(fù)雜環(huán)境的影響,使得整體的檢測效率無法保持穩(wěn)定。文獻[6]提出BP神經(jīng)網(wǎng)絡(luò)分析鋼軌的缺陷信號,但是用于獲取缺表面陷信號的超聲波對于周圍環(huán)境的要求較高,因此最終檢測的結(jié)果也會受到不同程度的影響。文獻[7]采用了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)模型進行鋼軌表面缺陷識別的研究,檢測精度有了進一步的提高,但是整體速度較慢、耗時較長,限制了適用范圍。
基于以上研究所存在的問題及實際的應(yīng)用需要,本文提出了基于Faster R-CNN神經(jīng)網(wǎng)絡(luò)來識別鋼軌表面缺陷的方法。
當(dāng)鋼軌圖像進行數(shù)據(jù)傳輸或受到外部噪聲、光線等影響時,導(dǎo)致圖像細節(jié)部分的清晰度不高,甚至整體都較為模糊,因此圖像預(yù)處理的目的是去除圖像中的噪聲,使細節(jié)部分更加明顯。圖1(a)中鋼軌圖像經(jīng)過自適應(yīng)中值濾波[8]處理后,如圖1(b)所示,圖中鋼軌缺陷處的對比度得到了增強。
Radon變換的定義為:對于一個n維函數(shù)f(x1,x2,x3,x4,x5,…,xn)在n-1維超平面上的積分[9],因此二維函數(shù)f(x,y)的Radon變換就是計算它在某一指定方向的投影變換[10]。
由圖2可知,ρ0為原點至直線的距離,θ0為直線的法線與x的夾角。故直線的方程式為
ρ0=x·cosθ0+y·sinθ0
(1)
因此二維圖像f(x,y)沿直線的Radon變換式為
(2)
式中,δ為
(3)
對Rθ0(ρ0)進行關(guān)于ρ0的一維傅里葉變換
(4)
將圖像f(x,y)先進行Radon變換,再進行一維的傅里葉變換,其結(jié)果等于二維傅里葉變換,稱為投影定理。文中通過此方法證明了Radon變換就是對圖像進行投影。根據(jù)投影曲線分析圖像,Radon變換不僅可以處理傅里葉變換處理的圖像,而且投影出來的曲線的物理特征更加明確,有利于后續(xù)的對比分析。
進行鋼軌表面缺陷研究時,獲取的鋼軌表面圖像經(jīng)過圖像預(yù)處理后,信息量仍然龐大。在利用Faster R-CNN神經(jīng)網(wǎng)絡(luò)識別缺陷時,枕木、石子裂紋皆會降低鋼軌表面缺陷被識別的準確率。因此,需提取鋼軌表面來減少誤差。
通過大量的鋼軌圖像發(fā)現(xiàn),因經(jīng)常被列車駛過,所以鋼軌表面區(qū)域相較于非鋼軌表面區(qū)域而言,明亮度相對較高,且兩者的明亮度相差較大。因此,需要運用Radon變換對獲取的鋼軌圖像進行投影,完成鋼軌表面的提取。該方法的基本思想是:用Radon變換對預(yù)處理后的圖像進行投影積分,通過積分曲線提取鋼軌表面區(qū)域。
該過程一共分為3個步驟:
步驟1生成投影曲線。濾波后的圖像用Radon變換在θ0=0°處進行投影,相當(dāng)于計算圖像每一列的灰度值,記其和為sum(x),如圖3(b)所示。sum(x)的表達式為
(5)
其中,f(x,y)表示圖像f在(x,y)處的灰度值;H為圖像f的高;
步驟2求取定積分運算的始末位置。將反轉(zhuǎn)后的圖形進行預(yù)處理,鋼軌表面的灰度值明顯低于非鋼軌表面區(qū)域,且灰度值達到整幅圖像的最低值。如圖3(c)所示,需要計算投影曲線的平均值實現(xiàn)其定積分的始末位置。投影曲線的平均值計算式為
(6)
其中,w為圖像f的寬;psum為投影曲線平均值。
步驟3提取鋼軌表面區(qū)域。由步驟2所知鋼軌圖像預(yù)處理后的表面灰度值是整幅圖像的最高值,因此反轉(zhuǎn)后的鋼軌區(qū)域的灰度值是圖像中的最低值,且鋼軌的橫向?qū)挾仁枪潭ǖ?,設(shè)其寬度值為L。因此在投影曲線中,灰度值為最小區(qū)間且長度為L的范圍即鋼軌表面區(qū)域。從積分開始位置x1處開始積分,以L為積分區(qū)間進行積分,到x2位置結(jié)束,期間得到的最小定積分區(qū)間即為鋼軌表面區(qū)域,如圖3(d)所示。其計算式表示為
(7)
以x1位置為積分起點,x2位置結(jié)束,L為積分區(qū)間。該方法減少了積分的時間,提高了獲取鋼軌表面的效率,避免了外界雜質(zhì)誤入所導(dǎo)致的卷積神經(jīng)網(wǎng)絡(luò)對鋼軌表面缺陷識別準確性的降低。
卷積神經(jīng)網(wǎng)絡(luò)由輸入層、卷積層、次采樣層、全連接層、輸出層組成。基于CNN的對象檢測技術(shù)從Region-CNN(R-CNN)發(fā)展到Fast R-CNN再到Faster R-CNN。雖然Region-CNN取得了不錯的檢測成果,但是由于候選區(qū)域的選取影響檢測速度,使其速度耗時過長,限制了適用范圍[11]。Fast R-CNN是先進行卷積再進行裁剪[12],這樣會造成不同候選區(qū)域框重復(fù)計算重疊部分圖像的卷積。而且Fast R-CNN中的候選區(qū)域是通過選擇性搜索得到,其計算速度和效果很普通,不能達到實時監(jiān)測的速度,故而研究人員又提出了Faster R-CNN算法。該方法使用RPN網(wǎng)絡(luò)能夠很快的生成候選區(qū)域,并且在訓(xùn)練中實現(xiàn)了區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)和Fast R-CNN網(wǎng)絡(luò)共享參數(shù)。在本文中,鋼軌表面缺陷檢測也是采用Faster R-CNN算法[13]。
Faster R-CNN是由兩大模塊組成,即RPN候選區(qū)域框提取模塊和Fast R-CNN檢測模塊[14]。鋼軌表面缺陷檢測的算法實現(xiàn)步驟為:
步驟1輸入的圖像經(jīng)過VGG16網(wǎng)絡(luò)轉(zhuǎn)換為特征圖;
步驟2特征圖通過RPN網(wǎng)絡(luò)得到區(qū)域建議和區(qū)域得分;
步驟3將步驟1中的的特征圖和步驟2的區(qū)域得分同時輸入感興趣區(qū)域池化層(Region of Intrest,ROI pooling)并提取對應(yīng)區(qū)域建議的特征;
步驟4輸出該區(qū)域的分類得分以及回歸后的候選框,如圖4所示。
(1)卷積層。進行卷積操作即把輸入的數(shù)據(jù)放入多個濾波器,實現(xiàn)物體特征提取的圖層稱為卷積層。在VGG16網(wǎng)絡(luò)中,有13個卷積層,卷積計算后得到13個不同的特征圖。因RPN網(wǎng)絡(luò)與Fast R-CNN網(wǎng)絡(luò)共享卷積層,13個特征圖用于候選區(qū)域的提取,F(xiàn)aster R-CNN整體訓(xùn)練的時間與精度有了進一步的提升。本文用于卷積計算的激活函數(shù)為修正線形單元(Rectified Linear Unit,ReLU)激活函數(shù)
(8)
其中,α為前一層的輸出;w為連接權(quán)值;
(2)感興趣區(qū)域池化層(ROI pooling)。用R-CNN的選擇性算法從原始圖中提取出可能性區(qū)域。根據(jù)映射關(guān)系轉(zhuǎn)化為物體特征信息,把獲取的信息進行概要統(tǒng)計,減少輸入量的規(guī)模。其本質(zhì)是利用其中的局部變量特征不變的通性進行降維操作。實現(xiàn)降維的方法有很多,本文采用最大池化
(9)
其中,Pmax為最大池;M為特征圖;k為卷積核的數(shù)量。
(3)RPN。經(jīng)過卷積層后的卷積特征圖作為區(qū)域建議網(wǎng)絡(luò)的輸入,多個矩形候選區(qū)域作為輸出[15]。為了獲取候選區(qū)域,需進行滑窗處理,卷積特征圖一共有多個窗口。每個窗口建議k個目標候選區(qū)域,窗口與目標候選區(qū)域的聯(lián)系用anchor表示,每個anchor的長度和比例都不同。將每個窗口輸入全連接層1,即輸入256維的低維向量中。該特征向量輸入全連接層2,該層一共分為兩個子網(wǎng)絡(luò)層:邊框分類層(cls layer)和邊框回歸層(reg layer)。邊框分類層用于輸出每個目標候選框是否為鋼軌表面缺陷的概率,每個窗口一共有2k個輸出。候選框用(x,y,w,h)表示位置,坐標用(x,y)表示,(w,h)分別表示寬度和高度。邊框回歸層輸出anchor的平移縮放的量,對于每個窗口而言,一共有4k協(xié)調(diào)輸出,如圖5所示。
Faster R-CNN訓(xùn)練需要圖像的候選框信息作為監(jiān)督目標窗口(Ground Truth),所以需要將所有可能的目標使用框標注,之后使用labelImg對數(shù)據(jù)集的每一張圖片進行標記并生成xml文件進行保存。如圖6所示。
本文以60 kg·m-1鋼軌作為標準軌。將Radon變換后的圖像整理分為4種類別:疤痕、裂縫、劃傷和磨損。每種類別有400張圖片,共計400×4=1 600張照片,其中80%作為訓(xùn)練集,20%作為測試集,如表1所示。
表1 Faster R-CNN表面缺陷識別Table 1. Surface defect recognition of Faster R-CNN
結(jié)合表1和圖7可知,鋼軌表面的各個缺陷的識別率均在90%以上。利用Radon變換獲取鋼軌表面特征區(qū)域,減少了非鋼軌表面區(qū)域的碎石或雜物帶來的誤差影響,同時用卷積神經(jīng)網(wǎng)絡(luò)整體提升了鋼軌表面缺陷識別的準確性。但是,上文所提4種類別缺陷的識別率無法得到進一步提高,其原因可能是當(dāng)鋼軌表面的缺陷不容易被察覺時,其識別效果不佳。但當(dāng)缺陷比較明顯時,容易識別且不易被誤判。
將1 600張鋼軌缺陷圖像輸入Fast R-CNN神經(jīng)網(wǎng)絡(luò)進行實驗分析,結(jié)果如表2所示。再隨機抽取800張照片作為測試對象,分別輸入文獻[16]中的方法和BP神經(jīng)網(wǎng)絡(luò)進行試驗,結(jié)果如表3所示。
表2 Fast R-CNN表面缺陷識別Table 2. Fast R-CNN surface defect recognition
表3 不同鋼軌表面缺陷算法精度統(tǒng)計Table 3. Accuracy statistics of different rail surface defect algorithms
結(jié)合表1~表3可以得出,F(xiàn)ast R-CNN模型的準確率與Faster R-CNN相差較小,但是平均檢測時間相對較長。而在不考慮用時的情形下,文獻[16]的方法和BP神經(jīng)網(wǎng)絡(luò)對鋼軌表面4種缺陷的識別準確率與采用本文方法獲得的準確率相差較大。
本文先用Radon變換得到鋼軌原圖像的灰度投影曲線及其投影曲線的平均值,將其反轉(zhuǎn)后,鋼軌表面區(qū)域的灰度值小于圖像的平均值,且鋼軌的寬度L為定值,因此提取投影曲線中灰度值的長度為L的最小區(qū)域完成鋼軌表面的提取。使用該方法可實現(xiàn)對鋼軌表面的快速提取。隨后,運用Faster R-CNN卷積神經(jīng)網(wǎng)絡(luò)識別鋼軌表面缺陷,利用80%的數(shù)據(jù)進行訓(xùn)練,另20%的數(shù)據(jù)作為測試集得出鋼軌表面的疤痕、裂縫、劃傷和磨損的識別準確率均達到90%以上。但是,該方法目前仍存在許多不足。首先,精度有待進一步提高,當(dāng)缺陷不明顯時,識別的效果不佳,容易被誤判;其次,算法改進的同時需提升神經(jīng)網(wǎng)絡(luò)訓(xùn)練速度,以滿足鋼軌在高速檢測中對實時處理的更高要求。