基于增强现实技术的游戏旅游地图系统开发

2018-07-18 05:30:44吴榕华阮嘉俊詹坤展胡奕纯卢嘉裕杨晋吉
现代计算机 2018年18期
关键词:限界调用导游

吴榕华,阮嘉俊,詹坤展,胡奕纯,卢嘉裕,杨晋吉

(1.华南师范大学计算机学院,广州 510631;2.华南师范大学旅游管理学院,广州 510631)

0 引言

近年来,智慧旅游建设逐渐成为热点,同时增强现实技术(Augmented Reality,以下简称AR)的兴起与发展和游客的个性化需求,使得智慧旅游软件行业发展劲头迅猛。而AR旅游游戏地图App,将AR、互联网与旅游相结合,一方面,以景区特色文化为背景,玩家可以在游戏过程加深对景区的了解,有助于景区文化的传播与弘扬,提高景区的吸引力;另一方面,为用户提供游戏通关形式的行前增强现实体验,实景还原景区,为用户出行决策提供帮助,是集AR游戏、智能路径规划、电子导游解说等功能于一身的系统。

国外AR技术起源于20世纪60年代,90年代发展迅速,各大高校、实验室、研究所等将其研究重心放在人机交互方式、软硬件基础平台的研发等。如1999年,ARToolKit项目发布,极大地推动了增强现实技术的发展,更是将AR从PC端推广至手机端。2004年,An⁃drew J.Davison提出了广角视觉下的实时三维SLAM算法,开创了增强现实新的研究方法。2012年,谷歌公司推出的增强现实型穿戴式智能眼镜风靡一时。2016年,任天堂推出基于增强现实技术的手机游戏Poke⁃mon Go。2017年苹果公司发布AR开发平台ARKit,各式各样的AR应用一时层出不穷。

而我国对AR的研究起步较晚,研究机构最初以高校为主。2006年,北京理工大学通过AR技术还原圆明园。同年,华中科技大学对基于AR的遥操作关键技术进行了研究,提出了基于视觉的增强现实跟踪注册方法和基于实时定标策略的虚实配准方法,设计了基于标示角点与全局单应性矩阵相结合的三维注册方法。2015年,亮风台发布HiAR增强现实平台,包括HiARSDK、云识别、管理者后台等开发工具,使开发者能利用其增强现实框架快速开发AR应用。

1 软件系统实现

如图1所示,App系统功能模块图有三大主要功能,分别是AR游戏、电子导游解说、地图功能,意在为游客提供最智能的旅游指南,为景区设计专属的智慧旅游平台。

1.1 地图基本功能实现

地图功能调用了BaiduMap官方API来进行开发,在BaiduMap官方网站申请了一个开发密钥,以在程序中使用BaiduMap所提供的地图服务、定位服务及数据服务等。

图1 AR旅游游戏地图系统功能模块图

基本地图模块,用户赋予了定位权限之后,调用GPS与网络实现精准定位,并且全屏显示地图当前位置,右上方按钮则提供了切换地图显示类型。

导航功能分为骑行导航和步行导航,结合路径搜索与定位功能,通过GPS与网络精准定位实时监测当前位置,并与规划路线相比较,辅以正误偏向对照,以确保正确的导航路线。另外,AR实景导航还需要调用到摄像头,摄像头返回图像数据经过处理后并实时纠正用户的错误方位。

搜索模块会进入POI检索模式,输入地点并点击搜索,弹窗会显示当前搜索地点附近的吃喝玩乐。依次输入三个或者多个地点,系统会根据输入的三个地点自动根据算法【智能路径规划算法】给出当前的最佳游览路线。

(1)POI检索实现

