王 震,許恒碩,廉 哲
(1. 沈陽理工大學(xué),遼寧 沈陽 110159;2. 南開大學(xué)計算機學(xué)院,天津 300270)
立體視覺測量技術(shù)是一種基于視差原理采用多種光學(xué)成像設(shè)備從不同位置、不同角度獲得物體圖像,并通過計算得出不同圖像間的對應(yīng)點位置偏差,從而獲得被測目標(biāo)三維信息的方法[1]。其具有操作簡單、非接觸和成像速度快等特點,為機器視覺中獲取物體信息的主要手段之一,已被廣泛應(yīng)用到物體定位、逆向工程以及機器人焊接等領(lǐng)域。但是由于環(huán)境噪聲、光學(xué)畸變等原因可能導(dǎo)致測量結(jié)果產(chǎn)生誤差,因此,對其誤差進(jìn)行補償就變得尤為重要。
近幾年,關(guān)于視覺測量系統(tǒng)的誤差補償方法較多,崔恩坤[2]等人提出了一種立體視覺測量系統(tǒng)標(biāo)定誤差補償,該方法首先利用系統(tǒng)的外在結(jié)構(gòu)構(gòu)建測量坐標(biāo)系,并引入系統(tǒng)誤差以減小標(biāo)定過程中的非一致性,隨后利用相機各參數(shù)間的耦合作用對標(biāo)定誤差進(jìn)行補償,建立與標(biāo)定參數(shù)相關(guān)的虛擬映射。實驗表明該方法具有一定的可行性,但是由于不同相機的參數(shù)也有所不同,且參數(shù)數(shù)量較多,導(dǎo)致算法的計算量較大,且可能在計算過程中出現(xiàn)計算錯誤的概率也較大,因此,在實際應(yīng)用過程中還存在較大問題。王建華[3]等人提出了一種基于相位誤差自校正的高速三維測量技術(shù)。對原包裹相位進(jìn)行變換后,獲得第二包裹相位,隨后將兩個包裹相位融合實現(xiàn)減小相位誤差的目標(biāo),最后為提高測量速度,該方法對光柵條紋進(jìn)行離焦二值化處理。實驗表明該方法在一定程度上提高了計算速度,但是還存在跳躍性誤差的問題。石博[4]等人提出了一種基于多級條紋級數(shù)修正的相位誤差校正方法。以光柵條紋的相位周期為準(zhǔn)對條紋級數(shù)進(jìn)行一級粗校正,避免伽馬效應(yīng)導(dǎo)致跳躍性誤差的傳遞,隨后進(jìn)行取整函數(shù)優(yōu)化,并以絕對誤差相位為依據(jù)進(jìn)行二級精度校正。通過校正后的條紋計算求得理想相位值,該方法能夠有效地降低光柵條紋的跳躍性誤差,但是由于涉及算法過多導(dǎo)致計算效率較低。
基于此,為更精準(zhǔn)地提高視覺測量結(jié)果,本文提出了一種基于相位映射的立體視覺測量誤差補償方法。首先根據(jù)視覺測量原理總結(jié)出可能導(dǎo)致誤差出現(xiàn)的原因,并以此為依據(jù),通過光柵條紋的灰度均值及調(diào)制強度建立實際相位和理想相位間的映射關(guān)系,為避免過校正效應(yīng)發(fā)生,設(shè)定出控制因子進(jìn)行補償,完成相位補償,獲得實際相位值。實驗表明本文方法能夠有效地提高測量精準(zhǔn)度,實際應(yīng)用價值較高。
立體視覺測量的原理如圖1,其主要理論依據(jù)為視差原理,通過投影儀及兩臺以上攝像機收集被測目標(biāo)的三維信息。

圖1 立體視覺測量成像原理
若圖1中左右兩個圖像的坐標(biāo)系為O1x1y1、O2x2y2,鏡頭聚焦后空間中的點P通過投影儀映射成像,在圖像坐標(biāo)系下,兩個相機點P1、P2的坐標(biāo)為(X1,Y1)、(X2,Y2),此時兩個攝像機的光學(xué)主點分別為o1、o2。假設(shè)兩個攝像機是在同一水平直線上,首先將左側(cè)的相機光學(xué)主點o1作為原點構(gòu)建三維視覺測量坐標(biāo)系oxyz,且將P置于平面oxz中,此時線段o1o2則為測量系統(tǒng)的基線[5],將其記作B。設(shè)兩個相機的有效焦距為f1和f2,x軸與相機光軸O1o1、O2o2的夾角分別為α1、α2,相機的光學(xué)中心連線和兩個相機的光軸夾角[6]為ω1、ω2,通過空間幾何原理可得點P在測量坐標(biāo)系中的位置如下

