佟 帥,徐曉剛,邵承永
(海軍大連艦艇學院裝備自動化系,遼寧 大連 116018)
快速、精確的三維建模一直是計算機應用領域追求的目標之一。傳統的基于幾何的建模技術雖日益改進,但對構建稍復雜的場景物體的三維模型仍十分耗時、甚至難以建模,且所建模型的真實感較差。而基于圖像的建模技術(Image-based modeling,IBM)因具有成本低廉、使用方便、真實感強等優點,近些年已經逐漸成為計算機視覺和計算機圖形學領域的一個新的研究熱點[1]。
基于圖像的建模技術,主要指利用二維圖像所提供的信息重建出物體的三維模型,其中二維圖像通常包括視頻圖像、深度圖像、真實照片及渲染圖像等[2]。常見的基于圖像的建模技術主要利用不同圖片中相同特征點的匹配信息進行三維建模。但目前特征點檢測與匹配方法仍不夠穩定,受到紋理、噪聲等因素的影響,常常無法檢測到描述物體輪廓特征的關鍵點,不能反映物體的結構,致使自動三維建模的效果不理想[3]。
引入人工交互則可以解決這一問題,由用戶手動從圖像中指定待建場景物體的特征或輪廓,再直接對被指定的特征或輪廓的三維信息進行恢復,這樣就可以基本保證物體的輪廓信息可以得到較為精確的恢復。近年來,在科研及商業領域都出現了這類建模系統。如劉鋼等提出的基于圖像序列的場景交互建模系統[4],采用幾何空間層次分級重建方法,由用戶在2幅圖像中交互的指定匹配特征進行重建,但該系統僅支持基于兩幅圖像的建模,且由用戶依靠放大圖像手動進行特征匹配在圖像清晰度較低或噪聲較大的情況下精度無法保證。2005年,EOS公司推出了基于圖像建模系統軟件PhotoModeler[5],可以交互指定視頻上的對應特征關系實現較復雜場景的三維重建;2007年,Anton van den Hengel等在SIGGRAPH大會上提出的基于視頻的交互建模系統VideoTrace[6],該系統允許用戶從視頻場景中對感興趣的物體進行建模,操作直觀,交互速度快。但上述國外建模系統沒有給出任何技術路線及實現方式的公開文檔。此外上述系統存在算法復雜及系統運行負擔較大的問題。
針對上述系統的不足,在傳統基于圖像的三維建模方法基礎上,提出了一種基于視頻的交互式建模方法。首先對視頻中的特征點進行自動跟蹤匹配,計算特征點三維信息和攝像機參數,隨后在圖像中手動選取物體輪廓關鍵點,以描述物體幾何結構,再基于CAHV攝像機模型,利用已獲得的攝像機參數及特征點三維坐標等信息構建三維網格,并通過自動的紋理映射獲得最終的三維模型。
CAHV攝像機模型[7]是基于針孔攝相機模型的標準的線性攝影測量模型。這種模型對于視場比較小的情況很有效,而且也可以作為某些更復雜攝像機模型的一個組成部分,被廣泛應用在機器視覺的各個領域。
CAHV模型如圖1所示。其中,向量C用于描述針孔攝像機投影中心(針孔)的坐標,單位向量A用于描述攝像機光軸(圖像平面的法向量)方向。單位向量H'和V'分別表示圖像平面x坐標軸和y坐標軸方向,hc和vc分別為主點(光軸與圖像平面交點)在圖像平面上的橫、縱坐標,單位為像素。hs和vs分別為物理焦距F以成像儀上像素單元的寬度(x方向)和高度(y方向)為度量單位時的長度,單位為像素(因為成像儀上的像素單元并不一定是正方形,也可能是矩形,因此,在必須要用像素表示攝像機焦距時,就需要用“水平像素”和“垂直像素”來分別度量)。

圖1 CAHV攝像機模型Fig.2 CAHV camera model
設向量P為物理空間一點P的向量,且該點在圖像平面上投影的像素坐標為(i,j)。根據向量投影及相似三角形關系則有:

定義向量H,V如下:

則式(1)和式(2)可變換為:

使用C,A,H,V四個向量即可將三維空間內一點變換到二維圖像平面上的一點。
一般基于視頻的三維建模方法都是直接采用固定的特征點提取與匹配算法(如SIFT,SUSAN算法等)提取并匹配特征點,但是由于自動提取的特征點常常無法反映場景物體的輪廓,效果并不理想。本文方法將SIFT算法與人工交互相結合,以獲得能描述物體輪廓結構的關鍵點的三維信息。
首先利用穩定的特征點提取與匹配算法(如SIFT[8]算法)對視頻中的特征點進行跟蹤匹配,計算其三維坐標信息,并使用這些信息計算CAHV攝像機模型相關參數。
根據式(5)和式(6),設三維點P坐標為(X,Y,Z),并使用齊次坐標設置三維向量(x,y,z)表示圖像平面上的點,x,y,z值如下:

則點P在二維圖像平面上的投影坐標為(x/z,y/z),同時有如下等式:

這樣就建立起了空間點三維坐標與其在圖像上投影點坐標的關系。利用算法跟蹤的一系列特征點就可以構建方程組并求解出C,A,H,V四個向量。
然后,采取交互式操作手動從任意幅圖像中提取物體的基本輪廓的關鍵點。對于任意手動提取的關鍵點m,若點m某一鄰域內(鄰域范圍人工指定)存在SIFT特征點的情況,直接使用SIFT特征點三維信息作為點m的三維信息。對于該鄰域中沒有SIFT特征點的情況,則需要利用已獲得的特征點的三維信息估計點m的三維信息。
根據式(10),已知 C,A,H,V四個向量以及SIFT特征點的三維信息。在已匹配的特征點集中尋找與點m在當前圖像中歐氏距離最近的點,將這個特征點的z值作為點m的z值的估計值z',這時z'與z的偏差還比較大,需要進一步修正使其盡可能接近真實值z。使用z',結合點m的圖像坐標(x/z,y/z),就可以由式(10)逆推出m對應空間點M的三維坐標的估計值(X',Y',Z')。使用此三維坐標的估計值計算點M在其他圖像中的投影點。在其他圖像中對這些投影點的位置進行手動修正,再使用修正后的投影點坐標通過式(10)修正空間點M的三維坐標估計值。通過多次迭代修正,使估計值逼近點M的真實坐標值。
恢復了可以描述物體輪廓所需的關鍵點的三維坐標信息之后,就可以對這些特征點進行網格構建。
網格構建可以使用Delaunay三角剖分算法實現,三角剖分算法可以自動構建網格,但有可能會出現網格與物理輪廓不一致的情況,因此,在工作量不大的情況下,可采用人工交互的方法手動構建網格。
紋理映射方面,本文使用一種較為簡單的方法自動從原始圖像中為重建的幾何模型抽取紋理,并進行紋理映射。對于重建模型的每一個表面三角塊,從原始視頻中選擇與其形狀大小最接近的紋理,通過適當變形和拉伸將紋理映射到模型表面,獲得具有高度真實感的三維模型。
本文方法實現流程如下:
1)選取視頻中多幀圖像,使用SIFT算法提取并匹配特征點;
2)求解CAHV攝像機模型各個參數及SIFT特征點三維坐標;
3)從1幀或多幀圖像中選取一系列可以描述物體輪廓的點,應用第1.2節中方法計算并修正這些輪廓點的三維坐標;
4)手動連接各輪廓點形成三角網格,進行紋理映射獲得最終三維模型。
實驗程序使用 C++語言實現,使用Microsoft Visual Studio 2008作為開發環境,應用標準模板庫STL(Standard Template Library)以及 OpenCV[9]作為輔助。三維模型使用X3D[10]語言輸出并顯示。圖2所示為視頻中待建模的物體。圖3所示的是實驗中交互選點及連接的情況。圖4分別為從2個角度觀察的模型網格。圖5為進行了紋理映射之后從3個角度觀察的的物體模型。

圖2 視頻某幀圖像Fig.2 One frame of the video
由于實驗視頻并不是360°全角度拍攝,因此只能選擇物體的一部分進行建模。從實驗結果圖可以看出,本文方法可以準確地獲取物體輪廓,重建模型幾何關系基本正確,紋理映射準確,可以獲得具有高度真實感的三維模型。
但該方法對手動取點的要求比較高,選取的輪廓點越細致,建模效果也越精細。此外,由于工程車的排氣管部分沒有取點,排氣管部分僅被作為紋理直接映射到模型上。


圖5 有紋理模型Fig.5 Model with texture
本文提出基于視頻的交互式三維建模方法,使用普通攝像機拍攝的視頻,通過手動取點可以準確提取物體輪廓,重建幾何關系基本正確,紋理映射準確,是一種十分具有實際應用價值的三維建模方法。但本文方法的交互量仍比較大,同時對曲線及曲面的建模仍有很大局限性,這些也是未來研究中值得進一步探討的問題。
[1]WONG T T,HENG P A,NG W Y.Image-based rendering with controllable illumination[C].In 8th Eurographics Workshop on Rendering,1997.13 -22.
[2]BEARDSLEY P,TORR P,ZISSERMAN A.3D Model acquisition from extended image sequences[C].Proc.Fourth European Conf.Computer Vision,B.Buxton and R.Cipolla,eds.,1996.683 -695.
[3]呼艷,耿國華,王小鳳,等.一種用于未標定圖像三維重建的立體匹配算法[J].計算機應用研究,2010,27(10):3964-3967.HU Yan,GENG Guo-hua,WANG Xiao-feng,et al.Stereo matching algorithm for3D reconstruction based on uncalibrated images[J].Application Research of Computers,2010,27(10):3964 -3967.
[4]劉鋼,彭群生,鮑虎軍.基于多幅圖像的場景交互建模系統[J].計算機輔助設計與圖形學學報,2004,16(10):1419-1424.LIU Gang,PENG Qun-sheng,BAO Hu-jun.An interactive modeling system from multiple images[J].Journal of Computer-aided Design & Computer Graphics,2004,16(10):1419-1424.
[5]Eos Systems,Photomodeler:A commercial photogrammetry product.[EB/OL]http://www.photomodeler.com.
[6]Ven Den Hengel A,DICK A,et al.,Videotrace:rapid interactive scene modelling from video[J].ACM Transactions on Graphics,2007,26(3):86 -90.
[7]YAKIMOVSKI Y, CUNNINGHAM R.A system for extracing 3-D measurements from a stereo pair of TV cameras[J].CVGIP,1978,(7):195 -210.
[8]LOWE D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91 -110.
[9]OpenCV Wiki.(n.d.).Retrieved from OpenCV.[EB/OL]http://opencv.willowgarage.com/.
[10]Web3D consortium.(n.d.).X3D Developers.Retrieved from Web 3D.[EB/OL]http://www.web3d.org/x3d/.