張 瑤,黃鵬嘉,朱長富
(1.中水珠江規(guī)劃勘測設計有限公司,廣東 廣州 510610;2.廣西大藤峽水利樞紐開發(fā)有限責任公司,廣西 南寧 530029)
隨著信息技術的快速發(fā)展,虛擬現(xiàn)實技術日漸成熟,且被廣泛應用于城市規(guī)劃[1]、生態(tài)旅游[2]、建筑設計[3]、教育[4]、工程設計[5]等諸多領域,其中全景[6]的應用已較為成熟。各行各業(yè)企圖使用全景技術實現(xiàn)項目的可視化監(jiān)督管理,為此大量的全景數(shù)據(jù)產(chǎn)生,高效管理工作中生產(chǎn)的全景數(shù)據(jù)成為一個迫在眉睫的問題。全景是通過對相機捕捉整個場景的圖像信息進行圖片拼接所獲得的全景圖像或全景視頻[7],基于該全景圖像和計算機技術實現(xiàn)全方位互動式的真實場景還原,稱之為全景虛擬現(xiàn)實技術[8-9]。該技術的實現(xiàn)是如今虛擬現(xiàn)實技術快速發(fā)展所帶來的智慧產(chǎn)品,它改變了傳統(tǒng)網(wǎng)絡中圖像瀏覽的平面化、靜態(tài)化的特點,使用戶在瀏覽器上能實現(xiàn)區(qū)域圖像的360度觀察,且通過交互操作體驗三維的VR視覺世界[6,10]。
與傳統(tǒng)3D建模相比,全景虛擬現(xiàn)實技術制作簡單,數(shù)據(jù)量小,系統(tǒng)消耗低,且真實感更強[11],因此本次研究采用了全景技術來實現(xiàn)大藤峽水利樞紐的虛擬展示。目前全景圖像的獲取方式有2種,其一直接通過全景拍攝器材獲得全景圖,該方法耗費較多不適合一般工程項目,其二采用圖像拼接軟件將普通相機拍攝的局部圖合成全景圖[12-13]。在眾多圖像拍攝工具中,無人機航拍的靈活性與大區(qū)域性[14],成為本次全景展示系統(tǒng)全景圖片素材的重要獲取手段,然后通過全景照片合成器制作最終的全景圖片,即全景系統(tǒng)所需要的源數(shù)據(jù)。
本研究以大藤峽水利樞紐工程建設項目為例,基于Krpano引擎和GIS地圖服務技術,采用PHP語言和MySQL數(shù)據(jù)庫,開發(fā)了一套完整的全景管理系統(tǒng),實現(xiàn)了大藤峽水利樞紐工程全景數(shù)據(jù)的制作、管理和入庫等功能,方便用戶生產(chǎn)全景產(chǎn)品的同時,對該區(qū)域工程建設的監(jiān)督任務提供數(shù)據(jù)和技術支撐,并對外形成良好的宣傳作用。
本全景展示系統(tǒng)采用瀏覽器/服務器模式進行系統(tǒng)架構設計,該架構開放式的特點可以支持系統(tǒng)在多種設備上運行,有利于滿足本系統(tǒng)對多客戶端的需求。系統(tǒng)開發(fā)采用的后端支持語言為PHP,其在開源性、跨平臺性、運行效率、數(shù)據(jù)庫連接、安全性等方面的優(yōu)勢[15-16]成為本次系統(tǒng)建設語言選擇的考慮因素,與此對應的MySQL數(shù)據(jù)庫[17]成為本系統(tǒng)數(shù)據(jù)庫管理工具。
該系統(tǒng)主要包含4個功能模塊(圖1):①全景管理,將用戶發(fā)布的全景作品進行統(tǒng)一管理,便于后期全景資料的管理和查閱,并能根據(jù)需求創(chuàng)建自己的管理圖冊;②全景編輯,對生成的全景作品進行基礎信息、子全景、場景熱點、輔助功能等相關信息的修改,并生成訪問地址和二維碼以供用戶使用和分享;③素材管理,對上傳到服務器的數(shù)據(jù),如全景圖、普通圖片、音頻、視頻等基礎數(shù)據(jù)的管理;④全景發(fā)布,通過本地上傳的數(shù)據(jù)或素材庫里的數(shù)據(jù),發(fā)布生成全景作品。
大藤峽水利樞紐無人機VR全景展示系統(tǒng)是基于Krpano引擎技術[18]的二次開發(fā)產(chǎn)品,在基礎全景制圖上實現(xiàn)了全景數(shù)據(jù)管理、全景發(fā)布以及全景分布的功能,有助于全景項目高效管理,提升了用戶體驗。之所以選擇Krpano引擎來開發(fā)全景系統(tǒng),不僅在于其可拓展性,還在于它能支持最常見的瀏覽器和設備,且能很好兼容多種系統(tǒng)和瀏覽器版本。Krpano內(nèi)置的圖像生成算法以及視圖渲染算法,能夠較好地提高切片后的相片質(zhì)量,以高細節(jié)和清晰度呈現(xiàn)圖像。除此外,該工具支持無縫的VR切換功能,不需要額外的插件或軟件支持。
Krpano引擎在該系統(tǒng)中主要作用是實現(xiàn)圖像的切片(圖2),生成不同尺度不同角度的全景切片數(shù)據(jù),然后依托web前端技術,實現(xiàn)全景數(shù)據(jù)的360度瀏覽。雖然目前已出現(xiàn)了較多基于Krpano的全景系統(tǒng)[19-20],但是本系統(tǒng)的構建思路和方法仍然存在差異之處,例如采用無人機獲取全景數(shù)據(jù)、采用fileinput插件上傳文件、不同的圖像切片和入庫標準等。
圖1 系統(tǒng)功能設計
圖2 Krpano引擎技術在系統(tǒng)中工作示意
1.3.1全景管理
項目中數(shù)據(jù)獲取有了無人機的支持必然簡單快速,但是對創(chuàng)建的大量全景數(shù)據(jù)進行管理是本系統(tǒng)必須要解決的問題。系統(tǒng)中設計的全景管理模塊就是讓用戶能根據(jù)需求創(chuàng)建自己的存儲模式,從而達到全景數(shù)據(jù)的管理目的。
本系統(tǒng)的全景管理模塊包含全景圖和全景視頻2種全景作品的管理(圖3),其中以全景圖的管理為首要。該模塊建設的重點在于對數(shù)據(jù)庫的管理,創(chuàng)建合適的全景管理數(shù)據(jù)表,合理設置各表屬性以及相關表格之間的關系。系統(tǒng)基于MySQL數(shù)據(jù)庫,創(chuàng)建了全景圖的分類表,用戶可以根據(jù)自己的需求自定義圖冊,將相關全景作品分類存儲,方便查詢管理。除此之外,用戶還可以根據(jù)作品創(chuàng)建時間或作品名來檢索目標全景。
1.3.2全景編輯
系統(tǒng)提供全景作品編輯的功能,允許用戶編制具有獨特風格的全景瀏覽作品。該模塊設計了5個功能區(qū):基本信息編輯、子全景編輯、場景熱點編輯、輔助功能編輯、使用與分享,每個功能區(qū)實現(xiàn)不同的編輯作用,以完成全景作品中每個場景的定制效果。
a)基礎信息編輯。作品基礎信息包括作品的標題、封面、文字介紹、拍攝時間地點等,用戶可以隨時修改全景作品的基礎信息內(nèi)容,給全景作品添加文字修飾,讓瀏覽觀眾有渠道可以了解該作品的相關信息。
b)子全景編輯。子全景編輯指的是對已發(fā)布的全景作品中各個全景圖片的添加和移除,該功能實現(xiàn)方式類似全景發(fā)布模塊的選擇素材數(shù)據(jù)進行全景作品創(chuàng)建的功能。設計該功能的目的是,用戶發(fā)布完某個全景作品后,能夠通過添加素材庫里的全景圖片來補充遺漏的全景圖,亦或通過刪除功能移除不適合該作品的全景圖片,從而達到全景作品隨意增添場景的能力。
這段話中,作者借助律師之口有意突出了男孩的個人歷險與古老的史詩之間的聯(lián)系;并且強調(diào)這部個人史詩應該用一種“更有力度的語言”,事實上是帝國的語言——拉丁語——講出來,明顯表現(xiàn)了一種帝國的懷舊情結和強烈的敘事沖動。
圖3 全景管理數(shù)據(jù)表E-R圖
c)場景熱點編輯。系統(tǒng)熱點編輯部分包含場景分組、視角、熱點等功能模塊(圖4),其中場景視角提供初始視角、視域范圍和垂直視角3個場景視角的設置;場景熱點分別為全景切換、超級鏈接、圖片、文字、語音、圖文、視頻熱點,該功能可以實現(xiàn)場景中各熱點的添加和刪除、內(nèi)容編輯。這些功能都是通過調(diào)用預先配置好的全景XML文件中相應功能函數(shù),再根據(jù)前端輸入內(nèi)容同步修改全景查看器中的配置信息,以實現(xiàn)各個場景效果的修改。場景分組是指將同一全景作品中的不同場景分組歸類,便于直觀展示各個場景之間的從屬關系。而在場景沙盤功能中,用戶根據(jù)各場景的位置在區(qū)域平面圖上添加對應點位,使得全景作品全局效果一目了然。場景特效,顧名思義可以幫助用戶給全景添加天氣效果,如雨雪陽光等。視頻貼片則是將具有輔助效果的視頻放置到對應場景的某個位置,給該位置點增加視頻介紹,該視頻會隨著場景的變動而移動。除此之外,場景導覽功能可以為相關工程項目的宣傳提供輔助作用,用戶設置好預定義的全景觀賞路線后,搭配上VR眼鏡,觀眾就可以通過一鍵導覽實現(xiàn)全景自動瀏覽,體驗虛擬現(xiàn)實身臨其境的效果。
d)輔助功能編輯。為了更好地設計和管理全景作品,系統(tǒng)添加了一些小型輔助工具,如添加背景音樂或語音解說、添加項目足跡、增加底部菜單欄等。下面以添加足跡為例,簡單介紹該功能的實現(xiàn)流程(圖5)。足跡功能采用的地理信息技術是騰訊地圖。基于騰訊地圖qq.maps接口,創(chuàng)建了Locator對象,該對象包含切換地圖、添加標記點、地理位置搜索定位、點擊獲取鼠標位置點信息等功能。系統(tǒng)前端通過調(diào)用該對象可以實現(xiàn)全景作品的地理位置添加。與此同時,全景分布模塊根據(jù)各個全景作品的位置信息,將其標注在地圖上,于是用戶可以直觀地看到所有項目的全景產(chǎn)品地理位置分布狀況,利于對各個全景項目有一個清醒的地理認知。
圖4 全景熱點編輯模塊功能設計
圖5 添加足跡功能界面
e)使用與分享。該部分使用的關鍵技術是二維碼創(chuàng)建功能,系統(tǒng)采用PHP類庫中的PHPqrcode接口生成可供微信識別的二維碼,便于用戶快速分享創(chuàng)建的全景作品,利于項目宣傳。PHPqrcode是一個開源的PHP二維碼生成類庫,其基于libqrencode C庫,提供用于創(chuàng)建二維碼條形碼圖像的API,從而可以輕松生成包含相應內(nèi)容的二維碼。
1.3.3素材管理
素材管理中包含對全景素材、普通圖片、音頻和視頻的管理,其管理方式類似于全景管理模塊對全景作品的管理,用戶可以根據(jù)需要將素材分層管理,且能依據(jù)作品名快速查找相應素材。
1.3.4全景發(fā)布
全景發(fā)布模塊是整個系統(tǒng)的關鍵部分,是全景作品的生產(chǎn)工廠。該模塊的實現(xiàn)離不開Krpano引擎的支撐,它能幫助系統(tǒng)實現(xiàn)全景圖片的切片。本系統(tǒng)的全景發(fā)布流程簡述如下。用戶上傳全景圖片到服務器后,系統(tǒng)通過PHP后臺程序調(diào)用Krpano引擎將圖片進行切片處理,從而生成全景作品所需的多視角多尺度的工程切片數(shù)據(jù),并且存儲到對應項目的數(shù)據(jù)庫表中,這一流程實現(xiàn)了全景作品基礎數(shù)據(jù)的獲?。唤又?,基于預設的全景配置信息生成初始化的全景作品,并創(chuàng)建作品的唯一URL和開放該地址的任意用戶訪問權限,至此一個完整的全景作品生產(chǎn)成功;最后,前端通過Krpano查看器讓用戶能在瀏覽器上自由觀賞該作品。全景視頻的發(fā)布過程基本同于全景圖,差異之處在于全景視頻不需要通過Krpano進行切片處理,系統(tǒng)直接將視頻嵌入到Krpano查看器中,就可以通過前端實現(xiàn)視頻的360度瀏覽效果。圖6采用UML圖簡單展示了發(fā)布模塊中各功能角色之間的關系。
圖6 全景作品發(fā)布示意
研究開發(fā)的大藤峽水利樞紐無人機VR全景展示系統(tǒng)已成功投入使用,成功解決了以上提到的問題。該系統(tǒng)已經(jīng)上傳了2019年至今拍攝的上千幅大藤峽全景圖,且制作了幾十個全景作品(圖7以2020年12月的全景作品為例展示了經(jīng)過該系統(tǒng)制作的全景結果),運行良好,大大提升了公司在全景數(shù)據(jù)管理的工作效率,并且給大藤峽水利樞紐的宣傳工作起到良好作用,后期在制作大藤峽工程展覽場所和大藤峽博物館的VR展示繼續(xù)發(fā)揮作用。當然該系統(tǒng)也存在不完善的地方,由于該項目重點在全景圖的采集管理上,系統(tǒng)中全景視頻模塊的功能相對較少,后期有望繼續(xù)深入研究。
圖7 大藤峽水利樞紐2020年12月VR全景項目展示
無人機VR全景展示系統(tǒng)是基于Krpano和地理信息技術的全景管理和展示平臺,已成功應用于水利工程建設中,后期有望在水利水電工程建設監(jiān)督、房屋設計展示、虛擬展覽館等項目進行推廣。該系統(tǒng)的應用不僅有助于工程進度控制,為項目實時監(jiān)控提供技術支持,也能在一定程度上節(jié)省工程監(jiān)測成本。該系統(tǒng)主要的特點和創(chuàng)新點如下。
a)首次采用無人機和全景虛擬現(xiàn)實技術對大藤峽全景數(shù)據(jù)進行集中管理和控制,為大藤峽工程建設的遠程監(jiān)督提供服務平臺,為其他項目系統(tǒng)開發(fā)工作提供數(shù)據(jù)和技術支撐。
b)該系統(tǒng)不僅能應用于大藤峽的全景數(shù)據(jù)管理和制作,也可以在其他地區(qū)和不同行業(yè)的全景項目中使用。
c)研發(fā)了具有自主知識產(chǎn)權的無人機VR全景展示系統(tǒng),為大藤峽水利樞紐工程建設管理提供了智慧監(jiān)控平臺和輔助決策的科學依據(jù)。