一种基于社交应用的AR导航方法、存储介质及移动终端与流程

文档序号:16387392发布日期:2018-12-22 10:01阅读:171来源:国知局
一种基于社交应用的AR导航方法、存储介质及移动终端与流程

本发明涉及导航技术领域,尤其涉及的是一种基于社交应用的ar导航方法、存储介质及移动终端。

背景技术

近年来,移动终端app的应用开发都掀起了一股ar(augmentedreality,增强现实)化的浪潮,各个公司趋之若鹜,纷纷在应用里面加入增强现实的因素,但是这些软件由于其局限性,未能落实到现实生活中,或者并没有便捷于生活。时至今日,ar在导航领域里的革命依旧不愠不火,虽然也诞生过许多小功能的ar导航软件,但其功能并不完善,导航效果并不理想。

现如今,社交软件在人们的日常生活中的应用越来越广泛,基本每个用户的移动终端中都有安装社交软件,有的用户甚至安装不止一款社交软件。但是,现有技术中的社交软件基本不具备增强现实导航功能,使得用户无法在社交应用中直接进行ar导航。并且传统的导航出行软件中用户无法直观的了解到当前位置与目标位置的相对位置,导航效果不佳,难以满足用户的需求。并且现有技术中的增强现实应用基本都是基于unity进行实现,基于原生android开发环境进行开发,当要实现复杂功能时编程不便。

因此,现有技术还有待于改进和发展。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于社交应用的ar导航方法、存储介质及移动终端,旨在解决现有技术中的社交应用中不具备ar导航等问题。

本发明解决技术问题所采用的技术方案如下:

一种基于社交应用的ar导航方法,其中,所述方法包括:

移动终端接收用户的操作指令,启动社交应用中预设的增强现实导航功能,进行导航出行规划;

实时获取移动终端摄像头拍摄的图片,并将其作为摄像头的背景;

获取移动终端的当前位置与目标位置之间的方向角,并利用四元数结合的opengl坐标系进行运算,生成三维旋转指示模型;

将生成的三维旋转指示模型叠加到摄像头的背景上,通过所述三维旋转指示模型旋转移动终端的当前位置与目标位置之间的方向角,实现ar导航。

所述的基于社交应用的ar导航方法,其中,所述启动社交应用中预设的增强现实导航功能,进行导航出行规划之前包括:

预先在所述社交应用中的聊天功能中增加出行计划选项,所述出行计划选项用于启动增强现实导航功能。

所述的基于社交应用的ar导航方法,其中,所述获取移动终端当前位置的方位角以及俯仰角,并结合gps定位获取移动终端的当前位置与目标位置之间的方向角以及距离,生成三维旋转指示模型具体包括:

利用移动终端内置的传感器以及磁场传感器获取各个传感器的坐标数据,并将所述坐标数据用三维的向量表示;

将所述各个传感器坐标数据结合移动终端中的opengl坐标系进行运算,得到移动终端的姿态矩阵,获取移动终端的当前位置与目标位置之间的方向角;

将所述姿态矩阵输入至android提供的api接口中,并利用四元数对所述姿态矩阵进行运算,生成三维旋转指示模型。

所述的基于社交应用的ar导航方法,其中,所述将生成的三维旋转指示模型叠加到摄像头的背景上,通过所述三维旋转指示模型旋转移动终端的当前位置与目标位置之间的方向角,实现ar导航具体包括:

移动终端启动路径规划功能,并结合图形学,在所述摄像头的背景下叠加生成三维指示旋转模型以及目标位置信息;

通过所述三维旋转指示模型旋转移动终端的当前位置与目标位置之间的方向角;

在所述移动终端的显示界面中显示距离目标位置所需要的时间以及预计到达的时间,并进行实景导航,从而实现ar导航。

所述的基于社交应用的ar导航方法,其中,所述将生成的三维旋转指示模型叠加到摄像头的背景上,通过所述三维旋转指示模型旋转移动终端的当前位置与目标位置之间的方向角,实现ar导航还包括:

移动终端生成雷达图,所述雷达图用于显示移动终端当前的位置点以及周边poi的分布。

