胡 巍,莫建文,王小兵,程 喬
(桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林 541004)
三維視覺(jué)測(cè)量技術(shù)的主要任務(wù)是由二維灰度圖像求得目標(biāo)物體的空間三維坐標(biāo)。目前,關(guān)于三維測(cè)量的方法有很多,常用的三維測(cè)量技術(shù)被分為被動(dòng)式和主動(dòng)式兩大類,前者物體的照明由物體周圍的背景光來(lái)提供,如雙目立體視覺(jué)等;后者使用一個(gè)專門的光源對(duì)被測(cè)物體進(jìn)行照明,如結(jié)構(gòu)光法、莫爾條紋法等。其中,雙目立體視覺(jué)測(cè)量技術(shù)結(jié)構(gòu)簡(jiǎn)單,通過(guò)適當(dāng)?shù)臉?biāo)定方法和立體視覺(jué)匹配算法,可以得到較高的測(cè)量精度[1]。但是對(duì)于大型物體或是回轉(zhuǎn)體的測(cè)量,由于雙目立體視覺(jué)的視場(chǎng)比較小,無(wú)法一次完成對(duì)被測(cè)物體的表面測(cè)量,因此需要對(duì)被測(cè)物體進(jìn)行分塊測(cè)量,然后將測(cè)量數(shù)據(jù)拼接融合到一起,組合成完整的三維數(shù)據(jù)模型,即三維數(shù)據(jù)拼接。
目前,三維數(shù)據(jù)拼接方法有精密儀器定位法[2]、雙經(jīng)緯儀法[3]、ICP算法[4]、物體表面貼標(biāo)志點(diǎn)法[5]等,但這些方法都存在著一些問(wèn)題:精密儀器價(jià)格昂貴,雙經(jīng)緯儀受環(huán)境限制難以合理布置,ICP算法復(fù)雜、效率低而且精度不高,貼標(biāo)志點(diǎn)的方法不適合軟質(zhì)和易損傷的被測(cè)物。本文采用了一種基于公共特征點(diǎn)的拼接方法,其基本思想是:首先對(duì)各個(gè)子區(qū)域進(jìn)行單獨(dú)測(cè)量,然后利用重合區(qū)域的公共特征點(diǎn)進(jìn)行連接從而獲得整體的測(cè)量數(shù)據(jù)。本文在介紹立體視覺(jué)測(cè)量系統(tǒng)的基本原理的基礎(chǔ)上,重點(diǎn)闡述了三維拼接方法的原理及實(shí)現(xiàn)。
用C1與C2兩個(gè)攝像機(jī)觀測(cè)空間點(diǎn)P,如圖1所示,設(shè)它在 2個(gè)攝像機(jī)C1與C2上的圖像點(diǎn)p1與p2已經(jīng)從2幅圖像中分別檢測(cè)出來(lái),即已知p1與p2為空間同一點(diǎn)P的對(duì)應(yīng)點(diǎn)??臻g點(diǎn)P既位于 o1p1上,又位于o2p2上,因此P點(diǎn)是o1p1與o2p2兩條直線的交點(diǎn),即它的三維空間位置是唯一確定的。
設(shè)C1與C2攝像機(jī)已標(biāo)定,它們的投影矩陣分別為M1與 M2。匹配點(diǎn)對(duì)用齊次坐標(biāo)表示為p1=(u1,v1,1)T和 p2=(u2,v2,1)T,對(duì)應(yīng)的空間點(diǎn)齊次三維坐標(biāo)為P=(x,y,z,1)T。由二維圖像點(diǎn)與三維空間點(diǎn)之間的映射關(guān)系,可以得到[6]:
其中,k1、k2為比例系數(shù)。
將(1)式展開(kāi):
消去(2)式中 k1、k2得到關(guān)于x,y,z的4個(gè)線性方程:
理論上,聯(lián)立的方程組必定有唯一解,但實(shí)際應(yīng)用中,由于誤差的影響,可能沒(méi)有確定的解,因此可應(yīng)用最小二乘法求出P點(diǎn)的三維坐標(biāo)。從幾何關(guān)系角度講,表示的是空間兩條直線求交點(diǎn),由于一些外界的因素使得這兩條直線不相交,而是成為異面直線,因此求得的最小二乘意義上的解就是兩條異面直線間的最短距離所在線段的中點(diǎn)。
三維測(cè)量數(shù)據(jù)的拼接關(guān)鍵在于如何求出空間之間的變換矩陣。對(duì)于大型物體或回轉(zhuǎn)體的視覺(jué)測(cè)量,可以先把被測(cè)物體的表面劃分為若干個(gè)子區(qū)域,并且確保相鄰的子區(qū)域含有公共區(qū)域,然后采用雙目立體視覺(jué)測(cè)量系統(tǒng)對(duì)這些子區(qū)域分別進(jìn)行拍攝測(cè)量,得到子區(qū)域上特征點(diǎn)的三維坐標(biāo)。再利用重合區(qū)域內(nèi)的若干個(gè)公共特征點(diǎn) (出于對(duì)精度和速度方面的考慮,通常選擇4~6個(gè)點(diǎn)),計(jì)算相鄰子區(qū)域的空間變換矩陣,將各個(gè)區(qū)域測(cè)量的坐標(biāo)值統(tǒng)一到一個(gè)坐標(biāo)系下,如圖2所示。
設(shè)測(cè)量角度1的參考坐標(biāo)系記為A,測(cè)量角度2的參考坐標(biāo)系記為B,P點(diǎn)在坐標(biāo)系A(chǔ)和B中的坐標(biāo)分別為(x1,y1,z1)與(x2,y2,z2),B到 A的旋轉(zhuǎn)正交矩陣為R,平移向量為 t=(tx,ty,tz)T。
[7]中,變換矩陣求解時(shí),將坐標(biāo)變換關(guān)系表示為∶
其中,W21為坐標(biāo)系B到坐標(biāo)系A(chǔ)的變換矩陣。變換矩陣W21含有12個(gè)未知量,采用多點(diǎn)的最小二乘擬合法進(jìn)行平差,如采用4個(gè)或4個(gè)以上的點(diǎn),把(4)寫成為∶
式中,X1和X2包括兩坐標(biāo)系下4個(gè)或4個(gè)以上點(diǎn)的齊次坐標(biāo),則矩陣W21的解為∶
采用最小二乘擬合,通過(guò)三維空間中的多個(gè)點(diǎn)求得轉(zhuǎn)換矩陣,計(jì)算方法簡(jiǎn)單,但缺點(diǎn)在于當(dāng)選取的公共特征點(diǎn)個(gè)數(shù)較少的時(shí)候,計(jì)算出的轉(zhuǎn)換矩陣誤差較大,拼接效果不理想。
在實(shí)際應(yīng)用中,由于像面點(diǎn)的提取誤差,對(duì)應(yīng)點(diǎn)對(duì)的位置誤差等,由線性方程解得的R矩陣并不滿足正交約束條件,因此R的求解要充分利用旋轉(zhuǎn)矩陣的正交條件。但考慮到解非線性方程,計(jì)算量較大,引入計(jì)算誤差。
為此,本文采用Rodrigues參數(shù)表示變換矩陣的方法[5,8]。Rodrigues參數(shù)是1840年法國(guó)數(shù)學(xué)家Rodrigues提出的用于描述剛體定點(diǎn)轉(zhuǎn)動(dòng)的姿態(tài)描述,它既是姿態(tài)描述的最小實(shí)現(xiàn),同時(shí)計(jì)算效率又很高。設(shè)一個(gè)具有固定點(diǎn)o的剛體繞單位矢量n轉(zhuǎn)動(dòng),剛體上有一定點(diǎn)矢量r1,繞n軸轉(zhuǎn)動(dòng)θ角至r2的位置,設(shè)Rodrigues參數(shù)為H=[hxhyhz]T,定義如下:
由Rodrigues參數(shù)給出的姿態(tài)矩陣為∶
其中,||H||為Rodrigues參數(shù)的范數(shù)。
它的引入使得轉(zhuǎn)換矩陣的求解過(guò)程主要是一些低階向量和矩陣的代數(shù)運(yùn)算,從而簡(jiǎn)化了運(yùn)算,并且當(dāng)選取的公共特征點(diǎn)較少的時(shí)候,也具有較高的精度。
首先,將坐標(biāo)變換關(guān)系表示為∶
設(shè)坐標(biāo)系B相對(duì)于坐標(biāo)系A(chǔ)的Rodrigues參數(shù)為H=[hxhyhz]T,則旋轉(zhuǎn)矩陣R可表示為∶
將式(10)代入(9),可得:
整理上式得:
簡(jiǎn)記為QX=N,在重合區(qū)域上選取 k(k≥3)個(gè)公共特征點(diǎn),可以得到如下的方程組:
用最小二乘法求解,則可得到Rodrigues參數(shù)以及引入的輔助參數(shù)。根據(jù)式(10)可求得旋轉(zhuǎn)矩陣R,根據(jù)式(12)可求得平移向量t。
本文用一個(gè)盒子作為測(cè)試對(duì)象,采用雙目立體視覺(jué)測(cè)量系統(tǒng)從兩個(gè)不同角度對(duì)盒子的正面和背面分別進(jìn)行了拍攝,圖像大小為2 304像素×1 728像素。設(shè)測(cè)量角度1的參考坐標(biāo)系為A,測(cè)量角度2的參考坐標(biāo)系為B。由于只要測(cè)量出盒子的8個(gè)頂點(diǎn)便可以勾勒出盒子的外形,因此只把8個(gè)頂點(diǎn)作為特征點(diǎn)進(jìn)行了測(cè)量。如圖3、圖4所示,對(duì)應(yīng)的頂點(diǎn)用0~7依次分別標(biāo)示出。
實(shí)驗(yàn)中,以 2、3、4、5為頂點(diǎn)的側(cè)面為公共區(qū),因此將2、3、4、5作為公共特征點(diǎn)。以上 4個(gè)點(diǎn)將用于求解轉(zhuǎn)換矩陣。
首先用雙目立體視覺(jué)測(cè)量系統(tǒng)分別測(cè)量出角度1和角度2下特征點(diǎn)的三維坐標(biāo)值,如表1和表2所示。
表1 角度1下特征點(diǎn)的三維坐標(biāo)值
表2 角度2下特征點(diǎn)的三維坐標(biāo)值
表3 測(cè)量誤差
采用參考文獻(xiàn)[7]中的方法,求得的變換矩陣為∶
通過(guò)變換矩陣W21就可以把 B坐標(biāo)系中6、7兩點(diǎn)的三維坐標(biāo)轉(zhuǎn)換到A坐標(biāo)系中∶點(diǎn)6(116.789,-45.530,704.775),點(diǎn)7(116.577,19.485,708.524)。為了驗(yàn)證測(cè)量出的三維坐標(biāo)是否正確,通過(guò)OpenGL編程將A坐標(biāo)中的所有空間點(diǎn)進(jìn)行了顯示,如圖5所示。
蘇楠之所以再次問(wèn)這個(gè)問(wèn)題,只是想從楊小水嘴里得到確認(rèn)。明擺著,楊小水沒(méi)有這樣的表姐,有也不可能同時(shí)嫁給李石磨,不可能恰好也有過(guò)兩個(gè)小孩,不可能恰好也叫李嶠汝、李碧汝。
由圖5可見(jiàn),6、7點(diǎn)的位置與實(shí)際位置偏差較大,拼接效果不理想。
下面采用本文的拼接算法,首先求解出6個(gè)參數(shù)值:
因此,可以求得:
通過(guò)R和t就可以把B坐標(biāo)系中6、7兩點(diǎn)的三維坐標(biāo)轉(zhuǎn)換到 A 坐標(biāo)系中:點(diǎn) 6(37.675,-44.920,664.610),點(diǎn) 7(35.901,20.693,667.429),空間點(diǎn)顯示如圖6 所示。
由圖6可見(jiàn),6、7點(diǎn)的位置與實(shí)際位置相符,拼接效果較理想。為了進(jìn)一步驗(yàn)證此方法測(cè)量出的三維坐標(biāo)的可靠性,用直尺測(cè)量出盒子頂點(diǎn)之間的真實(shí)距離,并將其與用三維坐標(biāo)計(jì)算出的點(diǎn)間距離作比較,結(jié)果如表3所示。從試驗(yàn)結(jié)果來(lái)看,尺測(cè)量值與計(jì)算值基本吻合,說(shuō)明采用此方法能夠較好地實(shí)現(xiàn)測(cè)量數(shù)據(jù)的拼接。
通過(guò)以上理論分析和實(shí)驗(yàn)驗(yàn)證,不難看出,利用本文的三維拼接方法可以有效地解決雙目立體視覺(jué)測(cè)量系統(tǒng)視場(chǎng)比較小的問(wèn)題,并且不涉及復(fù)雜的數(shù)據(jù)處理,穩(wěn)定性好。該方法適合于具有3個(gè)或者3個(gè)以上公共特征點(diǎn)對(duì)的測(cè)量數(shù)據(jù)拼接,操作簡(jiǎn)單,精度高,非常適合于實(shí)際應(yīng)用。
參考文獻(xiàn)
[1]王鋒,呂乃光,韓建棟,等.基于雙目視覺(jué)跟蹤的三維拼接技術(shù)[J].北京機(jī)械工業(yè)學(xué)院學(xué)報(bào),2008,23(4):10-12.
[2]龍璽,鐘約先,李仁舉.結(jié)構(gòu)光三維掃描測(cè)量的三維拼接技術(shù)[J].清華大學(xué)學(xué)報(bào),2002,42(4)∶477-480.
[3]周富強(qiáng),張廣軍,江潔,等.現(xiàn)場(chǎng)雙經(jīng)緯儀三維坐標(biāo)測(cè)量系統(tǒng)[J].機(jī)械工程學(xué)報(bào),2004,40(1)∶165-169.
[4]戴靜蘭,陳志楊,葉修梓.ICP算法在點(diǎn)云配準(zhǔn)中的應(yīng)用[J].中 國(guó) 圖 象 圖 形 學(xué) 報(bào),2007,12(3)∶517-521.
[5]歐陽(yáng)祥波,宗志堅(jiān),熊會(huì)元.基于標(biāo)志點(diǎn)的測(cè)量數(shù)據(jù)自動(dòng)拼接方法[J].中國(guó)圖象圖形學(xué)報(bào),2008,13(2)∶298-301.
[6]陳勝勇,劉盛.基于OpenCV的計(jì)算機(jī)視覺(jué)技術(shù)實(shí)現(xiàn)[M].北京∶科學(xué)出版社,2008.
[7]鄧文怡,桑新柱,董明利,等.三維拼接在大尺寸視覺(jué)測(cè)量中的應(yīng)用[J].光電子·激光,2002,13(11)∶1145-1147.
[8]周江華,苗育紅,王明海.姿態(tài)運(yùn)動(dòng)的Rodrigues參數(shù)描 述 [J].宇 航 學(xué) 報(bào),2004,25(5)∶514-519.