殷騰箐,仲偉凡,張笑楠
(浙江省河海測繪院,浙江 杭州 310008)
基于Krpano的全景技術(shù)在灘涂資源管理系統(tǒng)中的應(yīng)用
殷騰箐,仲偉凡,張笑楠
(浙江省河海測繪院,浙江 杭州 310008)
闡述全景作為一種虛擬現(xiàn)實技術(shù)廣泛應(yīng)用于各個領(lǐng)域,并與其它學(xué)科交叉互補的情況。對全景的基本原理及后期處理步驟與平臺引擎進(jìn)行研究,最后,結(jié)合在浙江省灘涂資源管理系統(tǒng)中的集成,展示全景技術(shù)在3S技術(shù)中應(yīng)用的實例與總體趨勢。
WebGIS;全景;Krpano;Skyline
隨著近年技術(shù)的進(jìn)步與智慧城市熱潮的興起,對地理信息的數(shù)據(jù)表達(dá)方式的要求已不再只停留于傳統(tǒng)的矢量、影像地圖的形式,隨著瀏覽器端圖形顯示技術(shù)的成熟,越來越多的三維場景被集成到地理信息系統(tǒng)之中。全景作為三維技術(shù)的一個分支,以其先進(jìn)的交互性和真實性,給各行各業(yè)提供了全新的表現(xiàn)形式,全景采用現(xiàn)勢性高的相片構(gòu)建真實世界的場景,用戶可以以第一人稱視角獲得身臨其境之感,通過全景視圖,不僅可以展現(xiàn)傳統(tǒng)地理位置信息,還可以集成相關(guān)的屬性信息,同時其還是一個性價比較高的虛擬現(xiàn)實實現(xiàn)方案。地圖3D化、實景化是地圖服務(wù)未來的發(fā)展趨勢之一。本文在全景技術(shù)和當(dāng)今最流行的Krpano全景引擎的基礎(chǔ)上,以其在浙江省灘涂資源管理系統(tǒng)中的集成為例,討論分析全景技術(shù)與WebGIS的結(jié)合應(yīng)用。
2.1 全景概念與分類
全景亦經(jīng)常被稱為360全景,是一種全新的圖像組織模式,指視點固定,視線向任意方向運動時所觀察到的圖像,可描述完整的周圍環(huán)境信息[1]。按投影方式的不同,有柱形全景、球形全景、球面全景、立方體全景、對象全景、圓形全景、小行星全景等類型,按采集方式的不同,可分為無人機(jī)空中全景與地面全景(靜態(tài)單點或車載連續(xù)采集)。全景制作的前提,同時也是最關(guān)鍵的質(zhì)量因素,便是通過
攝影獲取的作為數(shù)據(jù)源的相片。與通常所言的寬幅攝影不同,全景攝影是指水平視角360°、垂直視角180°,對三維空間的影像完整捕獲,并通過專門軟件處理制作為動態(tài)漫游作品的攝影技術(shù)[2]。如今全景應(yīng)用進(jìn)入了平民時代,全景制作的門檻越來越低,甚至越來越多的手機(jī)也具有了全景拍攝的功能,而且在機(jī)內(nèi)就可以直接拼接生成360°×180°的全景圖像。
2.2 全景市場應(yīng)用及技術(shù)趨勢
高效的數(shù)據(jù)獲取手段和成熟的應(yīng)用模式使全景擁有了廣闊的前景,在旅游景點、虛擬校園、商業(yè)展示等領(lǐng)域均取得了良好的用戶體驗。在硬件方面,更加便捷的設(shè)備和日益清晰的分辨率催生了全景視頻及全景直播等產(chǎn)品創(chuàng)新。在軟件方面,Krpano等成熟的全景引擎讓更高程度的個性化應(yīng)用成為可能, API(應(yīng)用程序開發(fā)接口)的提供使全景不再局限于靜態(tài)的瀏覽,以PHP + MySQL + js + html + json為代表的前后端和數(shù)據(jù)庫技術(shù)的結(jié)合孕育了“720yun”等一系列全景在線發(fā)布平臺,展現(xiàn)了互聯(lián)網(wǎng)的線上優(yōu)勢。同時,伴隨虛擬現(xiàn)實與移動互聯(lián)網(wǎng)的浪潮,全景作為核心的內(nèi)容服務(wù)來源以特定的編碼格式對其提供支持。此外,無人機(jī)的興起,使全景的視角得以到達(dá)以前所無法到達(dá)的地方,空中全景在各全景系統(tǒng)中所占比例日漸增加。
2.3 Krpano框架介紹
Krpano是目前最流行的全景引擎,基于Flash的內(nèi)核,同時提供了html5的解決方案,它的渲染效果采用Action Script語言實現(xiàn),場景內(nèi)容的配置則由xml標(biāo)記語言負(fù)責(zé),由于xml的可擴(kuò)展性,使得全景場景的配置更加靈活,Krpano內(nèi)置了26個主要的xml節(jié)點標(biāo)記,每個標(biāo)記都代表著全景場景中的特定要素或有特定含義,可以以此組成功能完善的全景系統(tǒng)。xml的靈活性還體現(xiàn)在支持代碼文件的包含引入,這樣便有利于實現(xiàn)場景的模塊化配置,方便代碼的編寫與維護(hù)。Action Script也為Krpano定義了一系列接口,用以控制Krpano的動作。Krpano的功能強(qiáng)大,除了因為它擁有豐富的節(jié)點來響應(yīng)不同的事件,還在于它采用了簡單小巧的動態(tài)腳本語言,通過編寫動作腳本可以實現(xiàn)不同的動作特效。Krpano具有幾類預(yù)定義的變量,如與屏幕信息及設(shè)定相關(guān)的Fullscreen、Bgcolor,與顯示設(shè)備信息相關(guān)的Iphone、Isf l ash、Ishtml5等,除了預(yù)定義的變量,其余變量的定義不需要指定類型,類型轉(zhuǎn)換在內(nèi)部自動處理。Krpano為制作動態(tài)特效提供了多種函數(shù),如程序邏輯和流程控制函數(shù)、數(shù)學(xué)運算函數(shù)、文字顯示函數(shù)以及動態(tài)加載其它全景圖的函數(shù)等[3]。此外,通過外部Javascript接口函數(shù),還可與前端的Javascript實現(xiàn)交互,Krpano與外部系統(tǒng)的通信機(jī)制見圖1。
3.1 項目概況
浙江省灘涂資源管理系統(tǒng)是一個全面展示全省灘涂資源分布情況,掌握其動態(tài)變化,反映其演變規(guī)律的基于三層架構(gòu)的網(wǎng)絡(luò)地理信息系統(tǒng)。為浙江省科學(xué)圍墾、生態(tài)圍墾決策提供詳實可靠的灘涂資源基礎(chǔ)數(shù)據(jù)查詢功能,輔助灘涂圍墾工作的規(guī)劃管理。
3.2 全景數(shù)據(jù)采集處理
全景類型有靜態(tài)單點(單反相機(jī)地面采集與無人機(jī)空中采集)和車載連續(xù)2種。以車載全景為例講解其采集處理流程,Ladybug相機(jī)全景采集技術(shù)路線流程見圖2。
圖2 Ladybug相機(jī)全景采集技術(shù)路線流程圖
全景技術(shù)流程概括來說依次為相片采集、拼接、圖像處理(勻光、補天等)、分級切片,最終生成f l ash、html等全景產(chǎn)品。
多角度相片拼接:Ladybug5相機(jī)主體由6個500萬像素的鏡頭構(gòu)成,同時采集各視角的鏡頭數(shù)據(jù),并在LadybugCapPro軟件中同步拼接,在該軟件中可查看指定幀場景的各相片以及拼接之后的完整效果圖。
Ladybug全景數(shù)據(jù)導(dǎo)出:采集的數(shù)據(jù)以pgr后綴的工程文件形式存儲在硬盤中,需要在LadybugCapPro軟件中重新加載該工程文件,按需要的分辨率將圖片導(dǎo)出。若場景間的距離過近可選擇跳幀導(dǎo)出,若距離過遠(yuǎn)則必須考慮重新采集以保證影像的全覆蓋。
全景整圖校正處理:由于全景拼接造成的畸變效果或者全景采集過程中因諸多原因造成的圖片變形,在渲染輸出前應(yīng)現(xiàn)用專業(yè)的全景處理軟件(PTGui)校正畸變。另外,根據(jù)需要采用Photoshop等軟件完成補天、補地的相應(yīng)工作。
全景相片分級切片:為滿足全景相片在系統(tǒng)中流暢顯示的需要,在Krpano軟件中對相片進(jìn)行分級切片,根據(jù)采集數(shù)據(jù)時設(shè)置的相片自身的分辨率,會切出不同級數(shù)的各類數(shù)據(jù)。切完的數(shù)據(jù)統(tǒng)一存放在相片同目錄下名為vtour的文件夾中以供調(diào)用。此外,單點全景雖然處理方式不同,但在由相應(yīng)軟件導(dǎo)出過程中亦有切片過程。
灘涂系統(tǒng)圍墾工程空中全景與車載全景應(yīng)用示例分別見圖3 ~ 4。
圖3 圍墾區(qū)空中全景圖
圖4 圍墾區(qū)車載全景圖
3.3 全景數(shù)據(jù)組織
系統(tǒng)中集成了寧波北侖、三門灣等地區(qū)的車載全景,舟山群島、樂清灣等地的空中全景及早期采集的一些地面單點全景,涵蓋了浙江沿海主要的圍墾區(qū)。根據(jù)不同情況采用不同的數(shù)據(jù)處理流程與存儲方式。單點全景只需要html格式,并在Skyline explore中以圖層的形式歸類放置,最后通過Skyline圖層調(diào)用。車載全景采用Krpano引擎的成果,在文件目錄中,還需存放相應(yīng)的xml、js、swf等配套文件以及切片文件夾。此外,為滿足車載全景與地圖點位關(guān)聯(lián)的要求,需將坐標(biāo)信息與相應(yīng)的全景場景通過統(tǒng)一標(biāo)識對應(yīng),并存儲于數(shù)據(jù)庫中。車載全景—點層屬性結(jié)構(gòu)描述見表1。
表1 車載全景—點層屬性結(jié)構(gòu)描述表
3.4 Krpano技術(shù)與系統(tǒng)集成
本系統(tǒng)應(yīng)用最新的計算機(jī)與網(wǎng)絡(luò)技術(shù),采用SOA的網(wǎng)絡(luò)架構(gòu),使用Jquery和Ext.js作為前端語言通過AJAX的機(jī)制以WebService的方式異步調(diào)用存儲于Sqlserver中的屬性數(shù)據(jù)。在GIS方面,以Skyline作為三維平臺,SuperMap作為二維平臺。
結(jié)合灘涂資源管理系統(tǒng)的實際需求,在已有的斷面分析、沖淤圖、圍墾工程等功能的基礎(chǔ)上,將全景作為獨立的成果可視化模塊添加。在html中嵌入f l ash形式的全景成果有2種方式,若直接應(yīng)用swf成果則使用< embed >標(biāo)記即可,若要通過類似Krpano框架的全景對象來嵌入全景,則先引入框架腳本如下<script type =”text/javascript”src =”tour.js”></script>,之后通過函數(shù)創(chuàng)建全景對象var viewer = createPanoViewer({swf:”tour.swf”,id:”krpanoSWFObject”,target:”krpanoDIV”,passQueryParameters:true});最后使用語句viewer.embed()將該對象嵌入。
系統(tǒng)運行時,通過綁定鼠標(biāo)單擊事件獲取點擊處的位置信息,在與數(shù)據(jù)庫中存儲的完整路徑比較后傳回離該點最近的全景場景名,隨后使用krpano.call(“l(fā)oadscene(“ + sceneName + “,null,MERGE)”)跳轉(zhuǎn)至該全景。在JS與Krpano接口相互調(diào)用的過程中實現(xiàn)了實時聯(lián)動。
總體上看,全景在該WebGIS中的應(yīng)用主要依托于后臺屬性數(shù)據(jù)的掛接,前臺電子地圖的可視化支持以及其它相應(yīng)的業(yè)務(wù)邏輯,全景模塊結(jié)構(gòu)見圖5。
圖5 全景模塊結(jié)構(gòu)圖
3S技術(shù)的發(fā)展成熟為全景技術(shù)提供了更加強(qiáng)大的生命力。三維全景地理信息系統(tǒng),是結(jié)合電子地圖以及數(shù)據(jù)庫、三維全景等實現(xiàn)互聯(lián)網(wǎng)地址可視化、地圖化、模擬化及實現(xiàn)用戶的自我維護(hù),主要采用網(wǎng)頁嵌入顯示形式,實現(xiàn)GIS
地圖和虛擬全景的結(jié)合,虛擬全景圖與數(shù)據(jù)庫的融合;實現(xiàn)實時監(jiān)測動態(tài)信息,并在三維全景圖中顯示出準(zhǔn)確位置,達(dá)到場景的虛擬漫游效果。它作為一種信息管理和表達(dá)的手段,將地圖的定位、數(shù)據(jù)庫對信息管理的優(yōu)勢以及全景技術(shù)的真實現(xiàn)場感有機(jī)融為一體,使設(shè)計者所要表達(dá)的意圖能夠被完整準(zhǔn)確的理解。另外,三維全景地理信息系統(tǒng)實現(xiàn)點與面的結(jié)合及點面之間的轉(zhuǎn)換,部分與整體的融合和分離,局部與全局的有機(jī)結(jié)合,完全適合占地面積大或區(qū)域廣的單位,實現(xiàn)數(shù)據(jù)與資源的共享。三維全景地理信息系統(tǒng)是未來的地理信息系統(tǒng)發(fā)展的一個方向。
[1] 任慧,周振紅,周鑫鑫.基于RS與GIS的城市道路網(wǎng)密度計算[J].計算機(jī)輔助工程,2009,18(2):85 - 87.
[2] 張文欣.360全景攝影從入門到精通[M].北京:中國攝影出版社,2013.
[3] 朱國情,李東亮,程剛.基于Krpano的全景編輯系統(tǒng)設(shè)計與實現(xiàn)[D].武漢:海軍工程大學(xué)裝備仿真技術(shù)研究所,2012.
(責(zé)任編輯 黃 超)
TV697
B
1008 - 701X(2017)03 - 0089 - 03
10.13641/j.cnki.33 - 1162/tv.2017.03.025
2016-12-15
殷騰箐(1990 - ),男,助理工程師,大學(xué)本科,主要從事地理信息系統(tǒng)、無人機(jī)航測遙感工作。
E - mail:570120590@qq.com