張浩華, 吳艷敏, 程立英, 張 宜, 張文芮
(1. 沈陽師范大學 物理科學與技術學院, 沈陽 110034;2. 沈陽師范大學 古生物學院, 沈陽 110034)
針對傳統博物館“櫥窗式傳播”的單一展現形式和無交互的靜態參觀體驗所帶來的乏味感,將二維平面變換到三維空間、將靜態信息轉換為動態模型的“增強現實”技術逐漸被引入到智能博物館建設中[1]。
增強現實(Augmented Reality,簡稱AR)又被稱為擴增現實,是計算機視覺、電子和網絡等領域結合產生的一項突破性技術,能實現3D模型、視頻音頻和文字圖像等虛擬場景與攝像頭捕捉的真實場景疊加在同一空間的效果,疊加的前提是視野中檢測到的現實標記與計算機存儲的目標標記相吻合。
基于博物館的增強現實系統通過對博物館宣傳圖冊、展示海報、展品卡片和編號等信息的識別,疊加更多豐富的多維內容。作為一種全新的博物館參觀模式,極大地加強了游覽的多樣性、趣味性和互動性,近年來逐漸成為國內外研究和關注的熱點。
由于早期傳統的增強現實系統受運算能力和呈現方式等限制,多采用臺式計算機、大型工作站或者笨重的頭盔式裝備,大大限制了用戶的活動范圍、使用方式和交互體驗。隨著智能電子技術和網絡技術的發展,為AR技術提供了新的助燃劑,基于移動端平臺的移動增強現實(Mobile Augmented Reality,簡稱MAR)技術成為了當下研究的熱點。在國外,2008年,Miyashita等人[2]在Ultra Mobile PC上使用無標識、復合跟蹤的方法,設計了博物館增強現實導覽系統并解決了文物特征點過少的難題。2014年Peter Sommerauer[3]在某國家博物館的數字展覽期間進行大量的實地試驗,對AR技術在非正式學習環境下的學習效果進行了研究。2016年Bayu Prakoso Dirgantoro[4]通過研究印度尼西亞多個博物館中信息技術應用程度情況發現博物館游覽過程中缺乏交互性,開發了一款應用國立博物館中與文物進行游戲互動的移動應用程序。
在國內,北京理工大學作為國內AR領域的先行者,2006年王涌天教授團隊[5]從古跡修復的角度探討了圓明園數字重建的問題。2011年,同樣是北京理工大學,鐘志鵬等人[6]從展品的特征識別和跟蹤注冊的技術角度用基于自然特征的方法開發了博物館移動增強現實導覽應用的研究。2014年,臺灣 Chang等人[7]采用實驗測試法,驗證了在博物館AR向導的環境下對參觀者藝術鑒賞能力的影響。2017年天津大學韓冬團隊[8]對馬王堆漢墓的3D結構識別疊加更多豐富的資源信息。
國內外研究均表明增強現實在博物館的應用不僅能豐富展現形式而且對參觀者的體驗和學習都有很大的影響。針對傳統博物館的弊端和國內外研究者通常只在技術層面對增強現實博物館進行可行性分析的問題,本文從技術和應用、展覽形式和展覽內容、適用人群和適用環境等多角度,以MAR為應用點,在研究其理論技術的基礎上,通過Unity3D開發工具加以實現,設計了一個適用于遼寧古生物博物館,能滿足正常參觀需求的移動增強現實應用。
增強現實系統需要有前期圖像處理、場景搭建、環境配置等離線處理過程和系統在使用時的對象識別、虛實疊加、人機交互等在線處理過程[9]。前者可以借助開發工具Unity3D來完成,后者可通過增強現實的SDK來實現。
Unity3D是一個綜合型游戲開發工具,提供了人性化的操作介面、可視化編輯,詳細的屬性編輯器和動態的畫面預覽功能,內置了地形編輯器、PhysX物理引擎和粒子系統,利于編輯與場景的搭建,可與市場主流增強現實SDK協助開發出跨平臺的應用軟件,是增強現實開發的主流平臺。
在開發增強現實應用時,利用Metaio、Vuforia、Wikitude、ARKit、ARCore、HiAR等國內外SDK提供的穩定成熟的庫和接口實現快速開發,降低了開發成本和開發難度。
Metaio SDK是國際市場上功能強大的AR/VR開發工具包,支持2D圖像、3D對象、人臉跟蹤、位置跟蹤、手勢檢測和SLAM等功能。其系統構建過程如圖1a,其中AREL是Metaio獨立設計的增強現實體驗語言,可以一次編寫出工程跨平臺發布。
Vuforia SDK通過計算機視覺技術實時地識別和跟蹤平面圖像或簡單的3D物體,其系統實現過程如圖1b,以Unity引擎和Vuforia SDK為底層,利用ARCamera的QCARBehaviour組件跟蹤處理和渲染跟蹤器中掃描的各實體,并在照相機取景器中放置3D虛擬對象并調整與其真實物體之間的相對位置,實現虛實疊加。
Wikitude SDK專注于智能手機、眼鏡等移動設備的開發,具有基于地理位置識別和SLAM 3D識別等核心技術,其框架如圖1c,在相機、IMU等硬件完成掃描和位姿矯正的基礎上,通過JavaScript API提供計算機視覺引擎,定位服務,和專用渲染功能的訪問,再經Native API為Android和iOS平臺提供對Wikitude計算機視覺引擎的訪問。

