范香香
(蚌埠市勘測(cè)設(shè)計(jì)研究院,安徽 蚌埠 233000)
隨著計(jì)算機(jī)技術(shù)和高效率測(cè)繪技術(shù)的發(fā)展以及市場(chǎng)的迫切需求,高逼真、快速、高效地建立三維實(shí)景場(chǎng)景已經(jīng)成為測(cè)繪地理信息領(lǐng)域的研究熱點(diǎn)。傾斜航空攝影在同一平臺(tái)上搭載多臺(tái)相機(jī),從多個(gè)角度同時(shí)采集影像數(shù)據(jù),通過(guò)軟件處理,利用傾斜航空攝影航片生成三維模型,這種三維模型能夠精準(zhǔn)表達(dá)三維場(chǎng)景的地形和地表覆蓋。傾斜攝影三維建模技術(shù)具有大場(chǎng)景、高精度、高效率等特點(diǎn),在城市規(guī)劃、交通建設(shè)等測(cè)繪中被廣泛應(yīng)用[1,2]。傾斜攝影三維模型的可視化技術(shù)是影響其應(yīng)用范圍的關(guān)鍵。
目前,傾斜三維實(shí)景模型漫游主要采用專業(yè)軟件平臺(tái)或者自行開(kāi)發(fā)的桌面版可視化軟件來(lái)實(shí)現(xiàn),這種方法的優(yōu)點(diǎn)是顯示效果好、漫游過(guò)程流暢、可拓展功能強(qiáng)大,但是仍存在一些問(wèn)題,需要客戶安裝特定的軟件、只能局限在本機(jī)中瀏覽特定存儲(chǔ)的場(chǎng)景、三維場(chǎng)景更新速度慢等問(wèn)題[3]。為了解決以上問(wèn)題,本文探索了一種基于Web3D方式瀏覽傾斜三維實(shí)景模型的方法,免去用戶安裝軟件、消耗大量時(shí)間下載完整三維場(chǎng)景的過(guò)程。
傾斜攝影測(cè)量[3~5]是在一架飛機(jī)上搭載多個(gè)不同角度的相機(jī)(一般1個(gè)垂直、4個(gè)傾斜共5個(gè)相機(jī)),可以在較為相似的拍攝條件下獲取不同角度的照片(如建筑物頂部、側(cè)部的特征和紋理信息),增強(qiáng)數(shù)據(jù)的相關(guān)性,更能基于圖像自動(dòng)化生成三維模型。通過(guò)傾斜攝影測(cè)量不僅可以生成精度較高的三維模型,還能獲取建筑物表面紋理信息,大大提高了測(cè)繪的效率,降低了三維建模的成本。本文以安徽財(cái)經(jīng)大學(xué)作為試驗(yàn)區(qū)域,采用YS-8無(wú)人機(jī)搭載QX5.0傾斜攝影相機(jī)對(duì)安徽財(cái)經(jīng)大學(xué)進(jìn)行拍攝,為了保證后期傾斜攝影數(shù)據(jù)質(zhì)量,航向重疊率、旁向重疊率一般設(shè)在75%以上,最終獲取地面目標(biāo)高分辨率多視影像數(shù)據(jù)。
傳統(tǒng)大場(chǎng)景三維建模成本高、效率低,建立的模型也是簡(jiǎn)單模型,逼真度較低。而傾斜攝影測(cè)量獲取的三維場(chǎng)景模型,通過(guò)多視角匹配,再進(jìn)行整體聯(lián)合平差,最后通過(guò)空三解算求出測(cè)區(qū)所有影像的相片參數(shù),平面和高程精度能滿足建立三維模型的要求。
圖1 傾斜三維實(shí)景模型快速構(gòu)建流程
在野外利用無(wú)人機(jī)采集完實(shí)驗(yàn)區(qū)域的相片之后,需要利用影像數(shù)據(jù)構(gòu)建三維模型,本文采用Smart3D Capture軟件進(jìn)行處理。首先將采集的足夠重疊度的影像數(shù)據(jù)和定位POS數(shù)據(jù)導(dǎo)入到軟件中進(jìn)行空三加密,軟件會(huì)自動(dòng)提取每張影像中的特征點(diǎn),并對(duì)不同影像中同名特征點(diǎn)進(jìn)行匹配,恢復(fù)影像的空間位置與姿態(tài),生成高密度點(diǎn)云數(shù)據(jù),然后在點(diǎn)云的基礎(chǔ)上構(gòu)建地物TIN模型,再根據(jù)TIN模型形狀及位置進(jìn)行模型自動(dòng)紋理映射,最后進(jìn)一步對(duì)模型進(jìn)行整飾、編輯、質(zhì)量檢查,修正建筑物畸變和部分紋理缺失等問(wèn)題,得到具有高逼真的三維實(shí)景模型[6,7],如圖1所示。利用傾斜攝影技術(shù)經(jīng)自動(dòng)紋理映射之后得到的三維實(shí)景模型,如圖2所示。
同時(shí)為了后續(xù)更好轉(zhuǎn)換成Web3D三維模型格式,最后模型輸出OBJ格式的模型。OBJ文件格式是一種采用文本格式存儲(chǔ)的標(biāo)準(zhǔn)三維模型文件格式,就有較好的通用性,并支持模型三角面數(shù)據(jù)和材質(zhì)信息,其中OBJ文件存儲(chǔ)如頂點(diǎn)、貼圖、法線等三維幾何信息,MTL文件存儲(chǔ)貼圖材質(zhì)信息索引。
圖2 傾斜三維實(shí)景模型
三維場(chǎng)景往往數(shù)據(jù)量巨大,一般系統(tǒng)難以平滑瀏覽,需要采用一些數(shù)據(jù)處理和可視化技術(shù)才能保證三維場(chǎng)景的流暢漫游,而Web技術(shù)更是難以一次性承載大量的三維實(shí)景模型,所以如何解決海量三維實(shí)景模型流暢漫游問(wèn)題是基于Web3D的三維場(chǎng)景可視化的關(guān)鍵技術(shù)。傾斜三維場(chǎng)景中包含大量三角網(wǎng)格和紋理貼圖,其數(shù)據(jù)量巨大,往往 1 km2的數(shù)據(jù)就能達(dá)到1GB左右。而基于Web的三維場(chǎng)景可視化不僅僅可以加載如此大數(shù)據(jù)量的三維模型[8],還需具備三維場(chǎng)景的平移、旋轉(zhuǎn)、縮放、查詢等一系列功能,所以要滿足海量三維數(shù)據(jù)Web顯示,就需要通過(guò)地理分塊、多細(xì)節(jié)層次等功能上進(jìn)行優(yōu)化。
為了更好滿足Web3D場(chǎng)景可視化關(guān)鍵技術(shù)的要求,本文采用Cesium來(lái)實(shí)現(xiàn)傾斜攝影數(shù)據(jù)的Web可視化。Cesium是一個(gè)基于JavaScript編寫(xiě)的使用WebGL的地圖引擎[9,10],用來(lái)渲染3D地球、2D區(qū)域地圖和多種GIS要素,不需要安裝任何插件就能在支持最新HTML5標(biāo)準(zhǔn)的瀏覽器上運(yùn)行,支持WebGL硬件加速,非常適合動(dòng)態(tài)數(shù)據(jù)在GIS圖層上的展示平臺(tái)。
Cesium為了保證web瀏覽器能穩(wěn)定加載海量?jī)A斜模型數(shù)據(jù),為批量模型加載添加一個(gè)快速索引和數(shù)據(jù)集的整體性描述,從而減少渲染循環(huán)中需要處理的實(shí)體數(shù)據(jù)量,最終實(shí)現(xiàn)三維模型加載效率的提升。
正是Cesium已經(jīng)具備上述功能和優(yōu)點(diǎn),本文采用Ceiusm平臺(tái)建立安徽財(cái)經(jīng)大學(xué)三維實(shí)景漫游系統(tǒng),主要實(shí)現(xiàn)三維可視化漫游以及模型、屬性查詢兩大功能,具體流程如圖3所示:
圖3 基于cesium的傾斜三維實(shí)景系統(tǒng)建立技術(shù)流程圖
(1)構(gòu)建的傾斜三維模型格式為OBJ格式,但是Cesium所加載的三維實(shí)景模型格式是3Dtiles,所以需要將安徽財(cái)經(jīng)大學(xué)OBJ格式的傾斜模型轉(zhuǎn)化為后綴為b3dm的3DTiles格式。3DTiles瓦片數(shù)據(jù)集是用樹(shù)形空間數(shù)據(jù)結(jié)構(gòu)組織的瓦片集合,每個(gè)瓦片都有一個(gè)包圍盒完全相應(yīng)的三維數(shù)據(jù),并分塊渲染,可以大量減輕瀏覽器和GPU的負(fù)擔(dān)。同時(shí),每一個(gè)分塊的元數(shù)據(jù)屬性以JSON格式定義,分別定義了所包圍的地理區(qū)域(boundingVolume)、屏幕視點(diǎn)到三維模型的距離(geometricError)、節(jié)點(diǎn)屬性(refine)、分塊數(shù)據(jù)的元數(shù)據(jù)和數(shù)據(jù)的地址(content)等內(nèi)容(如圖4所示)。
本文基于NodeJs環(huán)境開(kāi)發(fā)的objTo3d-tiles腳本將OBJ文件中三維幾何信息轉(zhuǎn)換成適合高效的流媒體傳輸?shù)腷3dm文件,再根據(jù)每個(gè)三維數(shù)據(jù)的元數(shù)據(jù)、顯示范圍生成JSON屬性文件,并與模型文件放在同一文件夾中,以便Cesium檢索動(dòng)態(tài)加載模型。
圖4 3DTile分塊JSON數(shù)據(jù)格式[11]
(2)加入各建(構(gòu))筑物、道路、雕像等模型的空間信息和屬性信息,用于漫游系統(tǒng)中三維模型查詢、高亮顯示、疊加分析等各種空間分析功能。
(3)在Cesium的啟動(dòng)頁(yè)面index.html中創(chuàng)建新的Cesium3DTileset,并加入已經(jīng)轉(zhuǎn)換好格式的安徽財(cái)經(jīng)大學(xué)三維模型路徑,即可在打開(kāi)網(wǎng)頁(yè)時(shí)加載顯示傾斜三維模型。為了更好體現(xiàn)三維模型與周邊環(huán)境之間的位置關(guān)系,以bing的遙感衛(wèi)星影像為模型的底圖。
同時(shí)為了實(shí)現(xiàn)用鼠標(biāo)點(diǎn)擊就可以查詢Cesium三維模型對(duì)象功能,首先在Cesium代碼中Viewer類options參數(shù)開(kāi)啟infoBox控件,infoBox主要作為信息顯示的載體,然后編寫(xiě)一個(gè)鼠標(biāo)點(diǎn)擊觸發(fā)事件,當(dāng)鼠標(biāo)點(diǎn)擊待查詢建筑物時(shí)即可彈出相應(yīng)的介紹信息。
(4)在服務(wù)器安裝和設(shè)置IIS服務(wù),將已經(jīng)配置完成的Cesium代碼放入相應(yīng)的Web目錄中,打開(kāi)相應(yīng)的網(wǎng)址即可利用瀏覽器漫游傾斜實(shí)景模型以及屬性的查詢,三維實(shí)景漫游系統(tǒng)如圖5所示。
圖5 基于Cesium的傾斜三維實(shí)景漫游系統(tǒng)
為了測(cè)試基于Cesium的傾斜漫游平臺(tái)的性能,本文在CPU為 3.3 GHz、內(nèi)存為 16 G的電腦中以Chrome瀏覽器分別對(duì)不同大小的模型加載時(shí)間進(jìn)行了分析,如表1所示。
不同模型大小的加載時(shí)間 表1
經(jīng)對(duì)不同大小的三維模型進(jìn)行測(cè)試,基于Cesium的傾斜漫游平臺(tái)可以流暢瀏覽不同大小的傾斜三維模型,無(wú)明顯卡頓,可以滿足用戶瀏覽查詢的需求。如表1所示,加載一個(gè)180M的傾斜三維模型需要 2.33 s,而隨著模型大小的增大,加載時(shí)間線性增大,當(dāng)加載 6.95 GB的模型的時(shí)間,需要耗時(shí) 8.99 s。
傾斜攝影三維建模具有建模效率高、真三維、全自動(dòng)等特點(diǎn),給三維城市模型建設(shè)帶來(lái)了新的契機(jī),隨著傾斜自動(dòng)化建模生產(chǎn)工藝的日漸成熟,傾斜三維實(shí)景模型快速高效地展示成為研究的重點(diǎn)。針對(duì)目前傾斜三維實(shí)景模型常需要安裝特定的軟件、只能局限在本機(jī)中瀏覽特定存儲(chǔ)的場(chǎng)景、三維場(chǎng)景更新速度慢等問(wèn)題,在分析三維實(shí)景可視化關(guān)鍵技術(shù)的基礎(chǔ)上,本文建立一種基于Web3D的傾斜三維實(shí)景模型漫游系統(tǒng),將傾斜攝影測(cè)量采集并重建的安徽財(cái)經(jīng)大學(xué)三維實(shí)景模型,利用開(kāi)源地圖引擎Cesium通過(guò)瀏覽器顯示,實(shí)現(xiàn)了傾斜三維實(shí)景模型的漫游和信息查詢功能。基于Web3D的傾斜三維實(shí)景模型漫游系統(tǒng)構(gòu)建簡(jiǎn)單,更新維護(hù)成本低,用戶瀏覽查詢方便,提高了三維數(shù)據(jù)模型的使用率,將在以后的測(cè)繪成果展示和空間信息服務(wù)中扮演非常重要的角色。