张浩华, 吴艳敏, 程立英, 张 宜, 张文芮
(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.