李新維,鄧 非,2,李學飛,吳 思
(1. 武漢大學測繪學院,湖北 武漢 430079; 2. 武漢大學國家領土主權與海洋權益協同創新中心,湖北 武漢 430079; 3. 中冶建筑研究總院有限公司,北京 100088; 4. 國家測繪地理信息局地下管線勘測工程院,四川 成都 610500)
一種大規模傾斜攝影模型三維可視化方案
李新維1,鄧 非1,2,李學飛3,吳 思4
(1. 武漢大學測繪學院,湖北 武漢 430079; 2. 武漢大學國家領土主權與海洋權益協同創新中心,湖北 武漢 430079; 3. 中冶建筑研究總院有限公司,北京 100088; 4. 國家測繪地理信息局地下管線勘測工程院,四川 成都 610500)
提出了一種基于四叉樹結構的大規模傾斜攝影模型三維可視化方案:首先采用二次誤差測度(QEM)的半邊折疊算法對三角網格模型進行分層幾何簡化;然后對分層簡化的模型進行紋理映射和分塊,分塊結果采用Morton編碼命名;最后將場景按金字塔結構進行LOD(多細節層次結構)組織。選取某一試驗區域的真實傾斜模型數據進行了試驗,結果表明,該方案能依據模型在計算機屏幕上所占的像素大小,動態加載傾斜模型數據,完成大規模場景的實時可視化。
傾斜攝影模型;網格簡化;四叉樹;多細節層次模型
三維城市模型在城市規劃、虛擬自然資源保護和計算機游戲中具有重要的作用[1]。隨著三維激光點云技術和攝影測量技術等空間數據獲取技術的發展,三維模型的建模效率和精度在不斷地提高,同時場景的復雜程度也在不斷地提高[2]。特別是利用傾斜攝影技術生成的高質量三維模型,點云的密度極高,模型的三角面片數量通常會達到億萬級。海量傾斜模型數據的快速加載和流暢渲染,是傾斜攝影模型組織和可視化必須解決的一個難題。
目前,在不影響三維模型瀏覽時視覺真實感的前提下,可通過多細節層次模型技術(LOD)降低三維數據的復雜性,減少傳送到圖形硬件的幾何數,從而提高三維數據的繪制速度[3]。構建LOD即對原始高分辨率的模型進行不同程度的幾何簡化和紋理降采樣,然后根據視點位置,決定調用網格的層次,選取能代表原始物體的最好模型用于渲染。通常離視點越近,模型在屏幕上所占像素的數量越大,調用高精度的模型,反之,則調用低精度的模型。為了保證不同層次的模型切換時過渡平穩,不產生視覺上的跳躍,學者們提出了兩種不同的LOD模型:離散LOD模型和連續LOD模型。離散LOD模型是在數據建模階段預生成一系列不同層次的模型[4],對于一特定模型,不同層次間過渡的流暢性與模型的層次數量有關;連續LOD模型是在運行時產生任意多個分辨率的模型,實現模型的實時流暢顯示。雖然離散LOD模型顯示質量比連續LOD模型差,但其模型是一次生成然后再動態載入、替換,CPU占用要遠小于連續LOD模型,更方便組織管理。因此,本文根據傾斜攝影模型的特點,采用離散LOD模型,在模型數據生產的過程中,自動生成LOD。
傾斜模型數據生成離散LOD模型,最為關鍵的步驟就是網格簡化,即基于輸入的網格模型,自動構建出一系列與其對應的、保持其基本形狀的不同精細程度的模型。目前在模型簡化算法方面,國內外學者進行了許多研究。其中,比較有代表性的有:Rossignac等[5]提出了頂點聚類算法,即將三維模型用均勻的柵格進行劃分,衡量柵格內每個頂點的重要性,并選取重要性最高的頂點作為柵格的代表頂點;Hoppe[6]提出了基于邊折疊的漸進網格生成算法,即由一個基網格進行一系列的邊折疊操作得到簡化的網格;Garland[7]等提出了Qslim算法,選用空間某點到所有與之相鄰的三角面的距離的平方和作為誤差測度,選擇誤差最小的邊進行折疊簡化。但是,上述簡化算法都只考慮了三維模型在幾何特征上的簡化,忽略了對模型表面紋理的處理(簡化)。實際上,對于大規模傾斜影像數據的三維可視化,模型所附加的紋理的數據量要遠大于幾何,在計算機資源一定的情況下只有減少繪制過程中傳入的紋理數據量,才能保證三維場景的實時渲染。考慮了紋理特征的簡化算法大致分為兩類:①在簡化過程中保持紋理特征,主要代表有Garland等在Qslim算法上進行改進提出的結合紋理和顏色特征的Qslim算法。但是該算法在紋理信息不連續的情況下,邊折疊尋找最優折疊目標點時,會得到錯誤的結果,導致簡化的效果不理想[7]。②紋理特征保持與簡化過程獨立。該類方法不介入簡化過程,而是在簡化完成獲得簡化模型后,直接對簡化模型進行特征恢復,主要代表為Cignoni等提出的恢復屬性細節的方法。但是這類方法受簡化程度的影響,可能采樣不充分,最后導致存儲的顏色信息不足,無法使得簡化模型擁有和原模型近似的紋理貼圖效果。因此,本文采用已有的幾何簡化算法(QEM算法)對模型進行簡化,然后對簡化模型重新進行紋理映射,以實現模型表面細節的恢復。具體方案如圖1所示。