(1)
式(1)中,夾角ω1和ω2可以通過P1、P2的x軸坐標(biāo)X1、X2和焦距f1、f2之間比值的反正切函數(shù)獲得,具體計算方法如下

(2)
立體視覺測量誤差主要由系統(tǒng)參數(shù)標(biāo)定不當(dāng)和實際測量環(huán)境干擾導(dǎo)致的。現(xiàn)階段參數(shù)標(biāo)定已經(jīng)較為成熟,可以達(dá)到較高精度,因此,本文主要研究的是在實際測量過程中所產(chǎn)生的誤差。P點的測量誤差主要通過對坐標(biāo)系三個方向誤差進(jìn)行均方和獲得,其表達(dá)式如下

(3)
通過式(1)和式(2)對式(3)的各方向誤差進(jìn)行偏求導(dǎo)得出


(4)
通過式(3)和式(4)可以得出,如果對兩個坐標(biāo)系的精度要求相同,即δX1=δX2=δY1=δY2=δx,α1=α2=45°時,測量誤差最小。又因為測量目標(biāo)一般是在圖像的中心區(qū)域,因此,為簡化分析可以令y=0,ω1=ω2=0°,f1=f2=f,那么式(3)可以簡寫為

(5)
由式(5)可歸納出影響測量精度的主要因素如下:
1)鏡頭焦距f
鏡頭焦距f的誤差體現(xiàn)在表達(dá)式分母上,可以通過長焦鏡頭使誤差降低,但是如果選擇不當(dāng)也可能導(dǎo)致鏡頭景深過短。
2)鏡頭分辨率
由于被測目標(biāo)的光線可能會通過鏡頭聚焦在圖像傳感器上,鏡頭的像點會形成直徑固定的彌散斑,導(dǎo)致成像模糊。若彌散斑的直徑大于傳感器像素尺寸則會導(dǎo)致圖像分析的精度降低,使測量誤差增加。
3)鏡頭畸變
在實際應(yīng)用中,鏡頭普遍存在光學(xué)畸變的情況,即實際像點和理想像點之間有差異。畸變的主要類型有以下三種,分別為:徑向畸變[7]、薄棱鏡畸變[8]以及偏心畸變[9],但是隨著現(xiàn)階段光學(xué)系統(tǒng)各方面的改進(jìn),在系統(tǒng)設(shè)計、加工和安裝等階段均能夠達(dá)到較高的精度,薄棱鏡畸變和偏心畸變已經(jīng)基本被解決,因此可以對其進(jìn)行忽略,僅考慮由投影與攝像機偏移所產(chǎn)生徑向畸變導(dǎo)致的測量誤差即可,其表達(dá)式如下

(6)
式(6)中,(X,Y)表示理想像點坐標(biāo),(X′,Y′)表示實際像點坐標(biāo),r表示像點與坐標(biāo)系原點間的距離,即二者之間的極徑,k1,k2,k3,…表示徑向畸變系數(shù)。
由于鏡頭焦距和鏡頭分辨率導(dǎo)致的誤差可以通過技術(shù)手段克服,因此,本文主要研究的誤差補償目標(biāo)為鏡頭徑向畸變導(dǎo)致測量精度較低的情況。徑向畸變?yōu)橐环N非線性畸變,這種非線性畸變會使得光學(xué)系統(tǒng)中的攝像機和投影儀間的亮度傳遞函數(shù)表現(xiàn)為非線性,從而導(dǎo)致系統(tǒng)收集到的光柵條紋與既定的余弦函數(shù)有所差異。由于投影儀給出的光柵條紋圖像的相位θs(x,y)與灰度Is(x,y)為離散量,相機采集的光柵圖像的相位θp(x,y)與灰度Ip(x,y)為連續(xù)的,因此可以通過線性差值法求解出x≠1,2,…,N處的Is(x,y)及θs(x,y)。由于條紋的變化只與橫坐標(biāo)相關(guān),因此下文只對其x軸方向的變化進(jìn)行研究。


(7)


(8)


(9)


(10)


(11)
由于反余弦的值域是[0,π],則根據(jù)式(7)求得θp(x)的值一般為非單調(diào)性的,并且不處于[θs(x0),θs(N)]范圍之間,也就意味著其不符合線性差值的唯一性和單調(diào)性,因此還需對θp(x)進(jìn)行進(jìn)一步處理。

θp′(x)=θs(x0)+θs(1)+D1
(12)

θp′(x)=θs(x0)+θs(1)+π+D2
(13)
式中,D1和D2均為變換參數(shù),二者的表達(dá)式分別如式(14)、式(15)所示

(14)

(15)
當(dāng)相同相位值出現(xiàn)時,即
θp′(n)=θp′(n+1)=θp′(n+2)=…=θp′(n+k)
(16)
式(16)中,n θp′(n+k)=θp′(n+k)+ε(k) (17) 其中,n ε(k)=αk (18) 由于相對θp′來說ε(k)為一個小量,因此ε(k)對θp′(n)的影響接近于零。實際操作過程中,也可能會有過校正現(xiàn)象出現(xiàn),因此還需設(shè)定出控制因子β對過校正進(jìn)行補償,其表達(dá)式如下 (19) 式(19)中,β的值大于1,其具體值可以根據(jù)測量的實際要求確定。 為驗證所提方法在實際測量過程中的可行性,搭建出一套由攝像機和投影儀構(gòu)成的立體視覺測量系統(tǒng)。系統(tǒng)選用的投影儀的分辨率為1280×1280pixel,攝像機的分辨率為1390×1390 pixel。 1)生成兩組不同的光柵條紋,一組為4步相移條紋,另一組為48步相移條紋,二者接近于理想狀態(tài),因此可以將二者的相位視為標(biāo)準(zhǔn)相位。 2)分別向測量系統(tǒng)的均值白板中投放兩組光柵條紋圖像與一組具有單一灰度值的灰度圖像,隨后采集調(diào)制后的灰度圖像和光柵條紋。 3)采用直方圖來統(tǒng)計圖像不同灰度值頻率,并根據(jù)區(qū)域的不同對單一灰度圖像進(jìn)行編碼。 4)將相機的區(qū)域信息投射至投影儀的靶面上,記錄投影儀的分區(qū)域結(jié)果。 5)求解兩組光柵條紋的相位信息,將第二組的相位信息設(shè)置為標(biāo)準(zhǔn)值,計算出相位誤差。 6)設(shè)定控制因子β補償過校正,完成相位補償獲得實際相位值。 通過上述步驟獲得被測目標(biāo)的具體三維信息后,提取相機和投影儀的誤差補償參數(shù)所用的標(biāo)準(zhǔn)棋盤格中的60個角點,如圖2所示。 圖2 標(biāo)準(zhǔn)棋盤格角點 對60個點進(jìn)行擬合,使其成為一個平面,以角點的共面誤差,也就是點與平面之間的距離來衡量所提方法的誤差補償效果。補償前和補償后的視覺測量結(jié)果分別如圖3(a)和圖3(b)所示。 圖3 補償前后共面性偏差分布 從圖3中可以看出補償前的共面誤差平均值約為0.243mm,補償后的共面誤差平均值約為0.127mm,補償后誤差的平均值在很大程度上有所降低,由此證明了本文方法的有效性。 本文首先分析了導(dǎo)致立體視覺測量相位誤差產(chǎn)生的原因為投影儀和攝像機的鏡頭發(fā)生畸變,因此首先求解出實際的光柵相位,隨后采用線性差值算法構(gòu)建了實際光柵和理想光柵的映射關(guān)系,計算出理想模式的相位分布,完成基于相位映射的誤差補償。最后通過實驗證明了所提方法的可行性。該方法可以在不需要投射較多光柵條紋的情況下,不依賴復(fù)雜計算就能夠大幅度提高測量精度,實際應(yīng)用價值較高。但是本文的研究對象僅為雙目立體測量系統(tǒng),因此下一步還需要使算法適用于多目立體視覺測量系統(tǒng),進(jìn)一步提高算法的適用性。
4 仿真研究
4.1 實驗步驟
4.2 實驗結(jié)果


4 結(jié)論