李 亮,張樹生,白曉亮,賀 強
(西北工業(yè)大學(xué)現(xiàn)代設(shè)計與集成制造技術(shù)教育部重點實驗室,西安710072)
三維模型具有更加豐富的視覺效果,因而越來越受到人們的青睞。盡管利用三維建模軟件(3D Max、Maya等)或三維光學(xué)掃描設(shè)備獲得三維模型越來越容易,但是這類獲取通常是一項繁瑣且代價高昂的工作?;趫D像的三維重建具有成本低,簡便等優(yōu)點,因此成為了計算機圖形學(xué)和計算機視覺領(lǐng)域當(dāng)前的研究熱點。
與基于圖像的自動三維重建相比,交互式三維重建具有更高的可靠性和準確性[1]。因此,交互式的三維重建方法得到了深入研究,出現(xiàn)了相對成熟的商業(yè)軟件系統(tǒng),如Photo-Modeler、insight3D等。然而現(xiàn)有的交互式重建方法的建模過程較為繁瑣,且交互工作量較大。該類方法通常的建模流程是:首先在多幅圖像間手動構(gòu)建匹配點對,然后連接這些點形成反映物體結(jié)構(gòu)信息的多邊形,最后計算各個匹配點的三維坐標,從而得到三維模型。因此,如何使交互建模過程更加簡捷、高效且盡可能減少交互的工作量是當(dāng)前交互式三維重建的目標。
綜上所述,提出一種快速、基于序列圖像的交互式三維重建方法。通過在序列圖像上交互選取少量的點即可構(gòu)成反映物體輪廓特征的多邊形,根據(jù)該多邊形,自動提取出物體精確的外形輪廓,通過輪廓點匹配的方式重建出三維模型。該方法無需精確指定匹配的點對,顯著降低了交互工作量。
數(shù)碼相機作為一種普通的家用電器已經(jīng)普遍存在于人們的日常生活中。采用普通數(shù)碼相機以定焦方式獲得序列圖像。從不同角度,拍攝不少于3幅的物體圖像,按照角度的大小順序組成序列圖像。
攝像機參數(shù)的獲取采用計算機視覺中成熟的SFM[2](structure from motion)技術(shù),SFM 技術(shù)提供了一個很好的攝像機參數(shù)獲取方案,其能夠從序列圖像得到攝像機的內(nèi)外部參數(shù),以及一些用來進行攝像機定標的匹配點對。
物體的輪廓反映了物體的尺寸及形狀信息。通過交互與輪廓自動跟蹤結(jié)合的方式來獲取物體的輪廓,這樣既保證了輪廓提取的準確性,也減少了用戶的工作量。用戶首先在圖像上拾取點,然后連接點以構(gòu)建一個逼近物體輪廓形狀的多邊形。在此基礎(chǔ)上,利用輪廓跟蹤算法自動提取出多邊形每條邊對應(yīng)的輪廓。
首先對圖像進行超級像素[3]的分割,然后在超級像素分割結(jié)果的基礎(chǔ)上,采用迪杰斯特拉最短路徑算法[4]自動跟蹤輪廓。
將圖像劃分成一個個具有相同顏色屬性的小區(qū)域,稱這樣的區(qū)域為超級像素,如圖1所示。超級像素之間的邊界很好地反映了物體的輪廓,因而利用超級像素之間的邊界來提取輪廓可極大提高輪廓跟蹤的效率。
圖1 超級像素分割結(jié)果
對圖像進行超級像素分割后,在交互建立的輪廓多邊形基礎(chǔ)上,利用最短路徑算法來提取相應(yīng)的輪廓。尋找輪廓多邊形其中一條邊所對應(yīng)的準確輪廓的具體過程如下:
Step1根據(jù)輪廓多邊形的一條邊,自動擴展出一個矩形區(qū)域,將這個區(qū)域內(nèi)超級像素的邊界點加入到頂點集V中,作為圖G的頂點,將距離這條邊其中一個端點最近的一個超級像素邊界點作為最短路徑的起始點v0。
Step2計算V中任意兩點vi,vj之間的代價值。首先利用vi,vj的圖像坐標計算它們之間的歐氏距離:
若dij<1.5,即兩點相鄰,則這兩點之間的代價值為Gij=dij/m;若 dij>1.5,則代價值為 Gij=max=1000。m為點vi,vj所在邊界兩邊的兩個超級像素的顏色直方圖比較結(jié)果,m越大兩個超級像素的顏色差異越大。
Step3將v0加入到集合S中,初始化disti=G0i,將v0到其余頂點的路徑長度初始化為代價值。
Step4從圖 G中選擇頂點 vk,使得 distk=min(disti|vi∈V-S),則vk為目前求得的下一條從v0出發(fā)的最短路徑的終點。
Step5修改從v0出發(fā)到集合V-S上任一頂點vi的最短路徑的長度。如果
則
Step6重復(fù)步驟Step4、Step5,即可按最短路徑長度的遞增順序,逐個求出v0到圖中其它逐個頂點的最短路徑,直到找到圖G中每個頂點的最短路徑。然后在圖G中找到與該邊另一端點距離最近的點,即可得到準確的輪廓。
由于成像和噪聲等因素的影響,提取出的輪廓點所對應(yīng)的三維點并不都是在其所屬的直線或是曲線上。這會造成重建的三維對象不夠準確且視覺效果差。一般的處理方法是對重建的三維對象進行光順的平滑處理。雖然這樣的處理也能得到較為真實的物體外形數(shù)據(jù),但會顯著增加后續(xù)的工作量。針對這一問題,在輪廓匹配和三維重建之前對輪廓點集進行逼近其真實形狀的處理(見圖2)。采用二分法對輪廓點集進行輪廓逼近,具體流程如下:
Step1將連接輪廓的起點和終點的直線作為初始直線。
Step2計算輪廓上從起點到終點的每一點到所對應(yīng)直線段的距離。
Step3找出距離最遠的點,如果距離大于所設(shè)定的逼近精度,則將該點所對應(yīng)的直線段打斷,分別以該點作為終點和起點,插入兩條新的直線段。
Step4重復(fù)步驟Step2和Step3,直到最短距離小于設(shè)定的逼近精度。
圖2 輪廓逼近
經(jīng)過上述處理后,得到了真實的輪廓點集。對輪廓點集匹配后就能重建出對應(yīng)的三維模型。
在進行輪廓特征點的匹配時,需要為點建立一個描述子,描述子的優(yōu)劣直接影響匹配結(jié)果。Transformed color SIFT[5]描述子具有旋轉(zhuǎn)、尺度不變性,且能描述彩色圖像,因此采用該描述子描述輪廓特征點。Transformed color SIFT消除了光強度變化引起的不規(guī)則顏色分布,抑制了直方圖產(chǎn)生的偏移。該方法首先在RGB模型中對每個顏色通道減掉其顏色分布的均值μ,除以該通道下顏色分布的標準偏差σ,如下式所示
對原圖像進行上述處理后,計算每個通道分量的SIFT[6]描述子,對每個輪廓特征點用128×3維的特征描述子進行描述,詳見文獻[5]。
對于圖像 Ik上的輪廓點集{vk1,vk2,vk3…},首先確定與Ik匹配的圖像Im。對于輪廓點集{vk1,vk2,vk3…}的點vki,用下述方法找到其在Im上的匹配點。
(2)對于輪廓點集中的點vki,按照上述方法找到其待匹配點集{vmi},用描述子描述vki及待匹配點集{vmi}中的點。
(3)計算點vki與其待匹配點集{vmi}中每一點的描述子向量的距離,距離最近的點為vki在圖像Im上的匹配點。
在進行了點的匹配后,就可以通過匹配點對得到三維點的坐標。對于一對匹配點對m1=(u1v11)T和m2=(u2v21)T,由二維圖像點與三維空間點之間的映射關(guān)系可以得到:
其中,M=(X Y Z 1)T為對應(yīng)的空間點三維坐標,P1、P2為攝像機的參數(shù)矩陣。
利用上述兩個方程,采用最小二乘法就可求出各點的 X,Y,Z 值[8]。
采用C++語言,在VS2010平臺下開發(fā)了一個交互式快速三維重建原型系統(tǒng),驗證了所提方法的有效性。圖3是采用普通數(shù)碼相機拍攝的4副圖像,圖4為交互選取多邊形的示意圖,圖5為三維重建得到的線框模型,圖6為添加紋理效果的三維模型。
圖3 序列圖像
提出了一種快速、基于序列圖像的交互式三維重建方法。利用普通數(shù)碼相機所拍攝的相片,采用人工交互和輪廓自動跟蹤的方式獲得物體的輪廓,然后自動匹配出對應(yīng)的點對,從而重建出了三維模型。該方法在一定程度上提高了交互式序列圖像三維重建方法的自動化程度,獲得了更為精確的物體輪廓,從而重建出更加逼近物體真實外形的三維模型。該方法對不含復(fù)雜曲面的物體重建效果較好,下一步的工作是增加對該類對象重建的處理方法。
[1] 史利民,郭復(fù)勝,高偉,等.基于語義交互的三維重建[J].計算機輔助設(shè)計與圖形學(xué)報,2011,23(5):839-848.
[2] M Pollefeys,L Van Gool,M Vergauwen,et al.Visual modeling with a hand-held camera[J].International Journal of Computer Vision,2004,59(3):207-232.
[3] X Ren,J Malik.Learning a classification model for segmentation[C].In Proc.9th Int.Conf.Computer Vision,2003(1):10-17.
[4] 耿國華.數(shù)據(jù)結(jié)構(gòu)[M].西安:西安電子科技大學(xué)出版社,2002:183-185.
[5] Koen E.A.van de Sande,Theo Gevers,Cees G.M.Snoek.Evaluating color descriptors for object and scene recognition[J].IEEE Transactions on PAMI,2010,32(9):1582-1596.
[6] David G L.Distinctive image features from scale-invariant key-points[J].International Journal of Computer Vision,2004,60(2):91-110.
[7] 吳福朝.計算機視覺中的數(shù)學(xué)方法[M].北京:科學(xué)出版社,2008:63-65
[8] 陳勝勇,劉勝.基于OpenCV的計算機視覺技術(shù)實現(xiàn)[M].北京:科學(xué)出版社,2008:400-401.