王 華,何 航,邢春齊
(1.長春工業(yè)大學 機電工程學院,長春 130012;2.長春工程學院 研究生部,長春 130012)
在機械加工中,工件圓孔的中心坐標和半徑的精確提取對于零部件的裝配和定位具有非常重要的意義,傳統(tǒng)的圓孔檢測一般通過常規(guī)量具進行測量,比如游標卡尺等,使用常規(guī)量具不僅會帶來較大的綜合性誤差和較低的測量效率。而對于一些測量精度要求較高的工件,一般會使用三坐標測量儀來測量[1],但是三坐標測量儀價格昂貴,體積較大,不適合隨現(xiàn)場檢測,測量速度緩慢,靈活性較差。視覺測量技術是以計算機視覺為基礎的一種新技術,具有非接觸、測量過程靈活、速度快、精度高等優(yōu)點,在測量領域應用日益廣泛。
雙目立體視覺是建立在左右圖像中對應點的視差基礎之上[2],如何建立對應匹配點之間的聯(lián)系是立體匹配中所要解決的一個重要問題??臻g三維場景在投影的過程中,由于光照變化、鏡頭畸變、遮擋、干擾噪聲等因素的影響,空間中同一點在圖像上所反映出的特性會有所不同,尤其對于紋理信息不豐富的工件表面,其中一幅圖像中平滑區(qū)域的像素點在另一幅圖像中可能會有好幾個類似的候選匹配點,實際中的立體匹配問題可以說是雙目立體視覺最關鍵也是最困難的一步。本文提出了把線結構光與圓孔邊緣的交點作為特征點的方法,有效避免了匹配困難的問題。
由于光照角度、測量材質(zhì)、測量環(huán)境等因素的影響,采集的圖像難免會有很多噪聲,故首先采用中值濾波器對圖像進行預處理,剔除大部分椒鹽噪聲。由于Canny邊緣檢測算子有效平衡了抑制噪聲干擾和邊緣點精確定位之間的關系,故本文采用Canny邊緣算子對圓孔的邊緣進行檢測,邊緣提取的效果圖如圖1所示。
圖1 圓孔邊緣點的提取
由于攝像機的透視投影畸變,圓孔在相機圖像平面上的投影往往呈現(xiàn)為橢圓的形狀。如果空間圓所處的平面與圖像平面相交一定角度,空間圓孔中心在圖像平面上的投影點與橢圓擬合出的中心位置會有一定的偏差。
最小二乘法橢圓擬合是一種常用的橢圓擬合方法[3]。設橢圓方程的一般形式可表示為:
其均方差和為:
為了防止出現(xiàn)零解,需對參數(shù)加一些限制條件:a+c=1,根據(jù)最小極值原理,對式(2)中的參數(shù)分別求偏導,并令每個導數(shù)值為0,即:
圖2 工件圓孔邊緣的橢圓擬合
如圖3所示,針對粗糙的工件金屬表面,激光條紋發(fā)生了漫反射,背景上的激光條紋比工件上的更寬,由于我們的目的是提取工件邊緣特征點,因此我們只需將工件上的那一部分條紋中心提取出來。
圖3 帶有激光條紋的工件圖
求取激光條紋中心的具體步驟如下:
1)從圖像f(i,j)的第一行(i=1)開始,從左到右遍歷圖像像素,搜尋像素灰度值大于閾值T的點,記錄其坐標值,將該行首個滿足條件的點的列坐標設為C1。用K(i)代表條紋的寬度,初始化K(i)=0。
2)繼續(xù)向右搜索,若其灰度值仍大于T,則寬度K(i)加1,即K(i)=K(i)+1。
3)當搜索完第i行之后,判斷如果寬度K(i)小于3或大于6,則認定該點為噪聲或是打在背景上的激光條紋,故將其排除。
4)按梯形法求出激光光強曲線采樣面積:
其中,S(i)代表第i行的激光光強曲線采樣面積。C1(i)代表圖像第i行條紋區(qū)域的起點,K(i)代表圖像第i行的激光條紋區(qū)域的寬度。
5)在條紋區(qū)域找出一點(i,j),使得該點左邊條紋區(qū)域的面積SL小于S/2,即:
而該點(i,j)的鄰點(i,j+1)左邊條紋區(qū)域的面積SL+1大于S/2,即:
6)再對條紋中心(x0,y0)進行判斷,如果:
根據(jù)上述方法獲取條紋中心,還需要對條紋中心做進一步優(yōu)化[4],設條紋中心初始坐標為(x0,y0),光條的寬度為K,則激光條紋中心的精確位置為:
用灰度的平方代替灰度值可以提高光條區(qū)域中像素灰度值對光條中心計算結果的權值,同時降低了由于背景光照不均勻或則光條不連續(xù)而造成的不利影響。通過以上方法提取出的條紋中心如圖4所示。
圖4 條紋提取的結果
條紋中心提取之后,采用最小二乘法對條紋中心進行直線擬合,得到直線方程,擬合的效果如圖5所示。
圖5 條紋中心的直線擬合放大圖
聯(lián)立條紋直線方程和橢圓方程,便可得到圓孔邊緣特征點,然后根據(jù)兩相機的內(nèi)外參,把特征點的像素坐標轉(zhuǎn)變成空間三維坐標,由于圓孔邊緣特征點都處在同一平面上,首先對這些邊緣點進行平面擬合[5,6]。設空間任一平面方程可以表示為:
將n個邊緣點的空間三維坐標代入式(5)中,可得:
式中:
圖6 空間圓結構圖
上式可簡化為:
式中:
n個空間圓上的點可獲得n-1個如式(7)的方程組,再根據(jù)最小二乘法可得誤差方程:
式(8)可簡化為V=B.X=L,權陣P為單位矩陣,并為式(8)添加一個約束條件:圓心必在擬合出的空間平面上,即C.X-W=0,然后由附有條件的間接平差進行計算,推導出的法方程為:
式中,KS為約束條件的聯(lián)系數(shù)向量。
求出最小二乘解為:
由此便可求得空間圓的圓心坐標,然后將各邊緣點到圓心的距離的平均值作為空間圓的半徑:
本文采用兩臺松下anpvc1210的工業(yè)相機和一個激光器來完成對圖像的采集,相機的分辨率為1200×1600像素,鏡頭采用8mm焦距的日本Computar鏡頭,其中工件保持不動,通過激光器移動向工件上兩個圓孔打出多條線結構光。
采用Halcon軟件中的標定工具箱對兩臺相機進行標定,標定結果如表1所示,標定誤差為0.13779個像素。
表1 相機標定參數(shù)
兩相機之間的轉(zhuǎn)換矩陣為:
提取每一條激光條紋中心,并擬合為直線方程,然后聯(lián)立橢圓方程(1),求出兩個圓孔邊緣點的像素坐標,根據(jù)標定出的兩相機內(nèi)外參,求出邊緣點的空間三維坐標,這些邊緣點的空間分布如圖7所示。
圖7 空間圓邊緣點的分布
根據(jù)空間圓的幾何特性,對這些邊緣點進行空間圓的擬合,通過式(10)求出的圓心坐標為:
求出各邊緣點到圓心的距離,圖8分別為大圓孔和小圓孔各邊緣點到圓心的距離。
圖8 大圓孔各邊緣點到圓心的距離
圖9 小圓孔各邊緣點到圓心的距離
取這些距離的平均值作為空間圓的半徑,然后將測量值與三坐標測量儀測出的數(shù)據(jù)進行比較,由于三坐標測量儀的空間探測誤差,故可用三坐標測量儀測出的值驗證該方法的測量精度。
通過表2可以看出,圓心距的誤差比兩個圓孔的半徑的誤差要小,這是由于光照環(huán)境的影響,圓孔邊緣周圍往往會留下陰影,進而會影響到圓孔邊緣點的精確定位,提取出的特征點難以保證恰好處于圓孔邊緣上,故該方法對于圓孔中心的定位精度會更高。
表2 誤差分析
在雙目立體視覺測量中,針對紋理信息不明顯的圓孔邊緣,特征點難以搜尋,或則是出現(xiàn)很多誤匹配的問題,本文提出了把線結構光與工件邊緣的交點作為特征點的方法,充分利用空間圓的幾何特性擬合出圓孔的中心坐標和半徑值,通過驗證證明,該方法方便可行,靈活性高,對于圓孔中心的定位精度較高,該方法對于圓孔幾何參數(shù)的測量具有借鑒意義。
[1] 周富強,張廣軍,江潔,等.空間圓幾何參數(shù)的非接觸高精度測量方法[J].儀器儀表學報,2004,25(5):604-607.
[2] 張廣軍.機器視覺[M].北京:科學出版社,2005.
[3] 閆蓓,王斌,李媛,等.基于最小二乘法的橢圓擬合改進算法[J].北京航空航天大學學報,2008,34(3):295-298.
[4] 趙博華,王伯雄,張金,等.粗糙金屬表面光條中心提取方法[J].光學精密工程,2011,19(9):2138-2145.
[5] 張瑞峰,李士亮.基于線結構光的空間圓高精度測量算法[J].電子測量技術,2011,34(10):76-79,90.
[6] 李英碩,楊帆,袁兆奎,等.空間圓形擬合檢測新方法[J].測繪科學,2013,38(6):147-148.