梁青青 張剛要
摘 要:增強現實通過計算機生成的三維圖形或2D文本與真實視圖合并,能夠幫助用戶學習和感知在現實世界中無法看到的更多信息。文章在增強現實技術的基礎上,結合LBS服務設計并實現了實景導航系統。該系統在移動通信網絡的支持下,利用GPS定位技術,通過移動終端的傳感設備獲取方位角,將用戶輸入的目標地點轉化為虛擬信息與真實世界疊加,最終以關鍵字標簽的形式體現在設備屏幕上。
關鍵詞:增強現實;實景導航;定位服務
增強現實(Augmented Reality,AR)是一種將虛擬信息疊加到真實世界中的技術。它是一門十分復雜的學科,涉及諸如計算機圖形學、機器視覺、傳感器、三維注冊、信息可視化等多種技術[1]。可以說,AR技術是隨著時代發展而產生的一項獨特的科學技術。計算機圖形、人工智能技術、計算機顯示技術等的發展,為AR的迅猛發展帶來了可能。隨著AR技術的發展,通過AR的軟件開發工具包(Software Development Kit,SDK)就可以開發出簡單的AR軟件,而不需要去編寫底層的復雜代碼,減少了開發的周期和開發的難度。本文的AR系統是在移動通信網絡的支持下,利用GPS定位技術,通過移動終端的傳感設備獲取方位角,將用戶輸入的目標地點轉化為虛擬信息與真實世界疊加,最終以關鍵字標簽的形式體現在設備屏幕上。
1 相關理論與技術
1.1 AR關鍵技術
AR技術仍然處于初級階段。但是未來基于AR技術推出的應用將會是永無止境的。在AR技術上的研究將會更多地去考慮通過信息的交互來實現更加真實的虛實結合。可以預見,未來AR在制造業、工業、服務業等眾多場所都會有長足的進步。
AR系統的體系結構可以以AR系統執行的4個任務進行分類:場景捕捉、場景識別、選擇精確信息的增強場景、場景的增強處理和可視化。
(1)場景捕捉利用AR的物理組件捕捉現實實景。
(2)場景識別被認為是在現實增強中采取的主要行為之一。主要有兩種基本類型的場景識別技術:基于標記的方法和非標記的方法[2]。
(3)在注冊技術的支持下,根據攝像機的內外參數計算真實空間中的特定標記點后,系統針對3D中的每個標記尋找相應的虛擬模型。
(4)最后,該系統產生投影的模型對象和真實空間的圖像,并在使用標記和當前數字信息的情況下,使用識別技術的非標記場景來混合真實和虛擬的場景圖像。
在AR應用中,如果選擇自己從頭到尾來開發的話,需要使用OpenGL(是一個跨編程語言、跨平臺的編程接口規格的專業的圖形應用程序編程接口)這個比較底層的圖形程序接口,而且將需要消耗大量的時間來編寫底層代碼,十分復雜,并且耗時耗力。但現在出現了許多AR相關的SDK,比較知名的有Vuforia(高通),Easy AR,ARToolkit等。它們具有較高的識別穩定性,功能也十分完善,能夠很好地給軟件開發者提供開發所需的工具包,有利于加快開發的速度和效率。借助這些AR SDK開發應用,開發者不需要自己去編寫底層的復雜代碼,有助于減少開發周期和開發的難度,本文利用第三方組件(EasyAR SDK)提供的AR基本功能程序庫來實現基于非標記的場景識別功能。
1.2 LBS關鍵技術
基于位置的服務(Location Based Service,LBS)是網絡通信技術、空間定位技術、信息采集技術、移動終端技術等多種技術融合發展的產物,圖1給出了位置服務的關鍵技術。目前位置服務主要的定位技術就是GPS和基站定位[3]。
圖1 LBS關鍵技術
本系統中主要利用高德地圖API,通過調用API接口初始化定位并設置回調監聽獲取用戶的當前定位結果,實現Android端的定位功能。
2 系統設計與實現
IOS端和Android端在設計方法上和平臺選擇上有一些區別,本系統是在Android移動手機中實現的。基于Unity平臺首先實現Android端的定位功能,在輸入需要搜索的附近POI點,通過Android端向服務器發送數據,返回包含各種信息的數據內容,在解析之后將附件信息渲染為直觀的文本圖片內容,疊加在手機相機獲取的視頻流界面上。
2.1 系統設計流程
本系統主要實現用戶定位、搜索附近POI點、疊加顯示內容3個功能。設計流程與功能如圖2所示。
2.2 定位功能的實現
由于unity平臺并沒有提供高德定位的接口,所以需要先在Android端實現定位功能再打包成jar文件。將編譯好的jar文件與AndroidManifest文件導入Unity工程中,并修改相關參數。如圖3所示,創建腳本將Activity中的方法繼承給UnityPlayerActivity方法,調用高德定位功能,并輸出相應信息。定位的功能實現后,需要基于定位信息搜索附近POI點。我們通過高德SDK定位獲取位置坐標,在利用反地理編碼獲取地址信息將搜索到的數據內容輸出給移動終端。
2.3 AR功能的實現
利用EasyAR SDK,導入Unity工程中,刪除默認的攝像機,把“EasyAE_Startup”預制件放入場景中。同時在inspector面板中填入之前在EasyAR官網中申請的Key。并將GyroDroid插件包中的“MinimalSensorCamera”腳本掛載到攝像機上,以便讓AR攝像機的鏡頭隨著手機的旋轉而旋轉。EasyAR在這里的主要作用就是通過初始化AR模塊開啟攝像頭采集攝像頭拍攝到的原始圖像數據信息。
3 結語
本文在AR技術的基礎上,結合LBS服務設計并實現了實景導航系統。AR技術與LBS服務的結合,使得信息的搜索不再僅限于簡單的2D文本內容的呈現,更重要的是,該系統可以根據輸入的關鍵字信息進行定位搜索,以關鍵字標簽的形式在移動終端上顯示出立體的效果,使獲取的信息更加方便、快捷和直觀。
[參考文獻]
[1]張衛良.3D游戲引擎中基于ARToolkit增強現實技術的設計與研究[D].武漢:湖北工業大學,2016.
[2]陳向東,曹楊璐.移動增強現實教育游戲的開發—以“快樂尋寶”為例[J].現代教育技術,2015(4):101-107.
[3]王萍.基于位置服務的移動學習研究[J].中國電化教育,2011(12):114-119.