POI周边检索是一个圆形范围,适用于以某个位置为中心点,自定义检索半径值,搜索某个位置附近的POI。调用 mPoiSearch.searchNearby(new PoiNearbySe⁃archOption()函数,通过计算以当前坐标为圆心、以地图放大级别为半径的圆形范围区域,根据关键词搜索当前区域内相匹配的位置,并以红点标记搜索结果返回到当前地图上。

(2)最佳路线生成

最佳路线生成采用【智能路径规划算法】,在线路规划输入框输入景点A、B、C、D后选择驾车/公交/步行的方式,系统就会自动生成一条线路,游客再通过周边搜来寻找合适的住宿地址及美食。

1.2 AR系统的结构及分析

图2 AR系统实现功能图

(1)作为Activity的响应函数之一,来进行Android设备当前方向和重力方向夹角的计算并为后序的手势响应的互动部分作数据的准备。通过这样的方式实时更新设备角度,同时对手势互动部分进行校正。

(2)滑动手势的识别对应及AR模型中的角度的计算和响应,首先通过onScroll函数和Activity进行手势上的关联,以此响应滑动手势,传入的x、y两个方向上的距离,再通过mOrientation(这个值同样由另外的回调函数来响应修改)来确定当前对应的手机方向和重力的夹角,从而判断对应的手势行为来确定对应的3D模型应该旋转的方向。在这基础上,对不同关卡物品的拾取角度进行匹配,从而决定相应的行为。最后再调用渲染器的不同函数从而实现用户滑动手势和模型的互动。

(3)通过渲染器和Activity的分离,在Activity中进行渲染器的各个接口函数进行调用,对模型处理和相关的Activity进行分离。渲染器进行和底层的Vuforia接口还有系统地城图形接口的交互,而Activity部分尽量避开和底层的系统图形接口的直接交互。实际上是软件工程的解耦合的思想。

(4)AR系统部分实际上还额外包括了软件外的一个数据预处理模型。用于将成型的3D模型转化成对应可以适用于AR系统内部调用的数据文件。在图中用蓝色进行额外标注。

1.3 电子导游解说

电子导游解说功能分为电子解说模块与AR实景导航模块。电子解说模块将景区情况以声文并茂的电子解说形式展现给游客;AR实景导航模块通过调用摄像头指引游客到达目的地。

(1)电子解说模块利用MediaPlayer对象实现播放语音功能,“play,pause,stop,hint”按钮实现“播放,暂停,停止,进度条”功能,当游客进入情景体验模块后,点击“播放按钮Button”,调用MediaPlayer对象,实现导游语音播放的功能。

(2)AR实景导航模块利用百度地图的API接口函数,需要在AndroidManifest中配置Camera权限,申请调用摄像头;使导航引擎初始化,发起导航算路。算路成功后,再回调函数中设置跳转至诱导页面,在导航页面 WNaviGuideActivity.this的 onCreate方法中,调用mNaviHelper.onCreate(WNaviGuideActivity.this)创建诱导View。

2 关键技术

2.1 智能路径规划算法

我们将分支限界法应用到实际的最佳游览路线的生成中去。结合百度地图的路径检索,返回的具体的时间成本甚至是其他成本如价格等因素。在这个基础之上,根据用户实时选定的地点。生成对应的一个完整的最佳游览路线规划。

(1)应用算法

分支限界法的设计类似于回溯法。然而,回溯法搜索满足给定性质(包括最大化或者最小化)的一个解或者解的集合,而分支限界法通常只关心给定函数的最大化或者最小化。此外,在分支限界法中,算法会为每一节点x计算一个界,任何可能在以x为根的子树将变紫色,也就是说,不会生成任何子节点。

从此以后我们将假定算法要使给定的耗费函数最小化,最大化的情况与此类似。为了使得分支限界法能应用,耗费函数必须满足下面的属性:对于所有的部分解和扩展的解(x1,x2,…,xk)必须有:

给出了这个性质,部分解x1,x2,…,xk的耗费一旦大于等于先前计算出来的解的耗费,就可以丢弃。于是,如果算法找到了一个耗费为c的解,并且有一个部分解,它的耗费至少是c,那么就不会有该部分解的扩展生成。

简单来说,分支限界法解决的回溯法类型问题中要求先遍历各个问题子结构中的局部最优其中与其次优子结构解相差最大的,也就是先遍历“最具争议”的子结构解,首先这个最具争议的子结构解较大可能属于最优解的一部分,而且若不是最优解的一部分,最优解上升的“速度”也是最快的。对比选下一条的可能性相对会减小。

其算法流程:

①确定所有子问题部分最优解。

②确定子问题次优解相差最大者。

③遍历子问题最优解并添加到暂时所生成的最优解。

④若还剩子问题,将剩余子问题作为问题子结构再进一步,回到第一步;若无子问题或者当前解无法产出最优解,那么将第三步确定的子问题最优解封住,返回第三步,若第三步也无法满足,返回上一个问题子结构进行。

(2)实际应用及因素的调整

游览具体地点由景区与团队确定,并由使用软件的用户本身去确定最终输入智能路径规划系统部分的是哪几个点。

对应到我们的智能路径规划当中的计算当中,我们对时间、路程等通过发起百度地图POI检索、路径检索所能够返回的一系列成本加以权值分配,并通过对游客的心理反应等去修正权值分配值。

最终通过以上方法生成输入数据,并通过内置的分支限界法算法部分运行得到完整游览路线。

2.2 Pokemon Go风格景区

本文将增强现实(AR)技术与旅游相结合,给用户营造一种身临其境的感觉。结合Vuforia以及EasyAR并借鉴了Pokemon Go的游戏模式,系统允许用户在旅游行程中检测到所在旅行地点的隐藏对象,就好比Pokemon Go检测“小精灵”并进行捕捉。相似地,根据用户所检测到的隐藏对象,对其进行扫描并自动识别,识别成功后会自动在手机端播放一段关于该“对象”的“故事”视频,营造一种娓娓道来的如临其境的“导游解说”效果。

在实现原理上,系统借鉴了Pokemon Go的游戏风格。根据当前景区的历史渊源,从中选取了部分特色景点作为隐藏对象的承载者。每一个隐藏对象就是一个潜在的“导游”,只有通过扫描并识别成功后才能获取到该对象的“故事”视频。

系统借助BaiduMap接口进行基本地图的开发,用户可以在行程地图上发现“悬浮”提示的隐藏点,并通过“AR导航”到达相应目标点对“隐藏对象”进行扫描,系统根据手机摄像头返回的图像数据,借助EasyAR提供的接口进行对象的识别处理操作,再通过Vuforia的VideoPlayer对虚拟视频进行透明度处理,根据当前识别对象以选择返回播放的虚拟弹出式视频,从而达到悬浮虚拟“导游解说”的效果。

3 系统测试效果与市场对比分析

图3 AR游戏与AR实景导航

图3是AR游戏与AR导航的测试效果图,图片上半部分图书馆模型展示AR游戏效果,下半部分展示用户利用App实现AR实景导航的过程。

由于智能手机等移动设备和“智慧旅游”概念的普及,旅游类App也快速发展,而这些旅游App也各有所侧重,可以把它们分成三大类,分别是工具型、导游型和综合型。

工具型主要指以提供预订酒店、交通工具、景点门票及翻译、汇率换算、实时天气等功能的App,例如Airbnb、booking等,以提供住宿预订功能为主。

导游型App侧重于在行程前提供行程规划、景区介绍等功能,旅游过程中提供地图、导航、语音解说等功能,行程后提供分享旅游心得等功能。

综合型App则有较丰富的内容和功能,不单实现某一功能,提供“一站式”服务,既包括出游前期的预订和线路规划等服务也包含其他功能,这类App能大大地减少用户花费的时间和精力,例如携程、去哪儿等,都能较全面地提供旅游类的各种信息服务。

AR旅游游戏地图App在调用百度地图的API的基础上提供AR实时导航功能;其智能路径规划功能则是能在多个景点中进行旅游线路规划,同时提供线路周边的吃住玩推荐功能,更大程度上方便游客进行专属的线路规划;景区介绍上则是结合自身根据景区历史文化背景设计的AR游戏进行提前体验,提高景区吸引力。同时,在游览时也提供景区的语音解说,是结合智能路径规划、AR导航、语音解说和AR游戏体验四大功能的综合型旅游App。

4 结语

基于Android平台的AR旅游游戏地图App,集AR游戏体验、智能路径规划、电子导游解说于一身。App基于分支限界法实现智能路径规划功能,通过Vu⁃foria接口将原有的3D模型改成具有景点特色的模型并加入视频功能实现AR游戏,该App的实现对AR游戏和旅游地图具有一定的参考价值。

猜你喜欢
限界调用导游
寻找火星导游
军事文摘(2023年14期)2023-08-06 15:39:52
Being a Tour Guide in Shuangqing Villa在双清别墅做导游
客运专线接触网吊柱安全限界控制的探讨
安防科技(2021年2期)2021-11-30 23:51:10
跟着西安导游吃,准没错
奇妙博物馆(2021年2期)2021-03-18 03:29:57
红领巾阵地之小导游
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
测控技术(2018年5期)2018-12-09 09:04:46
基于系统调用的恶意软件检测技术研究
限界检查器设置方案的探讨
地铁隧道施工偏差限界检测软件开发与应用