馬紅芝


編者按:增強現實交互技術作為一種新興的智能技術,能夠給用戶帶來良好的沉浸感和交互體驗,已被廣泛應用于多個領域。這篇文章分析了增強現實系統的關鍵技術,提出了基于Unity3D+Vuforia的增強現實應用開發方案,設計實現了一款具有增強現實和交互功能的石刻碑文識別App,并在搭載Android操作系統的手機端進行了測試。
引言
增強現實技術(Augmented Reality,縮寫為AR)是將計算機生成的虛擬物體、場景或者提示信息疊加到真實世界的場景之中[1],從而增強用戶對現實世界的感知。增強現實技術因其具有虛實結合、強交互、高融合等特性,深受公眾特別是年輕群體的歡迎。近年來,隨著科技的不斷更新,特別是智能手機等移動設備的普及,基于增強現實技術的應用越來越豐富,已廣泛應用于工業、安防、教育、醫療、文旅、游戲等多個領域。國外方面,谷歌公司自2012年起持續發布了AR眼鏡Google Glass、AR開發平臺ARCore、AR項目Project Tango,微軟公司開發的AR頭戴設備Hololens已在美國軍工領域進行規模化的應用。國內方面,華菱湘鋼利用5G+AR技術實現了跨國遠程裝配,昆明醫科大學第一附屬醫院借助“三維數字新冠病毒遠程會診系統”進行了AR會診,百度運用AR技術打造的智能旅游,重現了圓明園遺址原貌,為游客帶來全新的沉浸式游覽體驗。
增強現實系統的關鍵技術
一般來說,增強現實交互程序的工作流程是:(1)獲取現實場景中的信息;(2)對現實場景中的信息進行跟蹤識別;(3)生成虛擬場景,并與現實場景進行虛實疊加融合;(4)在用戶終端顯示,并通過UI交互界面進行交互。
在整個過程中,注冊追蹤、虛實融合和人機交互等技術是關鍵。
(1)注冊追蹤技術。注冊(Registration)是用于建立虛擬空間坐標系、真實空間坐標系,以及兩者之間的轉換關系,進而將虛擬物體注冊并融合到真實世界的正確位置上[2];跟蹤(Tracking)則用于根據不斷變化的用戶位置和視角,實時重建空間坐標系。注冊跟蹤方法有基于硬件設備和基于軟件處理兩種,而其中基于軟件處理的方法主要是指計算機視覺的跟蹤定位技術[2],可分為基于標識物的方法和基于自然特征的方法。
(2)虛實融合技術。該技術用于虛擬內容在現實場景中疊加顯示、遮擋處理,實時光照調整,陰影投射,從而保證虛擬信息與現實場景在視覺上的有機結合。
(3)人機交互技術。用于處理人與計算機之間的信息交換。常用的AR交互有語音控制、手勢跟蹤、眼球跟蹤、動作捕捉、觸覺反饋等。
Unity3D引擎簡介
Unity3D是由Unity Technologies 公司開發的可視化開發工具,可用于創建和運營交互式實時2D和3D內容,支持手機、平板、PC、游戲主機、AR和VR設備等多種平臺。對于開發者來說,Unity有供免費使用的版本,對硬件設備的要求較低,支持C#語言編程,開發難度低,還擁有豐富的第三方插件和強大的開發者社區支持[3],在Windows、Mac OS和Linux等各操作系統下的開發都比較友好,尤其適合于移動端的3D應用程序開發。從增強現實交互應用程序的開發需求來看,由于Unity擁有高優化輕量級的圖像渲染管道、可高效實現逼真模擬和交互體驗的物理引擎,且支持從外部導入多種格式的貼圖、動畫和模型,采用Unity開發AR應用程序快速高效,目前已成為開發者的主流選擇。
Unity編輯器界面由層級(Hierarchy)、場景(Scene)、游戲預覽(Game)、屬性檢視(Inspector)、項目(Project)五個部分組成。每個Unity應用程序項目都是由多個場景文件組成,而每個場景又是由多個游戲物體(GameObject)在三維視角下按照一定的位置關系搭建而成。場景攝像機視野范圍內的物體將被實時渲染在畫面上。通過編寫腳本來控制游戲物體實現實時交互。Unity的腳本是由一系列事件函數構成的。每一個事件函數在合適的時機被調用,從而完成游戲周期。MonoBehavior類、Transform類是重要的類。默認情況下,通過Unity新建的腳本都是繼承自 MonoBehaviour類的。每一個游戲物體都必然有一個Tranform組件,可通過編寫腳本來操控該物體的位置移動、方向旋轉和大小縮放。
增強現實開發工具包Vuforia
當前,在增強現實領域已有非常豐富的開發工具包(Software Development Kit,簡稱SDK),其中影響較大、應用較廣的SDK有ARToolKit、Metaio、Vuforia和EasyAR。這些SDK都可以支持Unity3D集成開發。
Vuforia SDK最早是由高通公司開發、后被PTC公司收購的一款專用于移動設備的增強現實開發工具包,支持Unity3D、Android、iOS、HoloLens和UWP等多種平臺。Vuforia性能優異,成熟度高,并且面向廣大開發者提供了免費使用版本。借助Vuforia,開發者們可以實現真實世界中的虛擬信息疊加,在移動終端設備的顯示屏幕上將終端攝像頭捕捉到的現實場景與虛擬場景進行疊加現實,達到對現實世界的增強體驗。Vuforia SDK內部封裝了用于圖像識別的計算機視覺模塊,開發者們只需要設置好一系列參數,就可以開發出自己的增強現實應用程序,這使得非計算機專業人士也能輕松創建出個性化的增強現實系統。
Vuforia SDK的開發模塊主要有:攝像機(Camera)、圖像轉換器(Image Converter)、追蹤器(Tracker)、視頻背景渲染器(Video background renderer)、應用程序代碼(Application Code)、設備數據庫(Device Databases)、云數據庫(Cloud Databases)、文字目標(Word Targets)、用戶自定義的目標(User Defined Targets)等。
基于Unity3D+Vuforia的增強現實應用開發
工作原理
基于Unity3D+Vuforia的增強現實應用程序的工作原理可以表述為:(1)獲取攝像頭的圖像;(2)Marker標識的識別;(3)Marker標識的位置和方向檢測;(4)在攝像頭上的圖像上疊加動畫模型等虛擬信息后顯示在屏幕上。
增強現實應用程序的整個開發工作可以分成離線部分和在線部分。離線部分主要是素材的制作。包括標識物的選取和預處理、虛擬世界中的模型制作、三維場景的搭建等工作,可以先經圖像處理軟件和三維建模軟件(如3dsMax)進行處理,然后導入Unity3D中最終處理完成。而在線部分則需要處理標識物的識別、虛實融合和人機交互,這需要借助Vuforia SDK來完成。
開發環境的準備
本項目是在Window10系統中使用Unity3D 2020版本,結合Vuforia SDK插件進行開發的。首先下載并安裝Unity3D。第一次使用Unity3D需要進行注冊,注冊登錄后就可以下載軟件并使用Unity3D資源商店中提供的資源。Vuforia SDK的使用同樣需要注冊。注冊登錄Vuforia官網后,在Develop頁面,選擇“License Manager”,點擊Get Development Key,填好應用程序名稱等內容,為“浯溪碑林”增強現實App申請一個License Key。這里申請好的License Key將用于后續AR Camera的設置。需要注意的是,如果使用的是Unity3D 2017之前的版本,需要事先在Vuforia官網上下載UnityPackage插件包,該插件包將用于Unity3D軟件中應用程序的開發。
系統設計
永州處于湖南省南部,永州摩崖石刻代表了碑文石刻藝術的突出成就,其中浯溪碑林等7處摩崖石刻被列入國家級文物保護單位,具有很高的文化價值、歷史價值和藝術價值。這里以浯溪碑林為設計案例,開發基于Unity3D的增強現實交互App,研究利用增強現實技術在智能手機上實時呈現摩崖石刻的書法文學等多媒體信息。
(1)系統框架設計
本系統的總體框架如圖1所示。
(2)功能模塊設計
“浯溪碑林”增強現實交互App在智能手機中安裝后,游客使用該App拍攝摩崖石刻碑文或者門票上印制好的碑文圖片,就可以在手機屏幕上看到當前碑文的年代、作者、書體類型、記錄內容、意蘊等內容,讓游客對摩崖石刻文化的內涵和意義有更加具體的了解,助力石刻文化的理解和欣賞。
各個功能模塊的劃分如下:
UI界面模塊:在呈現浯溪碑林實景上的疊加信息時,可以通過人機交互技術實現點擊瀏覽文本信息、收聽音頻講解、查看動畫,也可選擇重新進行拍照識別。
AR識別圖庫模塊:是由浯溪碑林景點實地采集的碑文圖片集,并上傳至云端識別圖庫。這個圖庫是保障游客能使用手機拍照識別碑文進而呈現AR效果的重要一環。
AR跟蹤模塊:該模塊用于捕捉游客手機等移動智能終端的攝像頭視角的變化,并據此對虛擬信息資源進行動態匹配,對顯示位置進行實時調整,從而保證虛實疊加的和諧性。
AR虛實融合模塊:該模塊用于處理現實場景與虛擬信息的疊加融合,包括音頻(文字解說及音效)、視頻、動畫、文本信息等內容,幫助游客更好地理解摩崖石刻碑文信息。
AR顯示模塊:該模塊處理現實場景與虛擬信息的疊加顯示,可根據交互實時更新。
核心處理模塊:主要處理場景管理、碰撞檢測、AR跟蹤、消息機制等。
系統實現
該App工作的流程是,首先將手機攝像機鏡頭實時獲取的圖像進行處理,與云端對應的數據庫進行比對,匹配成功后激活相應的動畫、視頻、音頻、文本信息,將其與實景進行虛實疊加融合,并響應用戶輸入控制,實現人機交互。
整個系統的開發實現過程可分為前期準備、制作實現、系統測試三個環節。
(1)前期準備
本階段的工作主要是采集碑文信息和構建媒體庫。① 采集碑文信息。使用高清數碼相機等設備到浯溪碑林景區實地拍攝碑文的清晰圖像。這些圖像將用于構建AR識別圖像集以及三維模型的貼圖材質等。② 媒體庫的構建。將采集的圖片進行處理,形成AR識別圖像集,并制作動畫、視頻、音頻等配套內容,搭建涵蓋動畫、模型、視頻、音頻、文本信息等內容的媒體庫。本系統的媒體素材主要可分為聲音、文本、三維動畫、視頻四大類。其中聲音內容主要是碑文解說,可請專業播音員錄音,并適當地使用聲音剪輯軟件進行處理。文本內容主要用于呈現摩崖石刻碑文的年代、作者、書體類型、記錄內容等信息。本項目通過查閱書籍文獻、邀請永州摩崖石刻專家學者給予指導,來形成系統化的文本信息庫。三維模型與動畫可以讓游客在移動終端上使用單指、雙指旋轉、縮放石碑的立體動態模型,增加趣味性。本系統使用3dsMax軟件進行模型和動畫的制作,先后完成建模、UV貼圖、三維動畫和渲染等四個主要步驟。視頻內容主要是以摩崖石刻為主題的情景劇、短視頻等,本項目使用Premiere和剪映軟件進行處理。
(2)制作實現
① 在Vuforia官方網站上創建并上傳識別圖庫,并生成Unity資源包(UnityPackage)。首先登錄Vuforia官網,在Traget Manager選項卡下,點擊Add Database,開始創建數據庫,在此設置好數據庫的名稱和類型即可。然后在該數據庫中點擊Add Target,選擇識別對象的類型后,上傳該對象的圖片或描述數據即可。目標識別圖片庫來自于前期準備階段采集的浯溪碑林景區中的碑文圖像。最后點擊Download Database,選擇Unity Editor,Vuforia將把該數據庫生成為一個Unity資源包。
② 在Unity3D中新建項目,導入Vuforia開發包,并配置好Vuforia各項功能。通過點擊“GameObject”→“Vuforia”→“AR Camera”,在場景中添加AR Camera,然后設置它的“Vuforia Behavior”組件即可。這里會用到之前注冊好的License Key,并且需要加載并激活前述步驟中準備好的數據庫。在Hierarchy面板中點擊添加“AR Image”,在場景中添加一個“Image Target”,在Inspector面板中設置屬性,將Image Target Behaviour的數據庫設置好。
③ 編寫代碼實現各個功能模塊。在Unity3D項目中導入事先處理好的貼圖、模型、動畫、聲音等素材資源,使用Unity3D腳本編程、動畫系統控制好聲音、動畫、文本等信息呈現的時機條件和執行邏輯,使得“浯溪碑林”增強現實App的音頻視頻動畫相協調,最后編程實現人機交互功能。
(3)系統測試
系統開發完成后,在Unity3D中選擇發布平臺,本系統發布在Android平臺,最終產生了一個apk文件。將該apk安裝在手機端測試使用效果。運行該App后,用手機攝像頭對準浯溪碑林景區中的碑文,即在手機界面上顯示識別結果。經反復測試,本系統功能穩定,聲音、動畫、視頻、文本等多媒介信息能正確顯示并協同工作,視頻和動畫播放流暢,各交互功能正常,達到了增強現實體驗的效果。
結論
增強現實技術將現實世界與虛擬世界融合起來,是人們體驗世界的新穎方式。使用Unity3D+Vuforia進行移動增強現實應用開發已經是較為流行的做法。本設計開發了一款能夠識別石刻碑文圖像,并呈現相應的音頻、視頻、動畫、文本等信息的增強現實交互App,能在搭載Android系統的多個手機上穩定運行。隨著科技的不斷進步,增強現實技術的應用領域必將更為廣闊。
參考文獻:
[1]徐敏,童強.一種基于Unity3D+Vuforia的增強現實交互App的開發[J].現代計算機(專業版),2016(12):71-75.
[2]羅永東.基于Unity3D的移動增強現實技術與應用研究[D].青島科技大學,2015.
[3]郭曉敏,申閆春.基于Unity/Vuforia的AR導覽系統研究[J].計算機仿真,2019,36(08):165-169.
本文受到永州市2016年度指導性科技計劃項目“基于Unity3D的增強現實交互App開發”(永科發[2016]27號)支持。