所述的基于社交应用的ar导航方法,其中,所述将生成的三维旋转指示模型叠加到摄像头的背景上,通过所述三维旋转指示模型旋转移动终端的当前位置与目标位置之间的方向角,实现ar导航还包括:

当进行导航时,所述移动终端启动社交应用中预设的智能语音播报功能,实现语音导航;

所述智能语音播报功能还包括语音识别、缓存以及翻译功能。

所述的基于社交应用的ar导航方法,其中,所述方法还包括:

移动终端还会定期获取用户搜索导航的目的地信息,并将其上传至后台服务器的大数据集群中;

所述后台服务器根据用户的偏好选择以及用户信息进行机器学习算法模型的训练,定期更新所述大数据集群,并针对用户的偏好选择进行内容推荐。

所述的基于社交应用的ar导航方法,其中,所述内容推荐以滑动式的兴趣卡片的形式卡或者以滚动视图的形式呈现。

一种存储介质,其上存储有多条指令,其中,所述指令适于由处理器加载并执行,以实现上述任一项所述的基于社交应用的ar导航方法的步骤。

一种移动终端,其中,包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,以执行实现上述任一项所述的基于社交应用的ar导航方法的步骤。

本发明的有益效果:本发明通过在社交应用中搭载增强现实导航技术,将社交与导航融合,以使所述社交应用中具有增强现实导航功能,能够有效提高导航效果,给用户的使用提供了方便,此外,本发明中的增强现实应用层设计更为简单。

附图说明

图1是本发明的基于社交应用的ar导航方法的较佳实施例的流程图。

图2为本发明中传感器坐标与opengles坐标的关系图。

图3为本发明中基于社交应用的ar导航方法中的导航示意图。

图4为本发明中基于社交应用的ar导航方法中的内容推荐示意图。

图5为本发明的移动终端的功能原理框图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

随着最近几年的ar热,很多公司都趋之若鹜,试图将应用ar化。目前市场上实现的导航出行应用软件都是使用一些“老牌”的地图应用软件,而此类老牌地图软件在应用增强现实(ar)化的浪潮中步伐缓慢。虽然也有一些小众的软件应用融入了ar导航技术,但是增强现实的效果并不出众。并且从目前的用户的使用需求来看,社交软件在用户的使用率非常高,但是现有的社交软件并不具有ar导航功能,这使得用户必须额外使用另外的导航出行软件,而传统的导轨出行软件的导航效果不理想,无疑给用户带来了不便。并且现有技术中的增强现实应用基本都是基于unity进行实现,基于原生android开发环境进行开发,当要实现复杂功能时编程不便。

因此,为了解决现有技术中的社交应用中缺乏ar导航出行功能的问题,本发明提供了一种基于社交应用的ar导航方法,具体如图1中所示,所述方法包括以下步骤:

s100、启动社交应用中预设的增强现实导航功能,进行导航出行规划。

本发明提供一种社交应用,并在该社交应用中加入增强现实导航的功能,以使来社交功能以及增强现实导航功能融合在一起,以便用户直接可以在社交软件中启动ar导航功能,方便用户使用。由于现有技术中增强现实应用基本都是基本基于unity进行实现,基于原生android开发环境进行开发,而在android开发环境上进行增强现实的导航模型实现的时候,虽然存在着编程阶段时模型无法直观显示的缺点。但是其编程简便,可以进行复杂的逻辑控制,尤其在进行增强现实导航开发时,第三方的地图sdk并没有提供unity的sdk,需要进行混合编程,并且在这个基础上编写模型的旋转控制逻辑也是难上加难。因此,为了使得增强显示应用层的设计更简单,且更易实现,本发明中的社交应用是一款基于android端的自主研制ar导航技术的社交app,使用自主研发的核心ar导航模块,使用融云im通讯库进行社交系统搭建,并结合多方sdk平台进行功能补充。用户可以使用此app来实现出行时的导航需要,并且还可以应用里面发起或者寻找有共同兴趣爱好的朋友共同出行。并搭建了spark(spark是一个通用引擎,可用它来完成各种各样的运算,包括sql(structuredquerylanguage,结构化查询语言)查询、文本处理、机器学习等)大数据后台,用于满足日益增长的数据分析的需要,可以对不同偏好的用户进行不同的广告推送。本发明的社交应用的风格吸取了众多app的特点,所以用户操作起来并不会感到陌生感。

具体实施时,本发明的社交应用的社交系统是基于第三方的im基础服务进行搭建的,通讯能力来自于第三方提供的imlib库,并搭建了自己的后台服务器系统,用于存储该应用的用户信息与记录,进行系统安全保密设计,而不是将用户信息存储于第三方的服务器上,避免用户信息存储于第三方机构而引起的用户信息泄漏。该社交应用的社交系统包含了单聊、群聊、黑名单、公众号、推送以及分享等功能,此外还将用户的一些行为数据用于大数据平台的大数据集群进行训练,比如用于推荐系统、推送广告,以此来帮助用户获得更好的使用效果。

较佳地,由于本发明中预先在所述社交应用中的聊天功能中增加出行计划选项,所述出行计划选项用于启动增强现实导航功能,因此用户可以在社交应用中直接启动增强现实导航功能。或者还可以在群聊功能里面邀请朋友一起出行,并进行出行规划,以便对朋友的出行技术进行管理,给用户的使用带来了方便。例如,当用户需要进行导航出行时,直接启动社交应用中预设的增强现实导航功能,开始进行导航出行规划。

为了增强社交系统的安全性,本发明的社交系统中的用登录方式采用第三方用户登录验证的方式,利用用户在其他平台经常使用的账号来进行该社交应用的登录,可以免除注册的流程,并且还可以共享原先平台账号已有的用户关系,免去输入账号密码的麻烦,同时可以直接获取用户昵称、头像等信息,方便用户登录。此外,本发明的社交应用中还包括公众号服务以及推送服务,用户可以根据需求选择使用相应的服务,并且还可以对其进行管理,例如关闭该服务功能或者启动该服务功能。

进一步地,步骤s200、实时获取移动终端摄像头拍摄的图片,并将其作为摄像头的背景。

具体实施时,本发明的增强现实导航功能是基于openel3.0技术结合四元数实现的,当用户启动增强现实导航功能之后,移动终端实施捕获摄像头拍摄的图片作为背景,该背景就为此时移动终端所处的位置的图片信息。

进一步地,步骤s300、获取移动终端的当前位置与目标位置之间的方向角,并利用四元数结合的opengl坐标系进行运算,生成三维旋转指示模型。

本发明的社交应用中的导航系统中包含两个部分,一部分为传统的二维地图导航模块,另一部分为增强现实导航模块。传统的地图导航界面的优点在于能够以一个第三视角来将周边各个兴趣点之间的相对位置和距离表现出来,让用户能够预先知道周边的地形路况,而不足之处在于晦涩难懂,有时会让用户找不到北,导航效果欠佳。而增强现实导航的优点在于,能够直接的将当前位置与目标位置的兴趣点之间的相对位置表示出来,以增加导航效果。本发明的导航系统里面既保留传统导航,又增加增强现实导航,使两者共存,相辅相成,进一步增加导航效果。为了方便用户使用,用户可以根据需求自主选择所需要的导航功能,可以选择传统的导航功能或者增强现实导航功能,当选择了导航功能之后,移动终端就会自动切换出对应的地图,以供用户使用。

由于现有技术中的增强显示应用基本使用原生的android开发环境进行android端增强现实导航应用的开发,android应用基本为二维指示模型,在opengl与硬件层得来的姿态矩阵数据做旋转变换不容易理解和计算。因此本发明在实现ar导航的过程中,需要获取移动终端的当前位置与目标位置之间的方向角,并利用四元数结合的opengl坐标系进行运算,生成三维旋转指示模型,该三维旋转指示模型就可以对当前移动终终端的的位置与目标位置之间的方向角进行旋转,从而实现ar导航。利用四元数进行运算比较便捷,能直接跟业务应用层(例如增强显示应用层)进行对接,从而更好的实现ar导航。