圖1 SDK框架與系統構建Fig.1 SDK framework and system construction
除以上傳統AR SDK之外,2017年蘋果ARKit的發布掀起了一個新的高潮,其采用視覺和傳感器結合的方式通過視覺慣性里程計提高三維注冊的效果,但其只支持iOS平臺。同樣ARCore采用的也是視覺慣性里程計的思想,其應用平臺為Android系統,但對手機型號有具體的限制。在國內的AR市場及領域,先后推出了HiAR、Easy AR、太虛AR等AR開發工具包。表1對主流的增強現實SDK的功能和性能等方面做了綜合的比較。
本系統在開發之前測試過前面提到的大部分SDK,從系統識別跟蹤的角度對比發現Vuforia的表現更佳,同時考慮到本文研究的具體需求,重點是對圖像和文字進行識別,交互方式多利用手勢和虛擬按鈕,Vuforia能很好地滿足本文的需求,因此最終本文采用Vuforia SDK平臺進行技術研究和實驗分析。
三維注冊實現的是通過檢測攝像頭與現實場景中目標的相對空間位置以及姿態,來確定所需要呈現的信息融合在現實場景中的位置,并鎖定目標,實現實時跟蹤。其實時性(要求能夠及時地無延時地根據目標的改變調整位姿)、穩定性(精度準確且能適應抖動影響)和魯棒性(克服外界干擾如遮擋、光線影響的能力)是AR研究的重點和難點[10]。
在三維注冊技術中采用的主流方法一般有4種: 基于傳感器硬件技術、基于無線網絡技術、基于計算機視覺技術和綜合以上的混合技術。 目前用于移動設備的AR系統多基于計算機視覺技術, 其又分為基于自然特征(無標記跟蹤)和基于人工標記(有標記跟蹤)技術。 有標記跟蹤需要在場景中放入標志物, 通過計算機識別標志完成對物體的跟蹤, 使用場景的局限性較大。 而無標記的自然跟蹤通過提取物體本身能反應其形狀位置的特征點來判斷相機的位姿實現三維注冊, 不依賴特定的標志板,識別方便。
如圖2是本文通過采用基于自然特征點注冊算法的Vuforia處理提取的圖像特征點。可以看出,特征點多位于為物體的邊角輪廓等有“代表性”的位置。當系統運行時,通過攝像機的掃描,將當前環境中的圖像與Vuforia提取的特征點進行比較確定目標的位置,并進行實時跟蹤。由于特征點的提取已在目標上傳過程中由服務器完成,移動終端僅進行特征點的比較,且對手機性能的要求不高,具有很高的實用性,而其穩定性和魯棒性與特征點提取的多少有關,特征點越多穩定性與魯棒性越強。

圖2 目標圖片特征點提取Fig.2 Feature extraction of the target image

圖3 Unity工程Fig.3 Unity project

(1)
其中,
(2)
假設UV坐標系是我們看到的二維顯示坐標系,則現實物體特征點Ai在UO'V面的投影為ai(xi,yi),利用透視投影原理可求得現實物體特征點投影與虛擬物體之間的關系:
(3)
其中,f為相機的焦距,參數已知。
由式(1)和式(3)可由實體的某個標記點A(X,Y,Z)得到2個方程:

虛實結合分為2個過程,首先需要由計算機對識別對象和顯示的信息進行匹配,再通過顯示設備呈現出來。Vuforia對目標物體進行處理提取特征點之后,將導出的目標數據庫導入到Unity工程中,人工對其進行后臺離線匹配,一個現實場景目標對應一個或多個虛擬物體,并調整其融合之后的位置和大小狀態,當系統運行時,在通過標記實現了三維注冊確定精確位置的同時系統識別出了目標對象,從數據庫中調取相應的虛擬物體進行融合。圖4是目標跟蹤和虛實結合的過程。在顯示設備方面,本系統以安卓手機為載體,同時Vuforia支持對Microsoft HoloLens、Google Cardboard等智能眼鏡的軟件開發。

圖4 三維注冊和虛實結合的過程Fig.4 The process of 3D registration and amalgamation
交互技術是指用戶通過硬件操作、軟件接觸以及語音圖像等模式識別的方式對系統發出指令,并由計算機對指令進行解讀,響應相應的結果[12]。交互技術是當前AR乃至其他智能產品研究的重要方向,也是用戶與系統溝通的橋梁。在本實驗系統中將以基于圖像特征點的虛擬按鈕和基于屏幕操控的手勢控制的方式實現交互功能。
虛擬按鈕交互是指按鈕放置的位置和人為觸摸的位置都是在需要被識別的目標圖像上(而不是在設備屏幕上)。如圖5a是目標圖像,上面放置了3個虛擬按鈕,圖5b是提取的圖像特征點。可以發現虛擬按鈕部分的特征點豐富且集中,信息量大。當按鈕部分被遮擋之后,該區域的特征點丟失或改變,導致匹配不準確,從而系統通過算法計算出哪個位置的按鈕被觸發,調用相應指令。

圖5 虛擬按鈕目標圖像及其特征點Fig.5 Virtual button and the feature

圖6 虛擬按鈕坐標系轉換Fig.6 Conversion virtual button coordinate system
計算按鈕的位置是虛擬按鈕交互的關鍵點[13]。如圖6所示,目標圖像像素為1 800*1 200,3個按鈕的尺寸為350*300和450*300,設圖中左上角為原R(0,0),點A~F分別為按鈕矩形框左上角和右下角的坐標。但由于在Unity場景搭建中,其三維坐標系的原點Image Targetde的中心,即T(0,0),在圖中坐標為(1 500,800)。經單位轉換算出點g、h的三維坐標,利用相似性公式:
(6)
可求出各個點的三維坐標,如圖6中點a~f。
基于手勢控制的交互主要是通過檢測手指與屏幕接觸點的個數和運動方向來調取相應的函數。本實驗系統交互功能在算法上實現過程如圖7。主要能通過手勢控制來調節虛擬目標的大小、位置,并能實現模型切換、按鈕觸發等功能。

