彭晶鑫, 石秀東, 姚晨明, 孫 攀
(1.江南大學(xué) 機(jī)械工程學(xué)院, 江蘇 無錫 214122;2.江南大學(xué) 江蘇省食品先進(jìn)制造裝備技術(shù)重點(diǎn)實(shí)驗(yàn)室, 江蘇 無錫 214122)
隨著“中國制造2025”發(fā)展戰(zhàn)略的深入推進(jìn),工件尺寸特征測量技術(shù)也在飛速發(fā)展,工業(yè)上對(duì)于新的測量技術(shù)有更高的要求,需要滿足自動(dòng)化,高精度,高效率的特點(diǎn)[1]。測量精度與相機(jī)的分辨率、光學(xué)成像系統(tǒng)以及圖像處理算法密切相關(guān),在技術(shù)方面如何提升尺寸測量的精度是現(xiàn)代制造業(yè)重要的研究方向[2]。相機(jī)分辨率的盲目提高勢必會(huì)帶來成本的增加,如何在硬件條件一定的情況下提升測量精度,就需要在圖像處理算法上做出改進(jìn)。
在尺寸測量系統(tǒng)中,測量精度與邊緣檢測的精度有很大關(guān)系。目前,邊緣檢測中比較經(jīng)典的算子包括Canny,Roberts,Sobel,Prewitt和Gauss-Laplace算子等[3]。但是,這些算子的檢測精度在像素級(jí)。隨著工業(yè)生產(chǎn)中對(duì)產(chǎn)品精度要求的不斷提高,像素級(jí)的檢測精度已經(jīng)不能滿足實(shí)際的生產(chǎn)需求。此時(shí)亞像素級(jí)別的檢測算子引起越來越多的關(guān)注[4]。將邊緣領(lǐng)域的像素分解達(dá)到細(xì)化邊緣,準(zhǔn)確定位的方法被稱為亞像素級(jí)邊緣檢測算法。比較常見的亞像素檢測方法包括擬合法、插值法和空間矩等[5~9]。其中Zernike矩[10]作為經(jīng)典的正交矩,具有對(duì)圖像旋轉(zhuǎn)以及尺寸變化穩(wěn)定不變的特性,使得定位精度較高,在實(shí)際生產(chǎn)過程中應(yīng)用較為廣泛。課題組設(shè)計(jì)了一種基于Zernike距亞像素級(jí)別邊緣點(diǎn)擬合圓心測量零件圓心距尺寸的在線檢測方法。
該測量系統(tǒng)主要由4個(gè)部分組成:圖像采集、圖像算法處理、尺寸測量和結(jié)果輸出。其工作流程如圖1所示。
圖1 測量系統(tǒng)工作流程圖Figure 1 Measuring system flow chart
測量系統(tǒng)的硬件主要包括LED光源、工業(yè)相機(jī)、鏡頭、計(jì)算機(jī)和試驗(yàn)工作臺(tái)。光源選擇的原則就是突出目標(biāo)輪廓與背景分離,綜合考慮選擇LED背向平行光源;工業(yè)相機(jī)用來采集圖像,并通過千兆網(wǎng)口傳輸?shù)接?jì)算機(jī)內(nèi)存中,本系統(tǒng)采用??低暤腗V-CA060-10GC型CMOS面陣相機(jī),分辨率為3 072×2 018像素。鏡頭選擇??低昅VL-HF0828M-6MP,具有高分辨率、畫面清晰度均勻性高及超低畸變等優(yōu)點(diǎn)。實(shí)驗(yàn)處理器為Intel i5-8300CPU@2.3GHz,內(nèi)存8.00 GiB;QT平臺(tái)基于OpenCV機(jī)器視覺庫與C++結(jié)合完成測量系統(tǒng)界面開發(fā)。
測量系統(tǒng)流程如圖2所示。
圖2 測量系統(tǒng)算法流程Figure 2 Measuring system algorithm flow
圖像處理算法決定了測量系統(tǒng)的準(zhǔn)確性,該測量系統(tǒng)主要由圖像預(yù)處理、圖像分析和系統(tǒng)標(biāo)定等步驟組成。課題組以雙圓孔型零件為研究對(duì)象,為了達(dá)到準(zhǔn)確測量零件圓心距的項(xiàng)目需求,設(shè)計(jì)了相關(guān)圖像處理算法。
圖像預(yù)處理是圖像處理中比較重要的步驟。既能對(duì)圖像的視覺效果有所改善,又能減少后續(xù)處理的數(shù)據(jù)內(nèi)容,便于提高測量系統(tǒng)的效率及精度[11]。
3.1.1 濾波處理
平滑濾波以解決圖像中的噪聲是圖像處理領(lǐng)域中常見階段,傳統(tǒng)的濾波算法(例如高斯濾波、中值濾波、均值濾波等)可以合理地消除噪聲,但是存在邊緣模糊的問題,不利于邊緣輪廓的準(zhǔn)確定位。課題組使用了各向異性擴(kuò)散濾波算法,基本原理是將圖像中的灰度值視為化學(xué)物質(zhì)的質(zhì)量分?jǐn)?shù)值,物質(zhì)之間的外部擴(kuò)散等同于平滑濾波,根據(jù)合適的熱擴(kuò)散系數(shù),可以提高區(qū)域內(nèi)的平滑度并減小區(qū)域之間的平滑度差異的實(shí)際效果,從而有效處理噪聲,保留邊緣細(xì)節(jié)。圖3為擴(kuò)散濾波處理后的二維效果圖,圖4為擴(kuò)散濾波處理后的三維效果圖。在經(jīng)過一系列參數(shù)設(shè)置試驗(yàn)后,發(fā)現(xiàn)當(dāng)?shù)螖?shù)λ=10,使用參數(shù)t=0.1時(shí),既能很好地去除噪聲,又沒有對(duì)邊緣造成破壞,達(dá)到了理想中去噪保邊的效果。
圖3 擴(kuò)散濾波處理二維效果圖Figure 3 2D effect diagram of diffusion filtering processing
圖4 擴(kuò)散濾波處理三維效果圖Figure 4 3D effect diagram of diffusion filtering processing
3.1.2 圖像閾值分割
在圖像處理中將待測工件與背景分割,避免對(duì)非“興趣”區(qū)域進(jìn)行運(yùn)算,提高圖像處理算法的效率。在圖像分割的過程中,閾值的選擇對(duì)邊緣的提取有很大程度的影響[12-14]。公式如下:
(1)
式中:f(x,y)為像素點(diǎn)(x,y)的灰度值;g(x,y)為圖像分割后的像素點(diǎn)坐標(biāo)值;T為閾值(以能完整提取“興趣”為原則,文中采用最大類間方差法求得T為101)。
式(1)表示的實(shí)際含義是圖像中像素點(diǎn)灰度值大于閾值灰度值時(shí)T設(shè)置為1,如果低于閾值灰度值時(shí),則T設(shè)置為0。為避免遺漏零件輪廓邊緣,采用閉運(yùn)算進(jìn)行形態(tài)學(xué)處理,圖像分割效果如圖5所示。
3.2.1 亞像素邊緣檢測
Zernike作為一種積分算子,應(yīng)用于亞像素檢測中定位精度較高,同時(shí)抗噪聲性能良好,在邊緣檢測中優(yōu)勢明顯。基本原理為:由于Zernike矩具有旋轉(zhuǎn)不變性,基于理想的階躍邊緣模型,根據(jù)矩的關(guān)系式結(jié)合合適的閾值處理方式,求得相關(guān)邊緣參數(shù),從而定位亞像素邊緣點(diǎn)。Zernike矩的關(guān)鍵是極坐標(biāo)內(nèi)部空間中準(zhǔn)確定位單位圓x2+y2≤1的復(fù)數(shù)函數(shù)集:
Vnm(x,y)=Vnm(ρ,θ)=Rnm(ρ)ejmθ。
(2)
式中:n為多項(xiàng)式階數(shù),m為冪指數(shù),均為整數(shù)并滿足n≥0,n≥|m|且n-|m|為偶數(shù);ρ為邊緣點(diǎn)到圓心的直線距離;θ為邊緣點(diǎn)垂線與x軸之間的夾角;j表示虛數(shù)單位。
Rnm(ρ)為實(shí)值徑向多項(xiàng)式:
(3)
邊緣點(diǎn)的n階m次Zernike矩Znm定義為:
(4)
如圖6所示,將像素看作單位圓,O為像素中心,1個(gè)像素單位為半徑。邊緣分割線f(x,y)將像素點(diǎn)圓進(jìn)行再次細(xì)化分成2部分,灰度值分別為h和h+k(k為階躍灰度值),d為像素中心到邊緣分割線的距離。圖6(b)是圖6(a)沿像素中心順時(shí)針旋轉(zhuǎn)θ后的邊緣模型。
圖6 Zernike矩邊緣模型Figure 6 Zernike moment edge model
(5)
求得4個(gè)模型參數(shù)θ,d,h和k:
(6)
在N×N的Zernike模板內(nèi),亞像素點(diǎn)的坐標(biāo)公式:
(7)
式中:(xs,ys)表示邊緣亞像素點(diǎn)坐標(biāo),(x0,y0)表示像素中心點(diǎn)坐標(biāo)。
亞像素邊緣點(diǎn)的判定條件:k≥kt且d≤dt。k為灰度差值;kt為灰度閾值;dt為距離閾值。閾值的選擇對(duì)于邊緣點(diǎn)是否能準(zhǔn)確定位至關(guān)重要。如果灰度閾值kt取值太小,則會(huì)導(dǎo)致虛假邊緣,如果灰度閾值kt過大,則會(huì)丟失邊緣。傳統(tǒng)的Zernike矩邊緣檢測優(yōu)化算法都是固定灰度閾值,效率較低,精度不高。課題組采用最大類間方差法對(duì)零件全局圖像進(jìn)行最優(yōu)灰度閾值選取,提升了測量系統(tǒng)的精度。實(shí)現(xiàn)該圖像算法代碼如下:
Zernike_Subpixel (const cv::Mat img,
cv::Rect rect,
double k_value,
Zernike_Matric zernike_matric,
Vector
Point2f rawCenter,
float rawRadius,
int ringthickness);
如圖7所示,Zernike亞像素邊緣檢測算子可以達(dá)到細(xì)化粗邊緣像素點(diǎn),從而實(shí)現(xiàn)精準(zhǔn)定位的目的。
圖7 邊緣檢測示意圖Figure 7 Schematic diagram of edge detection
3.2.2 圓擬合
課題組采用最小二乘法對(duì)零件圓輪廓的亞像素邊緣特征信息進(jìn)行圓心的擬合。根據(jù)最小均方差準(zhǔn)則,使在該平面圓的圓周上采集的離散點(diǎn)(xi,yi)與理想圓圓心(xe,ye)距離殘差平方和最小化。離散點(diǎn)到圓心的距離di表示為:
(8)
邊緣輪廓上的點(diǎn)與理想圓的誤差εi可表示為:
(9)
依據(jù)最小二乘法原理輪廓各個(gè)邊緣點(diǎn)與半徑r的誤差平方和M最小,即:
M=min(∑i∈E(εi)2)。
(10)
式中E為邊緣輪廓點(diǎn)的集合。
搭建實(shí)驗(yàn)平臺(tái),對(duì)試件進(jìn)行15次測量實(shí)驗(yàn),根據(jù)最小二乘法,獲取左右圓的圓心位置分別為(x1,y1),(x2,y2)。以圓心之間的歐式距離作為像素尺寸,則圓心距計(jì)算
(11)
利用式(11)計(jì)算出的圓心距作為像素距離,單位為像素,利用系統(tǒng)預(yù)先標(biāo)定求得的像素當(dāng)量n可以求得圓心距的物理尺寸。以三坐標(biāo)測量機(jī)圓心距測量數(shù)據(jù)為標(biāo)準(zhǔn)參考值,該測量系統(tǒng)測量值與三坐標(biāo)機(jī)測量誤差在0.01 mm以下,測量結(jié)果曲線如圖8所示。對(duì)比2種測量方法的數(shù)據(jù)曲線,表明該系統(tǒng)測量結(jié)果可靠,精度滿足實(shí)際生產(chǎn)需求。
圖8 測量結(jié)果曲線Figure 8 Graph of measurement results
在QT平臺(tái)下,利用C++語言開發(fā)了圓心距測量系統(tǒng)。采用OpenCV視覺庫完成圖像處理算法的設(shè)計(jì),結(jié)合C++語言,完成界面設(shè)計(jì),測量界面如圖9所示。該測量系統(tǒng)能夠?qū)崟r(shí)顯示試件2個(gè)內(nèi)圓的圓心距和圓心坐標(biāo)。
圖9 測量系統(tǒng)界面Figure 9 Interface of measuring system
課題組設(shè)計(jì)了基于機(jī)器視覺技術(shù)的零件圓心距在線測量系統(tǒng),該系統(tǒng)利用OpenCV視覺庫進(jìn)行算法設(shè)計(jì),實(shí)現(xiàn)對(duì)零件圓心距的非接觸式智能化測量。使用改進(jìn)的Zernike矩亞像素邊緣檢測算子檢測邊緣輪廓點(diǎn),在相機(jī)分辨率不變的情況下,提升了測量精度,同時(shí)節(jié)省了硬件配置成本,具有一定的工程實(shí)用價(jià)值。該測量系統(tǒng)下一步的任務(wù)是不斷完善其通用性,并應(yīng)用于準(zhǔn)確測量孔型零件的其它主要參數(shù)中。