傾斜攝影自動化建模成果的數據組織和單體化【轉】


傾斜攝影自動化建模成果的數據組織和單體化

來源:超圖軟件 2015-04-23 13:43:37

  傾斜攝影三維建模及應用是近年來測繪 領域關注的熱點,產業鏈上下游的企業為此都在積極探索,以推動該項技術的健康發展和落地應用。然而,什么樣的技術才是真正符合用戶實際應用需求的?在這 里,我們要和大家講解傾斜攝影應用的兩個重要話題——傾斜攝影自動化建模成果(后文簡稱“傾斜模型”)的數據組織和單體化。

  數據組織:要LOD 更要便捷和安全

  傾斜模型的一個突出的特點就是數據量龐大,這是因其技術機制、高精度、對地表全覆蓋的真實影像所決定的。那么,如何承載海量的傾斜模型數據、保 證快速加載和流暢渲染?這是傾斜攝影技術順利實現應用的第一大“攔路虎”,必須拿下。是直接讀取OSGB格式的傾斜攝影模型海量數據,還是需要導入和處理 數據格式后讀取?這是一個關鍵問題。

  解決這個問題之前,我們先明確下LOD(Level of Detail)這個概念。LOD是GIS平台提高性能的一個重要法寶,即對同一個數據從清晰到模糊有多份。當屏幕視角距離某個地物近時,軟件自動調用最清 晰層的數據;當屏幕視角遠離該地物時,則自動切換為模糊層的數據。由於人眼本來就無法看清遠處的數據,因此這樣做並不影響視覺效果。例如影像金字塔、地圖 分比例尺切圖等,都采用此方式。

  對於手工建模的模型,一般是通過三維GIS平台自行計算出多層LOD,並處理其遠近距離的切換關系。而對於傾斜模型,由於其技術原理是先計算稠 密點雲、經過簡化后再構建TIN,因此在數據生產的過程中,就能通過不同的簡化比例來得到數據LOD,而不再需要GIS平台來進行計算。並且數據生產過程 中計算出來的LOD效果也是最佳的。也正因為如此,無論是街景工廠還是Smart3D,其生產出來的傾斜模型都是自帶多級LOD的,一般至少帶有5-6 層,多則10層以上。

  數據本身自帶LOD,從技術原理上就決定了其看似龐大,其實完全可以做到非常高的調度和渲染性能(只要不破換原始自帶的LOD)。這也是為什么我們使用數據廠家自帶的Viewer就可以獲得很好的加載和瀏覽性能。

  分析到這里,相信大家就會明白:采用直接讀取傾斜模型原始OSGB格式相比采用導入的方式更好。為什么這么說呢?一方面,導入過程費時費力,處 理海量傾斜模型數據往往需要數周。更重要的是,在數據導入過程中,為了和平台內部格式保持一致,往往會破換原始數據的LOD,自行再構建LOD。這樣構建 的LOD,無論是效果還是性能,都遠遜於原始LOD,導致性能不佳。

  此外,在格式選擇上,傾斜攝影建模軟件有內部私有格式(如Smart3D的s3c),另外還可輸出為OSGB和DAE兩種外部格式。其 中,DAE格式由於是文本格式,直接讀取效率太低,因此被排除在外。而OSGB格式是開源的OSG庫所自帶的二進制格式,直接讀取效率高,且格式公開,有 免費的開源庫可直接使用,並且適合作為后續網絡發布與三維服務共享的模型傳輸格式,因此成為最佳選擇。

  那么,有人可能會問:OSGB作為公開格式,若直接使用,如何解決網絡發布后的數據安全問題?對於這個問題,其實並不難解決:在服務端,我們雖 然是直接讀取OSGB文件,但在網絡發布緩存到客戶端的模型,已經是通過服務端加密,並在客戶端壓縮打包為一個內部的大文件,如下圖所示。因此,直接讀取 OSGB格式絕對不存在數據泄露等安全問題。

\

圖 1服務端的OSGB文件

\