圖7 虛擬按鈕和手勢控制實現流程圖Fig.7 Procedure of virtual buttons and gesture control
基于對以上理論的研究,本文以遼寧古生物博物館為載體設計了一個應用系統對增強現實技術加以實現,并通過實驗進行分析。本系統利用3Dmax等建模工具建立的3D模型在Unity3D中進行場景搭建,由Vuforia引擎對識別目標的檢測實現跟蹤與融合,在現實環境中對不同目標的掃描呈現視頻、音頻、動畫、3D模型、文字提示等虛擬物體,并利用C#編寫的腳本通過手勢控制和虛擬按鈕操作進行交互[14]。以下是系統搭建過程:
1) 獲取經Vuforia處理之后的目標數據庫:在Vuforia官網上注冊之后轉到開發者工作區,創建應用獲取許可密鑰,再進行數據庫管理,上傳需要識別的現實目標,經Vuforia服務器處理之后導出目標數據庫。本系統添加的部分目標見表2。識別度是目標經Vuforia處理之后提取特征點的數量和質量評判出的識別程度,其中文字識別功能不需要經過Vuforia服務器處理,可直接在Unity3D中通過vuforia SDK實現匹配[14]。
2) 通過Unity3D進行場景搭建:將Vuforia SDK、官網服務器處理的數據庫和虛擬物體數據包一同導入Unity工程中,對虛實物體進行加載、匹配和位姿調整。操作見圖8。
3) 添加內容交互效果:編寫控制腳本,本例編寫的手勢控制、虛擬按鈕操作交互腳本的原理已上一節中已做了簡單講解。此外與虛擬按鈕不同的是,屏幕按鈕操作需要先建立畫布在其上放置按鈕,調整空間位置,再為按鈕添加相應的腳本,實現相應的UI隱藏、資源切換[15]。
4) 調試運行:在調試過程中可以直接利用電腦攝像頭進行模擬測試,但在手勢控制和視頻播放方面會受到一定的限制。最后導出為Android工程發布應用程序進行測試。
在滿足基本功能之后,結合游覽者實際使用的場景和需求對系統進行了如下改進:
1) 三維注冊方面:識別度為0或者識別度較低的目標(如表2中的“副櫛龍”圖像)無法加載內容的解決方法。Vforia SDK提供的FrameMaker預制件可以通過識別標記幀來標記圖片,只需要將要識別的目標圖片通過繪圖軟件與官方提供的FrameMaker合成即可,其原理是識別幀識別圖,與底層圖片無關,可達到等同于特征點的豐富圖像的識別效果。

表2 部分識別目標形式與疊加內容Tab.2 Part of the targets andit’s content

圖8 模型加載匹配與調整Fig.8 Load,mate and adjust of the models
2) 虛實結合方面:當目標移除場景后,對應的模型也隨之消失的優化問題。可使用脫卡功能,當場景中出現識別圖的時候,調用targetFound函數實時跟蹤識別圖的位置信息,當識別圖從視野中消失后,調用targetLost函數,將位置和旋轉均歸零,也即此時將相機作為子物體固定在屏幕中央,識別圖也隨之被固定。
3) 系統設計方面:由于移動終端存儲容量有限,如何較少工程大小的問題。Vuforia有云識別功能,可以將目標圖片存放在服務器數據庫中,使用時將當前環境通過網絡與云數據庫進行比較;而對于視頻資源可以通過網絡數據訪問;另可通過Unity引擎使用Prefab將模型和場景打包成.assetbundle二進制格式進行封裝,放到SD卡中,程序執行時通過調用本地文件運行系統,在一定程度上減少了系統的大小。
最終設計的安卓應用中,在博物館介紹方面對2個標志圖像疊加了對應的宣傳視頻,分別訪問本地視頻和在線視頻;在館藏展品方面分別對18種恐龍、鳥類等圖像疊加了對應的三維模型;對20種化石疊加了音頻講解、文字說明和網頁鏈接;對部分國外展品通過英文文字識別疊加了在線視頻和音頻講解。
在安卓手機上安裝此應用之后,通過掃描場景目標測試了系統效果,部分結果見圖9。

