范香香
(蚌埠市勘測設計研究院,安徽 蚌埠 233000)
隨著計算機技術和高效率測繪技術的發展以及市場的迫切需求,高逼真、快速、高效地建立三維實景場景已經成為測繪地理信息領域的研究熱點。傾斜航空攝影在同一平臺上搭載多臺相機,從多個角度同時采集影像數據,通過軟件處理,利用傾斜航空攝影航片生成三維模型,這種三維模型能夠精準表達三維場景的地形和地表覆蓋。傾斜攝影三維建模技術具有大場景、高精度、高效率等特點,在城市規劃、交通建設等測繪中被廣泛應用[1,2]。傾斜攝影三維模型的可視化技術是影響其應用范圍的關鍵。
目前,傾斜三維實景模型漫游主要采用專業軟件平臺或者自行開發的桌面版可視化軟件來實現,這種方法的優點是顯示效果好、漫游過程流暢、可拓展功能強大,但是仍存在一些問題,需要客戶安裝特定的軟件、只能局限在本機中瀏覽特定存儲的場景、三維場景更新速度慢等問題[3]。為了解決以上問題,本文探索了一種基于Web3D方式瀏覽傾斜三維實景模型的方法,免去用戶安裝軟件、消耗大量時間下載完整三維場景的過程。
傾斜攝影測量[3~5]是在一架飛機上搭載多個不同角度的相機(一般1個垂直、4個傾斜共5個相機),可以在較為相似的拍攝條件下獲取不同角度的照片(如建筑物頂部、側部的特征和紋理信息),增強數據的相關性,更能基于圖像自動化生成三維模型。通過傾斜攝影測量不僅可以生成精度較高的三維模型,還能獲取建筑物表面紋理信息,大大提高了測繪的效率,降低了三維建模的成本。本文以安徽財經大學作為試驗區域,采用YS-8無人機搭載QX5.0傾斜攝影相機對安徽財經大學進行拍攝,為了保證后期傾斜攝影數據質量,航向重疊率、旁向重疊率一般設在75%以上,最終獲取地面目標高分辨率多視影像數據。
傳統大場景三維建模成本高、效率低,建立的模型也是簡單模型,逼真度較低。而傾斜攝影測量獲取的三維場景模型,通過多視角匹配,再進行整體聯合平差,最后通過空三解算求出測區所有影像的相片參數,平面和高程精度能滿足建立三維模型的要求。

圖1 傾斜三維實景模型快速構建流程
在野外利用無人機采集完實驗區域的相片之后,需要利用影像數據構建三維模型,本文采用Smart3D Capture軟件進行處理。首先將采集的足夠重疊度的影像數據和定位POS數據導入到軟件中進行空三加密,軟件會自動提取每張影像中的特征點,并對不同影像中同名特征點進行匹配,恢復影像的空間位置與姿態,生成高密度點云數據,然后在點云的基礎上構建地物TIN模型,再根據TIN模型形狀及位置進行模型自動紋理映射,最后進一步對模型進行整飾、編輯、質量檢查,修正建筑物畸變和部分紋理缺失等問題,得到具有高逼真的三維實景模型[6,7],如圖1所示。利用傾斜攝影技術經自動紋理映射之后得到的三維實景模型,如圖2所示。
同時為了后續更好轉換成Web3D三維模型格式,最后模型輸出OBJ格式的模型。OBJ文件格式是一種采用文本格式存儲的標準三維模型文件格式,就有較好的通用性,并支持模型三角面數據和材質信息,其中OBJ文件存儲如頂點、貼圖、法線等三維幾何信息,MTL文件存儲貼圖材質信息索引。

圖2 傾斜三維實景模型
三維場景往往數據量巨大,一般系統難以平滑瀏覽,需要采用一些數據處理和可視化技術才能保證三維場景的流暢漫游,而Web技術更是難以一次性承載大量的三維實景模型,所以如何解決海量三維實景模型流暢漫游問題是基于Web3D的三維場景可視化的關鍵技術。傾斜三維場景中包含大量三角網格和紋理貼圖,其數據量巨大,往往 1 km2的數據就能達到1GB左右。而基于Web的三維場景可視化不僅僅可以加載如此大數據量的三維模型[8],還需具備三維場景的平移、旋轉、縮放、查詢等一系列功能,所以要滿足海量三維數據Web顯示,就需要通過地理分塊、多細節層次等功能上進行優化。
為了更好滿足Web3D場景可視化關鍵技術的要求,本文采用Cesium來實現傾斜攝影數據的Web可視化。Cesium是一個基于JavaScript編寫的使用WebGL的地圖引擎[9,10],用來渲染3D地球、2D區域地圖和多種GIS要素,不需要安裝任何插件就能在支持最新HTML5標準的瀏覽器上運行,支持WebGL硬件加速,非常適合動態數據在GIS圖層上的展示平臺。
Cesium為了保證web瀏覽器能穩定加載海量傾斜模型數據,為批量模型加載添加一個快速索引和數據集的整體性描述,從而減少渲染循環中需要處理的實體數據量,最終實現三維模型加載效率的提升。
正是Cesium已經具備上述功能和優點,本文采用Ceiusm平臺建立安徽財經大學三維實景漫游系統,主要實現三維可視化漫游以及模型、屬性查詢兩大功能,具體流程如圖3所示:

