郭 城,劉 剛
(東南大學(xué)成賢學(xué)院,江蘇 南京 210000)
建筑物虛擬現(xiàn)實(shí)復(fù)原技術(shù)是一種智能化技術(shù)方法,主要是通過視頻和圖像序列等多媒體信息獲取建筑物的三維幾何模型[1]。通過三維重建技術(shù)獲得建筑物的幾何機(jī)構(gòu),可以簡(jiǎn)化建筑物復(fù)原過程,解決傳統(tǒng)復(fù)原方法中存在的問題[2]。在游戲、數(shù)字化城市、三維電影和數(shù)字文物保護(hù)等領(lǐng)域中建筑物復(fù)原技術(shù)受到了廣泛的關(guān)注,并提出了建筑復(fù)原的相關(guān)技術(shù)。
中華民族具有悠久的文化歷史,給人類留下了豐富的建筑遺產(chǎn),這些建筑遺產(chǎn)不僅作為建筑實(shí)體存在而具備價(jià)值,更是承載了寶貴的歷史文化信息。保護(hù)和研究建筑遺產(chǎn)體現(xiàn)了對(duì)中華民族歷史的尊重,更是具有極強(qiáng)的文化價(jià)值和意義。
伶工學(xué)社于1919年由著名教育家、實(shí)業(yè)家、政治家張謇在江蘇南通創(chuàng)辦,當(dāng)時(shí)是一所新型的戲劇學(xué)校.該校特聘京劇大師梅蘭芳為名譽(yù)社長(zhǎng),戲劇大師歐陽予倩任伶工學(xué)社主任,執(zhí)掌教學(xué)工作。伶工學(xué)社是中國戲劇發(fā)展史上具有里程碑意義的建筑,但由于歷史原因,原址建筑已經(jīng)遭到破壞,不復(fù)存在。本文將以南通伶工學(xué)社的數(shù)字化復(fù)原和保護(hù)為例,具體闡述如何將計(jì)算機(jī)數(shù)字技術(shù)應(yīng)用在建筑復(fù)原保護(hù)中。
隨著建筑物復(fù)原技術(shù)的發(fā)展,人們對(duì)其提出了更高的要求,因此需要對(duì)建筑物虛擬現(xiàn)實(shí)復(fù)原方法進(jìn)行分析和研究。周嘉俊[3]等人通過抽樣一致性算法分割建筑物的點(diǎn)云數(shù)據(jù),利用delaunay三角剖分方法檢測(cè)建筑物輪廓點(diǎn)獲取關(guān)鍵點(diǎn),通過規(guī)則化處理關(guān)鍵點(diǎn)完成建筑物的復(fù)原,該方法無法獲取有效的建筑物數(shù)據(jù),存在數(shù)據(jù)有效率低的問題。曹林[4]等人剖分處理建筑物的三維線特征,在拓?fù)漤樞虻幕A(chǔ)上根據(jù)特征角點(diǎn)構(gòu)建平面,根據(jù)相關(guān)規(guī)則設(shè)定補(bǔ)充規(guī)則,完成平面邊界補(bǔ)充,實(shí)現(xiàn)建筑物復(fù)原,該方法獲取的數(shù)據(jù)中存在大量的冗余數(shù)據(jù),導(dǎo)致復(fù)原后的建筑物完整性和精度較低。秦斐[5]等人在多元線性回歸的基礎(chǔ)上分割點(diǎn)云數(shù)據(jù),結(jié)合聚類分析方法和邊緣提取方法實(shí)現(xiàn)建筑物的復(fù)原,該方法復(fù)原建筑物所用的時(shí)間較長(zhǎng),存在復(fù)原效率低的問題。
為了解決上述方法中存在的問題,提出基于虛幻引擎的建筑物虛擬現(xiàn)實(shí)復(fù)原方法。該方法將虛幻引擎技術(shù)作為創(chuàng)新點(diǎn),用于建筑物信息的采集和提取,可獲得有效率高的建筑物數(shù)據(jù),根據(jù)獲取的數(shù)據(jù)實(shí)現(xiàn)建筑物的虛擬現(xiàn)實(shí)復(fù)原,在數(shù)據(jù)有效率、復(fù)原效率、復(fù)原完整度和精度等方面進(jìn)行了相關(guān)優(yōu)化。
對(duì)于伶工學(xué)社原貌的精準(zhǔn)復(fù)原有著重大意義。
通過模塊化結(jié)構(gòu)描述虛幻引擎框架,如圖1所示。
圖1 虛幻引擎框架圖
采用虛幻引擎技術(shù)獲取建筑物信息的工作流程如圖2所示。
圖2 虛幻引擎工作流程圖
1)引擎初始化
該程序的主要目的是對(duì)特定文件進(jìn)行讀取和解析,獲取設(shè)定事件在現(xiàn)實(shí)中發(fā)生的條件,并對(duì)仿真參數(shù)進(jìn)行計(jì)算,包括數(shù)據(jù)存儲(chǔ)、仿真模型、結(jié)束條件、三維模型、仿真時(shí)間、初始用戶位置和天氣條件等。
2)運(yùn)行初始化
該步驟主要由初始化仿真實(shí)例、解析配置文件和讀取數(shù)據(jù)三部分構(gòu)成。
①初始化仿真實(shí)例:對(duì)仿真時(shí)間初始值進(jìn)行設(shè)置,建立等待實(shí)體隊(duì)列、建立時(shí)間列表、建立活動(dòng)實(shí)體隊(duì)列、實(shí)例化仿真模型,以及在等待實(shí)體隊(duì)列和活動(dòng)實(shí)體隊(duì)列中插入模型實(shí)例等,通過上述過程方便虛幻引擎的調(diào)度。通過引擎中存在的微內(nèi)核模塊對(duì)時(shí)間列表進(jìn)行管理,存儲(chǔ)發(fā)送實(shí)例的通知和請(qǐng)求。
②解析用戶配置文件,該文件中包含多種系統(tǒng)配置參數(shù),包括設(shè)置聲音設(shè)備,設(shè)置通道、窗口和屏幕,設(shè)定網(wǎng)絡(luò)通信標(biāo)準(zhǔn),設(shè)置輸入設(shè)備和顯卡狀態(tài)等。
③讀取數(shù)據(jù),在仿真過程中讀入不同的地形數(shù)據(jù)、三維模型和仿真模型等,并實(shí)例化處理讀取的仿真模型。通過仿真模型的行為在實(shí)例化過程中確定狀態(tài)轉(zhuǎn)移條件和激活條件。
3)控制運(yùn)行狀態(tài)
虛幻引擎包括仿真暫停和仿真結(jié)束兩種運(yùn)行狀態(tài)。虛幻引擎在仿真過程中需要對(duì)仿真運(yùn)行進(jìn)行的狀態(tài)進(jìn)行判斷,通過想定對(duì)仿真結(jié)束條件進(jìn)行設(shè)定。仿真運(yùn)行過程中可通過仿真暫停狀態(tài)控制暫停和實(shí)時(shí)表現(xiàn),仿真進(jìn)程在實(shí)時(shí)表現(xiàn)狀態(tài)下需要暫停。
4)處理事件
虛幻引擎中存在的模塊在進(jìn)入幀循環(huán)時(shí),已經(jīng)將開始工作的命令下達(dá)到微內(nèi)核模塊中,并向微內(nèi)核模塊不斷發(fā)送消息,在事件列表中根據(jù)先后順序存儲(chǔ)上述消息。微內(nèi)核模塊在幀循環(huán)過程中對(duì)事件列表中存在的事件進(jìn)行處理,并對(duì)場(chǎng)景進(jìn)行渲染[6,7]。
5)處理仿真實(shí)例
在仿真運(yùn)行過程中處理仿真實(shí)例屬于主要內(nèi)容,通過人工智能、物理引擎和仿真實(shí)例模型獲得虛擬角色的屬性和行為,并在自然環(huán)境中獲得仿真實(shí)體的真實(shí)運(yùn)動(dòng)狀態(tài),在緩沖區(qū)中存儲(chǔ)渲染結(jié)果。當(dāng)仿真實(shí)例在下一個(gè)循環(huán)中的處理結(jié)果不發(fā)生變化時(shí),直接讀取緩沖區(qū)中存在的幀。
在等待實(shí)體列表中根據(jù)模型的優(yōu)先級(jí)排序等待實(shí)體,虛幻引擎對(duì)模型的活動(dòng)狀態(tài)進(jìn)行判斷時(shí),主要采用模型實(shí)例在等待狀態(tài)下的處理方法。在活體實(shí)例列表中存儲(chǔ)存滿足未來發(fā)生條件的實(shí)體。按照實(shí)例的優(yōu)先級(jí)和發(fā)生時(shí)間排序活動(dòng)實(shí)體列表。
6)數(shù)據(jù)存儲(chǔ)
根據(jù)仿真試驗(yàn)設(shè)置中的保存時(shí)間間隔,虛幻引擎存儲(chǔ)并記錄模型實(shí)例的數(shù)據(jù),在存儲(chǔ)數(shù)據(jù)的過程中,虛幻引擎按照相應(yīng)的順序?qū)Χ喾N數(shù)據(jù)存儲(chǔ)方法進(jìn)行調(diào)用。虛幻引擎在模型實(shí)例不連續(xù)的狀態(tài)下,在相應(yīng)的時(shí)間內(nèi)根據(jù)模型的語義存儲(chǔ)數(shù)據(jù)。
基于虛幻引擎的建筑物虛擬現(xiàn)實(shí)復(fù)原方法利用虛幻引擎技術(shù)設(shè)定初始仿真參數(shù),并對(duì)其進(jìn)行初始化處理,在幀循環(huán)過程中虛幻引擎對(duì)模塊中存在的事件進(jìn)行處理,根據(jù)獲取的仿真數(shù)據(jù)對(duì)當(dāng)前場(chǎng)景進(jìn)行渲染和顯示,獲得建筑物的場(chǎng)景數(shù)據(jù)。
基于虛幻引擎的建筑物虛擬現(xiàn)實(shí)復(fù)原方法根據(jù)上述過程獲取的數(shù)據(jù)實(shí)現(xiàn)建筑物的虛擬現(xiàn)實(shí)復(fù)原。
1)相機(jī)模型
通過上述虛幻引擎技術(shù)獲得三維空間點(diǎn)P(x,y,z)∈R3在二維圖像平面中對(duì)應(yīng)的像素點(diǎn)X(u,v)∈R2
(1)
式中,cx、cy代表光軸中心點(diǎn)對(duì)應(yīng)的坐標(biāo);fx、fy代表焦距對(duì)應(yīng)的坐標(biāo);π描述投影方程。
(2)
式中,tl,k描述平移分量;Rl,k描述旋轉(zhuǎn)分量;SE代表歐氏群。
三維空間可通過加權(quán)截?cái)嘤邢蚓嚯x函數(shù)[8]進(jìn)行描述ψ:[ψrgb,ψd]→[R3,R],其中ψd描述建筑物表面的幾何信息,ψrgb描述建筑物表面的色彩信息。
表面ψfn通過前N對(duì)色彩圖像和深度圖像融合得到;表面ψsn+1通過前N+1對(duì)色彩圖像和深度圖像反投影獲得,表面的顏色亮度和幾何位置需要保持一致,用下式描述誤差函數(shù)E(Tt,N+1)
(3)
式中,ψfn(Tt,N+1)2描述幾何誤差;θψfn(Tt,N+1)2描述亮度誤差,參數(shù)θ的主要作用是進(jìn)行加權(quán)處理,描述點(diǎn)P對(duì)應(yīng)的齊次形式。其中代表三維對(duì)角矩陣,其主要作用是用灰度圖描述RGB格式的色彩圖,
基于虛幻引擎的建筑物虛擬現(xiàn)實(shí)復(fù)原方法通過Gauss-Newton算法求解上述誤差函數(shù)。
所有素體v中都存在六個(gè)值,用Φ描述素體v與最近距離表面的TSDT;用Wd描述TSDF對(duì)應(yīng)的確信度;R、G、B均代表通道顏色值;用Wc描述顏色值對(duì)應(yīng)的確信度,通過加權(quán)平均法對(duì)TSDF進(jìn)行更新
(4)
同理,對(duì)顏色信息Γ進(jìn)行更新
(5)
式中,γ∈(r,g,b)代表顏色分量。
3)去融合處理
通過下述公式描述去融合過程
(6)
通過相同的方式在色彩測(cè)量過程中對(duì)累計(jì)誤差進(jìn)行計(jì)算
(7)
4)子網(wǎng)格移動(dòng)
當(dāng)給定閾值小于子網(wǎng)格中心點(diǎn)與相機(jī)之間的距離時(shí),在建筑物虛擬現(xiàn)實(shí)復(fù)原時(shí)需要對(duì)子網(wǎng)格進(jìn)行移動(dòng)。
用Tj,i描述第i幀變化到局部子網(wǎng)格Vj中
(8)
式中,Pg,i代表當(dāng)前子網(wǎng)格Vj對(duì)應(yīng)的絕對(duì)位姿;Tg,i代表第i幀圖像對(duì)應(yīng)的絕對(duì)位姿;t代表時(shí)刻。
在子網(wǎng)格移動(dòng)過程中對(duì)旋轉(zhuǎn)分量和平移分量進(jìn)行考慮,子網(wǎng)格Vj符合‖tji‖>Thold_t時(shí),被移動(dòng)到Vj+1,其中Thold_t代表距離閾值,此時(shí)通過Tj+1,i=I4*4,Pj,j+1描述新建立的子網(wǎng)格Vj+1,其中I4*4代表圖像的位姿。
通過下式描述子網(wǎng)格之間存在的位姿關(guān)系
(9)
式中,vs代表體素對(duì)應(yīng)的尺寸。
在固定光軸中相機(jī)向后或向前移動(dòng)的距離超過設(shè)定的距離時(shí),需要平移V1
d2>dth2l‖d2 (10) 式中,dth2l、dth2s均代表設(shè)定的閾值;d2描述光心L2與點(diǎn)C之間存在的距離。 5)全局優(yōu)化 用ψd描述表面點(diǎn)P對(duì)應(yīng)的有向距離tsdf,通過下式對(duì)梯度n進(jìn)行歸一化處理 (11) 對(duì)應(yīng)點(diǎn)(pi,qi)亮度和三維空間的誤差ei,i可通過下式計(jì)算得到 ei,i=‖(Tg,jpi-Tg,kqi)TTg,kn‖ (12) 通過sparseLM求解下述整體誤差函數(shù) (13) 為了獲得虛擬建筑的整體三維模型,優(yōu)化完全局軌跡后需要在全局TSDF中融合子網(wǎng)格 (14) 針對(duì)建筑物的色彩信息,也采用相同的方式 (15) 根據(jù)上述過程獲取的信息通過marching cubes算法獲取建筑物的三角片面,實(shí)現(xiàn)建筑物的虛擬現(xiàn)實(shí)復(fù)原。 為了驗(yàn)證基于虛幻引擎的建筑物虛擬現(xiàn)實(shí)復(fù)原方法的整體有效性,需要對(duì)基于虛幻引擎的建筑物虛擬現(xiàn)實(shí)復(fù)原方法進(jìn)行測(cè)試。 采用基于虛幻引擎的建筑物虛擬現(xiàn)實(shí)復(fù)原方法、文獻(xiàn)[3]方法和文獻(xiàn)[4]方法進(jìn)行測(cè)試,對(duì)比不同方法采集數(shù)據(jù)的有效率,測(cè)試結(jié)果如圖3所示。 圖3 數(shù)據(jù)有效率測(cè)試結(jié)果 根據(jù)圖3中的數(shù)據(jù)可知,隨著數(shù)據(jù)量的增加,所提方法、文獻(xiàn)[3]方法和文獻(xiàn)[4]方法采集數(shù)據(jù)的有效率均有所增加,通過對(duì)比發(fā)現(xiàn),在相同數(shù)據(jù)量下所提方法采集的數(shù)據(jù)有效率均高于文獻(xiàn)[3]方法和文獻(xiàn)[4]方法采集的數(shù)據(jù)有效率,因?yàn)樗岱椒ɡ锰摶靡婕夹g(shù)獲取建筑物的數(shù)據(jù),提高了數(shù)據(jù)的有效率。 采用所提方法、文獻(xiàn)[3]方法和文獻(xiàn)[4]方法對(duì)五個(gè)不同的建筑物進(jìn)行復(fù)原,對(duì)比不同方法復(fù)原所用的時(shí)間,根據(jù)復(fù)原時(shí)間,對(duì)比不同方法的復(fù)原效率,復(fù)原所用的時(shí)間越短,方法的復(fù)原效率越高,相反,復(fù)原所用的時(shí)間越長(zhǎng),方法的復(fù)原效率越低,不同方法的復(fù)原效率測(cè)試結(jié)果如圖4所示。 圖4 不同方法的復(fù)原時(shí)間 對(duì)圖4中的數(shù)據(jù)進(jìn)行分析可知,對(duì)五個(gè)不同的建筑物進(jìn)行復(fù)原時(shí),所提方法復(fù)原所有的時(shí)間均可控制在0.5min之內(nèi),低于文獻(xiàn)[3]方法和文獻(xiàn)[4]方法復(fù)原所用的時(shí)間,因?yàn)樗岱椒ɡ锰摶靡娅@取建筑物信息,縮短了信息采集與提取所用的時(shí)間,進(jìn)而縮短了方法的復(fù)原時(shí)間,提高了方法的復(fù)原效率。 為了進(jìn)一步驗(yàn)證上述方法的有效性,對(duì)比不同方法復(fù)原建筑物的精度,測(cè)試結(jié)果如表1所示,復(fù)原精度越高,表明方法的復(fù)原性能越好。 表1 不同方法的復(fù)原精度 根據(jù)表1中的數(shù)據(jù)可知,在多次迭代中,所提方法的復(fù)原精度均在95%以上,文獻(xiàn)[3]方法和文獻(xiàn)[4]方法的復(fù)原精度在70%附近波動(dòng),通過上述測(cè)試,驗(yàn)證了所提方法的復(fù)原性能。 利用所提方法虛擬現(xiàn)實(shí)復(fù)原建筑物的視覺效果如圖5和圖6所示: 圖5 虛幻引擎技術(shù)下伶工學(xué)社建筑信息獲取結(jié)果 圖6 虛幻引擎技術(shù)下伶工學(xué)社建筑物虛擬模型構(gòu)建 根據(jù)圖5和圖6的建筑復(fù)原視覺效果可知。所提方法應(yīng)用虛幻引擎技術(shù)可獲取全面、完整的建筑信息,虛擬復(fù)原后的建筑結(jié)構(gòu)完整,可視化效果較優(yōu)。 通過本次伶工學(xué)社建筑物復(fù)原的實(shí)例應(yīng)用,可以對(duì)比總結(jié)出基于虛幻引擎的計(jì)算機(jī)數(shù)字技術(shù)相對(duì)于3D MAX等三維直觀建模軟件在建筑物復(fù)原的精度上更具優(yōu)勢(shì)。 建筑物虛擬現(xiàn)實(shí)復(fù)原技術(shù)是通過計(jì)算機(jī)和傳感器分析并處理建筑物的深度元數(shù)據(jù)和紋理元數(shù)據(jù)等,根據(jù)處理結(jié)果實(shí)現(xiàn)建筑物的復(fù)原。在智能機(jī)器人和工業(yè)模擬等方面建筑物復(fù)原技術(shù)具有重要作用,但設(shè)備問題和時(shí)間問題制約了建筑物虛擬現(xiàn)實(shí)復(fù)原技術(shù)的發(fā)展,因此需要對(duì)建筑物虛擬現(xiàn)實(shí)復(fù)原技術(shù)的發(fā)展進(jìn)行研究。 目前建筑物虛擬現(xiàn)實(shí)復(fù)原方法存在數(shù)據(jù)有效率低、復(fù)原效率低、復(fù)原完整性低和復(fù)原精度低的問題,提出基于虛幻引擎的建筑物虛擬現(xiàn)實(shí)復(fù)原方法,將虛幻引擎技術(shù)應(yīng)用在建筑物虛擬現(xiàn)實(shí)復(fù)原過程中,可在較短時(shí)間內(nèi)獲得大量的有效的建筑數(shù)據(jù),實(shí)現(xiàn)建筑物的虛擬現(xiàn)實(shí)復(fù)原,解決并優(yōu)化了傳統(tǒng)方法中存在的問題,為建筑物復(fù)原技術(shù)的發(fā)展奠定了基礎(chǔ)。5 實(shí)驗(yàn)與分析
6 結(jié)束語