圖9 部分實驗現象Fig.9 Part of the phenomena
圖9a識別遼寧古生物博物館照片播放了宣傳片,可任意對視頻進行縮放、移動和旋轉等手勢控制;圖9b識別甲龍照片呈現甲龍的動態3D模型,可進行手勢控制和觸發文字識別;圖9c掃描識別度為0星的副櫛龍照片,沒出現實驗現象,說明識別度太低;圖9d掃描經Vforia SDK提供的FrameMaker預制件處理的副櫛龍照片,解決了識別度低的問題,識別效果明顯;圖9e通過文字識別疊加對應的3D模型,并可通過屏幕按鈕觸發播放音頻講解;圖9f識別多組文字出現對應的虛擬物體,同樣也能識別多組圖片,識別效果較好,實時性和穩定性較高。
由于識別目標、交互方式和疊加內容的多樣,增強現實技術在博物館中的應用極大地提高了博物館的吸引力和游客的參與感,有很強的應用前景。
在增強現實技術的大潮流下,智能移動設備被瞄準為其重要平臺,移動增強現實技術也成為研究與應用的熱點。本文即以實踐應用為切入點,在對增強現實所涉及到的關鍵技術進行了探討與研究之后,利用Vuforia SDK加以實現,并對其實現路徑進行了詳細的講解,通過對實驗現象的分析對存在的問題提出了優化措施,經改進取得了良好的實驗效果,并能夠應用到實際的參觀展覽中。
2017年以來,隨著蘋果ARKit、谷歌ARCore和其他國內外增強現實開發工具的涌現,預示著增強現實的下一個風口將是與SLAM[16](Simultaneous Localization and Mapping,同時定位與地圖構建)技術的融合,其在移動端的實現依靠的是視覺與IMU等硬件傳感器,這對于信息處理能力較弱的移動設備來說是最高效的解決方案。本文的后續研究也將在傳統AR的基礎上加入SLAM技術,使得系統在實際應用中能呈現更好的效果。
參考文獻:
[1]李婷婷,王相海. 基于AR-VR混合技術的博物館展覽互動應用研究[J/OL]. 計算機工程與應用, 2016:1-6.(2016-11-21).
[2]MIYASHITA T,MEIER P,TACHIKAWA T,et al. An augmented reality museum guide[C] ∥ISMAR, 2008:103-106.
[3]SOMMERAUER P,MüLLER O. Augmented realityininformal learning environments: A field experimentin a mathematics exhibition[J]. COMPUT EDUC, 2014,79:59-68.
[4]DIRGANTORO B,MARTINEZ J. Extending information on museum artefacts through augmented reality: Indonesian national museumcase[J]. JGGAG, 2017,1(1):13.
[5]王涌天,林驚,劉越,等. 亦真亦幻的戶外增強現實系統----圓明園的數字重建[J]. 中國科學基金, 2006,20(2):76-80.
[6]鐘志鵬. 移動增強現實博物館導覽應用研究[D]. 北京: 北京理工大學, 2011.
[7]CHANG K E,CHANG C T,HOU H T,et al. Developmentandbehavioralpatternanalysisofa mobileguidesystem withaugmentedrealityfor paintingappreciationinstructionin an art museum[J]. COMPUT EDUC, 2014,71:185-197.
[8]HAN D,LI X,ZHAO T. Theapplicationofaugmentedrealitytechnologyon museumexhibition-A museumdisplay projectin mawangdui han dynastytombs[C]∥VAMR, 2017:394-403.
[9]羅永東,張淑軍. 一種基于 Unity3D 的移動增強現實自動導覽方法[J]. 計算機與數字工程, 2015:2024-2028,2051.
[10]王巍,王志強,趙繼軍,等. 基于移動平臺的增強現實研究[J]. 計算機科學, 2015(增刊2):510-519,549.
[11]范利君,童小念. 移動增強現實中視覺三維注冊方法的實現[J]. 計算機與數字工程, 2011,39(12):138-141.
[12]宋燕燕,曹效業,周靈. 移動增強現實技術在互動展示中的應用研究[J]. 計算機技術與發展, 2016,26(9):83-86.
[13]KIM H,WIDJOJO E A,HWANG J I. Dynamic hierarchical virtual button-based handinteractionfor wearable AR[C]∥VR , 2015:207-208.
[14]徐敏,童強. 一種基于Unity3D+Vuforia的增強現實交互APP的開發[J]. 現代計算機: 上下旬, 2016(8):71-75.
[15]齊健. Vuforia產品升級,加速“虛實”融合[J]. 智能制造, 2016(10):8-10.
[16]MUR-ARTAL R,TARDS J D. Orb-slam2: An open-source slam system for monocular, stereo, and rgb-d cameras[J]. IEEE T ROBOT, 2017,33(5):1255-1262.