对于上述的方位角以及俯仰角需要构建移动终端的姿态矩阵进行计算得到。首先利用移动终端内置的传感器(包括加速度传感器、重力传感器以及陀螺仪传感器中的任意一种)以及磁场传感器获取各个传感器的坐标数据,并用三维的向量表示。例如,当移动终端水平放置时,加速度的数值为重力向量,方向垂直向下,指向大地;磁力计的数值表示本地磁场,不考虑环境影响及磁偏角的话,认为磁场方向是南北朝向的。然后将所述各个传感器坐标数据结合移动终端中的opengl(opengl定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图像。)坐标系进行运算,得到移动终端的姿态矩阵,从所述姿态矩阵中即可获取移动终端的当前位置与目标位置之间的方向角。

具体地,如图2中所示,图2为本发明中传感器坐标(传感器x和传感器y分别代表加速度传感器与磁场传感器)与opengles(openglforembeddedsystems,是opengl三维图形api的子集,针对手机、pda和游戏主机等嵌入式设备而设计。)坐标的关系图。图2中,位于移动终端内部的坐标系为opengl坐标系,它的原点在初始状态下位于移动终端屏幕的中心,而加速度传感器和磁场传感器与opengl坐标系是一致的,如图2中外围所示。其中向量a代表加速度传感器数值,ax,ay,az分别代表它们在三个坐标轴上的数值,向量e代表磁场传感器数值,ex,ey,ez分别代表磁场传感器在三个坐标轴上的数值:

a=(ax,ay,az);e=(ex,ey,ez)

加速度传感器和磁场传感器两个向量的叉乘积,得到向量h。

h=e×a;

之后对向量a和h同时做求逆运算,得到向量a和h,

a=(ax,ay,az)=(axinva,ayinva,azinva);

h=(hx,hy,hz)=(hxinvh,hyinvh,hzinvh);

再对向量a和h进行叉乘运算得到向量m,

m=a×h;

m=(mx,my,mz)=(ayhz-azhy,azhx-axhz,axhy-ayhx);

便得到姿态矩阵r,

有了姿态矩阵r,将所述姿态矩阵r输入至android提供的api(applicationprograminterface,应用程序接口)接口中,就可以利用四元数对所述姿态矩阵计算,并生成三维旋转指示模型。本发明利用四元数对姿态矩阵进行运算,能够从宏观的显示深入到数据的描述,这是传统利用unity模型开发不能所比拟的。使用unity模型旋转在显示上能够支持手动的一个旋转,但是对于一些复杂的业务,不能够做到复杂逻辑下的一个特定的姿态变换。而四元数将姿态变换深入到数据层,通过对业务逻辑的一个分析,进行业务进行数据建模,从而达到模型的姿态变换与业务逻辑的实时变换。

进一步地,步骤s400、将生成的三维旋转指示模型叠加到摄像头的背景上,通过所述三维旋转指示模型旋转移动终端的当前位置与目标位置之间的方向角,实现ar导航。

具体实施时,移动终端启动路径规划功能,并结合图形学,将生成的三维模型叠加到摄像头的背景下,并且在所述摄像头的背景下叠加生成的三维模型以及目标位置信息。将生成的三维旋转指示模型叠加到摄像头的背景上,通过所述三维旋转指示模型旋转移动终端的当前位置与目标位置之间的方向角,实现ar导航。在所述移动终端的显示界面中显示距离目标位置所需要的时间以及预计到达的时间,并进行实景导航,从而实现ar导航。具体如图3中所显示的。

