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

2021-08-03 15:00:26 字數 3768 閱讀 5748

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

資料組織:要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人共同的追求。在這個技術變革「加速度」的時代,快速響應、快速迭代、快速研發成為關鍵。

DEM精度評價自動化系統的成果展示

程式設計師 左正康 2013 12 3 系統開發背景 原始的dem 精度評價方法 採用 arcgis 結合excel 的方式完成 dem的精度評價。具體操作是 利用 arcgis 工具箱中的建立 tin,tin轉 dem,坡度分析等工具將等高線的坡度圖生成,然後在坡度圖上選擇坡度大的地方人工向量 2...

安全的資料庫部署自動化

通過將資料庫物件變更指令碼寫進傳統的版本控制系統中實現自動化的做法有侷限性 不靈活 與資料庫本身脫節,而且可能不合標準,並容易因為指令碼衝突丟失目標環境的更新。使用 比較 同步 工具實現自動化則是一件有風險的事。這兩種理念沒有結合在一起,乙個不知道另乙個,必須找出一種更好的解決方案。為了將資料庫恰當...

自動化測試常用的資料驅動方式

在日常的測試工作中,從理論上來說,乙個介面方法可以用乙個用例就搞定測試,然後傳入不同的引數的不同組合,在用例方法裡做不同的分支判斷校驗。看似很美好,包羅永珍的引數組合,實現其來很麻煩,且有如下缺點 且需要花大量的精力去判斷分支路徑,並做不同的斷言,破壞了方法的原子性,不要指望乙個方法幹所有事情,我們...