杜 煒,李 倩
(1.海南大學(xué) 美術(shù)與設(shè)計學(xué)院,海南 ???570228;2.中國地質(zhì)大學(xué)(武漢),湖北 武漢 430074)
為方便城市規(guī)劃管理,對城市虛擬地理場景進(jìn)行三維重建。城市虛擬地理場景是指通過計算機虛擬技術(shù)構(gòu)建一種模擬城市的操作場景,形成一個逼真感官世界。用戶不但可以沉浸在虛擬城市中,還能進(jìn)行評價分析與決策,沉浸感與交互感是虛擬城市場景的兩個主要特征?,F(xiàn)階段使用計算機進(jìn)行三維重建的方式包括:利用掃描儀獲得三維模型法[1],該方法可以高效、方便地建立目標(biāo)三維模型,在虛擬現(xiàn)實領(lǐng)域得到推廣。但是掃描儀成本較高,且易受環(huán)境與被測目標(biāo)性質(zhì)影響?;趫D像序列的三維重建方法是計算機視覺與圖形學(xué)技術(shù)相結(jié)合的產(chǎn)物,屬于新興技術(shù),利用圖像恢復(fù)目標(biāo)三維模型,是相機拍攝照片的逆過程[2]。該方法需要事先定標(biāo)相機,確定相機內(nèi)、外部參數(shù),對匹配點進(jìn)行逆變換處理,引入到三維空間內(nèi),完成三維重構(gòu)。但是相機定標(biāo)程度較為復(fù)雜,每進(jìn)行一次拍攝都需要重新定標(biāo),確保參數(shù)實時變化,因此該方法實用性差,推廣應(yīng)用難度較大。為改善上述方法缺陷,本文利用非定標(biāo)方法對城市虛擬地理場景進(jìn)行三維重建。實驗結(jié)果表明,該重建方法可以減少定標(biāo)工作量,降低對計算性能的要求,使重建后的虛擬場景更加逼真。仿真結(jié)果表明,所提方法在非定標(biāo)情況下重建的三維虛擬場景趨光性更好,數(shù)據(jù)能夠有效連接提高逼真度與可靠性。
城市虛擬地理場景的基本單元是節(jié)點,任意一幅場景圖均屬于若干節(jié)點的有序組合,其結(jié)構(gòu)與倒置的樹形相似[3]。組成場景圖的節(jié)點包含幾何節(jié)點、燈光節(jié)點、組合節(jié)點等,簡單的城市虛擬場景結(jié)構(gòu)如圖1所示。
圖1 簡單的虛擬城市場景結(jié)構(gòu)圖
圖1中根節(jié)點是此場景入口處,是無論哪幅圖都必須具備的節(jié)點。不同類型節(jié)點反映信息不同,根節(jié)點反映環(huán)境的光強信息,而組合節(jié)點中的變形節(jié)點則體現(xiàn)虛擬環(huán)境中目標(biāo)幾何信息。此種樹形結(jié)構(gòu)表現(xiàn)了空間關(guān)系與場景渲染的順序和屬性。
每個虛擬地理場景視窗都存在一個場景結(jié)構(gòu),均有一個視點在視窗中,可實現(xiàn)將一個場景繪制到另一個地方。根據(jù)樹形結(jié)構(gòu)圖表示節(jié)點之間相互聯(lián)系,對場景繪制和渲染,達(dá)到更新場景圖目的。此過程利用的方法是從結(jié)構(gòu)圖根節(jié)點以深度遍歷形式搜尋,深度遍歷搜索過程如圖2所示。
圖2 遍歷過程示意圖
圖2中,箭頭兩側(cè)數(shù)字表示搜索步驟。虛擬場景結(jié)構(gòu)描繪了樓房、道路等目標(biāo)虛擬環(huán)境。在遍歷過程中,燈光等節(jié)點根據(jù)自身所屬范圍對幾何節(jié)點進(jìn)行更新,節(jié)點具有積累與傳遞屬性,經(jīng)過遍歷的節(jié)點會對后續(xù)節(jié)點產(chǎn)生影響。若后續(xù)節(jié)點不再需要之前節(jié)點屬性時,需要將分離節(jié)點當(dāng)作組節(jié)點,制約其它節(jié)點作用范圍。
因為城市虛擬地理場景三維模型復(fù)雜度高于計算機處理能力,所以必須降低模型復(fù)雜性,減少需要處理的多邊形數(shù)量。細(xì)節(jié)層次屬于控制復(fù)雜度較好方法,主要思想是利用多層次結(jié)構(gòu)的物體集合表示某個虛擬場景,模型之間區(qū)別依據(jù)是細(xì)節(jié)表現(xiàn)程度。
在實時顯示時,具有簡單細(xì)節(jié)的模型就可以提高顯示速度。在計算機圖形學(xué)中,虛擬場景目標(biāo)一般利用多邊形網(wǎng)格描繪,所以將模型自動生成轉(zhuǎn)變?yōu)槿S多邊形網(wǎng)格簡化問題。網(wǎng)格簡化核心是將多邊形網(wǎng)格構(gòu)建的模型變?yōu)榻颇P停撃P突颈A舫跏寄P吞卣?。常用方法是將一些不重要的頂點或邊移除,只要已知不同逼近精度要求,即可構(gòu)造出層次化模型,增強紋理細(xì)節(jié),改善趨光性。
相機畸變參數(shù)有以下幾種:徑向畸變、切向畸變與平面畸變[4]。在實際三維重建過程中,任意一個相機都存在不同畸變模型,所以需要進(jìn)行不同實驗才能最終確定。
相機使用針孔成像模型,某空間中任意一點Xi在相機中的成像表達(dá)式為
λi=PiXi
(1)
式中:Pi表示投影深度,Xi表示相機內(nèi)參數(shù)矩陣。
3.2.1 相機坐標(biāo)系
如果相機與目標(biāo)所處世界坐標(biāo)系{O,Ex,Ey,Ez}和相機自身所在所標(biāo)系{o,ex,ey,ez}一致。這時相機坐標(biāo)系原點是相機焦心C-(0e,0e,0e)。其xy平面與相機像平面互相平行,像平面描述為ze=f。
相機坐標(biāo)系中,空間內(nèi)任意一點Xe=(Xe,Ye,Ze)T被映射到像平面中某點xe=(xe,ye,ze)T,此變換過程描述為
(2)
變換為齊次坐標(biāo)形式后,初始映射關(guān)系即可利用線性方式表示[5],而聯(lián)合三維與二維點的矩陣稱作投影矩陣。
3.2.2 世界坐標(biāo)系
世界坐標(biāo)系{O,Ex,Ey,Ez}與相機坐標(biāo)系{o,ex,ey,ez}不統(tǒng)一,一般情況下三維目標(biāo)與相機對應(yīng)位置關(guān)系是未知的,這時需要分別區(qū)分世界坐標(biāo)系與相機坐標(biāo)系。三維目標(biāo)的坐標(biāo)到相機坐標(biāo)系存在一個歐式變換Xe=R(XE-t),其中R表示旋轉(zhuǎn)矩陣,t表示平移向量,此時式(4)轉(zhuǎn)換為下述形式
(3)
假設(shè)立方體透視成像后,直線a,d,h交于共同消失點vpx,直線c,i,f相交在某共同消失點vpy,直線b,e,g相交于vpz。消失點和成像平面中其余點不同,描述直線方向數(shù)據(jù),綜合分析消失點可得到三維重建結(jié)構(gòu)數(shù)據(jù)。
射影幾何知識顯示:某組直線L1,L2,L3…Ln在無限遠(yuǎn)點處相交,假定該點成像描述為vp,若這些直線與平面存在平行關(guān)系,則vp在無限遠(yuǎn)處成像;若這些直線不與平面相互平行,則vp在有限遠(yuǎn)處成像,將這些點稱作消失點。圖像中經(jīng)過消失點vp的直線一定與另外直線存在平移關(guān)系。
在齊次坐標(biāo)描述下,空間中某點M=[X;Y;Z;l],投影在圖像上一點m=[u,v;l];空間中某條直線投影在平面中記為l=m1×m2,m1與m2為直線l兩側(cè)端點。如果l1與l2表示任意一對平行直線投影,則消失點為vp=l1×l2。針對空間內(nèi)一組平行直線投影l(fā)i,i=1…n,則消失點可利用下述最小二乘法計算[6]
(4)
若已知空間內(nèi)相互垂直的三個方向消失點vpx,vpy,vpz,它們均符合式(5)要求
(5)
將該公式變換為有關(guān)ω元素的線性方程組,對該方程求解,獲取ω值,再對ω分解能夠建立相機內(nèi)參數(shù)矩陣,完成相機自定標(biāo)。
3.4.1 特征點提取
提出Moravec特征點提取算子方法,遵循下述原理獲取圖像特征點:首先將目標(biāo)圖像灰度化,以重要方向上最小灰度方差表示像元灰度值變化狀況,之后在圖像局部區(qū)域挑選最高興趣點當(dāng)作特征點。特征點表示圖像中特征非常明顯的點,例如灰度極大值點與角頂點。獲取的特征點叫作興趣算子或有利算子[7]。一般來講,興趣點存在一種典型的局部性質(zhì),可通過某種局部檢測算子對其定位。詳細(xì)算法步驟如下
步驟一:若像元(u,v)的灰度值記為gu,v,要想獲取像元(u,v)的興趣值,需要在以像元(u,v)作為中心的5×5窗口中得到四個方向上鄰近像元灰度差的平方和,若k=int(n/2)=2,則平方和計算公式如下
(6)
(7)
(8)
(9)
將其中最小的當(dāng)作像元(u,v)的興趣值
IVu,v=min{V1,V2,V3,V4}
(10)
步驟二:結(jié)合已知閾值,將興趣值高于此閾值的點作為特征備選點。閾值確定需要盡量確保備選點中包含需要的特征點,且不含有太多無用點。
步驟三:在備選點中選擇最大值當(dāng)作需要的特征點,在固定大小窗口中,去除全部非興趣點,僅保留最大興趣值作為該像素唯一特征點。
3.4.2 特征點匹配
假設(shè)存在兩幅待匹配數(shù)字影像A與B,如果利用GAij與GBij分別表示圖像A與B中某個N×N像元陣列第i行j列的灰度值,則灰度均值與方差分別利用下述公式表示
(11)
(12)
A與B像元灰度之間的協(xié)方差計算公式為
(13)
在協(xié)方差CAB取最大值時,A與B中N×N像元陣列屬于匹配的影像陣列,根據(jù)其中點完成匹配。
傳統(tǒng)的利用圖像灰度進(jìn)行特征點匹配方法是檢測標(biāo)準(zhǔn)圖像與待匹配目標(biāo)相關(guān)區(qū)域灰度特征,將待檢測區(qū)域中像元灰度度量定做匹配基礎(chǔ)。本文匹配算法以待檢測區(qū)域灰度協(xié)方差最大值確定影像特征點,匹配過程利用最小二乘影像匹配方法。
在實際應(yīng)用過程中利用上述方法重建后的三維虛擬場景會存在一些噪聲,為改善重建精準(zhǔn)度,必須對結(jié)果進(jìn)行優(yōu)化[8]。利用以下優(yōu)化函數(shù)對其做去噪處理
(14)
式中,xij表示歐式空間中第j個點在第i個攝像機上的逆投影坐標(biāo),Angleei表示第i個相機的姿態(tài)歐拉角,tei為與第i個相機相對的平移向量,Qej屬于空間中第j個三維點,D是圖像畸變因子。
計算匹配點三維坐標(biāo)時,將世界坐標(biāo)系放在第一個攝像機坐標(biāo)系位置上,此時攝像機投影矩陣如下
(15)
(16)
式中,αu=f/dx=f/dy屬于x與y軸上的比例系數(shù),Zc可當(dāng)作常數(shù)因子,將式(14)與(15)聯(lián)立,則可獲得
(17)
至此,實現(xiàn)了城市虛擬地理三維重建,獲得的三維點尺寸與實際場景尺寸之間具有一個比例因子,可以在空間中設(shè)置標(biāo)準(zhǔn)桿計算出此比例因子,獲取和虛擬場景相同的尺寸。
為驗證本文所提的城市虛擬地理場景三維重建方法有效性,設(shè)置目標(biāo)參數(shù)如下:獲取的異變值X在[0.5,1.5]范圍內(nèi),過程參數(shù)Y在[755.12,785.56]之間。最大保留參量Z設(shè)置為51.2,設(shè)計的三維重構(gòu)坐標(biāo)系如圖3所示。
圖3 重建坐標(biāo)系示意圖
實驗過程中對文獻(xiàn)[1]方法、文獻(xiàn)[2]方法以及本文方法的實驗結(jié)果進(jìn)行記載,三種方法三維重建場景的趨光性如圖4所示。
圖4 不同方法趨光性對比圖
從圖4中可以看出,本文方法重建過程中趨光性較為平穩(wěn),主要因為本文在設(shè)計城市虛擬地理結(jié)構(gòu)時注重層次細(xì)節(jié)紋理設(shè)計,改善趨光性能,達(dá)到最佳三維重建效果。不同方法動態(tài)光影度對比結(jié)果如圖5所示。
圖5 不同方法動態(tài)光影度對比圖
從圖5中可以看出,本文方法在重建過程中光影度呈現(xiàn)平穩(wěn)下降趨勢,確保數(shù)據(jù)有效鏈接,使重建場景更加逼真,而其它方法曲線起伏較大,這是因為這文獻(xiàn)[1]方法、文獻(xiàn)[2]方法沒有去除噪聲數(shù)據(jù),導(dǎo)致重建數(shù)據(jù)中摻雜無用信息,降低重建精準(zhǔn)度。
本文利用非定標(biāo)方法對城市虛擬地理場景進(jìn)行重建,該方法涉及多個應(yīng)用領(lǐng)域,例如在機器人導(dǎo)航過程中,采集環(huán)境圖像,計算圖像三維數(shù)據(jù)確定運行軌跡;在對圖像測量時,通過相機對目標(biāo)拍攝得到三維數(shù)據(jù),快速測量目標(biāo)三維信息,提高靈活性與準(zhǔn)確性。與上述兩種三維重建方法相比主要存在以下區(qū)別:它不是對目標(biāo)直接進(jìn)行歐式重建,而是通過相機自行定標(biāo)實現(xiàn)虛擬場景重建,不需要校準(zhǔn)點,利用兩幅圖像投影點匹配關(guān)系進(jìn)行推導(dǎo)。此種方法減少定標(biāo)工作量,降低對計算性能的要求,使重建后的虛擬場景更加逼真。雖然重建效果較好,但是仍有許多不完善之處,需進(jìn)一步改進(jìn)。因為在重建過程中,通常會出現(xiàn)大量相同場景圖像,利用這些圖像重建,會造成較大誤差積累,在確保精度基礎(chǔ)上利用少量圖像完成三維重建,是今后該領(lǐng)域研究的重要問題,此外還需提高設(shè)備自定標(biāo)速度與精度,降低對噪聲敏感性,以便進(jìn)一步提升重建效果。