張博 劉秀波
中國鐵道科學研究院集團有限公司 基礎(chǔ)設(shè)施檢測研究所,北京 100081
鋼軌傷損直接影響列車的安全平穩(wěn)運行,其中鋼軌擦傷是主要的鋼軌傷損形式,其產(chǎn)生原因是列車在進行啟動和制動、經(jīng)過長大坡道或小半徑曲線時,由輪對的空轉(zhuǎn)或輪軌相對滑動在軌面產(chǎn)生的塑性變形或金屬相變[1-4]。圖1 為典型的鋼軌擦傷現(xiàn)場照片。因此,需要及時對鋼軌擦傷情況進行檢測,指導養(yǎng)護維修,保障列車行車安全。
圖1 鋼軌擦傷
為了檢測鋼軌傷損,相關(guān)學者相繼提出了超聲檢測、機器視覺檢測等[5-7]無損檢測方法。超聲檢測對鋼軌內(nèi)部傷損檢測效果較好[8],而機器視覺檢測已經(jīng)廣泛應(yīng)用于鋼軌表面?zhèn)麚p的檢測[9-11]。針對鋼軌擦傷的檢測,文獻[12]提出了一種實時的鋼軌表面擦傷視覺檢測方法,計算灰度對比圖并基于灰度閾值分割出擦傷區(qū)域。文獻[13]提出了一種基于空間濾波的鋼軌表面擦傷檢測改進算法,通過分步灰度均值填充和計算灰度對比圖檢測鋼軌擦傷區(qū)域。上述方法基于灰度閾值進行鋼軌擦傷的檢測,檢測性能受光照等外部環(huán)境的影響比較大,當光照等因素造成鋼軌圖像局部灰度變化時,根據(jù)預設(shè)的灰度閾值容易將圖像局部灰度異常區(qū)域判定為擦傷區(qū)域,從而引起誤檢,影響鋼軌擦傷檢測的準確性。
本文提出一種基于機器視覺的圓斑狀鋼軌擦傷檢測算法。首先根據(jù)圖像垂直方向上的灰度均值曲線提取出鋼軌頂面區(qū)域;然后運用邊緣檢測的方法得到擦傷區(qū)域邊緣的候選像素點;最后運用形態(tài)學處理刪除不屬于擦傷區(qū)域的虛假邊緣,確定鋼軌擦傷區(qū)域的位置。
鋼軌擦傷檢測算法包括軌面提取、擦傷邊緣檢測、形態(tài)學處理3個子過程。
利用成像設(shè)備現(xiàn)場采集的圖像如圖2(a)所示[14],為了檢測鋼軌擦傷,需要從現(xiàn)場采集的圖像中提取出鋼軌的軌面區(qū)域。
利用采集的圖像中鋼軌灰度較高的特點[15-16],根據(jù)圖像每一列方向上的灰度均值曲線,將鋼軌表面區(qū)域分割出來。
首先,計算輸入圖像U每一列的灰度平均值。灰度平均值m(x)的計算式為
式中:x=1,2,…,W,W為輸入圖像U的寬度;y=1,2,…,H,H為輸入 圖像U的高 度;I(x,y)為像素(x,y)的灰度。
由于輸入圖像中鋼軌區(qū)域的寬度是固定的,對寬度為R的區(qū)域求積分P(x),即
然后求P(x)的最大值。P(x)最大值對應(yīng)的x為鋼軌左側(cè)起始點KB,鋼軌右側(cè)為KB+R。由此得到鋼軌頂面區(qū)域的圖像,如圖2(b)所示。
圖2 鋼軌軌面區(qū)域提取
鋼軌擦傷所在區(qū)域在軌面圖像中表現(xiàn)為灰度局部異常。跟正常鋼軌背景圖像相比,鋼軌擦傷區(qū)域的灰度較低,與周圍非擦傷區(qū)域形成灰度差異,檢測特征比較明顯。通過檢測擦傷區(qū)域的邊緣,就能定位出鋼軌擦傷的位置。
確定鋼軌位置后,將鋼軌區(qū)域的圖像截取出來,然后在截取的鋼軌圖像上利用canny 邊緣檢測方法來檢測鋼軌擦傷區(qū)域的邊緣。該方法分為4步。
1)對鋼軌圖像進行高斯濾波處理。
2)利用Sobel 邊緣檢測算子,計算濾波后圖像的灰度沿著水平和垂直方向的偏導數(shù)(Gx和Gy),得到梯度幅值Ga和相位θ。計算式為
3)將像素點的梯度幅值與3 × 3 鄰域內(nèi)沿著水平方向、垂直方向、±45°方向的兩個像素比較,如果該像素點的梯度幅值更小,則置為0。
4)設(shè)置高閾值T2與低閾值T1。若像素點的梯度幅值大于T2,或像素點的梯度幅值小于T2且大于T1,并且其鄰域有像素點的梯度幅值大于T2,則判定該像素點為邊緣像素點。
在實際檢測中,受光照等環(huán)境因素的影響,邊緣檢測的識別結(jié)果可能包含不屬于擦傷區(qū)域的虛假邊緣。擦傷區(qū)域的邊緣是封閉的,根據(jù)這一特點,利用形態(tài)學處理的方法可以刪除不屬于擦傷區(qū)域的虛假邊緣。利用形態(tài)基礎(chǔ)元素提取圖像特征,通過膨脹、腐蝕等形態(tài)學運算,可以保持圖像數(shù)據(jù)基本的形狀特征并除去不相干的結(jié)構(gòu)[17]。
為了刪除不屬于擦傷區(qū)域的虛假邊緣,定義形態(tài)學收縮運算B,即
式中:XB為對圖像U進行收縮運算后的剩余像素點組成的集合;EI為對圖像U進行邊緣檢測得到的屬于邊緣的像素點組成的集合;Ncon(x)為像素點x的連通數(shù)[18]。
收縮運算B對U進行處理的結(jié)果就是保留圖像中連通數(shù)不小于2的邊緣像素點。由于擦傷區(qū)域的邊緣是封閉的,對應(yīng)的邊緣像素點的連通數(shù)都不小于2,通過重復對圖像U進行收縮運算,直到兩次收縮運算得到的結(jié)果不再變化,最終保留的邊緣像素點的集合即為擦傷區(qū)域邊緣,從而得到鋼軌擦傷區(qū)域的位置。
以圖2(b)的鋼軌圖像為檢測對象,分別使用文獻[12]中方法和本文提出的方法進行檢測。
文獻[12]的檢測結(jié)果見圖3(a),其中黑色部分為檢出的鋼軌擦傷區(qū)域。由于鋼軌圖像在左上方存在局部灰度異常區(qū)域,該區(qū)域的灰度較低且與鋼軌擦傷區(qū)域的灰度接近,基于灰度閾值進行擦傷檢測時可能將該部分區(qū)域誤判為鋼軌擦傷區(qū)域。
使用本文提出的方法檢測時,首先對圖像做邊緣檢測,得到的結(jié)果見圖3(b),其中白色部分是檢出的邊緣??梢钥闯觯轰撥壊羵麉^(qū)域的邊緣被準確檢出,但也存在不屬于擦傷區(qū)域的虛假邊緣;與不屬于擦傷區(qū)域的虛假邊緣相比,擦傷區(qū)域的邊緣是封閉的。然后,利用形態(tài)學處理的方法刪除不屬于擦傷區(qū)域的虛假邊緣。對邊緣檢測結(jié)果重復進行形態(tài)學收縮運算,直到兩次收縮運算得到的結(jié)果不再變化,最終的處理結(jié)果見圖3(c)。可以看出,經(jīng)過形態(tài)學處理,只有屬于擦傷區(qū)域的邊緣被保留下來,從而準確地檢測出了鋼軌的擦傷區(qū)域。
圖3 鋼軌擦傷檢測方法對比
對250幅鋼軌擦傷圖片進行測試試驗。采用準確率Acc評估檢測算法性能,計算式為
式中:Tp為正確檢測出的擦傷個數(shù);Nd為所有檢測出的擦傷個數(shù)。
用測試數(shù)據(jù)集對本文算法進行檢測性能評測,并與文獻[12]中提出的基于灰度閾值檢測鋼軌擦傷的方法進行比較。結(jié)果顯示,本文算法的準確率為96.4%,文獻[12]算法的準確率為86.8%。本文算法能夠有效檢測出圓斑狀鋼軌擦傷,并且在準確率上優(yōu)于文獻[12]算法。文獻[12]中的鋼軌擦傷檢測方法基于灰度閾值,當光照等外部環(huán)境因素影響造成鋼軌圖像局部灰度異常時容易引起誤檢。本文提出的方法利用形態(tài)學處理,將只有屬于擦傷區(qū)域的邊緣保留下來,從而準確地檢測鋼軌的擦傷區(qū)域,對光照不均等情況具有比較強的魯棒性,能夠有效排除局部光照不均的影響。用本文算法得到的部分檢測結(jié)果如圖4所示,擦傷處用紅色矩形框出。
圖4 鋼軌擦傷檢測結(jié)果示例
本文提出了一種基于機器視覺的圓斑狀鋼軌擦傷檢測算法,在利用采集圖像在垂直方向的灰度均值曲線提取出鋼軌頂面區(qū)域后,首先運用邊緣檢測得到擦傷區(qū)域邊緣的候選像素點;然后利用形態(tài)學收縮運算刪除不屬于擦傷區(qū)域的虛假邊緣,從而確定鋼軌擦傷區(qū)域的位置。經(jīng)測試試驗驗證,該方法能夠有效地檢測圓斑狀鋼軌擦傷,對測試樣本檢測的準確率達到96.4%。與現(xiàn)有的基于灰度閾值檢測鋼軌擦傷的算法相比,該方法在局部灰度異常的鋼軌圖像上仍能準確地檢測鋼軌擦傷區(qū)域,可有效消除實際檢測條件下光照等因素對鋼軌擦傷檢測的影響。