圖3 基于cesium的傾斜三維實景系統建立技術流程圖
(1)構建的傾斜三維模型格式為OBJ格式,但是Cesium所加載的三維實景模型格式是3Dtiles,所以需要將安徽財經大學OBJ格式的傾斜模型轉化為后綴為b3dm的3DTiles格式。3DTiles瓦片數據集是用樹形空間數據結構組織的瓦片集合,每個瓦片都有一個包圍盒完全相應的三維數據,并分塊渲染,可以大量減輕瀏覽器和GPU的負擔。同時,每一個分塊的元數據屬性以JSON格式定義,分別定義了所包圍的地理區域(boundingVolume)、屏幕視點到三維模型的距離(geometricError)、節點屬性(refine)、分塊數據的元數據和數據的地址(content)等內容(如圖4所示)。
本文基于NodeJs環境開發的objTo3d-tiles腳本將OBJ文件中三維幾何信息轉換成適合高效的流媒體傳輸的b3dm文件,再根據每個三維數據的元數據、顯示范圍生成JSON屬性文件,并與模型文件放在同一文件夾中,以便Cesium檢索動態加載模型。

圖4 3DTile分塊JSON數據格式[11]
(2)加入各建(構)筑物、道路、雕像等模型的空間信息和屬性信息,用于漫游系統中三維模型查詢、高亮顯示、疊加分析等各種空間分析功能。
(3)在Cesium的啟動頁面index.html中創建新的Cesium3DTileset,并加入已經轉換好格式的安徽財經大學三維模型路徑,即可在打開網頁時加載顯示傾斜三維模型。為了更好體現三維模型與周邊環境之間的位置關系,以bing的遙感衛星影像為模型的底圖。
同時為了實現用鼠標點擊就可以查詢Cesium三維模型對象功能,首先在Cesium代碼中Viewer類options參數開啟infoBox控件,infoBox主要作為信息顯示的載體,然后編寫一個鼠標點擊觸發事件,當鼠標點擊待查詢建筑物時即可彈出相應的介紹信息。
(4)在服務器安裝和設置IIS服務,將已經配置完成的Cesium代碼放入相應的Web目錄中,打開相應的網址即可利用瀏覽器漫游傾斜實景模型以及屬性的查詢,三維實景漫游系統如圖5所示。

圖5 基于Cesium的傾斜三維實景漫游系統
為了測試基于Cesium的傾斜漫游平臺的性能,本文在CPU為 3.3 GHz、內存為 16 G的電腦中以Chrome瀏覽器分別對不同大小的模型加載時間進行了分析,如表1所示。

不同模型大小的加載時間 表1
經對不同大小的三維模型進行測試,基于Cesium的傾斜漫游平臺可以流暢瀏覽不同大小的傾斜三維模型,無明顯卡頓,可以滿足用戶瀏覽查詢的需求。如表1所示,加載一個180M的傾斜三維模型需要 2.33 s,而隨著模型大小的增大,加載時間線性增大,當加載 6.95 GB的模型的時間,需要耗時 8.99 s。
傾斜攝影三維建模具有建模效率高、真三維、全自動等特點,給三維城市模型建設帶來了新的契機,隨著傾斜自動化建模生產工藝的日漸成熟,傾斜三維實景模型快速高效地展示成為研究的重點。針對目前傾斜三維實景模型常需要安裝特定的軟件、只能局限在本機中瀏覽特定存儲的場景、三維場景更新速度慢等問題,在分析三維實景可視化關鍵技術的基礎上,本文建立一種基于Web3D的傾斜三維實景模型漫游系統,將傾斜攝影測量采集并重建的安徽財經大學三維實景模型,利用開源地圖引擎Cesium通過瀏覽器顯示,實現了傾斜三維實景模型的漫游和信息查詢功能。基于Web3D的傾斜三維實景模型漫游系統構建簡單,更新維護成本低,用戶瀏覽查詢方便,提高了三維數據模型的使用率,將在以后的測繪成果展示和空間信息服務中扮演非常重要的角色。