摘要:提出一種基于長序列未定標(biāo)圖像的三維重建方法,并將其成功地應(yīng)用于增強(qiáng)現(xiàn)實(shí)實(shí)例中。首先,基于傳統(tǒng)KLT跟蹤算法提出了一種針對序列圖像的改進(jìn)特征點(diǎn)匹配策略,通過特征點(diǎn)運(yùn)動向量的預(yù)測減小了相應(yīng)特征點(diǎn)的搜索范圍,進(jìn)一步根據(jù)相近特征點(diǎn)鄰域窗口在透視畸變上的相似性大大提高了匹配算法的效率;在得到序列圖像的匹配結(jié)果后,將傳統(tǒng)基于仿射成像模型的測量矩陣(Measurement Matrix)保秩分解算法擴(kuò)展到透視成像模型中,從而一次性得到整個場景的射影重建;進(jìn)一步在攝像機(jī)自定標(biāo)的基礎(chǔ)上得到整個場景的三維歐氏模型和攝像機(jī)的成像矩陣。最后給出真實(shí)圖像序列的三維重建實(shí)驗(yàn)結(jié)果,并成功地將其應(yīng)用到增強(qiáng)現(xiàn)實(shí)實(shí)例中。
關(guān)鍵詞:三維重建; 特征點(diǎn)匹配;保秩分解;自定標(biāo);增強(qiáng)現(xiàn)實(shí)
中圖分類號:TP391文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2007)05-0314-04
0引言
從圖像中得到真實(shí)場景的三維模型是計算機(jī)視覺和虛擬現(xiàn)實(shí)中的重要研究內(nèi)容,也成為近年來的研究熱點(diǎn)[1],而這方面的早期研究主要集中在攝像機(jī)的精確定標(biāo)上[2]。目前基于圖像序列的三維重建主要有兩種策略:①順序方法,即從兩幅圖像的匹配和重建開始逐漸增加新的圖像直至整個序列[3, 4]。由于這種方法不能同時利用所有圖像信息,常常會造成誤差的累積。②先建立所有圖像的匹配關(guān)系,即測量矩陣(Measurement Matrix),再一次性求解所有場景結(jié)構(gòu)和攝像機(jī)的運(yùn)動參數(shù)[5~7]。這種策略將所有圖像同等對待,保證了誤差的均勻分布。這種基于測量矩陣分解的方法由Tomasi等人[5]首先針對正射圖像提出,Poelman等人[7]將其擴(kuò)展到弱透視和平行透視圖像中,Sturm等人[6]又將其擴(kuò)展到透視圖像中,但并沒有討論由于場景本身的相互遮擋而產(chǎn)生的缺失點(diǎn)問題。
文中給出一種基于長序列圖像得到場景三維模型的解決方案,并驗(yàn)證其正確性和有效性。注意,實(shí)驗(yàn)中采用法國INRIA提供的圖像序列(119幅),每隔4幅取1幅,即取第1,5,9,…,109,113幅作為測試圖像序列。
1特征點(diǎn)匹配
如圖 1所示,隨著攝像機(jī)視點(diǎn)的變化,圖像平面上相應(yīng)特征點(diǎn)的鄰域窗口會發(fā)生透視畸變,而且畸變的大小會隨著基線的增加變得更加明顯,這也是傳統(tǒng)基于亮度相似性匹配方法在處理大基線圖像時的難點(diǎn)所在。而如果將場景表面的局部面片近似認(rèn)為是平面,相應(yīng)鄰域窗口之間的透視畸變可以用二維平面上的仿射變換來近似[8, 9],如式(1)所示:
1.1仿射迭代算法
1.2特征點(diǎn)的運(yùn)動估計
1.3序列圖像匹配
順序得到任意相鄰兩幅圖像的匹配結(jié)果后,就可以將這些圖像連接起來,形成匹配序列。對于兩幅圖像可通過對極幾何關(guān)系去除誤匹配[11],而對于序列圖像則有更嚴(yán)格的約束條件,即三焦張量(Trifocal Tensor)去除誤匹配,從而將相應(yīng)特征點(diǎn)的搜索范圍限制在很小的圓形窗口內(nèi)[11],通過該約束還可以重新得到那些在圖像對匹配中漏掉的特征點(diǎn),而三焦張量的估計同樣是通過RANSAC算法估計得到的[11]。圖 4給出了將第1、5、9幅圖像連接后得到的匹配結(jié)果,共得到135組正確匹配。
按上述方法就可以將所有圖像連接建立特征點(diǎn)的匹配序列,實(shí)驗(yàn)中要求保證每一個特征點(diǎn)至少在相鄰的五幅圖像中出現(xiàn),不滿足條件的特征點(diǎn)則丟棄。在實(shí)驗(yàn)圖像序列(29幅)中共得到了647個這樣的特征點(diǎn)。圖 5給出了整個序列中所有特征點(diǎn)的匹配關(guān)系示意圖。其中縱坐標(biāo)表示圖像序列,而橫坐標(biāo)表示特征點(diǎn)。
2基于保秩分解的射影重建
基于測量矩陣分解的重建方法首先由Tomasi針對正射圖像序列提出[5],Poelman又將其擴(kuò)展到弱透視和平行透視圖像序列中[7]。設(shè)空間點(diǎn)的齊次坐標(biāo)為X~j(j=1,…,n),攝像機(jī)的成像矩陣為Pi(i=1,…,m),所成圖像點(diǎn)齊次坐標(biāo)為ij,則該成像過程可表示為
2.1估計射影深度
2.2填充缺失點(diǎn)
這一階段的目的就是根據(jù)測量矩陣的秩4約束,尋找與之最“接近”且完全填充的矩陣,從而解決缺失點(diǎn)的填充問題,最后通過SVD分解得到場景的射影重建P和X。Jacobs針對仿射圖像序列很好地解決了缺失點(diǎn)的填充問題[12],本文將其擴(kuò)展到透視圖像序列中。
因?yàn)榫仃嘙的秩為4,因此其列(行)向量之間存在著很強(qiáng)的相關(guān)性,設(shè)其構(gòu)成的4維子空間為G,如果M中存在完整的4列線性無關(guān),那么就可用這4列作為子空間G的基,從而填充所有其他的未知元素。實(shí)際中一般不存在某一特征點(diǎn)在所有圖像上均可見,因此這樣的列向量組是不存在的,必須通過不完整的列向量來構(gòu)造這4個基。實(shí)際上,矩陣M的任意4列(含缺失點(diǎn))也同樣形成一個更高維度的子空間Gr,則GrG,從而G∩r∈RGr,其中R表示矩陣中M所有可能4列組合的下標(biāo)集。在實(shí)際應(yīng)用中由于噪聲的存在,∩r∈RGr一般會得到空集,常用的方法就是用SVD分解尋找最近的4維子空間來替代,詳細(xì)實(shí)現(xiàn)過程可參見Jacobs和Sturm的方法[6, 12],下面僅給出由不完全的列向量形成其子空間的實(shí)現(xiàn)步驟。
如2.1節(jié)所提到,對于所有圖像的匹配序列,不僅會有缺失點(diǎn)問題,還可能會出現(xiàn)某些特征點(diǎn)在部分圖像上能夠估計射影深度,而在另外的圖像上不能估計射影深度,即匹配序列間斷的情況,因此相對于仿射模型,透視成像模型稍微復(fù)雜一些,即測量矩陣的分解會出現(xiàn)兩種情況,下面用四個特征點(diǎn)在兩幅圖像上的匹配結(jié)果為例進(jìn)行說明。
(1)有些點(diǎn)在某些圖像上不能得到匹配,如式(11)左邊矩陣的第3列,這種情況與Jacobs在仿射模型中的情況類似,只需為測量矩陣添加3列,如右邊矩陣的第3~6列所示;
(2)有些點(diǎn)能匹配到,但不能估計射影深度,如式(11)中的第4列,這種情況是透視模型所特有的,此時需要為測量矩陣添加1列,如右邊矩陣的第7~8列所示。
3攝像機(jī)自定標(biāo)
在2章中僅僅得到了射影意義上的重建,再加上填充缺失點(diǎn)過程中帶來的誤差,其結(jié)果不能直接用于可視模型的建立。為了驗(yàn)證文中方法的有效性,需要將其升級為歐氏重建,即得到合適的射影變換矩陣H。如(12)式所示,其中P和X為射影重建的攝像機(jī)投影矩陣和場景結(jié)構(gòu),而P^和X^分別表示升級為歐氏重建后的投影矩陣和場景三維結(jié)構(gòu)。求解矩陣H的過程即為攝像機(jī)自定標(biāo),實(shí)際上也就是求解絕對二次曲線和絕對二次曲面的位置[4]。
Han針對攝像機(jī)內(nèi)參數(shù)變化的三種不同情況給出了序列圖像自定標(biāo)的線性方法[13],從而將射影重建結(jié)果升級為歐氏重建模型;Sainz對其算法的魯棒性和精度進(jìn)行了相應(yīng)的改進(jìn)[14]。由于本文實(shí)驗(yàn)中攝像機(jī)內(nèi)參數(shù)是不變的,因此可以直接采用上述方法求解矩陣H,從而將重建結(jié)果升級為歐氏模型。此外,由于特征點(diǎn)匹配以及成像模型等噪聲的存在必將對重建結(jié)果造成誤差,與其他重建方法一樣,文中也采用光束平差算法(Bundle Adjustment)最小化重投影誤差[4, 14]。通過光束平差,特征點(diǎn)的平均重投影誤差從3.859 2像素減小為0.827 5像素。值得指出的是,在優(yōu)化特征點(diǎn)的重投影誤差時,缺失點(diǎn)是不考慮的,因?yàn)檫@些點(diǎn)雖然在測量矩陣的分解過程中得到了估計和填充,但畢竟是不可信的,這樣也避免了誤差的累積。
4實(shí)驗(yàn)結(jié)果及分析
以Movi序列中選取的29幅圖像為例對整個算法進(jìn)行了實(shí)現(xiàn)和實(shí)驗(yàn),得到了較好的重建結(jié)果。圖6給出了重建結(jié)果的俯視圖、側(cè)視圖以及細(xì)節(jié)圖,都很好地再現(xiàn)了三維模型和攝像機(jī)的位置及姿態(tài)信息。圖 7給出了重建后小房子的三維模型,模型邊界點(diǎn)的選取及相互之間的拓?fù)潢P(guān)系通過手工交互指定,而其紋理是通過Liebowitz的方法[15]先進(jìn)行透視矯正后再映射到模型網(wǎng)格之上的。
圖 8給出了根據(jù)場景的重建結(jié)果在圖像中嵌入虛擬圖形對象后的三幅圖像(分別為第1、9、17幅),其中模型嵌入時的初始坐標(biāo)也是通過手工的方式選定地面上的點(diǎn)作為參考點(diǎn)交互指定的。嵌入的具體實(shí)現(xiàn)流程為:首先將相應(yīng)場景圖像作為背景寫入幀緩存,再根據(jù)當(dāng)前圖像所對應(yīng)的攝像機(jī)參數(shù)設(shè)置透視投影矩陣,然后根據(jù)虛擬圖形對象的嵌入位置用OpenGL語言進(jìn)行繪制,攝像機(jī)內(nèi)參數(shù)決定OpenGL的投影矩陣,而外參數(shù)決定OpenGL的變換矩陣。從圖中可以很容易看到嵌入的圖形對象在不同的圖像上,較好地再現(xiàn)了與真實(shí)場景的相互透視關(guān)系。
6結(jié)束語
本文提出了一種基于長序列圖像的三維重建方法,首先通過對特征點(diǎn)運(yùn)動方向的預(yù)測改進(jìn)了傳統(tǒng)KLT跟蹤算法,并依據(jù)相近特征點(diǎn)鄰域窗口在透視畸變上的相似性提高了算法的迭代速度;得到序列圖像的特征點(diǎn)匹配結(jié)果后,基于測量矩陣的保秩分解得到場景的射影重建,并較好地解決了缺失點(diǎn)問題。在攝像機(jī)自定標(biāo)的基礎(chǔ)上給出了場景的歐式重建模型,并將其應(yīng)用到了增強(qiáng)現(xiàn)實(shí)實(shí)例中,得到了較好的可視效果。
相對于傳統(tǒng)順序分層重建方法,文中方法將所有圖像的匹配結(jié)果同時作為輸入,一次性得到整個場景的重建結(jié)果,避免了誤差的累積。然而,本文僅針對內(nèi)參數(shù)不變的攝像機(jī)進(jìn)行自定標(biāo),當(dāng)參數(shù)變化時情況會更復(fù)雜,應(yīng)該進(jìn)一步考慮算法的魯棒性和精確性。在虛擬對象的嵌入過程中,文中并未考慮與真實(shí)場景之間的相互遮擋關(guān)系,而此時需對場景進(jìn)行全部或者部分的三維重建,從而確定相互遮擋關(guān)系,這些也都是本文所要進(jìn)一步研究的目標(biāo)。
參考文獻(xiàn):
[1]DICK A R, TORR P H S,CIPOLLA R. Modeling and interpretation of architecture from several images[J].International Journal of Computer Vision,2004,60(2):111-134.
[2]孟曉橋, 胡占義. 攝像機(jī)自標(biāo)定方法的研究與進(jìn)展[J]. 自動化學(xué)報, 2003,29(1):110-124.
[3]BEARDSLEY P A,TORR P H S, ZISSERMAN A. 3D model acquisition from extended image sequences:European Conference on Compu-ter Vision[C].[S.l.]:[s.n.],1996:683-695.
[4]POLLEFEYS M. Self-calibration and metric 3D reconstruction from uncalibrated image sequences[D].Belgium: K.U.Leuven, 1999.
[5]TOMASI C,KANADE T. Shape and motion from image streams under orthography: a factorization method[J].International Journal of Computer Vision, 1992,9(2):137-154.
[6]STURM P,TRIGGS B. A factorization based algorithm for multi-image projective structure and motion:proceedings of the 4th European Conference on Computer Vision[C].[S.l.]:[s.n.],1996:709-720.
[7]PRELMAN C J,KANADE T.A paraperspective factorization method for shape and motion recovery[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1997,19(3):580-593.
[8]SHI J,TOMASI C. Good features to track:proceedings of the IEEE Conference on Computer Vision and Pattern Recognition[C].[S.l]:[s.n.],1994:593-600.
[9]BERTHILSSON R. Finding correspondences of patches by means of affine transformations:proceedings of the 7th IEEE International Conference on Computer Vision[C].[S.l.]:[s.n.], 1999:1117-1122.
[10]FISHLER M A,BOLES R C. Random sample concensus:a paradigm for model fitting with applications to image analysis and automated cartography[J].Communications of the Association for Computing Machinery,1981,24(6):381-395.
[11]HARTLEY R,ZISSERMAN A.Multiple view geometry in computer vision[M].Cambridge:Cambridge University Press,2000.
[12]JACOBS D. Linear fitting with missing data:applications to structure from motion and to characterizing intensity images:proceedings of the IEEE Conference on Computer Vision and Pattern Recognition[C].[S.l.]:[s.n.],1997:206-212.
[13]HAN M,KANADE T. Creating 3D models with uncalibrated cameras:proceedings of the 5th IEEE Workshop on Applications of Computer Vision[C].[S.l.]:[s.n.],2000:178-185.
[14]SAINZ M,BAGHERZADEH N,SUSIN A. Recovering 3D metric structure and motion from multiple uncalibrated cameras:proceedings of International Conference on Information Technology: Coding and Computing[C].[S.l.]:[s.n.],2002:268-273.
[15]LIEBOWITZ D, ZISSERMAN A. Metric rectification for perspective images of planes:proceedings of the IEEE Conference on Computer Vision and Pattern Recognition[C].[S.l.]:[s.n.],1998:482-488.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”