陳寧凡 何 成 鐘 璐 雷炳成
(中山職業(yè)技術(shù)學院,廣東 中山 528404)
隨著移動智能手機技術(shù)的迅速發(fā)展,導(dǎo)航系統(tǒng)已經(jīng)相當?shù)某墒?,特別是室外導(dǎo)航系統(tǒng),高德地圖、百度地圖等都能滿足用戶的日常需求。然而室內(nèi)的導(dǎo)航系統(tǒng),大部分采用的是二維地圖來做指引,相對滯后。
這些年來,增強現(xiàn)實(AR)技術(shù)逐漸進入公眾視野,增強現(xiàn)實技術(shù)的目標是將計算機生成的虛擬環(huán)境與用戶周圍的現(xiàn)實環(huán)境融為一體,讓用戶從視覺上認為虛擬物體就是真正存在于客觀真實世界當中的。隨著移動通信和5G技術(shù)的快速發(fā)展,增強現(xiàn)實技術(shù)毋庸置疑地成為當今最具影響力的技術(shù)之一,它能夠?qū)⑺蚕⑷f變的信息實時地展現(xiàn)在人們面前。
基于移動端的AR技術(shù)的導(dǎo)覽系統(tǒng)具有非常重要的意義,借助AR技術(shù),可以讓導(dǎo)航更直觀和更有趣味,AR導(dǎo)航把虛擬路標“添加”到現(xiàn)實世界當中,使導(dǎo)航過程更為直觀。利用EasyAR的運動追蹤功能,EasyAR會檢測捕獲的攝像頭圖像中的視覺差異特征(稱為特征點),并使用這些點來計算其位置變化。移動終端設(shè)備IMU的慣性測量結(jié)果和視覺信息相結(jié)合,共同用于估計攝像頭隨著時間推移而相對于周圍世界的姿態(tài)(位置和方向)。這樣可以解決用戶在很小的室內(nèi)范圍內(nèi)難以判斷高度和找到方向的問題,可以很好彌補傳統(tǒng)導(dǎo)航方法的不足。另一方面,傳統(tǒng)的導(dǎo)航借助AR技術(shù)可以改善用戶體驗,充分利用AR技術(shù)虛擬物體映射到真實世界的特點,增強移動設(shè)備導(dǎo)航應(yīng)用的趣味性。本文基于Unity/EasyAR的增強現(xiàn)實室內(nèi)導(dǎo)覽系統(tǒng)應(yīng)用設(shè)計進行探索。
EasyAR是國內(nèi)很常用的一款免費增強現(xiàn)實引擎,也是國內(nèi)AR開發(fā)常用的工具。從版本4開始,發(fā)布EasyARSense,是一個獨立的SDK,提供感知真實世界的能力。本項目使用EasyARSense Unity Plugin提供EasyARSense功能在Unity中的封裝。EasyARSense 4.5帶來了全新的算法組件和平臺支持,包括稀疏空間地圖(掃描環(huán)境實時生成稀疏3D點云地圖),稠密空間地圖(掃描環(huán)境實時生成3D網(wǎng)格地圖),運動跟蹤(獲取設(shè)備相對現(xiàn)實世界的位置和姿態(tài)),表面跟蹤(獲取設(shè)備相對于環(huán)境表面的位置和姿態(tài)),3D物體跟蹤(對日常生活中富紋理3D物體進行識別與跟蹤),平面圖像跟蹤(對平面圖像進行實時識別與跟蹤)等功能。
通過3d Max對場景進行建模、貼圖及制作動畫、特效。3d Max是一種多邊形對象建模方式,可以對其點、邊及元素進行獨立編輯,場景及實體的材質(zhì)通過質(zhì)地顏色和紋理貼圖設(shè)計、參數(shù)修改達到表現(xiàn)物體特質(zhì)效果。
Unity技術(shù)。利用Unity3D渲染技術(shù)及碰撞檢測功能,實現(xiàn)增強現(xiàn)實導(dǎo)覽系統(tǒng)中需要對3D虛擬場景進行渲染、交互功能,并把虛擬物體映射到相應(yīng)跟蹤的真實場景中。
EasyAR的運動跟蹤功能。當手機在現(xiàn)實世界中移動時,Easy AR會通過并行測距與映射的過程來理解手機相對于周圍世界的位置。EasyAR會檢測捕獲的攝像頭圖像中的視覺差異特征(稱為特征點),并使用這些點來計算其位置變化。移動終端設(shè)備IMU的慣性測量結(jié)果和視覺信息相結(jié)合,共同用于估計攝像頭隨著時間推移而相對于周圍世界的姿態(tài)(位置和方向)。用這種特性來解決導(dǎo)覽系統(tǒng)中短距離的定位和方向判別問題。
利用EasyAR的環(huán)境理解功能制作AR導(dǎo)航標記。EasyAR可以查找看起來位于常見水平或垂直表面(例如,桌子或墻)上的成簇特征點,并讓這些表面可以由應(yīng)用用作平面。EasyAR也可以確定每個平面的邊界,并將該信息提供給應(yīng)用??梢允褂么诵畔⑻摂M物體(AR導(dǎo)航標記)置于平坦的表面上。開發(fā)AR導(dǎo)覽系統(tǒng)的總體流程圖如圖1所示。
圖1 開發(fā)AR導(dǎo)覽系統(tǒng)的總體流程圖
實現(xiàn)中山職業(yè)技術(shù)學院AR導(dǎo)覽系統(tǒng)各功能模塊。UI界面,AR識別圖庫,AR跟蹤識別、導(dǎo)航,AR核心模塊,模型顯示,AR疊加融合,交互體驗。增強現(xiàn)實導(dǎo)覽系統(tǒng)總體框架如圖2所示。
圖2 增強現(xiàn)實導(dǎo)覽系統(tǒng)總體框架
平面圖像跟蹤(Planar Image Tracking)用于跟蹤與檢測有紋理的平面物體。“平面”的物體,可以理解為一張名片、一個二維碼、一張海報,或者是一面涂鴉墻這類具有平坦表面的物品或事物。這些物體應(yīng)當盡量具有不重復(fù)且豐富的紋理。在本項目中,使用二維碼作為平面圖像,進行輔助跟蹤定位。模板圖像準備妥當之后,將文件放置在正確的資源文件夾(assets)目錄下。隨時可以開啟整個平面圖像跟蹤。目標物體的數(shù)據(jù)會在Tracker啟動時自動進行計算生成,檢測與跟蹤的過程也將在那之后自動運行。
運動跟蹤(Motion Tracking)用于持續(xù)追蹤設(shè)備在空間中的六自由度位置和姿態(tài)。通過運動跟蹤,虛擬物體和真實場景實時對齊到同一坐標系,可以體驗到虛擬內(nèi)容和真實場景融合在一起的感受。運動跟蹤通過視覺慣性同步定位和建圖(VISLAM)技術(shù),計算設(shè)備相對于真實空間的位姿關(guān)系。在設(shè)備移動過程中,通過識別相機圖像中顯著特征點并跟蹤其位置變化,結(jié)合設(shè)備的IMU數(shù)據(jù)信息,實時計算當前設(shè)備相對于真實世界的位置和姿態(tài)。
MotionTrackerCameraDevice實現(xiàn)了一個真實尺度6DOF運動追蹤的camera設(shè)備,輸出InputFrame(包含圖像、攝像機參數(shù)、時間戳、6DOF位置信息和跟蹤狀態(tài))。MotionTrackerCameraDevice通過inputFrameSource輸出InputFrame,應(yīng)將inputFrameSource連接到InputFrameSink上進行使用。
EasyAR表面跟蹤(Surface Tracking)實現(xiàn)輕量級的持續(xù)跟蹤設(shè)備相對于空間中選定表面點的位置和姿態(tài)的能力。為了在真實空間和虛擬空間之間建立對應(yīng)關(guān)系,表面跟蹤利用相機和慣性測量單元的數(shù)據(jù)。表面跟蹤識別相機圖像中的重要特征,使用連續(xù)視頻幀和IMU數(shù)據(jù)跟蹤這些特征的位置。虛擬物體被放置在相應(yīng)的特征點的位置并持續(xù)跟蹤。啟動時虛擬物體默認被放置在屏幕中間附近的特征點表面,并將虛擬物體的位置視為世界坐標系的原點。在移動設(shè)備期間,相機圖像中的特征深度會不斷更新,虛擬物體持續(xù)貼合在相應(yīng)的特征點表面。如果虛擬物體所對應(yīng)的特征點丟失,系統(tǒng)自動選擇新的特征點并輸出設(shè)備相對于該特征點的位置和姿態(tài)。
SurfaceTracker實現(xiàn)了對環(huán)境表面的跟蹤。SurfaceTracker通過inputFrameSink輸入InputFrame,應(yīng)將InputFrameSource連接到inputFrameSink上進行使用。
開發(fā)基于Unity/EasyAR的中山職業(yè)技術(shù)學院AR導(dǎo)覽系統(tǒng),系統(tǒng)具有位置定位功能,方向姿態(tài)判別功能,以及目的地導(dǎo)航、目的地介紹等交互功能。打開App會看到一個掃描二維碼的界面,用戶通過掃描指定的二維碼進行定位。當掃描到二維碼并且一切正常的話就會進入一個平面地圖。當選中目標點后點擊預(yù)覽路線將會在平面地圖上顯示一條路線,實現(xiàn)了AR室內(nèi)導(dǎo)覽功能。中山職業(yè)技術(shù)學院AR導(dǎo)覽系統(tǒng)應(yīng)用功能展示如圖3所示。
圖3 中山職業(yè)技術(shù)學院AR導(dǎo)覽系統(tǒng)應(yīng)用截圖
本文提出利用EasyAR的運動跟蹤功能實現(xiàn)導(dǎo)覽系統(tǒng)中短距離的定位和方向判別問題,擺脫導(dǎo)航系統(tǒng)對衛(wèi)星導(dǎo)航依賴的同時提高室內(nèi)導(dǎo)航精度。EasyAR會檢測捕獲攝像頭圖像中的視覺差異特征(稱為特征點),并使用這些點來計算其位置變化,從而實現(xiàn)精確穩(wěn)定的室內(nèi)導(dǎo)覽,達到研究增強現(xiàn)實技術(shù)可如何有效運用于室內(nèi)導(dǎo)航的目的。同樣技術(shù)可應(yīng)用于醫(yī)院、公園、圖書館、博物館等各種室內(nèi)公共設(shè)施,為人們提供便利。