较佳地,移动终端在进行导航时,会生成雷达图,所述雷达图用于显示移动终端当前的位置点以及周边poi(兴趣点)的分布。例如在移动终端的显示界面右上方设置一个圆形视图,视图的上方表示当前移动终端的朝向,视图中心表示当前的位置,视图会跟随移动终端的朝向变化而进行转动,圆形视图内有实心小点,表示周边的兴趣点。在构建圆形视图时,需要自定义一个view,需要构造一个继承view类的子类(navigaton.view.shopping.mytestview),然后重载其ondraw(canvascanvas),这个view由三部分构成,第一部分为动态旋转的圆形透明的背景图,会跟随移动终端的转向进行相应的转动,第二部分为静止的朝向扇形透明图,该扇形图里面的兴趣点表示的是当前朝向一定距离内的兴趣点,第三部分为圆形实心小点,每个圆形小点表示一个兴趣点,点距离圆形的数据表示兴趣点距离当前位置的远近,当点为红色时表示该兴趣点被选择为目标兴趣点,圆形兴趣点同圆形背景框一样也会进行旋转。具体地,定义view即为绘制视图。本实施例中将会旋转与静止的两部分分开绘制。先保存当前画布的状态,然后旋转一定的度数,该度数则由移动终端当前的指南针数据一致。再进行圆形框背景的制作。之后画布回到保存前的状态即为一个正向的初始状态。再进行扇形背景图的绘制。最后再进行动态的圆形实心小点的绘制,根据每个点跟当前位置的方位角以及距离在圆上进行绘图。步骤与动态的圆形背景图的绘制相似。在绘制每个点之前需要保存当前的画布状态,之后旋转画布,旋转的度数即为方位角,再根据该兴趣点有无被选择选择红色或白色进行绘制。最后再将画布的状态恢复为旋转前的状态再进行下一个实现小点的绘制。

优选地,由于后绘制的视图会覆盖先前的视图,故本实施例中将颜色设置为半透明,这也符合了ar的理念,不会遮挡到现实的事物在界面上的显示。当周边兴趣点数量多的时候,目标兴趣点由于绘制的顺序问题,被后面的兴趣点覆盖了,虽然为红色,但仍不能被看到。因此再绘制时对兴趣点是否被选择进行相应的判断,若被选择则保存下编号并不绘制,而是绘制下一个点,待到其他点都绘制完成后再进行目标兴趣点的绘制,这样就能正常显示红色的目标兴趣点的了。由于旋转的时候是根据指南针的数据进行旋转的,但是指南针的数据并不是连续变化的,有时不稳定会出现值跳跃的问题,对应到我们的视图上就会出现图形界面闪来闪去的情况,影响动画的流畅度,因此本实施例需要对两个指南针之间的数据进行插值,需要用到valueanimator动画类,给初值和结束值以及时间自动生成插值区间,根据需要选择不同的插值器,使得在自定义雷达视图在指南针数据不稳定的情况下也能进行平滑的转动,达到一个动画的效果,保证导航的最佳效果。

进一步较佳地,本发明中的ar导航功能还包括周边搜索功能,将获取到的周边的兴趣点poi将这些兴趣点进行显示在手机设备上,同时又能够获得这个poi点的必要信息,包括名称,距离,类别。并且为了方便用户使用,用户在进行移动或者转身时,需要对显示的视图进行平移运动,使位于用户正前方的兴趣点始终显示在用户的移动终端屏幕的正中央,这部分的实现有点类似于雷达图的实现,也需要对位置数据在进行低通滤波除去突变的数据点之后进行差值,使相对位置的变化变得平滑,实现平滑的位移。

进一步较佳地,本发明中的社交应用中还具有智能语音播报功能。当进行导航时,所述移动终端启动社交应用中预设的智能语音播报功能,实现语音导航;所述智能语音播报功能还包括语音识别、缓存以及翻译功能。具体地,用户可以通过语音唤醒智能语音播报功能,进入对话界面,可以询问日常生活问题,例如天气,日期等,也可以询问出行信息,例如车票查询。包括目的地的相关信息等,之后便可以选择跳转到对应的导航界面。当然也可以在导航界面中唤醒,进行语音站点播报。本发明中的智能语音播报功能可以将音频转化为文本文字,分为在线识别与离线识别。离线识别需要预先加载识别的功能包,若音频识别成功,调用语义识别系统对文本进行切词分析,得到语义信息类别和核心关键词,例如导航还是日期等,从而根据关键词完成不同的逻辑跳转,实现对应的功能。本发明通过设置智能语言播报功能,能够使用户在出行的过程中解放双手,不必依赖于手写输入,特别在一些比较拥挤繁忙的场合,例如过马路等场合,语音输入与语音播报可以解放我们的眼睛视线,不用长时间注视于移动终端的屏幕,大大简便的操作的同时也提高了出行时候的安全性。此外,本发明中的智能语音播报功能还融合多种语言,包括英语,普通话,粤语等多种语种及亚语种,适用于不同年龄段和不同区域的用户。