圖1 大規模傾斜攝影模型三維可視化方案流程
1.1 模型簡化
通用的模型局部簡化操作是邊折疊或頂點聚類。兩種做法都是合并表面頂點和刪除退化的三角形。邊折疊操作通常合并由一條邊連接的兩個頂點,但頂點聚類操作合并一個包圍盒內的頂點。半邊折疊是一種特殊的邊折疊操作[8],如圖2所示,選擇一個源頂點作為折疊的對象,折疊到另一個頂點。一次半邊折疊操作可以減少1個頂點、2個面、3條邊。本文采用半邊折疊操作作為模型簡化的方法。

圖2 半邊折疊操作
在簡化的過程中,需要對每次邊折疊前后產生的模型誤差進行估計,即計算折疊代價。每次對折疊代價最小的邊使用選定的簡化方法進行簡化,直到達到用戶要求的簡化程度。這里采用Garland提出的QEM算法來計算邊折疊的代價:即將邊折疊操作生成的新頂點到相關三角面距離的平方和作為誤差度量。
傾斜攝影模型的每個三角面都是一個平面,平面方程表示為
ax+by+cz+d=0
式中,a、b、c滿足a2+b2+c2=1。令F=(abcd)T代表該平面,點v的坐標為V(xyz1)T,則點v到平面p距離的平方為
(1)
式中

1.2 紋理映射
在上述簡化過程中,只考慮了模型在幾何上的精簡。簡化后的模型由于其幾何位置的變動,紋理已經發生了扭曲,不能僅通過對原始紋理降低分辨率來達到紋理屬性數據的簡化,需要重新進行紋理映射來恢復紋理屬性信息。
首先,對三角網格中的每個三角面,利用共線方程式計算出3個頂點在已完成定向工作的影像中的位置,如果3個頂點都在影像像幅范圍內,則將該影像納入該三角面的可視影像集合М。
(2)
由于城區建筑密度較大,遮擋現象比較嚴重。在利用透視關系得到每個三角面的可視紋理影像集合M后,本文使用成熟的三維碰撞檢測庫ColDet進行遮擋檢測計算,剔除掉存在遮擋的影像,得到待選紋理影像集合S。綜合考慮三角面在影像上的分辨率和影像拍攝視角(建筑物表面法向量和視線方向的夾角最小時視角最好),從待選紋理中選擇出權值最大的影像作為三角面的初始紋理。邊界上的三角面(兩個三角形選擇不同的初始影像作為紋理)由于光照等原因的影響,會產生紋理的破碎,為最大程度保障相鄰三角面紋理的連續性,本文采用貪心算法選擇其一階環鄰域內出現次數最多且在其待選紋理集合S中的初始紋理作為該三角面調整后的紋理,如圖3所示。