圖 2客戶端緩存后的大文件

  解答完上述問題,可能還有人會問:一大堆OSGB的小文件,拷貝和管理都很麻煩。如何解決?針對這個問題,超圖軟件正在研發采用分布式數據庫來存儲和管理osgb文件,便於海量OSGB文件的存儲、拷貝、管理和服務發布。

  值得注意的是,即便我們采用數據庫來進行存儲和管理,也是直接把每個OSGB小文件放到數據庫中,而不是導入OSGB格式——我們堅決不破破壞數據原有的LOD,也堅決捍衛OSGB格式的開放性。彼時,數據的安全性則可以通過數據庫本身的安全體系來予以保證。

  單體化:切割還是矢量化?

  提到單體化,可能很多人說起來都是眼淚。基於傾斜影像,若做人工干預的建模,自然就不存在單體化的問題,生成的模型本來就是單體的。而自動化建 模的成果,由於其生成機理,得到的模型是一個連續的TIN加貼圖,並沒有根據建築物划分為一個個可以單獨選中的對象。而我們都知道,在GIS管理和應用 中,若傾斜模型不能進行對象的單獨選中和查詢,就只能和影像一樣作為底圖瀏覽,無法進一步深入應用。單體化成為第二大“攔路虎”,我們必須闖關成功。

  如何實現單體化才是最好的?

  很多技術人員腦海中冒出的第一個直觀的想法一定是:對傾斜模型進行切割呀,這樣切割之后的模型就和人工建模成果一個樣了。

  不過很遺憾地說,這種想法貌似很完美,但其實是一條“死胡同”。只要切割一下數據,做一個小小的實驗,就會一目了然了。當看到效果的一剎那,大家一定會心涼半截。

\

圖 3 傾斜模型切割后的邊緣效果

  如上圖,這樣的邊緣效果肯定不是用戶所想要的。更重要的是,切割之后,兩個主要后續用途都沒法實現:

  一是替換人工精細建模的模型。看到這樣的鋸齒邊緣,真不知道人工建模的人員如何才能把鋸齒邊緣接上去。難以想象建模人員的抓狂。

  第二個用途是隱藏某種類型的地物。這樣露出一個鋸齒狀的空洞,你說評審專家是讓項目不過啊,不過啊還是不過啊?

  為什么會有鋸齒呢?是切割的技術不夠高?完全不是。根源在於傾斜模型數據本身其實就是三角面片加紋理,切割算法無非是根據建築底面來決定哪些三 角面片保留,哪些三角面片被拋棄;邊緣的鋸齒其實也就是留下來靠邊的三角面片而已。說到底是傾斜模型自動化生成算法所決定了的,和GIS平台真沒什么關 系。

  第二個問題是,這樣的切割后,也拋棄了數據自帶LOD的優點,導致GIS平台只能按照普通模型的方法來構建LOD。傾斜模型數據量龐大,想想這性能表現也是醉了。

  切割之后存在的第三個問題是:切割必須事先輸入對應地物的矢量底面數據。經過漫長的等待,切割出來之后,若發生任何一點變動,對不起,數據還得再返工切一遍。因此,其靈活性幾乎為零。

  現在,讓我們換一個思路來看待傾斜模型:它事實上就是帶有TIN作為高程背景的影像。在二維GIS中,有誰見過根據矢量底面來把影像數據切割為 建築物影像圖層、道路影像圖層、綠植影像圖層的嗎?正確的思路是:我們在影像數據上進行矢量化,從而可以在影像+矢量的圖層上選中建築物、道路等地物。若 一定需要把影像上的某種類型地物隱藏,也是通過疊加這種地物的矢量圖進行顯示過濾。

  把GIS的科學原理搞清楚了,我們回過頭來再看待如何進行傾斜模型的單體化,就胸中有丘壑了。只要試一下就知道,通過疊加的矢量底面,在渲染層面實現單體化,效果ganggang的:被選中的地物像是被高透膜緊密包裹,底部邊緣筆直。

\

圖 4 矢量化后的傾斜模型單體化邊緣效果

  采用矢量化的方式,在保證效果、不破壞原始數據及LOD的同時,最大的好處還在於它打通了基於三維的傾斜模型和基於二維的矢量面之間的關鍵“關 卡”,實現三維和二維GIS的完美一體化。基於此,GIS的一系列功能(如圖查屬性、屬性插圖、緩存區分析與查詢、專題圖制作等等)都可輕松實現。至此, 對於傾斜模型的應用,用戶可以不用再糾結於選擇哪個GIS平台,而是要充分發揮應用的廣闊想象力。

  它帶來的價值還體現在動態性和靈活性的大大提升。由於疊加的矢量面只需要一個簡單的圖層設置就可以起作用,這也就意味着:在應用過程中,可以隨 時更換需要疊加的矢量面。當用戶增加數據類型后,不用再大費周章的把數據重新切割一遍,而是點兩下鼠標,就可快速搞定。想一想,這是多么愜意的一件事。

  當然,當前支撐傾斜攝影應用的GIS技術還不是很完美,想用戶之所想,實現基於傾斜模型的更多能力、追求更優化的性能和效果,永遠是我們GIS人共同的追求。在這個技術變革“加速度”的時代,快速響應、快速迭代、快速研發成為關鍵。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM