王 震,許恒碩,廉 哲
(1. 沈陽理工大學(xué),遼寧 沈陽 110159;2. 南開大學(xué)計(jì)算機(jī)學(xué)院,天津 300270)
立體視覺測量技術(shù)是一種基于視差原理采用多種光學(xué)成像設(shè)備從不同位置、不同角度獲得物體圖像,并通過計(jì)算得出不同圖像間的對(duì)應(yīng)點(diǎn)位置偏差,從而獲得被測目標(biāo)三維信息的方法[1]。其具有操作簡單、非接觸和成像速度快等特點(diǎn),為機(jī)器視覺中獲取物體信息的主要手段之一,已被廣泛應(yīng)用到物體定位、逆向工程以及機(jī)器人焊接等領(lǐng)域。但是由于環(huán)境噪聲、光學(xué)畸變等原因可能導(dǎo)致測量結(jié)果產(chǎn)生誤差,因此,對(duì)其誤差進(jìn)行補(bǔ)償就變得尤為重要。
近幾年,關(guān)于視覺測量系統(tǒng)的誤差補(bǔ)償方法較多,崔恩坤[2]等人提出了一種立體視覺測量系統(tǒng)標(biāo)定誤差補(bǔ)償,該方法首先利用系統(tǒng)的外在結(jié)構(gòu)構(gòu)建測量坐標(biāo)系,并引入系統(tǒng)誤差以減小標(biāo)定過程中的非一致性,隨后利用相機(jī)各參數(shù)間的耦合作用對(duì)標(biāo)定誤差進(jìn)行補(bǔ)償,建立與標(biāo)定參數(shù)相關(guān)的虛擬映射。實(shí)驗(yàn)表明該方法具有一定的可行性,但是由于不同相機(jī)的參數(shù)也有所不同,且參數(shù)數(shù)量較多,導(dǎo)致算法的計(jì)算量較大,且可能在計(jì)算過程中出現(xiàn)計(jì)算錯(cuò)誤的概率也較大,因此,在實(shí)際應(yīng)用過程中還存在較大問題。王建華[3]等人提出了一種基于相位誤差自校正的高速三維測量技術(shù)。對(duì)原包裹相位進(jìn)行變換后,獲得第二包裹相位,隨后將兩個(gè)包裹相位融合實(shí)現(xiàn)減小相位誤差的目標(biāo),最后為提高測量速度,該方法對(duì)光柵條紋進(jìn)行離焦二值化處理。實(shí)驗(yàn)表明該方法在一定程度上提高了計(jì)算速度,但是還存在跳躍性誤差的問題。石博[4]等人提出了一種基于多級(jí)條紋級(jí)數(shù)修正的相位誤差校正方法。以光柵條紋的相位周期為準(zhǔn)對(duì)條紋級(jí)數(shù)進(jìn)行一級(jí)粗校正,避免伽馬效應(yīng)導(dǎo)致跳躍性誤差的傳遞,隨后進(jìn)行取整函數(shù)優(yōu)化,并以絕對(duì)誤差相位為依據(jù)進(jìn)行二級(jí)精度校正。通過校正后的條紋計(jì)算求得理想相位值,該方法能夠有效地降低光柵條紋的跳躍性誤差,但是由于涉及算法過多導(dǎo)致計(jì)算效率較低。
基于此,為更精準(zhǔn)地提高視覺測量結(jié)果,本文提出了一種基于相位映射的立體視覺測量誤差補(bǔ)償方法。首先根據(jù)視覺測量原理總結(jié)出可能導(dǎo)致誤差出現(xiàn)的原因,并以此為依據(jù),通過光柵條紋的灰度均值及調(diào)制強(qiáng)度建立實(shí)際相位和理想相位間的映射關(guān)系,為避免過校正效應(yīng)發(fā)生,設(shè)定出控制因子進(jìn)行補(bǔ)償,完成相位補(bǔ)償,獲得實(shí)際相位值。實(shí)驗(yàn)表明本文方法能夠有效地提高測量精準(zhǔn)度,實(shí)際應(yīng)用價(jià)值較高。
立體視覺測量的原理如圖1,其主要理論依據(jù)為視差原理,通過投影儀及兩臺(tái)以上攝像機(jī)收集被測目標(biāo)的三維信息。
圖1 立體視覺測量成像原理
若圖1中左右兩個(gè)圖像的坐標(biāo)系為O1x1y1、O2x2y2,鏡頭聚焦后空間中的點(diǎn)P通過投影儀映射成像,在圖像坐標(biāo)系下,兩個(gè)相機(jī)點(diǎn)P1、P2的坐標(biāo)為(X1,Y1)、(X2,Y2),此時(shí)兩個(gè)攝像機(jī)的光學(xué)主點(diǎn)分別為o1、o2。假設(shè)兩個(gè)攝像機(jī)是在同一水平直線上,首先將左側(cè)的相機(jī)光學(xué)主點(diǎn)o1作為原點(diǎn)構(gòu)建三維視覺測量坐標(biāo)系oxyz,且將P置于平面oxz中,此時(shí)線段o1o2則為測量系統(tǒng)的基線[5],將其記作B。設(shè)兩個(gè)相機(jī)的有效焦距為f1和f2,x軸與相機(jī)光軸O1o1、O2o2的夾角分別為α1、α2,相機(jī)的光學(xué)中心連線和兩個(gè)相機(jī)的光軸夾角[6]為ω1、ω2,通過空間幾何原理可得點(diǎn)P在測量坐標(biāo)系中的位置如下
(1)
式(1)中,夾角ω1和ω2可以通過P1、P2的x軸坐標(biāo)X1、X2和焦距f1、f2之間比值的反正切函數(shù)獲得,具體計(jì)算方法如下
(2)
立體視覺測量誤差主要由系統(tǒng)參數(shù)標(biāo)定不當(dāng)和實(shí)際測量環(huán)境干擾導(dǎo)致的?,F(xiàn)階段參數(shù)標(biāo)定已經(jīng)較為成熟,可以達(dá)到較高精度,因此,本文主要研究的是在實(shí)際測量過程中所產(chǎn)生的誤差。P點(diǎn)的測量誤差主要通過對(duì)坐標(biāo)系三個(gè)方向誤差進(jìn)行均方和獲得,其表達(dá)式如下
(3)
通過式(1)和式(2)對(duì)式(3)的各方向誤差進(jìn)行偏求導(dǎo)得出
(4)
通過式(3)和式(4)可以得出,如果對(duì)兩個(gè)坐標(biāo)系的精度要求相同,即δX1=δX2=δY1=δY2=δx,α1=α2=45°時(shí),測量誤差最小。又因?yàn)闇y量目標(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)的光線可能會(huì)通過鏡頭聚焦在圖像傳感器上,鏡頭的像點(diǎn)會(huì)形成直徑固定的彌散斑,導(dǎo)致成像模糊。若彌散斑的直徑大于傳感器像素尺寸則會(huì)導(dǎo)致圖像分析的精度降低,使測量誤差增加。
3)鏡頭畸變
在實(shí)際應(yīng)用中,鏡頭普遍存在光學(xué)畸變的情況,即實(shí)際像點(diǎn)和理想像點(diǎn)之間有差異?;兊闹饕愋陀幸韵氯N,分別為:徑向畸變[7]、薄棱鏡畸變[8]以及偏心畸變[9],但是隨著現(xiàn)階段光學(xué)系統(tǒng)各方面的改進(jìn),在系統(tǒng)設(shè)計(jì)、加工和安裝等階段均能夠達(dá)到較高的精度,薄棱鏡畸變和偏心畸變已經(jīng)基本被解決,因此可以對(duì)其進(jìn)行忽略,僅考慮由投影與攝像機(jī)偏移所產(chǎn)生徑向畸變導(dǎo)致的測量誤差即可,其表達(dá)式如下
(6)
式(6)中,(X,Y)表示理想像點(diǎn)坐標(biāo),(X′,Y′)表示實(shí)際像點(diǎn)坐標(biāo),r表示像點(diǎn)與坐標(biāo)系原點(diǎn)間的距離,即二者之間的極徑,k1,k2,k3,…表示徑向畸變系數(shù)。
由于鏡頭焦距和鏡頭分辨率導(dǎo)致的誤差可以通過技術(shù)手段克服,因此,本文主要研究的誤差補(bǔ)償目標(biāo)為鏡頭徑向畸變導(dǎo)致測量精度較低的情況。徑向畸變?yōu)橐环N非線性畸變,這種非線性畸變會(huì)使得光學(xué)系統(tǒng)中的攝像機(jī)和投影儀間的亮度傳遞函數(shù)表現(xiàn)為非線性,從而導(dǎo)致系統(tǒng)收集到的光柵條紋與既定的余弦函數(shù)有所差異。由于投影儀給出的光柵條紋圖像的相位θs(x,y)與灰度Is(x,y)為離散量,相機(jī)采集的光柵圖像的相位θp(x,y)與灰度Ip(x,y)為連續(xù)的,因此可以通過線性差值法求解出x≠1,2,…,N處的Is(x,y)及θs(x,y)。由于條紋的變化只與橫坐標(biāo)相關(guān),因此下文只對(duì)其x軸方向的變化進(jìn)行研究。
(7)
(8)
(9)
(10)
(11)
由于反余弦的值域是[0,π],則根據(jù)式(7)求得θp(x)的值一般為非單調(diào)性的,并且不處于[θs(x0),θs(N)]范圍之間,也就意味著其不符合線性差值的唯一性和單調(diào)性,因此還需對(duì)θ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)時(shí),即
θ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) 由于相對(duì)θp′來說ε(k)為一個(gè)小量,因此ε(k)對(duì)θp′(n)的影響接近于零。實(shí)際操作過程中,也可能會(huì)有過校正現(xiàn)象出現(xiàn),因此還需設(shè)定出控制因子β對(duì)過校正進(jìn)行補(bǔ)償,其表達(dá)式如下 (19) 式(19)中,β的值大于1,其具體值可以根據(jù)測量的實(shí)際要求確定。 為驗(yàn)證所提方法在實(shí)際測量過程中的可行性,搭建出一套由攝像機(jī)和投影儀構(gòu)成的立體視覺測量系統(tǒng)。系統(tǒng)選用的投影儀的分辨率為1280×1280pixel,攝像機(jī)的分辨率為1390×1390 pixel。 1)生成兩組不同的光柵條紋,一組為4步相移條紋,另一組為48步相移條紋,二者接近于理想狀態(tài),因此可以將二者的相位視為標(biāo)準(zhǔn)相位。 2)分別向測量系統(tǒng)的均值白板中投放兩組光柵條紋圖像與一組具有單一灰度值的灰度圖像,隨后采集調(diào)制后的灰度圖像和光柵條紋。 3)采用直方圖來統(tǒng)計(jì)圖像不同灰度值頻率,并根據(jù)區(qū)域的不同對(duì)單一灰度圖像進(jìn)行編碼。 4)將相機(jī)的區(qū)域信息投射至投影儀的靶面上,記錄投影儀的分區(qū)域結(jié)果。 5)求解兩組光柵條紋的相位信息,將第二組的相位信息設(shè)置為標(biāo)準(zhǔn)值,計(jì)算出相位誤差。 6)設(shè)定控制因子β補(bǔ)償過校正,完成相位補(bǔ)償獲得實(shí)際相位值。 通過上述步驟獲得被測目標(biāo)的具體三維信息后,提取相機(jī)和投影儀的誤差補(bǔ)償參數(shù)所用的標(biāo)準(zhǔn)棋盤格中的60個(gè)角點(diǎn),如圖2所示。 圖2 標(biāo)準(zhǔn)棋盤格角點(diǎn) 對(duì)60個(gè)點(diǎn)進(jìn)行擬合,使其成為一個(gè)平面,以角點(diǎn)的共面誤差,也就是點(diǎn)與平面之間的距離來衡量所提方法的誤差補(bǔ)償效果。補(bǔ)償前和補(bǔ)償后的視覺測量結(jié)果分別如圖3(a)和圖3(b)所示。 圖3 補(bǔ)償前后共面性偏差分布 從圖3中可以看出補(bǔ)償前的共面誤差平均值約為0.243mm,補(bǔ)償后的共面誤差平均值約為0.127mm,補(bǔ)償后誤差的平均值在很大程度上有所降低,由此證明了本文方法的有效性。 本文首先分析了導(dǎo)致立體視覺測量相位誤差產(chǎn)生的原因?yàn)橥队皟x和攝像機(jī)的鏡頭發(fā)生畸變,因此首先求解出實(shí)際的光柵相位,隨后采用線性差值算法構(gòu)建了實(shí)際光柵和理想光柵的映射關(guān)系,計(jì)算出理想模式的相位分布,完成基于相位映射的誤差補(bǔ)償。最后通過實(shí)驗(yàn)證明了所提方法的可行性。該方法可以在不需要投射較多光柵條紋的情況下,不依賴復(fù)雜計(jì)算就能夠大幅度提高測量精度,實(shí)際應(yīng)用價(jià)值較高。但是本文的研究對(duì)象僅為雙目立體測量系統(tǒng),因此下一步還需要使算法適用于多目立體視覺測量系統(tǒng),進(jìn)一步提高算法的適用性。4 仿真研究
4.1 實(shí)驗(yàn)步驟
4.2 實(shí)驗(yàn)結(jié)果
4 結(jié)論