王燕燕,魯五一,鄭聰敏
(1.湖南機電職業技術學院電氣工程學院,長沙 410151;2.中南大學 信息科學與工程學院,長沙 410075)
計算計算法
基于圖像處理的鐵路貨車交叉桿平面度檢測算法研究
王燕燕1,魯五一2,鄭聰敏2
(1.湖南機電職業技術學院電氣工程學院,長沙 410151;2.中南大學 信息科學與工程學院,長沙 410075)
以OpenCV為軟件開發平臺,設計了一種基于數字圖像處理的貨車交叉桿平面度檢測算法。首先利用局部對比度增強、背景差分對圖像進行預處理突出被檢測目標,然后對預處理后的圖像采用自適應閾值改進了的Sobel算法提取目標邊緣,利用局部圖像截取感興趣的圖像部分,再利用最小二乘法來擬合圓形邊緣得到圓心圖像坐標,最后通過坐標變換和平面度計算公式實現相關參數的檢測。分析實驗結果表明該檢測方法在實際應用中能取代人工目測,且滿足實時性和高精度要求(精度±0.1mm,數據可靠性,即重復性測量標準差<0.065mm),提升了工作效率和經濟效益。
交叉桿;平面度;圖像處理;坐標變換
隨著科學技術的不斷進步,高速化、重載化的鐵路貨運對機車車輛的性能要求越來越高,這不僅需要提升貨運車輛的相關技術,而且需要提升對貨運車輛的檢修質量和效率。而轉向架作為車輛檢修的一個重要部件,其檢修的質量直接影響到了鐵路貨車的整體運行性能,交叉桿是轉向架的主要構成部件之一,其對角線長度約有2200mm,屬于大尺寸零件。目前對于交叉桿的相關幾何參數的檢測,主要采用特制標準尺人工去貼靠零件和人眼觀察的方式,大體上判斷交叉桿合格與否。顯然這種人工檢測方法需要多人共同協作才能完成,不僅費時費力,而且存在較大誤差。低效的人工檢測方式一旦導致存在故障隱患的交叉桿的錯誤檢測,則會影響到鐵路貨車的運行安全,造成巨大的經濟損失。因此,實現對交叉桿相關幾何參數的自動化檢測有著很大的學術價值和經濟價值。本文主要研究貨車交叉桿平面度的自動檢測算法。
本文采用OpenCV(Open Source Computer Vision Library)為軟件開發平臺,該軟件能夠在Windows、Linux等多種操作系統上運行,有一套C函數和C++類構成的函數庫,開發人員可以免費調用該函數庫中的函數,極大地減小編程工作量,實現了圖像處理和計算機視覺方面的很多通用算法。
1.1圖像處理算法總體結構
在獲取交叉桿圓形端頭的圖像后,需要利用圖像處理的方法對所獲取的圖片做濾波,局部對比增強,去背景化,進而提取待測目標邊緣,檢測出目標圓心圖像坐標,最終通過坐標變換計算出平面度參數,實現平面度檢測算法,其算法流程如圖1所示。
1.2局部自適應對比度增強
在鐵路貨車交叉桿檢修線上,環境十分惡劣,存在著機械振動、光線亮度變化、電磁波干擾等使得相機采集到的圖像有些模糊,對比度差,導致邊緣提取的難度大大增加且提取效果差 。在對比度增強方面可分為全局增強和局部增強兩種。全局增強方法簡單卻沒有考慮局部圖像信息,且直方圖均衡化存在噪聲過度增強的缺點。結合實際使用環境,均衡各種算法優缺點,本文采用基于局部標準差的自適應對比度增強算法,該算法關鍵在于確定對比度權值K。

圖1 圖像處理算法流程圖
x(i,j)設為圖像中任意像素點的灰度值,其局部鄰域為在以其為中心的(2n+1)×(2n+1)的區域,則圖像的局部均值(即圖像低頻部分)和方差分別為:

其中,σx(i,j)為局部標準差。設f(i,j)為對比度增強后的對應點的像素的值,則該算法的數學描述為:

其中,函數G(i,j)就是對比度權值K。由式(3)可看出,若G(i,j)>1時,即可增強圖像高頻部分x(i,j)-mx(i,j);若G(i,j)<1,即可抑制圖像高頻部分,故算法中通常取K>1,而當G(i,j)取常數k(k>1)時,該部分同比例放大,此時高頻部分可能出現過度增強現象。為解決這一問題,本文采用了自適應的對比度權值對圖像高頻部分進行差別化放大,算法的數學表達式為:

其中,D在本文算法為圖像所有像素點像素值的均方差,為了約束高頻部分過度增強,本文在算法的實際實現中加入了兩個參數P和K,分別表示像素點的最大像素值和最大對比度放大增益值。如果f(i,j)>Pmax則,f(i,j)>Pmax;f(i,j)<Pmax則f(i,j)的值為本身。參數K與P類似。
利用以上算法原理,通過實際編寫函數LocalAreaContrastEnhance()實現局部對比度增強的功能,如圖2所示。

圖2 局部對比度增強處理前后的交叉桿端頭
1.3背景差分
攝像機在工業現場采集的圖像除了包含有交叉桿的圖像外,還夾雜有復雜的背景圖像。在實際邊緣提取中所獲取的邊緣其實是不同物體之間的邊界,因此需要去除圖像中的背景,剩下僅含有被檢測目標的圖像,則能夠準確而快速的提取目標的邊緣。
為了去除復雜背景,本文采用背景差分[1]的方法。其主要步驟為:
1)利用相機先獲取支撐架升起前的圖像,圖3(a)作為檢測目標背景;
2)再用實際獲取的交叉桿圓形端頭的圖像,圖3(b)和背景圖像逐點做差分;
3)取合適的閾值T,若某點的灰度值差分大于閾值T,則取該點灰度值差分為該點新的灰度值,若灰度值差分小于閾值T,則取該點灰度值為0。
利用以上步驟就可實現目標與背景的分離,如圖3(c)所示。從圖中可以看出,檢測目標突出,其他物體被削落。

圖3 交叉桿端頭進行背景差分前后的圖
1.4目標邊緣提取
邊緣是指圖片中像素真實值突然變化的區域,提取檢測目標邊緣的目的在于盡可能接近的獲取其真實的邊界??偨Y當前邊緣檢測算法方面的研究[2.3],常用的算法可以分為基于一階偏導數的邊緣檢測算法和二階偏導數的檢測算法。
在交叉桿檢測系統中,每根交叉桿(由雙桿構成)不超過4min,而在時間上Canny算法的運算時間最長,單幅圖片的處理時間約為Sobel算法的10倍,因此本文給出了一種基于自適應閾值的改進Sobel算法來提取目標物體的邊緣。改進的Sobel算法使用的模板分為X和Y兩個方向且模板內的數值大小取決于中心點及其鄰域內的點之間的距離,邊緣點確定采用雙閾值,分別為:TH1和TH2,其中,TH1的大小取決于整幅圖像最大值(即最大值前乘上一定的權值,本文在實際邊緣提取算法中取0.45),用于初步邊緣提取;TH2的大小取決于8鄰域內梯度的最大值(權值常取0.7~0.9),用于細致化的邊緣提取。顯然兩個閾值都具有一定的自適應性。
利用以上原理編寫自定義函數SobelEdge(),實際提取的邊緣效果如圖4所示。通過對比可知,原算法雖然提取到了更多的邊緣,但是模糊不清晰,且多為離散的點,改進后算法提取到了圓形端頭清晰的上半圓,而且圖像連續,改進的模板適合于當前檢測環境下的邊緣提取。

圖4 Sobel原算法(左)和改進算法(右)
1.5目標圓心檢測
本文對于目標圖像處理的最終目的是提取交叉桿圓形端頭在圖像坐標系中的圓形坐標。為了實現交叉桿圓心檢測,本文采用兩步獲取圓心的位置坐標:
1)截取局部圖像
本文中所使用的工業相機獲取的圖像大小為2592×1944(即500萬像素點),為提升數字圖像的處理速度,本文對所獲得的邊緣圖像采用局部截取的方法來獲取交叉桿圓形端頭上半部分的邊緣圖像。
2)提取圓心坐標
通過局部圖像截取處理后,獲取的僅僅是交叉桿圓形端頭的一部分,為了獲取圓心的圖像位置坐標,本文采用最小二乘法來擬合交叉桿的圓形端頭,并最終間接提取圓心的圖像位置坐標。
最小二乘法(least squares analysis)[4]是一種利用約束條件估算待定參數,使得該參數與其真值之間誤差的平方和最小的參數估計算法。最小二乘法是曲線的擬合估計最為常用的方法[5]。
根據圓的數學描述,其標準方程可表示為:

其一般形式的方程可表示為:

根據方程的一般式可知,則可以由A、B、C計算出圓心坐標以及半徑大小,即:


圖5 圓擬合示意圖
樣本點(Xi,Yi)中點到圓心的距離為di:

點(Xi,Yi)到圓邊緣的距離的平方和與半徑平方的差為:


利用樣本估算出參數A、B、C使得F(A,B,C)最小,并且求出圓心坐標和半徑。
最終不僅獲取了交叉桿圓形端頭邊緣圖像(圖6),且獲得了圖像中的圓心位置坐標。

圖6 圓形端頭擬合圖
1.6坐標變換
本文中平面度的參數采用異面直線的距離來表示,故需要獲得四個圓形端頭ABCD的圓心的在物體坐標系中的坐標值。相機固定時借助十字標尺,光心位置盡可能正對標準桿的圓心位置,且光心與圓心距離固定在
250mm處,則Zc=(250+δ)mm,其中δ是交叉桿變形或者支撐架支撐時的位置偏差總和,3mm,大大小于250mm,對圓形端頭在成像平面的投影坐標影響極小,故實際計算中取Zc=250mm。經過標定得到相機A的外參矩陣C0為:

將內外參數矩陣帶入式(11):

經過變形可得:

將圓擬合得到的A端頭圓心像素坐標代入式(12),即可得到A的物體坐標系中的實際坐標值A(XA,YA,ZA),同理可得BCD點實際坐標值,分別為B(XB,YB,ZB)、C(XC,YC,ZC)、D(XD,YD,ZD)。
1.7平面度計算
根據空間幾何相關數學基礎可知,求異面直線的距離實際上就是求異面直線上任意兩點的向量在其公垂線法相量上的投影。設1AC、1BD的公垂線法相量為n,則利用式(13)可求出平面度參數。

1)實驗測量
根據實際項目要求測量指標如下:轉8G(8B)型焊端頭中心的平面度≤2mm,測量精度±0.1mm,重復性測量標準差<0.065mm。分別對隨機抽樣的10根交叉桿(編號為1~10)進行自動測量和人工測量,測量的數據如表1所示,自動檢測的1、2、4號交叉桿的平面度>2mm,為廢桿,不合格率為30%,而人工檢測的1、2、4號同樣也為廢桿,不合格率為30%。自動測量與人工測量的數據基本吻合,且誤差值均<0.2mm。

表1 隨機抽樣測量數據表
2)重復性測量
選取1、7、10號桿件,分別對三根交叉桿進行10次重復性自動測量,將測量的實驗數據(表2)繪制成折線圖。由圖7可以看出,1號、7號、10號桿件在10次重復自動測量中平均值分別為5.033mm、1.048mm、1.989mm,單次測量與平均值之間的誤差絕對值<0.100mm,標準差分別為0.058mm、0.056mm、0.054mm。可見,自動測量的數據總體上的重復性較好。

表2 重復測量10次數據表

圖7 1號、7號、10號交叉桿平面度重復測量結對比圖
本文以數字圖像處理的相關原理及算法為基礎,通過非接觸式測量采集到貨車交叉桿的圖像。針對流水線現場光照不均且存在亮度變化的情況,給出了一種結合背景差分的局部自適應對比度增強算法,有效抑制背景對檢測目標的影響并且能夠較好的消除因光照變化對邊緣提取的影響。利用改進了的Sobel算法提取檢測目標的邊緣。采用局部截取圓弧邊緣圖像,再結合基于最小二乘法的圓擬合方法來間接確定圓心的像素坐標,計算出交叉桿的平面度。結合實際情況以及對檢測結果分析,采用自動測量交叉桿的平面度,提高了檢測的精確度,滿足對測量系統的誤差要求。實現了測量的自動化,具有一定的應用和推廣價值。
[1] 屈晶晶,辛云宏.連續幀間差分與背景差分相融合的運動目標檢測方法[J].光子學報,2014,43(7):(0710002-1)-(0710002-8).
[2] 余金棟,張憲民.用于線紋顯微圖像的邊緣檢測算法[J].光學精密工程,2015,23(1):271-281.
[3] 師文,朱學芳,朱光.基于形態學的MRI圖像自適應邊緣檢測算法[J].儀器儀表學報,2013,34(2):408-414.
[4] 鄒樂強.最小二乘法原理及其簡單應用.科技信息[J].2010(23):282-283.
[5] 李英碩,楊帆,袁兆奎.空間圓形擬合檢測新方法[J].測繪科學,2013,38(6):147-148.
Research on the flatness detection algorithm of train’s cross rod based on image processing
WANG Yan-yan1,LU Wu-yi2,ZHENG Cong-min2
TP29
A
1009-0134(2016)09-0057-05
2016-06-06
王燕燕(1984 -),女,山西臨汾人,講師,工程碩士,研究方向為智能控制及其應用。