圖3 一次邊界最優紋理調整示意圖
對于三角網格中的每一連續塊(具有相同的最優紋理),計算其紋理坐標,從紋理影像上提取相應的矩形外包紋理。最后將多個矩形紋理塊進行紋理Packing(打包),并更新相應的紋理坐標,得到最終的紋理圖。
1.3 模型層次結構組織
為了構建場景的金字塔模型,需要對場景進行分層分塊,基本思想是:首先采用自底向上的策略對原始模型進行簡化分層,得到不同分辨率的各層次模型;然后將各個層次的模型分割為2n×2n個矩形塊(最頂層模型只有一個矩形塊,模型越精細分割的塊數越多,相鄰的層次間模型的分割塊數呈4倍的關系)。由于采用四叉樹結構進行模型層次的組織,因此每一層模型的分塊結果采用四進制的Morton編碼方式進行命名存儲[9],即按“Z”字型編碼方式對每個小塊進行編碼命名。具體的層次結構和Morton編碼規則如圖4所示。

圖4 模型層次結構和Morton編碼
對于同一層的三角網格模型,每個分塊所對應的Morton碼的值是唯一的,因此Morton碼實際上記錄了每個分塊所在位置的平面坐標信息,利用Morton碼可以為每個分塊位置建立索引。利用四進制形式表示的Morton碼,很容易確定上一層次模型的某個分塊所對應的下一層相同空間位置的4個分塊,從而很容易建立起具有四叉樹結構的LOD數據組織,如圖5所示。

圖5 傾斜模型的四叉樹結構組織
為了驗證本文所提出的大規模傾斜攝影模型三維可視化方案的有效性,將C++作為開發語言、開源的OSG(OpenSceneGraph)作為三維渲染引擎,對本文方案進行了實現;并且選取了某一地區低空無人機拍攝的一組城區數據,在Windows7操作系統下,采用如下微機硬件配置進行了試驗:處理器:Inter(R) Core(TM) i7-4790 CPU @3.60 GHz,內存(RAM):16.0 GB,顯卡:NVIDA GeForce GTX 960 2048 MB。
此次試驗使用1個垂直相機和4個傾斜相機拍攝的497張分辨率為8176×6192像素的影像作為基礎數據,測區范圍為1 km2;利用SFM方法對影像進行高精度的影像定向及多視影像密集匹配算法進行密集點云的生成;然后依測區范圍以200 m×200 m的格網對點云進行劃分;最后利用Poisson構網算法,完成三維模型的幾何重建。重建的幾何模型如圖6所示。

圖6
在獲取了三維網格模型后,利用SFM的高精度影像定向結果,將傾斜影像豐富的紋理信息映射到三維幾何模型表面,得到帶紋理的三維模型如圖7所示。

圖7 紋理映射后的三維模型
依據本文方案,對網格模型進行不同層次的簡化,得到不同分辨率的模型如圖8所示。
從圖8中可以看出,模型在簡化前后,較好地保留了其幾何特征,用簡化后的模型表示原三維幾何模型,不會影響其視覺效果。然后,將簡化后的模型進行分塊,并重新進行紋理映射,按四叉樹結構進行模型層次結構組織。最后將所有的格網模型組織在一起,完成整個三維大場景展示,最終效果如圖9所示。

圖8 模型簡化得到不同分辨率的模型

