佟 帥,徐曉剛,邵承永
(海軍大連艦艇學(xué)院裝備自動(dòng)化系,遼寧 大連 116018)
快速、精確的三維建模一直是計(jì)算機(jī)應(yīng)用領(lǐng)域追求的目標(biāo)之一。傳統(tǒng)的基于幾何的建模技術(shù)雖日益改進(jìn),但對構(gòu)建稍復(fù)雜的場景物體的三維模型仍十分耗時(shí)、甚至難以建模,且所建模型的真實(shí)感較差。而基于圖像的建模技術(shù)(Image-based modeling,IBM)因具有成本低廉、使用方便、真實(shí)感強(qiáng)等優(yōu)點(diǎn),近些年已經(jīng)逐漸成為計(jì)算機(jī)視覺和計(jì)算機(jī)圖形學(xué)領(lǐng)域的一個(gè)新的研究熱點(diǎn)[1]。
基于圖像的建模技術(shù),主要指利用二維圖像所提供的信息重建出物體的三維模型,其中二維圖像通常包括視頻圖像、深度圖像、真實(shí)照片及渲染圖像等[2]。常見的基于圖像的建模技術(shù)主要利用不同圖片中相同特征點(diǎn)的匹配信息進(jìn)行三維建模。但目前特征點(diǎn)檢測與匹配方法仍不夠穩(wěn)定,受到紋理、噪聲等因素的影響,常常無法檢測到描述物體輪廓特征的關(guān)鍵點(diǎn),不能反映物體的結(jié)構(gòu),致使自動(dòng)三維建模的效果不理想[3]。
引入人工交互則可以解決這一問題,由用戶手動(dòng)從圖像中指定待建場景物體的特征或輪廓,再直接對被指定的特征或輪廓的三維信息進(jìn)行恢復(fù),這樣就可以基本保證物體的輪廓信息可以得到較為精確的恢復(fù)。近年來,在科研及商業(yè)領(lǐng)域都出現(xiàn)了這類建模系統(tǒng)。如劉鋼等提出的基于圖像序列的場景交互建模系統(tǒng)[4],采用幾何空間層次分級重建方法,由用戶在2幅圖像中交互的指定匹配特征進(jìn)行重建,但該系統(tǒng)僅支持基于兩幅圖像的建模,且由用戶依靠放大圖像手動(dòng)進(jìn)行特征匹配在圖像清晰度較低或噪聲較大的情況下精度無法保證。2005年,EOS公司推出了基于圖像建模系統(tǒng)軟件PhotoModeler[5],可以交互指定視頻上的對應(yīng)特征關(guān)系實(shí)現(xiàn)較復(fù)雜場景的三維重建;2007年,Anton van den Hengel等在SIGGRAPH大會(huì)上提出的基于視頻的交互建模系統(tǒng)VideoTrace[6],該系統(tǒng)允許用戶從視頻場景中對感興趣的物體進(jìn)行建模,操作直觀,交互速度快。但上述國外建模系統(tǒng)沒有給出任何技術(shù)路線及實(shí)現(xiàn)方式的公開文檔。此外上述系統(tǒng)存在算法復(fù)雜及系統(tǒng)運(yùn)行負(fù)擔(dān)較大的問題。
針對上述系統(tǒng)的不足,在傳統(tǒng)基于圖像的三維建模方法基礎(chǔ)上,提出了一種基于視頻的交互式建模方法。首先對視頻中的特征點(diǎn)進(jìn)行自動(dòng)跟蹤匹配,計(jì)算特征點(diǎn)三維信息和攝像機(jī)參數(shù),隨后在圖像中手動(dòng)選取物體輪廓關(guān)鍵點(diǎn),以描述物體幾何結(jié)構(gòu),再基于CAHV攝像機(jī)模型,利用已獲得的攝像機(jī)參數(shù)及特征點(diǎn)三維坐標(biāo)等信息構(gòu)建三維網(wǎng)格,并通過自動(dòng)的紋理映射獲得最終的三維模型。
CAHV攝像機(jī)模型[7]是基于針孔攝相機(jī)模型的標(biāo)準(zhǔn)的線性攝影測量模型。這種模型對于視場比較小的情況很有效,而且也可以作為某些更復(fù)雜攝像機(jī)模型的一個(gè)組成部分,被廣泛應(yīng)用在機(jī)器視覺的各個(gè)領(lǐng)域。
CAHV模型如圖1所示。其中,向量C用于描述針孔攝像機(jī)投影中心(針孔)的坐標(biāo),單位向量A用于描述攝像機(jī)光軸(圖像平面的法向量)方向。單位向量H'和V'分別表示圖像平面x坐標(biāo)軸和y坐標(biāo)軸方向,hc和vc分別為主點(diǎn)(光軸與圖像平面交點(diǎn))在圖像平面上的橫、縱坐標(biāo),單位為像素。hs和vs分別為物理焦距F以成像儀上像素單元的寬度(x方向)和高度(y方向)為度量單位時(shí)的長度,單位為像素(因?yàn)槌上駜x上的像素單元并不一定是正方形,也可能是矩形,因此,在必須要用像素表示攝像機(jī)焦距時(shí),就需要用“水平像素”和“垂直像素”來分別度量)。
圖1 CAHV攝像機(jī)模型Fig.2 CAHV camera model
設(shè)向量P為物理空間一點(diǎn)P的向量,且該點(diǎn)在圖像平面上投影的像素坐標(biāo)為(i,j)。根據(jù)向量投影及相似三角形關(guān)系則有:
定義向量H,V如下:
則式(1)和式(2)可變換為:
使用C,A,H,V四個(gè)向量即可將三維空間內(nèi)一點(diǎn)變換到二維圖像平面上的一點(diǎn)。
一般基于視頻的三維建模方法都是直接采用固定的特征點(diǎn)提取與匹配算法(如SIFT,SUSAN算法等)提取并匹配特征點(diǎn),但是由于自動(dòng)提取的特征點(diǎn)常常無法反映場景物體的輪廓,效果并不理想。本文方法將SIFT算法與人工交互相結(jié)合,以獲得能描述物體輪廓結(jié)構(gòu)的關(guān)鍵點(diǎn)的三維信息。
首先利用穩(wěn)定的特征點(diǎn)提取與匹配算法(如SIFT[8]算法)對視頻中的特征點(diǎn)進(jìn)行跟蹤匹配,計(jì)算其三維坐標(biāo)信息,并使用這些信息計(jì)算CAHV攝像機(jī)模型相關(guān)參數(shù)。
根據(jù)式(5)和式(6),設(shè)三維點(diǎn)P坐標(biāo)為(X,Y,Z),并使用齊次坐標(biāo)設(shè)置三維向量(x,y,z)表示圖像平面上的點(diǎn),x,y,z值如下:
則點(diǎn)P在二維圖像平面上的投影坐標(biāo)為(x/z,y/z),同時(shí)有如下等式:
這樣就建立起了空間點(diǎn)三維坐標(biāo)與其在圖像上投影點(diǎn)坐標(biāo)的關(guān)系。利用算法跟蹤的一系列特征點(diǎn)就可以構(gòu)建方程組并求解出C,A,H,V四個(gè)向量。
然后,采取交互式操作手動(dòng)從任意幅圖像中提取物體的基本輪廓的關(guān)鍵點(diǎn)。對于任意手動(dòng)提取的關(guān)鍵點(diǎn)m,若點(diǎn)m某一鄰域內(nèi)(鄰域范圍人工指定)存在SIFT特征點(diǎn)的情況,直接使用SIFT特征點(diǎn)三維信息作為點(diǎn)m的三維信息。對于該鄰域中沒有SIFT特征點(diǎn)的情況,則需要利用已獲得的特征點(diǎn)的三維信息估計(jì)點(diǎn)m的三維信息。
根據(jù)式(10),已知 C,A,H,V四個(gè)向量以及SIFT特征點(diǎn)的三維信息。在已匹配的特征點(diǎn)集中尋找與點(diǎn)m在當(dāng)前圖像中歐氏距離最近的點(diǎn),將這個(gè)特征點(diǎn)的z值作為點(diǎn)m的z值的估計(jì)值z',這時(shí)z'與z的偏差還比較大,需要進(jìn)一步修正使其盡可能接近真實(shí)值z。使用z',結(jié)合點(diǎn)m的圖像坐標(biāo)(x/z,y/z),就可以由式(10)逆推出m對應(yīng)空間點(diǎn)M的三維坐標(biāo)的估計(jì)值(X',Y',Z')。使用此三維坐標(biāo)的估計(jì)值計(jì)算點(diǎn)M在其他圖像中的投影點(diǎn)。在其他圖像中對這些投影點(diǎn)的位置進(jìn)行手動(dòng)修正,再使用修正后的投影點(diǎn)坐標(biāo)通過式(10)修正空間點(diǎn)M的三維坐標(biāo)估計(jì)值。通過多次迭代修正,使估計(jì)值逼近點(diǎn)M的真實(shí)坐標(biāo)值。
恢復(fù)了可以描述物體輪廓所需的關(guān)鍵點(diǎn)的三維坐標(biāo)信息之后,就可以對這些特征點(diǎn)進(jìn)行網(wǎng)格構(gòu)建。
網(wǎng)格構(gòu)建可以使用Delaunay三角剖分算法實(shí)現(xiàn),三角剖分算法可以自動(dòng)構(gòu)建網(wǎng)格,但有可能會(huì)出現(xiàn)網(wǎng)格與物理輪廓不一致的情況,因此,在工作量不大的情況下,可采用人工交互的方法手動(dòng)構(gòu)建網(wǎng)格。
紋理映射方面,本文使用一種較為簡單的方法自動(dòng)從原始圖像中為重建的幾何模型抽取紋理,并進(jìn)行紋理映射。對于重建模型的每一個(gè)表面三角塊,從原始視頻中選擇與其形狀大小最接近的紋理,通過適當(dāng)變形和拉伸將紋理映射到模型表面,獲得具有高度真實(shí)感的三維模型。
本文方法實(shí)現(xiàn)流程如下:
1)選取視頻中多幀圖像,使用SIFT算法提取并匹配特征點(diǎn);
2)求解CAHV攝像機(jī)模型各個(gè)參數(shù)及SIFT特征點(diǎn)三維坐標(biāo);
3)從1幀或多幀圖像中選取一系列可以描述物體輪廓的點(diǎn),應(yīng)用第1.2節(jié)中方法計(jì)算并修正這些輪廓點(diǎn)的三維坐標(biāo);
4)手動(dòng)連接各輪廓點(diǎn)形成三角網(wǎng)格,進(jìn)行紋理映射獲得最終三維模型。
實(shí)驗(yàn)程序使用 C++語言實(shí)現(xiàn),使用Microsoft Visual Studio 2008作為開發(fā)環(huán)境,應(yīng)用標(biāo)準(zhǔn)模板庫STL(Standard Template Library)以及 OpenCV[9]作為輔助。三維模型使用X3D[10]語言輸出并顯示。圖2所示為視頻中待建模的物體。圖3所示的是實(shí)驗(yàn)中交互選點(diǎn)及連接的情況。圖4分別為從2個(gè)角度觀察的模型網(wǎng)格。圖5為進(jìn)行了紋理映射之后從3個(gè)角度觀察的的物體模型。
圖2 視頻某幀圖像Fig.2 One frame of the video
由于實(shí)驗(yàn)視頻并不是360°全角度拍攝,因此只能選擇物體的一部分進(jìn)行建模。從實(shí)驗(yàn)結(jié)果圖可以看出,本文方法可以準(zhǔn)確地獲取物體輪廓,重建模型幾何關(guān)系基本正確,紋理映射準(zhǔn)確,可以獲得具有高度真實(shí)感的三維模型。
但該方法對手動(dòng)取點(diǎn)的要求比較高,選取的輪廓點(diǎn)越細(xì)致,建模效果也越精細(xì)。此外,由于工程車的排氣管部分沒有取點(diǎn),排氣管部分僅被作為紋理直接映射到模型上。
圖5 有紋理模型Fig.5 Model with texture
本文提出基于視頻的交互式三維建模方法,使用普通攝像機(jī)拍攝的視頻,通過手動(dòng)取點(diǎn)可以準(zhǔn)確提取物體輪廓,重建幾何關(guān)系基本正確,紋理映射準(zhǔn)確,是一種十分具有實(shí)際應(yīng)用價(jià)值的三維建模方法。但本文方法的交互量仍比較大,同時(shí)對曲線及曲面的建模仍有很大局限性,這些也是未來研究中值得進(jìn)一步探討的問題。
[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]呼艷,耿國華,王小鳳,等.一種用于未標(biāo)定圖像三維重建的立體匹配算法[J].計(jì)算機(jī)應(yīng)用研究,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]劉鋼,彭群生,鮑虎軍.基于多幅圖像的場景交互建模系統(tǒng)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),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/.