基于增强现实的实景导航系统设计与实现

2018-03-07 06:15梁青青张刚要
无线互联科技 2018年21期
关键词:增强现实

梁青青 张刚要

摘 要:增强现实通过计算机生成的三维图形或2D文本与真实视图合并,能够帮助用户学习和感知在现实世界中无法看到的更多信息。文章在增强现实技术的基础上,结合LBS服务设计并实现了实景导航系统。该系统在移动通信网络的支持下,利用GPS定位技术,通过移动终端的传感设备获取方位角,将用户输入的目标地点转化为虚拟信息与真实世界叠加,最终以关键字标签的形式体现在设备屏幕上。

关键词:增强现实;实景导航;定位服务

增强现实(Augmented Reality,AR)是一种将虚拟信息叠加到真实世界中的技术。它是一门十分复杂的学科,涉及诸如计算机图形学、机器视觉、传感器、三维注册、信息可视化等多种技术[1]。可以说,AR技术是随着时代发展而产生的一项独特的科学技术。计算机图形、人工智能技术、计算机显示技术等的发展,为AR的迅猛发展带来了可能。随着AR技术的发展,通过AR的软件开发工具包(Software Development Kit,SDK)就可以开发出简单的AR软件,而不需要去编写底层的复杂代码,减少了开发的周期和开发的难度。本文的AR系统是在移动通信网络的支持下,利用GPS定位技术,通过移动终端的传感设备获取方位角,将用户输入的目标地点转化为虚拟信息与真实世界叠加,最终以关键字标签的形式体现在设备屏幕上。

1 相关理论与技术

1.1 AR关键技术

AR技术仍然处于初级阶段。但是未来基于AR技术推出的应用将会是永无止境的。在AR技术上的研究将会更多地去考虑通过信息的交互来实现更加真实的虚实结合。可以预见,未来AR在制造业、工业、服务业等众多场所都会有长足的进步。

AR系统的体系结构可以以AR系统执行的4个任务进行分类:场景捕捉、场景识别、选择精确信息的增强场景、场景的增强处理和可视化。

(1)场景捕捉利用AR的物理组件捕捉现实实景。

(2)场景识别被认为是在现实增强中采取的主要行为之一。主要有两种基本类型的场景识别技术:基于标记的方法和非标记的方法[2]。

(3)在注册技术的支持下,根据摄像机的内外参数计算真实空间中的特定标记点后,系统针对3D中的每个标记寻找相应的虚拟模型。

(4)最后,该系统产生投影的模型对象和真实空间的图像,并在使用标记和当前数字信息的情况下,使用识别技术的非标记场景来混合真实和虚拟的场景图像。

在AR应用中,如果选择自己从头到尾来开发的话,需要使用OpenGL(是一个跨编程语言、跨平台的编程接口规格的专业的图形应用程序编程接口)这个比较底层的图形程序接口,而且将需要消耗大量的时间来编写底层代码,十分复杂,并且耗时耗力。但现在出现了许多AR相关的SDK,比较知名的有Vuforia(高通),Easy AR,ARToolkit等。它们具有较高的识别稳定性,功能也十分完善,能够很好地给软件开发者提供开发所需的工具包,有利于加快开发的速度和效率。借助这些AR SDK开发应用,开发者不需要自己去编写底层的复杂代码,有助于减少开发周期和开发的难度,本文利用第三方组件(EasyAR SDK)提供的AR基本功能程序库来实现基于非标记的场景识别功能。

1.2 LBS关键技术

基于位置的服务(Location Based Service,LBS)是网络通信技术、空间定位技术、信息采集技术、移动终端技术等多种技术融合发展的产物,图1给出了位置服务的关键技术。目前位置服务主要的定位技术就是GPS和基站定位[3]。

图1 LBS关键技术

本系统中主要利用高德地图API,通过调用API接口初始化定位并设置回调监听获取用户的当前定位结果,实现Android端的定位功能。

2 系统设计与实现

IOS端和Android端在设计方法上和平台选择上有一些区别,本系统是在Android移动手机中实现的。基于Unity平台首先实现Android端的定位功能,在输入需要搜索的附近POI点,通过Android端向服务器发送数据,返回包含各种信息的数据内容,在解析之后将附件信息渲染为直观的文本图片内容,叠加在手机相机获取的视频流界面上。

2.1 系统设计流程

本系统主要实现用户定位、搜索附近POI点、叠加显示内容3个功能。设计流程与功能如图2所示。

2.2 定位功能的实现

由于unity平台并没有提供高德定位的接口,所以需要先在Android端实现定位功能再打包成jar文件。将编译好的jar文件与AndroidManifest文件导入Unity工程中,并修改相关参数。如图3所示,创建脚本将Activity中的方法继承给UnityPlayerActivity方法,调用高德定位功能,并输出相应信息。定位的功能实现后,需要基于定位信息搜索附近POI点。我们通过高德SDK定位获取位置坐标,在利用反地理编码获取地址信息将搜索到的数据内容输出给移动终端。

2.3 AR功能的实现

利用EasyAR SDK,导入Unity工程中,删除默认的摄像机,把“EasyAE_Startup”预制件放入场景中。同时在inspector面板中填入之前在EasyAR官网中申请的Key。并将GyroDroid插件包中的“MinimalSensorCamera”脚本挂载到摄像机上,以便让AR摄像机的镜头随着手机的旋转而旋转。EasyAR在这里的主要作用就是通过初始化AR模块开启摄像头采集摄像头拍摄到的原始图像数据信息。

3 结语

本文在AR技术的基础上,结合LBS服务设计并实现了实景导航系统。AR技术与LBS服务的结合,使得信息的搜索不再僅限于简单的2D文本内容的呈现,更重要的是,该系统可以根据输入的关键字信息进行定位搜索,以关键字标签的形式在移动终端上显示出立体的效果,使获取的信息更加方便、快捷和直观。

[参考文献]

[1]张卫良.3D游戏引擎中基于ARToolkit增强现实技术的设计与研究[D].武汉:湖北工业大学,2016.

[2]陈向东,曹杨璐.移动增强现实教育游戏的开发—以“快乐寻宝”为例[J].现代教育技术,2015(4):101-107.

[3]王萍.基于位置服务的移动学习研究[J].中国电化教育,2011(12):114-119.

猜你喜欢
增强现实
照片建模与增强现实实验在三维软件基础课程中的应用
增强现实技术在职业教育中的应用