胡 增,高興宇,李偉明,尹炳強,于澤華
(桂林電子科技大學廣西制造系統(tǒng)與先進制造技術重點實驗室,桂林 541004)
線結構光傳感器具有非接觸、速度快、精度高的優(yōu)點[1-3],被廣泛應用于三維測量和質量檢測等方面。光平面標定是結合標定靶物的幾何約束和攝像機透視原理,獲取線結構光模型中光平面方程參數(shù)的過程[4],參數(shù)標定結果直接影響三維坐標計算精度。早期的光平面標定方法大多借助精密的輔助設備,如Dewar的拉絲法[5],徐光佑等[6]提出的基于交比不變性的三維靶標法,段發(fā)階等[7]提出的鋸齒靶標法等。徐與段的方法要求光平面垂直投射于標定塊,人工調整困難,并不適合工程化應用。
線結構光的標定靶標可分為一維靶標、平面靶標和立體靶標。周富強等[8]采用一維射影變換的方法獲取一維靶標上特征點的三維坐標,尤其適用于大尺寸結構光測量的標定,但是基于一維靶標的標定方法一次只能得到光平面中一個特征點,效率較低。LIU等[9]利用球形靶標成像后輪廓形狀不受靶標位置影響的性質,采用空間球與橢圓錐面相交得到光平面方程。WANG等[1]利用線結構光與圓柱體交線沿軸線投影是標準圓的性質標定傳感器參數(shù)。LIU和WANG采用的立體靶標標定方法采集一組靶標圖像即可完成標定,不需要多次調整靶標的位姿,人工調整的工作量少,但是標定原理和圖像處理方法相比一維靶標和平面靶標更復雜。
周富強等[10]提出了一種自由移動平面靶標的光平面標定方法,采用交比不變性原理提取不同位姿下棋盤格圖像中特征點的局部坐標,然后利用攝像機的外參將特征點統(tǒng)一到世界坐標系并擬合光平面方程。自由移動平面靶標法已成為最主流的標定方式之一,不同方法之間的區(qū)別在于求解光平面中特征點或線的原理不同。韓建棟等[11]采用共線三點透視原理求解特征點三維坐標;魏一等[12]利用特征點圖像坐標與相機光心確定的射線,然后與靶標平面相交計算特征點三維坐標;于龍龍等[13]利用攝像機外參通過坐標變換得到標定板不同位姿下與光平面交線的直線方程。PAN等[14]建立光平面坐標系到圖像坐標系的單應性矩陣標定傳感器參數(shù),但要求靶標移動方向與光平面平行,調整較困難。WEI等[15]提出基于消隱原理的光平面標定方法,利用消隱點、消隱線與直線方向向量、平面法向量的關系,分兩步標定得到光平面方程的參數(shù)。由于平行光條消隱點相同,該方法并不適用于平面靶標作一組平移運動的情形,為此陳天飛等[16]通過控制靶標作兩組平移運動標定光平面法向。
基于消隱原理的標定方法不需要利用相機外參,避免了單應性矩陣分解的誤差,具有較好的精度和魯棒性。當前線結構光傳感器與直線移動機構相結合的場景相當普遍,為解決傳統(tǒng)基于消隱原理的標定方法不適用于標定板作一組平移運動的問題,進一步降低人工調整的工作量,提出一種基于平面靶標作一組平移運動的光平面標定方法。結果表明,本方法與幾種傳統(tǒng)的標定方法相比具有更高的標定精度。
線結構光傳感器的標定包含相機標定和光平面標定兩部分,本文采用張正友標定法[17]標定相機的內參矩陣和畸變系數(shù),記內參矩陣為K。
(1)
式中,fx、fy分別為X、Y軸方向的尺度因子;γ是傾斜因子;(u0,v0)為主點坐標。由相機的小孔成像模型可得:
s·[u,v,1]T=K·[x,y,z]T
(2)
式中,s為尺度因子;u、v為三維空間中某特征點在圖像中去畸變后的像素坐標;x、y、z為該特征點在相機坐標系下的三維坐標。線激光器投射出的平面光束在相機坐標系下可描述為:
ax+by+cz+d=0
(3)
式中,(a,b,c)為光平面的法向量。在已知相機內參和光平面方程的條件下,可由光平面上特征點的像素坐標唯一確定該特征點在相機坐標系下的三維坐標值。
基于消隱原理的光平面標定方法一般分為兩步,第一步利用消隱的原理標定光平面的法向量,第二步利用光平面中已知三維坐標的特征點或幾何約束求解參數(shù)d。在射影變換下,空間平行直線在圖像中不再具有平行性,而是交于一點,該點稱之為消隱點[3],且直線的方向向量與消隱點存在以下關系[15]:
D=K-1V
(4)
圖1 消隱點最大似然估計
(5)
平面靶標與光束平面的交線為一空間直線,如圖2所示,激光條紋直線L1、L2同屬于光束平面,且L1、L2分別屬于經過平移后的標定板平面B1、B2。顯然B1、B2相互平行,因此L1、L2不可能相交,由空間幾何的結論可得L1、L2相互平行。同理可證明標定板平移運動下形成的一系列激光條紋構成了光平面中的一組平行直線段,記該直線段集合為SL。
圖2 平面靶標平移運動模型
除線段集SL外,光平面中還可以構造出其他的平行線段集合。記Lij為第i次平移后的標定板上第j條沿標定板X軸方向的網(wǎng)格線,Lij與Lmn組成的平面記為LijLmn,光條直線Li與Lij的交點記為Pij。從圖2可知,平面L11L21平行于平面L12L22,直線P11P21、P12P22同屬于光平面,因此P11P21平行于P12P22,同理可證明P11P21、P12P22、P13P23、P14P24、P15P25、P16P26是光平面中一組平行直線段,記該線段集合為Sx。不同于集合SL,集合Sx中任一線段的像并不能從單張圖像中直接提取得到。如線段P11P21在圖像中的像,至少需要從兩張平移運動的標定板圖像中提取出兩個交點的像素坐標才能確定。在標定板多次平移的情況下,線段的像可由一系列交點像素坐標擬合得到。通過平行線段集Sx的圖像可確定光平面的一個消隱點,求解方法如下:
(1)記標定板平移運動下采集的投射有光條的標定板圖像為ML,無光條的標定板圖像記為MB,ML、MB中圖像數(shù)目均為n,ML中的第i張光條圖像記為MLi,同一位姿下的標定板圖像記為MBi;
(2)從i=0開始,提取MLi的光條中心并擬合光條Li的直線方程。提取標定板圖像MBi的角點坐標,擬合標定板局部坐標系X軸方向的直線方程,并求解該組直線與Li的交點坐標,依次存入二維數(shù)組AP的第i行,直到i=n。
(3)分別對二維數(shù)組AP每一列的像素點坐標擬合直線方程,計算該組直線被標定板首末位置截取的線段,如P11Pn1、P12Pn2等,按照最大似然法求該組線段的交點,該交點即為光平面中平行線段集Sx的消隱點。
由消隱的原理可得,只要得到光平面上兩組平行直線的消隱點,即可確定光平面法向。因此,控制標定板或傳感器作一組平移運動足以標定光平面法向。綜上所述,本文光平面法向標定的流程如下:
(1)借助平移機構控制標定板作一組平移運動,采集投射有光條的標定板圖像和同一位姿下不投射光條的標定板圖像,分別為ML、MB;
(2)對ML組圖像提取光條中心并擬合直線方程,求解平行光條線段的消隱點;
(3)求解平行線段集Sx的消隱點;
(4)利用式(4)求解兩消隱點對應的方向向量,兩方向向量的叉積即為光平面法向。
圖3為標定板在初始位置的俯視圖,L1為結構光條紋,標定板沿Y軸方向的網(wǎng)格線記為LY1i,其中i=1,2,…,dL為結構光條紋被標定板沿X軸方向網(wǎng)格線截取的線段長度。采用消隱原理可求出dL的實際尺寸,然后利用該約束條件可標定光平面方程中的參數(shù)d。
圖3 標定板俯視圖
擬合MB中所有標定板圖像沿Y軸方向的直線方程,按照最大似然法求解所有Y軸方向平行直線的消隱點,由式(4)可得標定板局部坐標系Y軸的方向向量。記Y軸的方向向量為DY,光條直線方向向量為DL,圖3中dL的實際尺寸為:
(6)
式中,db為標定板的方格尺寸,若已知兩相鄰特征點在相機坐標系下的三維坐標,可得:
(7)
式中,xi,j、yi,j和zi,j為特征點Pij在相機坐標下的三維坐標,聯(lián)立式(1)~式(3)可得特征點的三維坐標為:
(8)
(9)
為驗證本文方法的正確性,將視覺傳感器安裝在焊接機器人末端,傳感器的相機型號為MV-EM500C,所采用的線激光投射器中心波長為650 nm,功率100 mW,線寬0.1 mm??刂苽鞲衅餮貦C器人基座標系Z軸作平移運動,保證標定板在相機視場范圍內。分別采集了5組有激光條紋的圖像和同一位姿下沒有投射激光條紋的圖像,圖4為采集的一組圖像樣本。
(a) 標定板圖像 (b) 光條圖像
分別采用周富強等[10]所提算法、魏一等[12]所提算法、陳天飛等[16]所提算法與本文方法利用同一組圖像對傳感器參數(shù)進行標定,對于陳天飛所提算法另采集了一組平移運動下的光條圖像,3種標定方法得到的光平面方程如表1所示。
表1 光平面標定結果
從表1可以看出,本文方法的標定結果與采用周富強和魏一所提算法的標定結果十分接近。為進一步驗證本文標定方法的精度,分別采用表1中3種方法的標定結果,對一公稱尺寸為7 mm的標準量塊進行測量,圖5為測量裝置。
圖5 結構光測量裝置
控制傳感器沿機器人基座標系X軸方向平移運動,同時控制相機采集結構光條紋圖像,采用灰度重心法提取條紋中心,計算中心點三維坐標并生成點云,通過擬合兩平面并計算兩平面之間的距離得到量塊高度的測量尺寸,圖6為量塊的光條圖像和生成的點云,對量塊測量10次的數(shù)據(jù)如表2所示。
(a) 量塊光條圖像 (b) 量塊點云
表2 高度測量誤差 (mm)
由表2可知,采用本文標定方法時,對厚度為7的標準量塊的平均測量誤差約為0.013,測量精度高于周、魏和陳所提方法。其原因一方面是由于基于消隱原理的光平面標定方法不存在單應性矩陣的分解誤差,不需要將特征點三維坐標統(tǒng)一到世界坐標系,減少了誤差來源。另一方面,本文采用最大似然估計方法對消隱點的定位精度高于陳所采用的最小距離平方法。由于相機景深的限制,實驗時傳感器作平移運動的范圍較小,無法使光條布滿整個圖像,這也是導致本實驗中陳所提算法測量誤差較大的原因之一。
本文提出了一種線結構光傳感器標定方法,利用工業(yè)機器人控制傳感器作一組平移運動實現(xiàn)光平面標定,該方法減少了標定過程中的人工參與,尤其適用于含平移機構的線結構光傳感設備自動化標定。除平行的光條直線外,本方法利用標定板平移運動的特性,提取出光平面中另外一組平行直線,并利用兩個消隱點標定光平面法向,解決了傳統(tǒng)基于消隱原理的光平面標定方法不適用于標定板作一組平移運動的問題。與基于單應性矩陣分解的標定方法相比,本方法不存在外參分解誤差,實驗表明本方法標定精度更高,進一步驗證了基于消隱點原理的標定方法的精度優(yōu)勢。