【3snews】傾斜攝影自動化建模成果的(de)數據組織和(hé / huò)單體化

  傾斜攝影三維建模及應用是(shì)近年來(lái)測繪領域關注的(de)熱點,産業鏈上(shàng)下遊的(de)企業爲(wéi / wèi)此都在(zài)積極探索,以(yǐ)推動該項技術的(de)健康發展和(hé / huò)落地(dì / de)應用。然而(ér),什麽樣的(de)技術才是(shì)真正符合用戶實際應用需求的(de)?在(zài)這(zhè)裏,我們要(yào / yāo)和(hé / huò)大(dà)家講解傾斜攝影應用的(de)兩個(gè)重要(yào / yāo)話題——傾斜攝影自動化建模成果(後文簡稱“傾斜模型”)的(de)數據組織和(hé / huò)單體化。
  數據組織:要(yào / yāo)LOD 更要(yào / yāo)便捷和(hé / huò)安全
  傾斜模型的(de)一(yī / yì /yí)個(gè)突出(chū)的(de)特點就(jiù)是(shì)數據量龐大(dà),這(zhè)是(shì)因其技術機制、高精度、對地(dì / de)表全覆蓋的(de)真實影像所決定的(de)。那麽,如何承載海量的(de)傾斜模型數據、保證快速加載和(hé / huò)流暢渲染?這(zhè)是(shì)傾斜攝影技術順利實現應用的(de)第一(yī / yì /yí)大(dà)“攔路虎”,必須拿下。是(shì)直接讀取OSGB格式的(de)傾斜攝影模型海量數據,還是(shì)需要(yào / yāo)導入和(hé / huò)處理數據格式後讀取?這(zhè)是(shì)一(yī / yì /yí)個(gè)關鍵問題。
  解決這(zhè)個(gè)問題之(zhī)前,我們先明确下LOD(Level of Detail)這(zhè)個(gè)概念。LOD是(shì)GIS平台提高性能的(de)一(yī / yì /yí)個(gè)重要(yào / yāo)法寶,即對同一(yī / yì /yí)個(gè)數據從清晰到(dào)模糊有多份。當屏幕視角距離某個(gè)地(dì / de)物近時(shí),軟件自動調用最清晰層的(de)數據;當屏幕視角遠離該地(dì / de)物時(shí),則自動切換爲(wéi / wèi)模糊層的(de)數據。由于(yú)人(rén)眼本來(lái)就(jiù)無法看清遠處的(de)數據,因此這(zhè)樣做并不(bù)影響視覺效果。例如影像金字塔、地(dì / de)圖分比例尺切圖等,都采用此方式。
  對于(yú)手工建模的(de)模型,一(yī / yì /yí)般是(shì)通過三維GIS平台自行計算出(chū)多層LOD,并處理其遠近距離的(de)切換關系。而(ér)對于(yú)傾斜模型,由于(yú)其技術原理是(shì)先計算稠密點雲、經過簡化後再構建TIN,因此在(zài)數據生産的(de)過程中,就(jiù)能通過不(bù)同的(de)簡化比例來(lái)得到(dào)數據LOD,而(ér)不(bù)再需要(yào / yāo)GIS平台來(lái)進行計算。并且數據生産過程中計算出(chū)來(lái)的(de)LOD效果也(yě)是(shì)優質的(de)。也(yě)正因爲(wéi / wèi)如此,無論是(shì)街景工廠還是(shì)Smart3D,其生産出(chū)來(lái)的(de)傾斜模型都是(shì)自帶多級LOD的(de),一(yī / yì /yí)般至少帶有5-6層,多則10層以(yǐ)上(shàng)。
  數據本身自帶LOD,從技術原理上(shàng)就(jiù)決定了(le/liǎo)其看似龐大(dà),其實完全可以(yǐ)做到(dào)非常高的(de)調度和(hé / huò)渲染性能(隻要(yào / yāo)不(bù)破換原始自帶的(de)LOD)。這(zhè)也(yě)是(shì)爲(wéi / wèi)什麽我們使用數據廠家自帶的(de)Viewer就(jiù)可以(yǐ)獲得很好的(de)加載和(hé / huò)浏覽性能。
  分析到(dào)這(zhè)裏,相信大(dà)家就(jiù)會明白:采用直接讀取傾斜模型原始OSGB格式相比采用導入的(de)方式更好。爲(wéi / wèi)什麽這(zhè)麽說(shuō)呢?一(yī / yì /yí)方面,導入過程費時(shí)費力,處理海量傾斜模型數據往往需要(yào / yāo)數周。更重要(yào / yāo)的(de)是(shì),在(zài)數據導入過程中,爲(wéi / wèi)了(le/liǎo)和(hé / huò)平台内部格式保持一(yī / yì /yí)緻,往往會破換原始數據的(de)LOD,自行再構建LOD。這(zhè)樣構建的(de)LOD,無論是(shì)效果還是(shì)性能,都遠遜于(yú)原始LOD,導緻性能不(bù)佳。
  此外,在(zài)格式選擇上(shàng),傾斜攝影建模軟件有内部私有格式(如Smart3D的(de)s3c),另外還可輸出(chū)爲(wéi / wèi)OSGB和(hé / huò)DAE兩種外部格式。其中,DAE格式由于(yú)是(shì)文本格式,直接讀取效率太低,因此被排除在(zài)外。而(ér)OSGB格式是(shì)開源的(de)OSG庫所自帶的(de)二進制格式,直接讀取效率高,且格式公開,有免費的(de)開源庫可直接使用,并且适合作爲(wéi / wèi)後續網絡發布與三維服務共享的(de)模型傳輸格式,因此成爲(wéi / wèi)優先選擇。
  那麽,有人(rén)可能會問:OSGB作爲(wéi / wèi)公開格式,若直接使用,如何解決網絡發布後的(de)數據安全問題?對于(yú)這(zhè)個(gè)問題,其實并不(bù)難解決:在(zài)服務端,我們雖然是(shì)直接讀取OSGB文件,但在(zài)網絡發布緩存到(dào)客戶端的(de)模型,已經是(shì)通過服務端加密,并在(zài)客戶端壓縮打包爲(wéi / wèi)一(yī / yì /yí)個(gè)内部的(de)大(dà)文件,如下圖所示。因此,直接讀取OSGB格式絕對不(bù)存在(zài)數據洩露等安全問題。

                      圖 1服務端的(de)OSGB文件

                    圖 2客戶端緩存後的(de)大(dà)文件
  解答完上(shàng)述問題,可能還有人(rén)會問:一(yī / yì /yí)大(dà)堆OSGB的(de)小文件,拷貝和(hé / huò)管理都很麻煩。如何解決?針對這(zhè)個(gè)問題,超圖軟件正在(zài)研發采用分布式數據庫來(lái)存儲和(hé / huò)管理osgb文件,便于(yú)海量OSGB文件的(de)存儲、拷貝、管理和(hé / huò)服務發布。
  值得注意的(de)是(shì),即便我們采用數據庫來(lái)進行存儲和(hé / huò)管理,也(yě)是(shì)直接把每個(gè)OSGB小文件放到(dào)數據庫中,而(ér)不(bù)是(shì)導入OSGB格式——我們堅決不(bù)破破壞數據原有的(de)LOD,也(yě)堅決捍衛OSGB格式的(de)開放性。彼時(shí),數據的(de)安全性則可以(yǐ)通過數據庫本身的(de)安全體系來(lái)予以(yǐ)保證。
  單體化:切割還是(shì)矢量化?
  提到(dào)單體化,可能很多人(rén)說(shuō)起來(lái)都是(shì)眼淚。基于(yú)傾斜影像,若做人(rén)工幹預的(de)建模,自然就(jiù)不(bù)存在(zài)單體化的(de)問題,生成的(de)模型本來(lái)就(jiù)是(shì)單體的(de)。而(ér)自動化建模的(de)成果,由于(yú)其生成機理,得到(dào)的(de)模型是(shì)一(yī / yì /yí)個(gè)連續的(de)TIN加貼圖,并沒有根據建築物劃分爲(wéi / wèi)一(yī / yì /yí)個(gè)個(gè)可以(yǐ)單獨選中的(de)對象。而(ér)我們都知道(dào),在(zài)GIS管理和(hé / huò)應用中,若傾斜模型不(bù)能進行對象的(de)單獨選中和(hé / huò)查詢,就(jiù)隻能和(hé / huò)影像一(yī / yì /yí)樣作爲(wéi / wèi)底圖浏覽,無法進一(yī / yì /yí)步深入應用。單體化成爲(wéi / wèi)第二大(dà)“攔路虎”,我們必須闖關成功。
  如何實現單體化才是(shì)最好的(de)?
  很多技術人(rén)員腦海中冒出(chū)的(de)第一(yī / yì /yí)個(gè)直觀的(de)想法一(yī / yì /yí)定是(shì):對傾斜模型進行切割呀,這(zhè)樣切割之(zhī)後的(de)模型就(jiù)和(hé / huò)人(rén)工建模成果一(yī / yì /yí)個(gè)樣了(le/liǎo)。
  不(bù)過很遺憾地(dì / de)說(shuō),這(zhè)種想法貌似很完美,但其實是(shì)一(yī / yì /yí)條“死胡同”。隻要(yào / yāo)切割一(yī / yì /yí)下數據,做一(yī / yì /yí)個(gè)小小的(de)實驗,就(jiù)會一(yī / yì /yí)目了(le/liǎo)然了(le/liǎo)。當看到(dào)效果的(de)一(yī / yì /yí)刹那,大(dà)家一(yī / yì /yí)定會心涼半截。

                    圖 3 傾斜模型切割後的(de)邊緣效果
  如上(shàng)圖,這(zhè)樣的(de)邊緣效果肯定不(bù)是(shì)用戶所想要(yào / yāo)的(de)。更重要(yào / yāo)的(de)是(shì),切割之(zhī)後,兩個(gè)主要(yào / yāo)後續用途都沒法實現:
  一(yī / yì /yí)是(shì)替換人(rén)工精細建模的(de)模型。看到(dào)這(zhè)樣的(de)鋸齒邊緣,真不(bù)知道(dào)人(rén)工建模的(de)人(rén)員如何才能把鋸齒邊緣接上(shàng)去。難以(yǐ)想象建模人(rén)員的(de)抓狂。
  第二個(gè)用途是(shì)隐藏某種類型的(de)地(dì / de)物。這(zhè)樣露出(chū)一(yī / yì /yí)個(gè)鋸齒狀的(de)空洞,你說(shuō)評審專家是(shì)讓項目不(bù)過啊,不(bù)過啊還是(shì)不(bù)過啊?
  爲(wéi / wèi)什麽會有鋸齒呢?是(shì)切割的(de)技術不(bù)夠高?完全不(bù)是(shì)。根源在(zài)于(yú)傾斜模型數據本身其實就(jiù)是(shì)三角面片加紋理,切割算法無非是(shì)根據建築底面來(lái)決定哪些三角面片保留,哪些三角面片被抛棄;邊緣的(de)鋸齒其實也(yě)就(jiù)是(shì)留下來(lái)靠邊的(de)三角面片而(ér)已。說(shuō)到(dào)底是(shì)傾斜模型自動化生成算法所決定了(le/liǎo)的(de),和(hé / huò)GIS平台真沒什麽關系。
  第二個(gè)問題是(shì),這(zhè)樣的(de)切割後,也(yě)抛棄了(le/liǎo)數據自帶LOD的(de)優點,導緻GIS平台隻能按照普通模型的(de)方法來(lái)構建LOD。傾斜模型數據量龐大(dà),想想這(zhè)性能表現也(yě)是(shì)醉了(le/liǎo)。
  切割之(zhī)後存在(zài)的(de)第三個(gè)問題是(shì):切割必須事先輸入對應地(dì / de)物的(de)矢量底面數據。經過漫長的(de)等待,切割出(chū)來(lái)之(zhī)後,若發生任何一(yī / yì /yí)點變動,對不(bù)起,數據還得再返工切一(yī / yì /yí)遍。因此,其靈活性幾乎爲(wéi / wèi)零。
  現在(zài),讓我們換一(yī / yì /yí)個(gè)思路來(lái)看待傾斜模型:它事實上(shàng)就(jiù)是(shì)帶有TIN作爲(wéi / wèi)高程背景的(de)影像。在(zài)二維GIS中,有誰見過根據矢量底面來(lái)把影像數據切割爲(wéi / wèi)建築物影像圖層、道(dào)路影像圖層、綠植影像圖層的(de)嗎?正确的(de)思路是(shì):我們在(zài)影像數據上(shàng)進行矢量化,從而(ér)可以(yǐ)在(zài)影像+矢量的(de)圖層上(shàng)選中建築物、道(dào)路等地(dì / de)物。若一(yī / yì /yí)定需要(yào / yāo)把影像上(shàng)的(de)某種類型地(dì / de)物隐藏,也(yě)是(shì)通過疊加這(zhè)種地(dì / de)物的(de)矢量圖進行顯示過濾。
  把GIS的(de)科學原理搞清楚了(le/liǎo),我們回過頭來(lái)再看待如何進行傾斜模型的(de)單體化,就(jiù)胸中有丘壑了(le/liǎo)。隻要(yào / yāo)試一(yī / yì /yí)下就(jiù)知道(dào),通過疊加的(de)矢量底面,在(zài)渲染層面實現單體化,效果ganggang的(de):被選中的(de)地(dì / de)物像是(shì)被高透膜緊密包裹,底部邊緣筆直。

                圖 4 矢量化後的(de)傾斜模型單體化邊緣效果
  采用矢量化的(de)方式,在(zài)保證效果、不(bù)破壞原始數據及LOD的(de)同時(shí),最大(dà)的(de)好處還在(zài)于(yú)它打通了(le/liǎo)基于(yú)三維的(de)傾斜模型和(hé / huò)基于(yú)二維的(de)矢量面之(zhī)間的(de)關鍵“關卡”,實現三維和(hé / huò)二維GIS的(de)完美一(yī / yì /yí)體化。基于(yú)此,GIS的(de)一(yī / yì /yí)系列功能(如圖查屬性、屬性插圖、緩存區分析與查詢、專題圖制作等等)都可輕松實現。至此,對于(yú)傾斜模型的(de)應用,用戶可以(yǐ)不(bù)用再糾結于(yú)選擇哪個(gè)GIS平台,而(ér)是(shì)要(yào / yāo)充分發揮應用的(de)廣闊想象力。
  它帶來(lái)的(de)價值還體現在(zài)動态性和(hé / huò)靈活性的(de)大(dà)大(dà)提升。由于(yú)疊加的(de)矢量面隻需要(yào / yāo)一(yī / yì /yí)個(gè)簡單的(de)圖層設置就(jiù)可以(yǐ)起作用,這(zhè)也(yě)就(jiù)意味着:在(zài)應用過程中,可以(yǐ)随時(shí)更換需要(yào / yāo)疊加的(de)矢量面。當用戶增加數據類型後,不(bù)用再大(dà)費周章的(de)把數據重新切割一(yī / yì /yí)遍,而(ér)是(shì)點兩下鼠标,就(jiù)可快速搞定。想一(yī / yì /yí)想,這(zhè)是(shì)多麽惬意的(de)一(yī / yì /yí)件事。
  當然,當前支撐傾斜攝影應用的(de)GIS技術還不(bù)是(shì)很完美,想用戶之(zhī)所想,實現基于(yú)傾斜模型的(de)更多能力、追求更優化的(de)性能和(hé / huò)效果,永遠是(shì)我們GIS人(rén)共同的(de)追求。在(zài)這(zhè)個(gè)技術變革“加速度”的(de)時(shí)代,快速響應、快速叠代、快速研發成爲(wéi / wèi)關鍵。