圖9 大規模傾斜三維模型實時展示
由于本文方案依據視點對模型進行調度,結合上視錐裁剪(只顯示屏幕范圍內的模型),理論上能完成任意大小場景的實時加載。
本文采用模型屬性簡化獨立于幾何簡化的處理方式,應用半邊折疊操作對傾斜模型進行幾何精簡,在簡化過程中采用二次誤差測度控制簡化的方向,保障了模型的簡化質量。在簡化完成后,針對幾何位置變動造成的紋理扭曲,利用多視影像及已有空三結果,對簡化模型重新進行紋理映射,產生金字塔層次的不同分辨率(幾何和紋理)的模型,最后利用四叉樹結構對模型進行了分塊和組織,生成了多細節層次結構。在實際的渲染過程中,根據視點距離四叉樹中節點的中心距離,調用相應的節點。通過實際數據的試驗結果表明,本文方案在保障場景的真實程度和細節表現的同時,有效地提高了渲染的效率,對城市大規模傾斜數據的三維可視化具有重要的指導意義。
[1] FRUEH C, SAMMON R, ZAKHOR A. Automated Texture Mapping of 3D City Models with Oblique Aerial Imagery[C]∥2nd International Symposium on 3D Data Processing, Visualization and Transmission. [S.l.]: IEEE, 2004: 396-403.
[2] XIONG W,WANG X,ZHU M.Study of LOD Terrain Rendering Algorithm Based on GPU[C]∥IET International Communication Conference on Wireless Mobile and Computing(CCWMC 2011). [S.l.]: IET,2011:476-481.
[3] 何旭鋒. 大規模復雜場景的加速繪制方法研究與實現[D]. 成都:電子科技大學, 2009.
[4] 陳波, 董恒建, 韓俊偉. 真實地形繪圖算法的比較與評價[J]. 長江大學學報(自然科學版), 2005, 2(1): 72-75.
[5] ROSSIGNAC J, BORREL P. Multi-resolution 3D Approximations for Rendering Complex Scenes[M].[S.l.]: Springer Berlin Heidelberg, 1993: 455-465.
[6] HOPPE H. Progressive Meshes[C]∥Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques. [S.l.]: ACM, 1996: 99-108.
[7] GARLAND M, HECKBERT P S. Surface Simplification Using Quadric Error Metrics[C]∥Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques. [S.l.]: ACM Press/Addison-Wesley Publishing Co., 1997: 209-216.
[8] 魯玉良. 復雜虛擬場景的建模及模型簡化方法研究[D]. 武漢:華中科技大學, 2006.
[9] 龔健雅. 一種基于自然數的線性四叉樹編碼[J]. 測繪學報, 1992, 21(2): 90-99.
[10] 梁策. 針對具有復雜屬性的網格模型簡化算法的研究[D]. 杭州:杭州電子科技大學, 2009.
[11] 徐源. 基于公路信息模型的三維交互式可視化研究[D]. 長沙:中南大學, 2014.
[12] 艾廷華,周夢杰,陳亞婕.專題地圖屬性信息的LOD表達與TreeMap可視化[J].測繪學報,2013,42(3): 453-460.
[13] 周艷, 朱慶, 黃鐸. 三維城市模型中建筑物 LOD 模型研究[J]. 測繪科學, 2006, 31(5): 74-77.
A Visualization Plan for Large-scale 3D Models with Oblique Photogrammetry Technology
LI Xinwei1,DENG Fei1,2,LI Xuefei3,WU Si4
(1. School of Geodesy and Geomatics, Wuhan University, Wuhan 430079,China; 2. Collaborative Innovation Center for Territorial Sovereignty and Maritime Rights, Wuhan 430079,China; 3. Metallurgical Construction Research Institute Co. Ltd., Beijing 100088,China; 4. National Administration of Surveying,Mapping and Geoinformation Underground Pipeline Engineering Academy, Chengdu 610500,China)
A three-dimensional visualization scheme for large-scale oblique photography model based on quad-tree structure is proposed. Firstly, the triangular mesh model is simplified by using half-edge collapse of quadratic error measure (QEM), and then these hierarchical simplified models are textured and blocked, each block is named using Morton encoding rule. Finally, the scene is organized according to the pyramid structure of LOD (multi-level hierarchical structure).We evaluated our visualization plan for large-scale 3D models with oblique photogrammetry technology on a dataset of a city. Experiment results show that the method can dynamically load the appropriate models according to the pixel size on the screen. It is demonstrated that the schema is effective and useful for realtime visualization of large-scale 3D models with oblique photogrammetry technology.
3D Models with Oblique Photogrammetry Technology;mesh simplification;quad-tree;level of details
李新維,鄧非,李學飛,等.一種大規模傾斜攝影模型三維可視化方案[J].測繪通報,2017(4):39-43.
10.13474/j.cnki.11-2246.2017.0116.
2016-09-20;
2017-02-09
國家自然科學基金 (41271431)
李新維(1991—),男,碩士,研究方向為攝影測量與遙感。E-mail:xinweil@whu.edu.cn 通信作者: 鄧 非。E-mail:fdeng@sgg.whu.edu.cn
P23
A
0494-0911(2017)04-0039-05