鐘國
(河南省遙感測繪院,河南 鄭州 450003)
目前市面上自動建模軟件得到的三維數據是由密集匹配生成的點云數據連接成的不規則三角網(TIN)組成,輸出成果通常是osgb 格式,而數據量的大小直接影響數據的傳輸和瀏覽。許多學者提出了利用單體化的方法對地物進行統一管理[1-2]。為此,本文嘗試重構單體化以減少三維數據的數據量,提高三維數據加載效率,同時在不需要進行精細模型區域以DLG 數據為建筑底圖,快速推拉出較低等級模型。
將外業采集到的多視影像、POS 數據以及相機自檢校獲取的相機參數作為原數據輸入Smart3D。在軟件中采用旋轉、特征提取及密集匹配得到參與空三加密有效影像的旋轉矩陣和像主點位置。在空三加密中各控制點和檢查點的精度滿足要求的前提下,利用軟件生成osgb 格式的三維模型。
Sketchup 軟件操作簡單易上手,編輯功能較強,有學者已利用Sketchup 做出相關嘗試,但不能引入傾斜攝影空三加密成果和osgb 三維模型,或僅引入空三加密成果,需在立體環境下確定建筑物高度,并應用單片對模型貼圖[3-4]。故若能兼顧Sketchup 自身建模優勢、傾斜攝影的空三加密成果和三維模型成果的優點,則可提升單體化效率。
根據OGC(Open Geospatial Consortium)中有關城市模型不同語義層級的定義[5],城市的不同區域,需要的單體模型層級不同。CityGML 定義的5 個細節層級如圖1 所示,某項目要求的單體精細度與細節層級對照如表1 所示。

表1 某項目要求的單體精細度與細節層級對照
經過空三加密處理之后的影像會恢復拍攝時的位置關系,如圖2 所示。對任意一個在航線中的建筑物來說,靠近正上方的影像即正射影像拍攝到的屋頂細節更豐富,偏離正上方的影像即傾斜影像則能拍攝到更多立面細節,例如建筑物高度、陽臺側面等。

圖2 影像位置關系
在確定單體模型中某些面的高度或立面的縮進程度時,除利用影像邊界位置,還可通過三維場景中的osgb 模型確定。如圖3 所示,從左至右分別為LOD1、LOD2、LOD3 層級的單體模型與三角網交錯顯示情況。

圖3 不同層級單體模型與osgb模型套合顯示
若區域內已有相同坐標的地形圖數據(如DWG 格式的數據),可將該數據導入工程,再利用Sketchup的自動構面插件,將DLG 數據中閉合線條自動封閉成平面。由影像或osgb 模型可判斷建筑物高度,使用推拉工具,可將平面推拉成為LOD1 或LOD2 層級單體化模型。如圖4 所示,DLG 數據和傾斜攝影得到的osgb模型和影像套合顯示,平面位置無差異。圖5 顯示了采用DLG 數據推拉成的建筑物立體結構。

圖4 DLG數據與影像和模型的無縫套合

圖5 DLG數據自動構面后的立體結構
3.5.1 紋理自動映射
在拍攝物體時,如一個立面,影像得到的并非正射投影,而是隨拍攝角度不同,產生一定的變換,即透視變換。因此需將平面投影到影像上對應的四邊形紋理,經過糾正成為矩形并映射到對應平面。具體方法為 :確定四邊形區域與紋理UV 坐標的一一對應關系。如圖6 所示,同一平面投影到不同方位影像上的UV 坐標顯示。自動映射后得到的紋理特征如圖7 所示。

圖6 平面投影在影像中的UV框

圖7 經過紋理映射的平面(上)與群組(下)
3.5.2 紋理人工完善
由于某些植被距離建筑物立面較近,航空影像采集的角度并非任意,故采集到的立面紋理被地物遮擋,可利用第三方紋理編輯工具修復紋理,如圖8 所示。

圖8 修復前紋理(左)與修復后紋理(右)
完成紋理映射之后的模型在Sketchup 中,每個平面對應一張紋理。該種紋理存儲方式不利于后續模型可視化。場景過大,單體模型數量較多,可能會因為計算機沒有過多資源,導致工程退出。為提高可視化效率,軟件會將導出的紋理進行封裝,如圖9 所示。

圖9 封裝的紋理
利用OSketch 軟件完成某項目后,對作業效率進行統計,完成情況以及數據量對比分別如表2 和表3所示。數據量統計均為非壓縮狀態。由表3 可知,項目所得osgb模型的數據量是單體模型成果的約25倍。

表2 某項目工作量統計

表3 項目成果數據的數據量統計
利用StampGIS 發布obj 單體模型、測區DOM、DEM 數據,得到的三維場景包含地面起伏狀況、建筑物信息。建筑物以外地物(如樹木、公園小品、路燈等)采用平臺自帶的模型庫按照DOM 放在相應位置。數據在平臺上的成果如圖10 和圖11 所示。基于DLG 批量推拉成的數據無屋頂結構,用于非重點區域快速重建?;趏sgb 和多視影像建模適用于重點區域精細建模。

圖10 基于DLG數據單體模型發布成果

圖11 基于osgb數據單體模型發布成果
采用本文所用的方法可快速為三維城市的建設提供有效的基礎數據。如何進一步提高單體數據的自動化程度,特別是對單體模型要求較高的區域,是未來工作中需要繼續研究的重點。