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