陈宁凡 何 成 钟 璐 雷炳成
(中山职业技术学院,广东 中山 528404)
随着移动智能手机技术的迅速发展,导航系统已经相当的成熟,特别是室外导航系统,高德地图、百度地图等都能满足用户的日常需求。然而室内的导航系统,大部分采用的是二维地图来做指引,相对滞后。
这些年来,增强现实(AR)技术逐渐进入公众视野,增强现实技术的目标是将计算机生成的虚拟环境与用户周围的现实环境融为一体,让用户从视觉上认为虚拟物体就是真正存在于客观真实世界当中的。随着移动通信和5G技术的快速发展,增强现实技术毋庸置疑地成为当今最具影响力的技术之一,它能够将瞬息万变的信息实时地展现在人们面前。
基于移动端的AR技术的导览系统具有非常重要的意义,借助AR技术,可以让导航更直观和更有趣味,AR导航把虚拟路标“添加”到现实世界当中,使导航过程更为直观。利用EasyAR的运动追踪功能,EasyAR会检测捕获的摄像头图像中的视觉差异特征(称为特征点),并使用这些点来计算其位置变化。移动终端设备IMU的惯性测量结果和视觉信息相结合,共同用于估计摄像头随着时间推移而相对于周围世界的姿态(位置和方向)。这样可以解决用户在很小的室内范围内难以判断高度和找到方向的问题,可以很好弥补传统导航方法的不足。另一方面,传统的导航借助AR技术可以改善用户体验,充分利用AR技术虚拟物体映射到真实世界的特点,增强移动设备导航应用的趣味性。本文基于Unity/EasyAR的增强现实室内导览系统应用设计进行探索。
EasyAR是国内很常用的一款免费增强现实引擎,也是国内AR开发常用的工具。从版本4开始,发布EasyARSense,是一个独立的SDK,提供感知真实世界的能力。本项目使用EasyARSense Unity Plugin提供EasyARSense功能在Unity中的封装。EasyARSense 4.5带来了全新的算法组件和平台支持,包括稀疏空间地图(扫描环境实时生成稀疏3D点云地图),稠密空间地图(扫描环境实时生成3D网格地图),运动跟踪(获取设备相对现实世界的位置和姿态),表面跟踪(获取设备相对于环境表面的位置和姿态),3D物体跟踪(对日常生活中富纹理3D物体进行识别与跟踪),平面图像跟踪(对平面图像进行实时识别与跟踪)等功能。
通过3d Max对场景进行建模、贴图及制作动画、特效。3d Max是一种多边形对象建模方式,可以对其点、边及元素进行独立编辑,场景及实体的材质通过质地颜色和纹理贴图设计、参数修改达到表现物体特质效果。
Unity技术。利用Unity3D渲染技术及碰撞检测功能,实现增强现实导览系统中需要对3D虚拟场景进行渲染、交互功能,并把虚拟物体映射到相应跟踪的真实场景中。
EasyAR的运动跟踪功能。当手机在现实世界中移动时,Easy AR会通过并行测距与映射的过程来理解手机相对于周围世界的位置。EasyAR会检测捕获的摄像头图像中的视觉差异特征(称为特征点),并使用这些点来计算其位置变化。移动终端设备IMU的惯性测量结果和视觉信息相结合,共同用于估计摄像头随着时间推移而相对于周围世界的姿态(位置和方向)。用这种特性来解决导览系统中短距离的定位和方向判别问题。
利用EasyAR的环境理解功能制作AR导航标记。EasyAR可以查找看起来位于常见水平或垂直表面(例如,桌子或墙)上的成簇特征点,并让这些表面可以由应用用作平面。EasyAR也可以确定每个平面的边界,并将该信息提供给应用。可以使用此信息将虚拟物体(AR导航标记)置于平坦的表面上。开发AR导览系统的总体流程图如图1所示。
图1 开发AR导览系统的总体流程图
实现中山职业技术学院AR导览系统各功能模块。UI界面,AR识别图库,AR跟踪识别、导航,AR核心模块,模型显示,AR叠加融合,交互体验。增强现实导览系统总体框架如图2所示。
图2 增强现实导览系统总体框架
平面图像跟踪(Planar Image Tracking)用于跟踪与检测有纹理的平面物体。“平面”的物体,可以理解为一张名片、一个二维码、一张海报,或者是一面涂鸦墙这类具有平坦表面的物品或事物。这些物体应当尽量具有不重复且丰富的纹理。在本项目中,使用二维码作为平面图像,进行辅助跟踪定位。模板图像准备妥当之后,将文件放置在正确的资源文件夹(assets)目录下。随时可以开启整个平面图像跟踪。目标物体的数据会在Tracker启动时自动进行计算生成,检测与跟踪的过程也将在那之后自动运行。
运动跟踪(Motion Tracking)用于持续追踪设备在空间中的六自由度位置和姿态。通过运动跟踪,虚拟物体和真实场景实时对齐到同一坐标系,可以体验到虚拟内容和真实场景融合在一起的感受。运动跟踪通过视觉惯性同步定位和建图(VISLAM)技术,计算设备相对于真实空间的位姿关系。在设备移动过程中,通过识别相机图像中显著特征点并跟踪其位置变化,结合设备的IMU数据信息,实时计算当前设备相对于真实世界的位置和姿态。
MotionTrackerCameraDevice实现了一个真实尺度6DOF运动追踪的camera设备,输出InputFrame(包含图像、摄像机参数、时间戳、6DOF位置信息和跟踪状态)。MotionTrackerCameraDevice通过inputFrameSource输出InputFrame,应将inputFrameSource连接到InputFrameSink上进行使用。
EasyAR表面跟踪(Surface Tracking)实现轻量级的持续跟踪设备相对于空间中选定表面点的位置和姿态的能力。为了在真实空间和虚拟空间之间建立对应关系,表面跟踪利用相机和惯性测量单元的数据。表面跟踪识别相机图像中的重要特征,使用连续视频帧和IMU数据跟踪这些特征的位置。虚拟物体被放置在相应的特征点的位置并持续跟踪。启动时虚拟物体默认被放置在屏幕中间附近的特征点表面,并将虚拟物体的位置视为世界坐标系的原点。在移动设备期间,相机图像中的特征深度会不断更新,虚拟物体持续贴合在相应的特征点表面。如果虚拟物体所对应的特征点丢失,系统自动选择新的特征点并输出设备相对于该特征点的位置和姿态。
SurfaceTracker实现了对环境表面的跟踪。SurfaceTracker通过inputFrameSink输入InputFrame,应将InputFrameSource连接到inputFrameSink上进行使用。
开发基于Unity/EasyAR的中山职业技术学院AR导览系统,系统具有位置定位功能,方向姿态判别功能,以及目的地导航、目的地介绍等交互功能。打开App会看到一个扫描二维码的界面,用户通过扫描指定的二维码进行定位。当扫描到二维码并且一切正常的话就会进入一个平面地图。当选中目标点后点击预览路线将会在平面地图上显示一条路线,实现了AR室内导览功能。中山职业技术学院AR导览系统应用功能展示如图3所示。
图3 中山职业技术学院AR导览系统应用截图
本文提出利用EasyAR的运动跟踪功能实现导览系统中短距离的定位和方向判别问题,摆脱导航系统对卫星导航依赖的同时提高室内导航精度。EasyAR会检测捕获摄像头图像中的视觉差异特征(称为特征点),并使用这些点来计算其位置变化,从而实现精确稳定的室内导览,达到研究增强现实技术可如何有效运用于室内导航的目的。同样技术可应用于医院、公园、图书馆、博物馆等各种室内公共设施,为人们提供便利。