王燕燕,魯五一,鄭聰敏
(1.湖南機(jī)電職業(yè)技術(shù)學(xué)院電氣工程學(xué)院,長(zhǎng)沙 410151;2.中南大學(xué) 信息科學(xué)與工程學(xué)院,長(zhǎng)沙 410075)
計(jì)算計(jì)算法
基于圖像處理的鐵路貨車(chē)交叉桿平面度檢測(cè)算法研究
王燕燕1,魯五一2,鄭聰敏2
(1.湖南機(jī)電職業(yè)技術(shù)學(xué)院電氣工程學(xué)院,長(zhǎng)沙 410151;2.中南大學(xué) 信息科學(xué)與工程學(xué)院,長(zhǎng)沙 410075)
以O(shè)penCV為軟件開(kāi)發(fā)平臺(tái),設(shè)計(jì)了一種基于數(shù)字圖像處理的貨車(chē)交叉桿平面度檢測(cè)算法。首先利用局部對(duì)比度增強(qiáng)、背景差分對(duì)圖像進(jìn)行預(yù)處理突出被檢測(cè)目標(biāo),然后對(duì)預(yù)處理后的圖像采用自適應(yīng)閾值改進(jìn)了的Sobel算法提取目標(biāo)邊緣,利用局部圖像截取感興趣的圖像部分,再利用最小二乘法來(lái)擬合圓形邊緣得到圓心圖像坐標(biāo),最后通過(guò)坐標(biāo)變換和平面度計(jì)算公式實(shí)現(xiàn)相關(guān)參數(shù)的檢測(cè)。分析實(shí)驗(yàn)結(jié)果表明該檢測(cè)方法在實(shí)際應(yīng)用中能取代人工目測(cè),且滿(mǎn)足實(shí)時(shí)性和高精度要求(精度±0.1mm,數(shù)據(jù)可靠性,即重復(fù)性測(cè)量標(biāo)準(zhǔn)差<0.065mm),提升了工作效率和經(jīng)濟(jì)效益。
交叉桿;平面度;圖像處理;坐標(biāo)變換
隨著科學(xué)技術(shù)的不斷進(jìn)步,高速化、重載化的鐵路貨運(yùn)對(duì)機(jī)車(chē)車(chē)輛的性能要求越來(lái)越高,這不僅需要提升貨運(yùn)車(chē)輛的相關(guān)技術(shù),而且需要提升對(duì)貨運(yùn)車(chē)輛的檢修質(zhì)量和效率。而轉(zhuǎn)向架作為車(chē)輛檢修的一個(gè)重要部件,其檢修的質(zhì)量直接影響到了鐵路貨車(chē)的整體運(yùn)行性能,交叉桿是轉(zhuǎn)向架的主要構(gòu)成部件之一,其對(duì)角線(xiàn)長(zhǎng)度約有2200mm,屬于大尺寸零件。目前對(duì)于交叉桿的相關(guān)幾何參數(shù)的檢測(cè),主要采用特制標(biāo)準(zhǔn)尺人工去貼靠零件和人眼觀(guān)察的方式,大體上判斷交叉桿合格與否。顯然這種人工檢測(cè)方法需要多人共同協(xié)作才能完成,不僅費(fèi)時(shí)費(fèi)力,而且存在較大誤差。低效的人工檢測(cè)方式一旦導(dǎo)致存在故障隱患的交叉桿的錯(cuò)誤檢測(cè),則會(huì)影響到鐵路貨車(chē)的運(yùn)行安全,造成巨大的經(jīng)濟(jì)損失。因此,實(shí)現(xiàn)對(duì)交叉桿相關(guān)幾何參數(shù)的自動(dòng)化檢測(cè)有著很大的學(xué)術(shù)價(jià)值和經(jīng)濟(jì)價(jià)值。本文主要研究貨車(chē)交叉桿平面度的自動(dòng)檢測(cè)算法。
本文采用OpenCV(Open Source Computer Vision Library)為軟件開(kāi)發(fā)平臺(tái),該軟件能夠在Windows、Linux等多種操作系統(tǒng)上運(yùn)行,有一套C函數(shù)和C++類(lèi)構(gòu)成的函數(shù)庫(kù),開(kāi)發(fā)人員可以免費(fèi)調(diào)用該函數(shù)庫(kù)中的函數(shù),極大地減小編程工作量,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。
1.1圖像處理算法總體結(jié)構(gòu)
在獲取交叉桿圓形端頭的圖像后,需要利用圖像處理的方法對(duì)所獲取的圖片做濾波,局部對(duì)比增強(qiáng),去背景化,進(jìn)而提取待測(cè)目標(biāo)邊緣,檢測(cè)出目標(biāo)圓心圖像坐標(biāo),最終通過(guò)坐標(biāo)變換計(jì)算出平面度參數(shù),實(shí)現(xiàn)平面度檢測(cè)算法,其算法流程如圖1所示。
1.2局部自適應(yīng)對(duì)比度增強(qiáng)
在鐵路貨車(chē)交叉桿檢修線(xiàn)上,環(huán)境十分惡劣,存在著機(jī)械振動(dòng)、光線(xiàn)亮度變化、電磁波干擾等使得相機(jī)采集到的圖像有些模糊,對(duì)比度差,導(dǎo)致邊緣提取的難度大大增加且提取效果差 。在對(duì)比度增強(qiáng)方面可分為全局增強(qiáng)和局部增強(qiáng)兩種。全局增強(qiáng)方法簡(jiǎn)單卻沒(méi)有考慮局部圖像信息,且直方圖均衡化存在噪聲過(guò)度增強(qiáng)的缺點(diǎn)。結(jié)合實(shí)際使用環(huán)境,均衡各種算法優(yōu)缺點(diǎn),本文采用基于局部標(biāo)準(zhǔn)差的自適應(yīng)對(duì)比度增強(qiáng)算法,該算法關(guān)鍵在于確定對(duì)比度權(quán)值K。
圖1 圖像處理算法流程圖
x(i,j)設(shè)為圖像中任意像素點(diǎn)的灰度值,其局部鄰域?yàn)樵谝云錇橹行牡模?n+1)×(2n+1)的區(qū)域,則圖像的局部均值(即圖像低頻部分)和方差分別為:
其中,σx(i,j)為局部標(biāo)準(zhǔn)差。設(shè)f(i,j)為對(duì)比度增強(qiáng)后的對(duì)應(yīng)點(diǎn)的像素的值,則該算法的數(shù)學(xué)描述為:
其中,函數(shù)G(i,j)就是對(duì)比度權(quán)值K。由式(3)可看出,若G(i,j)>1時(shí),即可增強(qiáng)圖像高頻部分x(i,j)-mx(i,j);若G(i,j)<1,即可抑制圖像高頻部分,故算法中通常取K>1,而當(dāng)G(i,j)取常數(shù)k(k>1)時(shí),該部分同比例放大,此時(shí)高頻部分可能出現(xiàn)過(guò)度增強(qiáng)現(xiàn)象。為解決這一問(wèn)題,本文采用了自適應(yīng)的對(duì)比度權(quán)值對(duì)圖像高頻部分進(jìn)行差別化放大,算法的數(shù)學(xué)表達(dá)式為:
其中,D在本文算法為圖像所有像素點(diǎn)像素值的均方差,為了約束高頻部分過(guò)度增強(qiáng),本文在算法的實(shí)際實(shí)現(xiàn)中加入了兩個(gè)參數(shù)P和K,分別表示像素點(diǎn)的最大像素值和最大對(duì)比度放大增益值。如果f(i,j)>Pmax則,f(i,j)>Pmax;f(i,j)<Pmax則f(i,j)的值為本身。參數(shù)K與P類(lèi)似。
利用以上算法原理,通過(guò)實(shí)際編寫(xiě)函數(shù)LocalAreaContrastEnhance()實(shí)現(xiàn)局部對(duì)比度增強(qiáng)的功能,如圖2所示。
圖2 局部對(duì)比度增強(qiáng)處理前后的交叉桿端頭
1.3背景差分
攝像機(jī)在工業(yè)現(xiàn)場(chǎng)采集的圖像除了包含有交叉桿的圖像外,還夾雜有復(fù)雜的背景圖像。在實(shí)際邊緣提取中所獲取的邊緣其實(shí)是不同物體之間的邊界,因此需要去除圖像中的背景,剩下僅含有被檢測(cè)目標(biāo)的圖像,則能夠準(zhǔn)確而快速的提取目標(biāo)的邊緣。
為了去除復(fù)雜背景,本文采用背景差分[1]的方法。其主要步驟為:
1)利用相機(jī)先獲取支撐架升起前的圖像,圖3(a)作為檢測(cè)目標(biāo)背景;
2)再用實(shí)際獲取的交叉桿圓形端頭的圖像,圖3(b)和背景圖像逐點(diǎn)做差分;
3)取合適的閾值T,若某點(diǎn)的灰度值差分大于閾值T,則取該點(diǎn)灰度值差分為該點(diǎn)新的灰度值,若灰度值差分小于閾值T,則取該點(diǎn)灰度值為0。
利用以上步驟就可實(shí)現(xiàn)目標(biāo)與背景的分離,如圖3(c)所示。從圖中可以看出,檢測(cè)目標(biāo)突出,其他物體被削落。
圖3 交叉桿端頭進(jìn)行背景差分前后的圖
1.4目標(biāo)邊緣提取
邊緣是指圖片中像素真實(shí)值突然變化的區(qū)域,提取檢測(cè)目標(biāo)邊緣的目的在于盡可能接近的獲取其真實(shí)的邊界??偨Y(jié)當(dāng)前邊緣檢測(cè)算法方面的研究[2.3],常用的算法可以分為基于一階偏導(dǎo)數(shù)的邊緣檢測(cè)算法和二階偏導(dǎo)數(shù)的檢測(cè)算法。
在交叉桿檢測(cè)系統(tǒng)中,每根交叉桿(由雙桿構(gòu)成)不超過(guò)4min,而在時(shí)間上Canny算法的運(yùn)算時(shí)間最長(zhǎng),單幅圖片的處理時(shí)間約為Sobel算法的10倍,因此本文給出了一種基于自適應(yīng)閾值的改進(jìn)Sobel算法來(lái)提取目標(biāo)物體的邊緣。改進(jìn)的Sobel算法使用的模板分為X和Y兩個(gè)方向且模板內(nèi)的數(shù)值大小取決于中心點(diǎn)及其鄰域內(nèi)的點(diǎn)之間的距離,邊緣點(diǎn)確定采用雙閾值,分別為:TH1和TH2,其中,TH1的大小取決于整幅圖像最大值(即最大值前乘上一定的權(quán)值,本文在實(shí)際邊緣提取算法中取0.45),用于初步邊緣提取;TH2的大小取決于8鄰域內(nèi)梯度的最大值(權(quán)值常取0.7~0.9),用于細(xì)致化的邊緣提取。顯然兩個(gè)閾值都具有一定的自適應(yīng)性。
利用以上原理編寫(xiě)自定義函數(shù)SobelEdge(),實(shí)際提取的邊緣效果如圖4所示。通過(guò)對(duì)比可知,原算法雖然提取到了更多的邊緣,但是模糊不清晰,且多為離散的點(diǎn),改進(jìn)后算法提取到了圓形端頭清晰的上半圓,而且圖像連續(xù),改進(jìn)的模板適合于當(dāng)前檢測(cè)環(huán)境下的邊緣提取。
圖4 Sobel原算法(左)和改進(jìn)算法(右)
1.5目標(biāo)圓心檢測(cè)
本文對(duì)于目標(biāo)圖像處理的最終目的是提取交叉桿圓形端頭在圖像坐標(biāo)系中的圓形坐標(biāo)。為了實(shí)現(xiàn)交叉桿圓心檢測(cè),本文采用兩步獲取圓心的位置坐標(biāo):
1)截取局部圖像
本文中所使用的工業(yè)相機(jī)獲取的圖像大小為2592×1944(即500萬(wàn)像素點(diǎn)),為提升數(shù)字圖像的處理速度,本文對(duì)所獲得的邊緣圖像采用局部截取的方法來(lái)獲取交叉桿圓形端頭上半部分的邊緣圖像。
2)提取圓心坐標(biāo)
通過(guò)局部圖像截取處理后,獲取的僅僅是交叉桿圓形端頭的一部分,為了獲取圓心的圖像位置坐標(biāo),本文采用最小二乘法來(lái)擬合交叉桿的圓形端頭,并最終間接提取圓心的圖像位置坐標(biāo)。
最小二乘法(least squares analysis)[4]是一種利用約束條件估算待定參數(shù),使得該參數(shù)與其真值之間誤差的平方和最小的參數(shù)估計(jì)算法。最小二乘法是曲線(xiàn)的擬合估計(jì)最為常用的方法[5]。
根據(jù)圓的數(shù)學(xué)描述,其標(biāo)準(zhǔn)方程可表示為:
其一般形式的方程可表示為:
根據(jù)方程的一般式可知,則可以由A、B、C計(jì)算出圓心坐標(biāo)以及半徑大小,即:
圖5 圓擬合示意圖
樣本點(diǎn)(Xi,Yi)中點(diǎn)到圓心的距離為di:
點(diǎn)(Xi,Yi)到圓邊緣的距離的平方和與半徑平方的差為:
利用樣本估算出參數(shù)A、B、C使得F(A,B,C)最小,并且求出圓心坐標(biāo)和半徑。
最終不僅獲取了交叉桿圓形端頭邊緣圖像(圖6),且獲得了圖像中的圓心位置坐標(biāo)。
圖6 圓形端頭擬合圖
1.6坐標(biāo)變換
本文中平面度的參數(shù)采用異面直線(xiàn)的距離來(lái)表示,故需要獲得四個(gè)圓形端頭ABCD的圓心的在物體坐標(biāo)系中的坐標(biāo)值。相機(jī)固定時(shí)借助十字標(biāo)尺,光心位置盡可能正對(duì)標(biāo)準(zhǔn)桿的圓心位置,且光心與圓心距離固定在
250mm處,則Zc=(250+δ)mm,其中δ是交叉桿變形或者支撐架支撐時(shí)的位置偏差總和,3mm,大大小于250mm,對(duì)圓形端頭在成像平面的投影坐標(biāo)影響極小,故實(shí)際計(jì)算中取Zc=250mm。經(jīng)過(guò)標(biāo)定得到相機(jī)A的外參矩陣C0為:
將內(nèi)外參數(shù)矩陣帶入式(11):
經(jīng)過(guò)變形可得:
將圓擬合得到的A端頭圓心像素坐標(biāo)代入式(12),即可得到A的物體坐標(biāo)系中的實(shí)際坐標(biāo)值A(chǔ)(XA,YA,ZA),同理可得BCD點(diǎn)實(shí)際坐標(biāo)值,分別為B(XB,YB,ZB)、C(XC,YC,ZC)、D(XD,YD,ZD)。
1.7平面度計(jì)算
根據(jù)空間幾何相關(guān)數(shù)學(xué)基礎(chǔ)可知,求異面直線(xiàn)的距離實(shí)際上就是求異面直線(xiàn)上任意兩點(diǎn)的向量在其公垂線(xiàn)法相量上的投影。設(shè)1AC、1BD的公垂線(xiàn)法相量為n,則利用式(13)可求出平面度參數(shù)。
1)實(shí)驗(yàn)測(cè)量
根據(jù)實(shí)際項(xiàng)目要求測(cè)量指標(biāo)如下:轉(zhuǎn)8G(8B)型焊端頭中心的平面度≤2mm,測(cè)量精度±0.1mm,重復(fù)性測(cè)量標(biāo)準(zhǔn)差<0.065mm。分別對(duì)隨機(jī)抽樣的10根交叉桿(編號(hào)為1~10)進(jìn)行自動(dòng)測(cè)量和人工測(cè)量,測(cè)量的數(shù)據(jù)如表1所示,自動(dòng)檢測(cè)的1、2、4號(hào)交叉桿的平面度>2mm,為廢桿,不合格率為30%,而人工檢測(cè)的1、2、4號(hào)同樣也為廢桿,不合格率為30%。自動(dòng)測(cè)量與人工測(cè)量的數(shù)據(jù)基本吻合,且誤差值均<0.2mm。
表1 隨機(jī)抽樣測(cè)量數(shù)據(jù)表
2)重復(fù)性測(cè)量
選取1、7、10號(hào)桿件,分別對(duì)三根交叉桿進(jìn)行10次重復(fù)性自動(dòng)測(cè)量,將測(cè)量的實(shí)驗(yàn)數(shù)據(jù)(表2)繪制成折線(xiàn)圖。由圖7可以看出,1號(hào)、7號(hào)、10號(hào)桿件在10次重復(fù)自動(dòng)測(cè)量中平均值分別為5.033mm、1.048mm、1.989mm,單次測(cè)量與平均值之間的誤差絕對(duì)值<0.100mm,標(biāo)準(zhǔn)差分別為0.058mm、0.056mm、0.054mm??梢?jiàn),自動(dòng)測(cè)量的數(shù)據(jù)總體上的重復(fù)性較好。
表2 重復(fù)測(cè)量10次數(shù)據(jù)表
圖7 1號(hào)、7號(hào)、10號(hào)交叉桿平面度重復(fù)測(cè)量結(jié)對(duì)比圖
本文以數(shù)字圖像處理的相關(guān)原理及算法為基礎(chǔ),通過(guò)非接觸式測(cè)量采集到貨車(chē)交叉桿的圖像。針對(duì)流水線(xiàn)現(xiàn)場(chǎng)光照不均且存在亮度變化的情況,給出了一種結(jié)合背景差分的局部自適應(yīng)對(duì)比度增強(qiáng)算法,有效抑制背景對(duì)檢測(cè)目標(biāo)的影響并且能夠較好的消除因光照變化對(duì)邊緣提取的影響。利用改進(jìn)了的Sobel算法提取檢測(cè)目標(biāo)的邊緣。采用局部截取圓弧邊緣圖像,再結(jié)合基于最小二乘法的圓擬合方法來(lái)間接確定圓心的像素坐標(biāo),計(jì)算出交叉桿的平面度。結(jié)合實(shí)際情況以及對(duì)檢測(cè)結(jié)果分析,采用自動(dòng)測(cè)量交叉桿的平面度,提高了檢測(cè)的精確度,滿(mǎn)足對(duì)測(cè)量系統(tǒng)的誤差要求。實(shí)現(xiàn)了測(cè)量的自動(dòng)化,具有一定的應(yīng)用和推廣價(jià)值。
[1] 屈晶晶,辛云宏.連續(xù)幀間差分與背景差分相融合的運(yùn)動(dòng)目標(biāo)檢測(cè)方法[J].光子學(xué)報(bào),2014,43(7):(0710002-1)-(0710002-8).
[2] 余金棟,張憲民.用于線(xiàn)紋顯微圖像的邊緣檢測(cè)算法[J].光學(xué)精密工程,2015,23(1):271-281.
[3] 師文,朱學(xué)芳,朱光.基于形態(tài)學(xué)的MRI圖像自適應(yīng)邊緣檢測(cè)算法[J].儀器儀表學(xué)報(bào),2013,34(2):408-414.
[4] 鄒樂(lè)強(qiáng).最小二乘法原理及其簡(jiǎn)單應(yīng)用.科技信息[J].2010(23):282-283.
[5] 李英碩,楊帆,袁兆奎.空間圓形擬合檢測(cè)新方法[J].測(cè)繪科學(xué),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 -),女,山西臨汾人,講師,工程碩士,研究方向?yàn)橹悄芸刂萍捌鋺?yīng)用。