周 曉,謝明棚
(武漢理工大學(xué) 機電工程學(xué)院,湖北 武漢 430070)
小型油泵葉片具有精密微小的小薄片結(jié)構(gòu),廣泛應(yīng)用于各類油泵設(shè)備中,其尺寸是否合格會直接影響到油泵的整機性能。在生產(chǎn)現(xiàn)場中,對該葉片的檢測一般是人工用高精度卡尺,判斷其尺寸是否合格,但由于人工檢測易受工作環(huán)境、情緒、檢測方法等多種因素的影響,不能保證檢測質(zhì)量的一致性。近年來,隨著計算機視覺檢測技術(shù)以及圖像處理算法的不斷發(fā)展和成熟,基于計算機檢測技術(shù)的非接觸式測量逐漸替代了傳統(tǒng)的接觸式測量,有效提高了檢測精度以及檢測效率,減少了人工檢測帶來的誤差。
對于工件二維尺寸測量,尚小燕等[1]通過對軸類零件的邊緣點進行最小二乘擬合,計算零件的尺寸。為了在不提高硬件成本的情況下,提高測量精度,亞像素邊緣檢測被廣泛應(yīng)用。目前常用的方法主要包括:基于小波變換的亞像素邊緣檢測、基于插值的亞像素邊緣檢測、基于擬合的亞像素邊緣檢測以及基于矩的亞像素邊緣檢測技術(shù)。俞甫等[2]先校正相機的畸變,獲取相機內(nèi)參,然后利用基于Zernike矩的亞像素邊緣檢測算法獲取邊緣,計算小型連接件的尺寸。任永強[3]則提出了一種基于RANSAC(random sample consensus)擬合缸套亞像素輪廓的內(nèi)外徑尺寸測量方法。但是傳統(tǒng)的最小二乘擬合和全局相機標(biāo)定無法滿足本文中的葉片尺寸檢測精度要求。
針對傳統(tǒng)相機標(biāo)定和最小二乘擬合工件邊緣的不足,筆者采用對相機視野進行分區(qū)域標(biāo)定校正畸變,使用基于Sigmoid函數(shù)擬合的亞像素邊緣檢測算法提高邊緣檢測精度;使用基于距離的最小二乘方法剔除異常邊緣點,提高直線擬合精度,實現(xiàn)了油泵葉片的高精度、非接觸測量。
本系統(tǒng)需要測量的葉片尺寸為24.940 mm×11.960 mm,其測量原理如圖1所示。
圖1 測量系統(tǒng)工作原理
該測量系統(tǒng)中,由光源和照明方式組成的照明系統(tǒng)是獲取高質(zhì)量圖像的關(guān)鍵,需要盡量突出被測工件的邊緣輪廓,故選擇使用平行光源。由于油泵葉片不透光,采用背向照明方式,利用從被測工件背面射過來的均勻平行光,采集邊緣輪廓對比度高的工件圖像,方便后續(xù)的邊緣提取。為減少獲取圖像的畸變,采用物方遠(yuǎn)心和像方遠(yuǎn)心的雙遠(yuǎn)心鏡頭,其型號為ESCM05-110D111-S2,放大倍數(shù)為0.5x。同時為提高圖像分辨率,采用高分辨率的CMOS(complementary metal oxide semiconductor)相機,其型號為??礛V-CH120-10UMUC相機,分辨率為4 096×3 000,像元尺寸為3.45 μm,成像芯片大小為14.08 mm×10.56 mm。該相機搭配鏡頭,可見視野尺寸為27.5 mm×20.2 mm,滿足測量葉片視野要求。通過圖像采集系統(tǒng)得到的圖像,在計算機中進行算法處理:首先對成像系統(tǒng)進行標(biāo)定,獲取CCD(charge compled device)各像素校正畸變后的實際坐標(biāo),然后采用Canny算子檢測葉片的邊緣,最后采用基于Sigmoid函數(shù)擬合邊緣模型,得到葉片邊緣的亞像素坐標(biāo)位置,計算尺寸。
目前傳統(tǒng)的標(biāo)定方法可分為3種類型:線性標(biāo)定方法、非線性優(yōu)化標(biāo)定方法以及兩步標(biāo)定法[4]。線性標(biāo)定方法忽略攝像機鏡頭的非線性畸變并且把透視變換矩陣中的元素作為未知數(shù)來求解攝像機的參數(shù),運算速度快,但是該方法的標(biāo)定精度不高;非線性優(yōu)化標(biāo)定方法包括擬線性化方法和完全非線性方法,考慮成像過程中的各種因素,標(biāo)定精度高,但模型比較復(fù)雜,無法實時取得標(biāo)定結(jié)果;兩步標(biāo)定法則是先利用線性標(biāo)定方法得到相機內(nèi)參,再以該參數(shù)作為初始值考慮畸變,優(yōu)化標(biāo)定結(jié)果,具有較高的標(biāo)定精度。以上方法都是對相機的畸變進行全局參數(shù)標(biāo)定,在進行高精度的尺寸測量中,無法將單個亞像素點準(zhǔn)確對應(yīng)到真實物理坐標(biāo)中。因此,本系統(tǒng)采用分區(qū)域標(biāo)定相機,并將標(biāo)定板中的每個角點對應(yīng)到實際物理坐標(biāo)中,以此進行畸變校正。
為解決標(biāo)定結(jié)果無法實時獲取的問題,采用先標(biāo)定,并將其標(biāo)定結(jié)果寫入文件,形成索引的形式,在檢測過程中直接鏈接坐標(biāo)索引,以此提高測量速度。標(biāo)定過程中,高精度標(biāo)定板[5]外形尺寸為100 mm×100 mm×3 mm。由于標(biāo)定特征尺寸很小,為避免光照不均而導(dǎo)致標(biāo)定特征不明顯,設(shè)計的標(biāo)定板形狀如圖2所示。中間為棋盤格分布,棋盤格每個格子的尺寸為10 μm×10 μm,圖形尺寸為100 μm×100 μm,整體精度尺寸為±0.5 μm。檢測的角點為標(biāo)定板圖案的黑色邊緣交點位置,即標(biāo)定特征為十字網(wǎng)格的橫線和豎線,線與線之間距離為100 μm,每條線的寬度為10 μm。
圖2 標(biāo)定板
為減少誤差累積,將標(biāo)定板分為16個不同區(qū)域分別進行校正。標(biāo)定板單個區(qū)域如圖3所示。
標(biāo)定過程中,以各區(qū)域中的左上角交點為每個區(qū)域的坐標(biāo)原點,依次完成各區(qū)域的標(biāo)定。其原理為:認(rèn)為標(biāo)定板是理想無誤差的,根據(jù)標(biāo)定板上角點位置坐標(biāo)及其在像素坐標(biāo)系中的坐標(biāo),確定其對應(yīng)關(guān)系[6]。
進行相機標(biāo)定前,需要對各區(qū)域建立像素尺寸對應(yīng)的實際尺寸之間的關(guān)系。設(shè)CMOS像元尺寸為p,鏡頭放大倍數(shù)為β,每個像元尺寸對應(yīng)的幾何尺寸為l,每兩個標(biāo)定板坐標(biāo)交點距離的幾何尺寸為d,則每兩個坐標(biāo)交點之間的像素數(shù)m可表示為:
m=(l×β)/p
(1)
本系統(tǒng)采用雙遠(yuǎn)心鏡頭,其放大倍數(shù)為0.5x。在理想情況下,采用的??迪鄼C像元尺寸為3.45 μm×3.45 μm,每個坐標(biāo)交點距離的幾何尺寸為d=100 μm,可得m≈14.493。但由于相機存在畸變,無法采集理想情況下的值,各區(qū)域需要根據(jù)各角點的像素坐標(biāo)位置和實際物理坐標(biāo)位置確定該區(qū)域的標(biāo)定尺寸。
單個區(qū)域中標(biāo)定算法的步驟如下:
(1)分別利用水平和豎直方向的Sobel算子提取圖像區(qū)域中的水平線和豎直線。
(2)分別對提取到的水平線和豎直線投影,統(tǒng)計各處直線投影的像素點坐標(biāo)和頻率,計算各自方向上各條線段之間相隔的平均像素個數(shù),進行尺寸標(biāo)定。
(3)對提取到的水平線以及豎直線做圖像乘法操作,得到圖像中兩線的交點,作為有畸變的角點特征。
(4)根據(jù)標(biāo)定板圖形每條線間隔實際物理距離以及步驟(2)中的標(biāo)定尺寸,確定理想情況下的角點真實位置。
(5)以步驟(3)和步驟(4)中得到的角點位置為參考點,確定一個100 μm×100 μm區(qū)域中的映射關(guān)系,利用三次多項式擬合可得:
x′=a0+a1x+a2y+a3xy+a4x2+
a5y2+a6x2y+a7xy2+a8x3+a9y3
y′=b0+b1x+b2y+b3xy+b4x2+
b5y2+b6x2y+b7xy2+b8x3+b9y3
(2)
式中:(x,y)為畸變像素坐標(biāo);(x′,y′)為真實位置;a0~a9為x方向擬合多項式參數(shù);b0~b9為y方向擬合多項式參數(shù)。
計算該區(qū)域中映射關(guān)系,認(rèn)為位于該區(qū)域中的像素點或亞像素點的畸變參數(shù)一致。標(biāo)定過程如圖4所示。
圖4 標(biāo)定過程
依次對分割得到的16個區(qū)域進行如上標(biāo)定過程,得到各100 μm×100 μm區(qū)域中的畸變參數(shù),將其寫入索引文件中,后續(xù)可根據(jù)式(1)及索引文件計算得到真實像素坐標(biāo)。
為消除獲取的圖像中的無關(guān)信息以及噪聲,保留圖像中所需要的特征信息,提高后續(xù)圖像處理的效率,需對圖像進行預(yù)處理和圖像分割[7]。首先通過最小外接矩形獲取葉片邊緣點的邊界,并采用Canny算子提取葉片像素級邊緣輪廓點,通過邊界排除由于毛刺-油污等帶來的異常邊緣點以及確定邊界起始點,其次根據(jù)基于Sigmoid函數(shù)的亞像素邊緣提取算法計算葉片邊緣亞像素點位置,最后擬合邊緣,計算葉片尺寸。葉片尺寸測量的流程如圖5所示。
圖5 葉片邊緣檢測流程圖
由于葉片的加工工藝導(dǎo)致的毛刺和油污等噪聲,在提取葉片邊緣的過程中存在偽邊緣。同時葉片四周為圓角過渡,為確定葉片輪廓的4條邊的起始位置和終止位置,通過葉片圖像的最小外接矩形進行處理。
在求取最小外接矩形前,由于葉片的微小缺陷以及圖像采集過程中的各環(huán)節(jié)噪聲的加入,會影響葉片最小外接矩形的面積大小,需要對其進行濾波和平滑處理,減少噪聲干擾。對于獲得的葉片圖像,其噪聲近似于高斯噪聲,采用3×3的高斯濾波核進行濾波。
二值化葉片圖像可以凸顯葉片邊緣特征,其核心就是確定一個閾值,將高于該閾值的像素灰度值置于255,而其它情況的像素灰度值置于0。本系統(tǒng)中,測量條件保持不變,光照均勻,通過統(tǒng)直方圖統(tǒng)計各灰度值,得到最佳閾值,其值為30。
為進一步減少無用的圖像片段,消除一些孤立的異常點,對二值化之后的圖像先腐蝕后膨脹,由于葉片邊緣清晰,輪廓整齊,使用5×5的值全為1的核進行操作。最后得到葉片的邊緣位置。圖像預(yù)處理結(jié)果如圖6所示。
圖6 圖像預(yù)處理局部結(jié)果
根據(jù)預(yù)處理之后的二值圖像,查找葉片的最小外接矩形[8],確定葉片輪廓的邊緣查找時的邊界。具體步驟為:
(1)根據(jù)Xc=(∑xi)/n,Yc=(∑yi)/m,計算葉片中心,其中(xi,yi)為葉片成像的像素坐標(biāo),n,m為葉片像素在兩個方向上的個數(shù)。同時記錄葉片的左上角和右下角兩點坐標(biāo),用于求取矩形邊界。
(2)將水平主軸每次以一定角度α旋轉(zhuǎn)并求出該角度下的外接矩形,計算該矩形面積。取面積最小的矩形即為該葉片圖像的最小外接矩形。
筆者使用Canny邊緣檢測算子[9]對葉片進行邊緣檢測得到其像素級位置坐標(biāo),其具體步驟為:
(1)查找葉片的最小外接矩形,記錄最小外接矩形的4個頂點,計算該外接矩形對應(yīng)4條邊的直線表達式;
(2)利用Canny邊緣檢測算子獲取葉片邊緣,保存邊緣點;
(3)依次從最小外接矩形的頂點開始,尋找步驟(2)中的邊緣點,若邊緣點超出最小外接矩形邊界或者距離過遠(yuǎn),則將該邊緣點刪除;若矩形邊界周圍一定像素范圍內(nèi)沒有邊緣點,則認(rèn)為此處無邊緣點。
(4)將查找到的葉片邊緣點分別保存到4個向量序列中。
在得到了葉片粗邊緣后,利用基于Sigmoid函數(shù)擬合的亞像素邊緣檢測算法[10]提取圖像的邊緣亞像素點,該算法認(rèn)為圖像的邊緣可以用Sigmoid曲線擬合,其邊緣模型為:
(3)
式中:a為邊緣的最大和最小灰度值的差值;b為相距最遠(yuǎn)的兩擬合點之間的坐標(biāo)差值;c為邊緣的傾斜程度,一般取0.5;d為邊緣的最小灰度值。
亞像素點的位置是對式(3)求導(dǎo)取導(dǎo)數(shù)為0時,即邊緣斜率變化最快的地方,為f(x)=d+a/2。為求取合適的Sigmoid函數(shù)參數(shù),定義誤差函數(shù)為:
(4)
式中:f(i)為根據(jù)擬合函數(shù)得到的估計灰度值;yi為圖像中的灰度值;σi為第i個點上的標(biāo)準(zhǔn)差。
使式(4)最小,即可得到了亞像素點的位置。
根據(jù)圖像邊緣特點,計算亞像素算法流程為:
(1)逐個取像素級坐標(biāo),計算左右各10個像素點的灰度值,計算這21個像素點的最大灰度值與最小灰度值的差,作為a的初值代入,像素級坐標(biāo)的橫坐標(biāo)代入b,c以0.5代入,d以最小灰度值代入。
(2)將該像素級坐標(biāo)左右的各10個像素點的灰度值進行濾波,使其符合Sigmoid函數(shù)曲線;
(3)利用Levenberg-Marquardt梯度下降法[11]求解誤差函數(shù)使其最小,得到參數(shù)(a,b,c,d),根據(jù)f(x)=d+a/2,求得亞像素點位置為x=b;
(4)對得到的亞像素點進行處理,利用最小二乘法將亞像素點擬合,排除異常的亞像素點。
(5)根據(jù)式(1)以及校正索引文件,計算得到亞像素點畸變校正后的真實物理坐標(biāo)。
為了計算葉片的輪廓尺寸,在采集到的圖像中獲得了邊緣點的坐標(biāo),通過相機標(biāo)定將像素坐標(biāo)轉(zhuǎn)換為真實物理坐標(biāo)。由于葉片的輪廓特征為直線類特征,采用最小二乘原理[12],將葉片的實際輪廓進行擬合,得到一條理想的直線輪廓,通過計算另一輪廓邊緣上的亞像素點到該直線的距離,即可得到工件尺寸。
一組亞像素邊緣點的坐標(biāo)為(xi,yi)(i=1,2,…,n),擬合的直線可表示為:
y=kx+b
(5)
式中:k為該直線的斜率;b為該直線的截距。擬合直線的目標(biāo)為輸入點到擬合直線的距離和最小化,即:
(6)
當(dāng)式(5)對k和b求一階偏導(dǎo)且為0時,函數(shù)值最小,可求得k和b。
(7)
將擬合直線轉(zhuǎn)為直線的一般式:Ax+By+C=0,其中當(dāng)k=-A/B,b=-C/B所求尺寸的兩擬合直線垂直于x坐標(biāo)軸時,直接進行坐標(biāo)之間相減。否則,分別計算另一直線上點到該直線距離d。
(8)
計算時,按以下步驟進行:
(1)利用式(7)對直線進行擬合,得到初始擬合直線;
(2)對初始擬合的直線計算各點到該直線的距離平均值,根據(jù)平均值設(shè)定一個閾值T,如果點到直線的距離小于T,則保留該點;如果該點到直線的距離大于T,則將該點剔除。
(3)對得到的點運用最小二乘法擬合直線方程。
(4)根據(jù)式(8)取一擬合直線上一點計算該點到另一直線的距離,即為最終計算的尺寸。
為了驗證本文提出的測量方法的有效性,搭建了如圖7所示的測量系統(tǒng)。
圖7 測量系統(tǒng)
利用該系統(tǒng)對油泵葉片進行測量試驗,采用重復(fù)性精度和絕對偏差測試,由于相機的各處畸變有所區(qū)別,對同一個葉片在不同位置進行多次圖像采集,分別得到葉片的長和寬尺寸。筆者對5個葉片分別采集7個位置圖像進行尺寸測量,其真實尺寸由精度為0.5 μm的比較儀測得,結(jié)果如表1所示。
表1 葉片尺寸測量結(jié)果 μm
測量結(jié)果表明,葉片測量結(jié)果滿足±2 μm的測量重復(fù)精度和±15 μm的絕對精度的要求。
(1)硬件誤差。在采集圖像過程中,由于光學(xué)元件和感光芯片的影響,使采集到的圖像存在噪聲,在圖像處理過程中不能完全消除。
(2)軟件誤差。在進行相機畸變校正時,無法做到微米級的點對點校正,認(rèn)為一小塊區(qū)域中的畸變參數(shù)相同而導(dǎo)致亞像素坐標(biāo)對應(yīng)到物理坐標(biāo)時有所偏差;同時擬合直線以及計算時都是取平均,帶來一定的誤差。
(3)對焦誤差。由于鏡頭景深很小,放置葉片和標(biāo)定板時,無法做到處處對焦完全一致,從而對校正和邊緣點的提取帶來一定誤差。
設(shè)計了一套針對小型油泵葉片尺寸的視覺測量系統(tǒng),針對高精度要求,采用了分區(qū)域標(biāo)定校正相機畸變算法以及利用基于Sigmoid函數(shù)的亞像素邊緣擬合算法。最后利用最小二乘法建立油泵葉片的邊緣,計算尺寸。試驗表明,所提出的葉片視覺測量系統(tǒng)具有較高的測量精度,其精度為±15 μm。在小型工件的尺寸測量領(lǐng)域具有較好的應(yīng)用前景。