进一步较佳地,移动终端具有内容推荐系统,即定期获取用户搜索导航的目的地信息,并将其上传至后台服务器的大数据集群中;所述后台服务器根据用户的偏好选择以及用户信息进行机器学习算法模型的训练,定期更新所述大数据集群,并针对用户的偏好选择进行内容推荐。

具体地,本发明的后台服务器的推荐系统搭建使用了传统的hadoop(一种分布式系统基础架构)平台,利用其集群和hdfs(hadoop分布式文件系统)文件系统,再搭建spark分布式计算平台,数据库的选择上使用了hive+hbase数据库,此外使用zookeeper(一个分布式的,开放源码的分布式应用程序协调服务)进行大数据集群的协调管理。推荐系统获取到用户上传的信息之后,便可以将用户信息与偏好选择进行一个机器学习算法模型的训练,或者是神经网络模型的训练。本实施例中使用的是协同过滤算法以及随机森林方法,在大数据后台集群中分配训练任务,对每天新增的信息进行同步整合,然后在特定的时间段进行算法模型的训练,从而对集群进行更新。

所述内容推荐以滑动式的兴趣卡片的形式卡或者以滚动视图的形式呈现。当推荐方式为滑动式的兴趣卡片,卡片内容包含兴趣点的实景图片,距离以及其他等等相关信息,点击卡片可以查看该兴趣点的详细信息,左滑卡片表示对该兴趣点不感兴趣,右滑表示对该兴趣点表示兴趣,之后便可以选择是否将兴趣点作为出行地点还是先暂时收藏起来。当推荐方式为一个实景界面下的一个滚动视图,将推荐的多个兴趣点以一个框图的形式展示在移动终端的屏幕上,也就是增强现实在移动终端上的实现方式之一,具体如图4中所示。框图会随之移动终端的转动翻转移动而进行显示上的位移,框图包含兴趣点名称,距离信息还有类别信息。当用户正面手持移动终端,若框图处于移动终端正中央,说明该兴趣点处于用户的正前方,若框图处于移动终端屏幕左侧部分,说明该兴趣点处于用户左侧朝向,右侧同理。该推荐方式的优点在于用户可以知道目的地的一个大概位置信息,符合增强现实的概念,提高了导航的效果,给用户的使用提供了方便。当然上述推荐方式也可以根据用户的需求进行自主设置。

基于上述实施例,本发明还公开了一种移动终端,如图5所示,包括:处理器(processor)10、与处理器10连接的存储介质(memory)20;其中,所述处理器10用于调用所述存储介质20中的程序指令,以执行上述实施例所提供的方法,例如执行:

移动终端接收用户的操作指令,启动社交应用中预设的增强现实导航功能,进行导航出行规划;

实时获取移动终端摄像头拍摄的图片,并将其作为摄像头的背景;

获取移动终端的当前位置与目标位置之间的方向角,并利用四元数结合的opengl坐标系进行运算,生成三维旋转指示模型;

将生成的三维旋转指示模型叠加到摄像头的背景上,通过所述三维旋转指示模型旋转移动终端的当前位置与目标位置之间的方向角,实现ar导航。

本发明实施例还提供一种存储介质,所述存储介质上存储计算机指令,所述计算机指令使计算机执行上述各实施例所提供的方法。

综上所述,本发明公开了基于社交应用的ar导航方法、存储介质及移动终端,所述方法包括:移动终端接收用户的操作指令,启动社交应用中预设的增强现实导航功能,进行导航出行规划;实时获取移动终端摄像头拍摄的图片,并将其作为摄像头的背景;获取移动终端的当前位置与目标位置之间的方向角,并利用四元数结合的opengl坐标系进行运算,生成三维旋转指示模型;将生成的三维旋转指示模型叠加到摄像头的背景上,通过所述三维旋转指示模型旋转移动终端的当前位置与目标位置之间的方向角,实现ar导航。本发明通过在社交应用中搭载增强现实导航技术,将社交与导航融合,以使所述社交应用中具有增强现实导航功能,能够有效提高导航效果,给用户的使用提供了方便。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1