葉明勝, 胡 嚴
(安徽藝術(shù)學院,安徽合肥 230011)
地圖是真實物理世界的模型,展示地理信息的載體,容納和存儲了大量的數(shù)據(jù).傳統(tǒng)的紙質(zhì)地圖因其通用性和便攜性,成為紙媒時代人們窺探自然與地理環(huán)境的重要工具.然而,隨著信息化技術(shù)的飛速發(fā)展,紙質(zhì)地圖的弊端漸顯端倪:降維技術(shù)使得傳統(tǒng)紙質(zhì)地圖由立體具象過渡至平面抽象,視覺平面化和認知抽象化,進而導致重要信息和語義的缺失[1].因其呈現(xiàn)方式相對單一,制作周期較長,信息更新時效性差,交互功能的體驗度低,及其自身紙質(zhì)載體的易失性,逐漸背離現(xiàn)代信息化用戶的需求.近些年,市面上出現(xiàn)不少基于移動端的地圖產(chǎn)品.孫偉等[2]運用OpenGL ES可視化技術(shù)實現(xiàn)了基于移動Android端口的兩維地圖三維視覺化呈現(xiàn).何興富等[3]利用HTML5結(jié)合CIVIL3D技術(shù)實現(xiàn)了用于城市規(guī)劃設(shè)計的全景三維地圖.南通大學地理科學學院推出的一款用于旅游和規(guī)劃功用的三維地圖應用原型,采用ArcGIS Pro繪制平面地圖輪廓,運用SketchUp和CityEngine生成3D模型,并在Web技術(shù)框架下實現(xiàn)基本交互功能[4].現(xiàn)有的研究開發(fā)雖然具備較佳的視覺效果,但仍存在一些缺陷,如立體呈現(xiàn)過于局部化,缺乏整體與細節(jié)的多維互動,用戶體驗的沉浸性較差,并且在空間定位的匹配方面缺乏高精準度,導致用戶使用時很難找到方向感,使得空間變換下的地圖信息變得模糊[5].
時下,AR技術(shù)(增強現(xiàn)實技術(shù),Augmented Reality)在移動開發(fā)領(lǐng)域熱度不減,傳統(tǒng)地圖的表達與交互有了更新的技術(shù)平臺.增強現(xiàn)實三維地圖突破了傳統(tǒng)紙質(zhì)地圖的平面化呈現(xiàn)方式,以及立體地圖的低效率整局互動的束縛,是對移動三維地圖的增強表達與互動的進一步延展,能提供一種合理且豐富的人機交互方式,增強用戶對三維地圖的多維感知效力.
上世紀90年代初,由美國Boeing公司Caudell及其同事首次提出的AR技術(shù)這一概念,是指在虛擬環(huán)境中置入真實世界的圖像,如在虛擬物體上映射真實影像信息[6],以此增強虛擬物體的真實度,模糊真實與虛擬的邊界.現(xiàn)階段,隨著用戶體驗與傳感技術(shù)的迭代升級,AR增強現(xiàn)實的發(fā)展逐漸延伸到多感官感知,涉及視、聽、觸、味、嗅等增強感知,進一步豐富了人們對虛擬“真實”世界的感知,如圖1所示.
圖1 基于人感知的AR功能分類
基于視覺的AR系統(tǒng)功能的實現(xiàn),主要借助于計算機圖形圖像、信息可視化、光電顯示和交互等技術(shù),虛擬出“真實”環(huán)境中設(shè)定的對象,再通過傳感端口將虛擬對象精準置入真實世界,使虛擬與真實有機融合,通過輸出顯示介質(zhì)進行融合呈現(xiàn),增強視覺感知體驗的程度,如圖2所示.最新AR技術(shù)進一步融合了GPS、電子羅盤、重力加速等多種傳感技術(shù),強化了增強實景的體驗物理真實度.新技術(shù)具有體驗增強性、實時互動性、空間高匹配性等特性.
圖2 AR視覺系統(tǒng)工作原理
目前AR技術(shù)比較普遍地應用于室內(nèi)導航地圖的開發(fā),AR地圖可以應用于商場、醫(yī)院、機場等諸多辦公區(qū)域的導航.Gatwick機場首次在全機場范圍內(nèi)部署了AR地圖應用方案,用戶可通過AR應用,掃描或關(guān)注機場對應的航班號,便可從中獲取通往登機口和航站樓的路線,路線的呈現(xiàn)方式可以立體地顯示用戶所處的位置,以及機場所有功能區(qū)域的標注[7].Uchiyama等[8]提出基于三維GIS數(shù)據(jù)技術(shù)的AR增強地圖系統(tǒng),運用LLAH散列方案,實現(xiàn)增強顯示地圖識別框架,從整個地圖中識別出物理地圖的區(qū)域,將3D建筑物堆疊至城市二維地圖上,快捷展示對應地圖區(qū)域的視覺顯示.Hayato Ito等[9]利用AR技術(shù)融入屬地歷史地圖,提出了知識科普型的AR三維地圖的應用原型,應用原型將屬地歷史文化設(shè)計成為標識物,通過AR增強技術(shù),將虛擬三維地圖景觀疊加到二維地圖(標記物)之上,實現(xiàn)增強歷史景觀的功能顯示.Ichikari團隊[10]通過AR觸覺設(shè)計技術(shù),實現(xiàn)了一款用于殘障人士增強現(xiàn)實觸覺的導航地圖系統(tǒng),系統(tǒng)利用POR/POI聚焦區(qū)和語音提示來增強物理觸感,通過視覺和音頻反饋機制來獲取互動數(shù)據(jù),增強用戶使用的多維感知.目前國內(nèi)鮮有移動AR技術(shù)應用于地圖開發(fā)方面的研究.
圖3 AR地圖增強表達的流程
AR地圖在增強現(xiàn)實表達上,尚有諸多關(guān)鍵問題亟待解決,如虛實融合、顯示、移動配準技術(shù)等.增強現(xiàn)實表達二維地圖,主要采用Indoor增強技術(shù)[11],其工作流程為:首先,進行標記物注冊,配準標記物及其表面紋理信息,用戶通過計算,自定義設(shè)置標記物信息閾值;其次,系統(tǒng)通過區(qū)域連通分析,表達選區(qū),并與系統(tǒng)數(shù)據(jù)庫中的紋理信息進行校準,如若匹配成功,系統(tǒng)判定為識別成功,并利用標記物的空間坐標信息,計算虛擬增強顯示模型的空間變換的轉(zhuǎn)換,進行標記物與虛擬物體匹配,進而實現(xiàn)三維注冊,確定虛擬物體的位置與空間變換信息(位置、朝向),如圖3所示.
AR地圖的增強表達與呈現(xiàn),需要進行計算機程序識別.在當下AR技術(shù)中,二維圖像標記類型分為有標記(Marker)鑒別和無標記(Markerless)鑒別.其中,標記鑒別的效率和速度要優(yōu)于無標記鑒別.標記的設(shè)置可以采用獨標記方法,亦可以設(shè)置成多標記方法.為了能夠鑒別二維地圖,可以在其中創(chuàng)建若干人工標記,而對于已印制的紙介地圖,在不破壞原本地圖構(gòu)成的情況下,需在地圖邊角設(shè)置標記[12].創(chuàng)建標記后,通過攝像頭采集并進行鑒別,然后進行信息匹配與檢測等,鑒別既定的標記.目前AR開發(fā)工具集,如Vuforia中,已對標記物的形態(tài)與模式進行了優(yōu)化,通??梢栽O(shè)置為醒目的標記色塊與樣式,能夠使系統(tǒng)迅速鑒別標識物的存在與否.
從虛擬呈現(xiàn)效果及功能方面考慮,目前AR開發(fā)主流平臺采用Unity3D引擎和Vuforia SDK相結(jié)合.Unity3D是由丹麥Unity Technologies公司設(shè)計的一款用于虛擬(增強)現(xiàn)實開發(fā)、動畫以及游戲設(shè)計的綜合開發(fā)引擎,其應用具有成本低廉、硬件設(shè)備要求門檻低、多平臺兼容性(如 Android、iOS、Windows和 Linux等)、廣泛第三方插件支持等優(yōu)勢,并且擁有強大的編程可視化功能,為眾多AR應用開發(fā)者所青睞.Vuforia是Qualcomm旗下的一款面向移動開發(fā)用戶的AR交互設(shè)計平臺,擁有卓越的識別技術(shù)、多元的識別模式、跨系統(tǒng)兼容性等優(yōu)點.Vuforia于2017年正式內(nèi)嵌于Unity3D中,為AR開發(fā)者提供了一種高效、低準入的功能組件,結(jié)合Unity3D引擎的可視化編程,使得非專業(yè)開發(fā)人員更加方便高效地創(chuàng)建、編輯和發(fā)布AR應用系統(tǒng).
本文選用移動Android操作系統(tǒng)作為測試平臺,首先需進行Android SDK安裝配置,如圖4所示.對應版本下拉欄目中皆顯示為Installed,則表明安裝成功.
3.2.1 前期準備
AR增強地圖應用制作分為素材準備、標記物設(shè)計與配置、增強顯示、交互設(shè)計等階段.素材準備階段包括地圖標記物設(shè)計(Marker)、3D模型搭建和導入、材質(zhì)貼圖賦予等工作.本文利用Maya三維軟件作為3D地圖模型的創(chuàng)建平臺,通過對紙質(zhì)地圖的研究與分析,設(shè)計并創(chuàng)建出等比的三維地圖模型(含建筑、道路、景觀、地形等),將其導出為.fbx地圖模型文件,導入至Unity3D中Project(項目管理),進入Vuforia Engine,創(chuàng)建Image Target(圖像目標),將項目列表中的.fbx模型設(shè)為Image Target的子級,調(diào)整模型尺寸、空間變換數(shù)據(jù)、分配模型UV,之后進行UV快照,導出UV通道,在平面繪圖軟件中繪制貼圖紋理,最終在Unity3D Project中,創(chuàng)建材質(zhì)節(jié)點,并將設(shè)置后的材質(zhì)信息賦予3D模型.
在AR增強呈現(xiàn)于互動設(shè)置前,需進行AR Camera設(shè)置,在Vuforia Engine下選擇AR Camera節(jié)點,刪除Unity3D組件自帶的Main Camera對象.配置AR Camera屬性的Open Vuforia Engine Configuration參數(shù),將Player下的 XR Settings選項為 Vuforia Augmented Reality(AR)Supported,并獲取License Key,如圖5所示.進入Console控制臺,進行報錯檢查,若無編譯模式上的錯誤,則可單擊Play按鈕,進行彈窗預覽AR互動效果,如圖6所示.
3.2.2 增強地圖交互設(shè)計
圖4 Android SDK安裝與配置界面
圖5 Vuforia平臺Key的獲取
圖6 AR交互測試頁面
(1)增強地圖空間變換功能
本文實現(xiàn)的AR增強地圖在交互中是基于手勢觸屏行為進行增強顯示對象的空間變換控制.在項目文件管理窗口中,創(chuàng)建用于空間變換控制的C#腳本命名為Map_transform.cs.選擇增強模型文件,將選擇腳本掛載入其組件中,空間變換的旋轉(zhuǎn)、放縮、位移等操作的手勢如表1所示.
表1 常用交互手勢
(2)脫卡功能
AR相機尚有缺陷,比如在旋轉(zhuǎn)移動識別圖進行查看模型時,識別圖超出相機范圍會導致增強模型的消失.有時用戶仍然希望虛擬物體出現(xiàn)在相機前,或者在失去識別目標后出現(xiàn)在特定的位置,可以對其進行交互操作,這就是脫卡功能.
目前,高通的Vuforia帶有脫卡功能,繼承于Extended Tracking(擴展跟蹤)組件下,允許模型在識別圖丟失時依舊存在,且保持位移等變換信息不變(標記圖丟失時候的位置),因此,當標記圖丟失后,也不會影響到堆疊顯示后的增強視覺效果.由于筆者開發(fā)AR地圖應用時,Unity3D尚不具備Extended Tracking(擴展跟蹤)功能,針對此項缺陷,設(shè)計了一款保持追蹤效果的脫卡功能腳本,標記圖脫離AR相機視域范圍時,能使模型停留在原地,保持原本變換的信息不變,且不影響進一步交互,其關(guān)鍵腳本如下:
usingUnityEngine;
usingVuforia;//引用 Vuforia組件
public class Tuoka:MonoBehaviour,ITrackableEvent Handler
{
private TrackableBehaviour mTrackableBehaviour;
public TransformTarget;//標識物變換目標信息
Vector3 imgPos=new
Vector3(0,0,0);//識別圖上的位置
Vector3 camPos=new
Vector3(0,0,0);//脫卡后在屏幕中的位置
bool isFirstTime=true;
void Start()
{
mTrackableBehaviour=GetComponent<Trackable Behaviour>();
if(mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEvent Handler(this);
}
Target.GetComponent<MeshRenderer>().enabled=false;//起始時不顯示
}
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if(newStatus==TrackableBehaviour.Status.DETE CTED||
newStatus==TrackableBehaviour.Status.TRA CKED||
newStatus==TrackableBehaviour.Status.EXT ENDED_TRACKED)
{
//視野內(nèi)發(fā)現(xiàn)識別圖時
Target.GetComponent<MeshRenderer>().enabled=true;
Target.parent=this.transform;
Target.localPosition=imgPos;
Target.localRotation=Quaternion.identity;
isFirstTime=false;
}
}
}
圖7 添加脫卡腳本
選擇 Image Target,點擊 Add Component,掛載腳本,將窗口目標設(shè)置為模型,取消勾選Default Trackable Event Handler(默認追蹤),如圖7所示.
(3)熱盒與視頻
本文以安徽藝術(shù)學院美術(shù)樓為例,用戶點擊美術(shù)樓的三維模型時,將會彈出美術(shù)樓的熱盒頁面(即樓宇具體情況與功能介紹),豐富三維地圖的功能;其操作方法為:選擇美術(shù)樓模型,點擊Component(組件)下的Physics(物理)模塊,給其添加一個碰撞體,新建C#腳本Cube.cs,將腳本添加至美術(shù)樓模型中,效果如圖8所示.
為優(yōu)化用戶使用體驗,在點擊按鈕切換的第二個場景中置入美術(shù)樓視頻內(nèi)容,在按鈕組件Canvas上,更改UI縮放模式為屏幕大小縮放,根據(jù)移動平臺的最佳分辨率,本文設(shè)置分辨率為 2560*1440(16:9),匹配高度寬度為0.5,這樣,應用根據(jù)手機屏幕大小差異,在不同大小的分辨率下進行UI位置自適應移動.
3.2.3 AR增強設(shè)計與表達設(shè)置
(1)多目標識別
增強表達涉及多個目標識別時,需在Vuforia平臺的同組中上傳所標記識別的圖片,并且打包加載成.unitypackage文件,載入項目后,可創(chuàng)建多個Image Target對象,在其屬性中分別設(shè)置Image Target Behaviour下的Database的標記圖.之后,分別將項目列表中的Maya文件(.fbx)設(shè)為兩個對應的 Image Target子級,調(diào)整(.fbx)的大小、位置等變換參數(shù).
(2)封裝發(fā)布
基于Android平臺的應用開發(fā),需要進行.apk文件的封裝,方能應用于移動手機平臺,在Unity3DFile菜單下,選擇Build Settings選項,進入Add Open Scenes中添加場景(Scene)項目,設(shè)置下方 Android,Build System為Gradle 類型,勾選 Development Build,點擊 Generate,即可完成.apk導出,如圖9所示.其中,當Android SDK的配置版本低于26.1.1時,需升級SDK.
目前,隨著計算機技術(shù)的提高,以及虛擬現(xiàn)實、大數(shù)據(jù)、人工智能等新一代信息技術(shù)的發(fā)展,AR技術(shù)已逐漸從實驗室的理論研究階段開始轉(zhuǎn)入大眾行業(yè)的應用階段,其應用領(lǐng)域也在不斷地拓展和延伸,為人們提供了更為豐富的認知與體驗方式.基于Unity3D+Vuforia的增強現(xiàn)實技術(shù)使研發(fā)人員能夠更加方便高效地開發(fā)交互式AR地圖應用.經(jīng)移動Android平臺的測試,本文開發(fā)的AR三維校園地圖在增強視覺化呈現(xiàn)、人機交互、拓展功能優(yōu)化等方面取得了較好的效果,初步實現(xiàn)了標記圖的空間信息識別,三維地圖的瀏覽視角適配等功能,為移動AR增強地圖的開發(fā)與創(chuàng)新應用提供了新的技術(shù)路徑與策略.但本研究仍然存在一些不足:AR增強地圖的多維互動功能有待于進一步研究,目前原型在對目標標記上尚缺乏優(yōu)化功能的體現(xiàn);增強功能下交互機制尚不完善,原型在對目標標記上缺乏靈活的轉(zhuǎn)換功能.總的來說,通過AR技術(shù)能實現(xiàn)地理信息的平面化向三維立體化增強呈現(xiàn),拓寬用戶的地理信息感知與體驗能力.下一步將繼續(xù)進行AR增強地圖應用的開發(fā)與交互功能研究,將更新、更優(yōu)化的功能整合至移動AR導覽地圖中.
圖8 信息熱盒
圖9 AR地圖應用發(fā)布