一种增强现实交互方法及系统与流程

文档序号:12595047阅读:679来源:国知局
一种增强现实交互方法及系统与流程

本发明涉及增强现实技术领域,尤其涉及一种增强现实交互方法及系统。



背景技术:

增强现实技术将虚拟世界叠加到现实世界中,被人类感官所感知,从而达到超越现实的感官体验。人与增强现实的交互是增强现实技术里的重要组成部分,目前增强现实中应用的交互基本是通过识别、触控、声控和传感等比较复杂的方式。



技术实现要素:

本发明所要解决的技术问题是提供一种基于三维空间坐标的增强现实交互方法及系统。

本发明解决上述技术问题的技术方案如下:

一种增强现实交互方法,适用于现实设备和所述现实设备通过AR技术得到的虚拟设备,所述增强现实交互方法包括:

S1:在Unity中建立三维场景,将Unity中的坐标系作为AR空间坐标系,将现实场景的中心点作为AR空间坐标系的原点,将所述现实设备作为AR空间坐标系中的一点;

S2:通过Unity中的transform组件实时获取所述现实设备的AR空间坐标;

S3:根据所述现实设备的AR空间坐标,计算所述现实设备的移动方向和移动速度;

S4:根据所述现实设备的所述移动方向和所述移动速度,控制所述虚拟设备进行与所述现实设备同步的运动。

本发明的有益效果是:本技术方案在增强现实应用识别现实环境后建立识别设备(智能手机、AR眼镜)、现实环境、虚拟场景对应的三维坐标关系,在移动设备的过程中,通过实时计算设备在这个坐标系中的位置、移动方向、移动速度信息,来触发虚拟场景进行合理的响应,从而达到虚拟场景和现实世界中持设备移动的人保持一致行为的互动效果。

在上述技术方案的基础上,本发明还可以做如下改进。

优选地,所述步骤S3中,根据所述现实设备的AR空间坐标,计算所述现实设备的移动方向,具体包括:

A1:获取所述现实设备的第一预设帧数的AR空间坐标;

A2:将所述第一预设帧数的AR空间坐标转换为相应的空间向量;

A3:通过Unity的Vector3组件和所述空间向量,计算所述现实设备的运动向量,得到所述移动方向。

优选地,所述步骤S3中,根据所述现实设备的AR空间坐标,计算所述现实设备的移动速度,具体包括:

B1:获取所述现实设备的第二预设帧数的AR空间坐标;

B2:通过Unity的Vector3组件计算每相邻两帧返回的所述现实设备的AR空间坐标的间距;

B3:通过加权平均法对所述间距进行加权平均,得到所述移动速度。

一种增强现实交互系统,适用于现实设备和所述现实设备通过AR技术得到的虚拟设备,所述增强现实交互系统包括:

建立模块,用于在Unity中建立三维场景,将Unity中的坐标系作为AR空间坐标系,将现实场景的中心点作为AR空间坐标系的原点,将所述现实设备作为AR空间坐标系中的一点;

获取模块,用于通过Unity中的transform组件实时获取所述现实设备的AR空间坐标;

计算模块,用于根据所述现实设备的AR空间坐标,计算所述现实设备的移动方向和移动速度;

控制模块,用于根据所述现实设备的所述移动方向和所述移动速度,控制所述虚拟设备进行与所述现实设备同步的运动;

其中,所述建立模块、所述获取模块、所述计算模块和所述控制模块依次连接。

优选地,所述计算模块包括:

第一获取子模块,用于获取所述现实设备的第一预设帧数的AR空间坐标;

转换子模块,用于将所述第一预设帧数的AR空间坐标转换为相应的空间向量;

第一计算子模块,用于通过Unity的Vector3组件和所述空间向量,计算所述现实设备的运动向量,得到所述移动方向;

其中,所述获取子模块、所述转换子模块和所述计算子模块连接。

优选地,所述计算模块还包括:

第二获取子模块,用于获取所述现实设备的第二预设帧数的AR空间坐标;

第二计算子模块,用于通过Unity的Vector3组件计算所述现实设备每两帧的间距;

加权子模块,用于通过加权平均法对所述间距进行加权平均,得到所述移动速度;

其中,所述第二获取子模块、所述第二计算子模块和所述加权子模块依次连接。

附图说明

图1为本发明的一种增强现实交互方法的流程示意图;

图2为本发明的一种增强现实交互方法的流程示意图;

图3为本发明的一种增强现实交互方法的流程示意图;

图4为本发明的一种增强现实交互系统的结构示意图;

图5为本发明的一种增强现实交互系统的结构示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,一种增强现实交互方法,适用于现实设备和现实设备通过AR技术得到的虚拟设备,增强现实交互方法包括:

S1:在Unity中建立三维场景,将Unity中的坐标系作为AR空间坐标系,将现实场景的中心点作为AR空间坐标系的原点,将现实设备作为AR空间坐标系中的一点;

S2:通过Unity中的transform组件实时获取现实设备的AR空间坐标;

S3:根据现实设备的AR空间坐标,计算现实设备的移动方向和移动速度;

S4:根据现实设备的移动方向和移动速度,控制虚拟设备进行与现实设备同步的运动。

上述实施例中,在Unity中建立三维场景,以现实场景中某个中心点为坐标系原点,设定好三维坐标系(AR空间坐标系)的原点以及x、y、z轴方向,将Unity世界坐标系作为AR空间坐标系,初始化场景,假设现实场景为正方形,设为RealWall,中心点RWC(0,0,0),四个角点RW1(100,100,0),RW2(-100,100,0),RW3(-100,-100,0),RW4(100,-100,0),假设虚拟场景为正方体,设为Virtual,中心点VC(0,0,100),八个角点V11(20,20,80),V12(-20,20,80),V13(-20,-20,80),V14(20,-20,80),V21(20,20,120),V22(-20,20,120),V23(-20,-20,120),V24(20,-20,120);假设现实设备为Camera,点坐标CC(0,0,200);通过Unity中的transform.position实时获取现实设备的AR空间坐标;当现实设备移动时,设备相对现实场景的位置和方向发生改变,通过实时计算得到每帧时设备的坐标CC,unity中每秒帧率在30左右,1秒的时间足够反应出设备的运动轨迹;最后,根据现实设备的移动方向和移动速度,控制虚拟设备进行与现实设备同步的运动。

如图2所示,步骤S3中,根据现实设备的AR空间坐标,计算现实设备的移动方向,具体包括:

A1:获取现实设备的第一预设帧数的AR空间坐标;

A2:将第一预设帧数的AR空间坐标转换为相应的空间向量;

A3:通过Unity的Vector3组件和空间向量,计算现实设备的运动向量,得到移动方向。

上述实施例中,通过Unity的Vector3(x1,y1,z1)与Vector3(x2,y2,z2)相减的方法来计算每2帧设备运动向量,命名向量为v,v1=CC2-CC1,在现实场景下,用户的移动方向相对来说是不规则的,这里需要取值范围相对来说要小一些,以10帧为计算范围。假设当前运行帧数为m,

m=0时,v=0;

m<10时,v=CCn-CC1;

m>=10时,v=CC10-CC1。

如图3所示,步骤S3中,根据现实设备的AR空间坐标,计算现实设备的移动速度,具体包括:

B1:获取现实设备的第二预设帧数的AR空间坐标;

B2:通过Unity的Vector3组件计算每相邻两帧返回的现实设备的AR空间坐标的间距;

B3:通过加权平均法对间距进行加权平均,得到移动速度。

上述实施例中,unity中每秒帧率在30左右,1秒的时间足够反应出设备的运动轨迹,因此这里采用最近30帧数据来计算设备移动速度和方向;设30帧设备坐标为:CC1,CC2,CC3,…,CC30,通过Unity的Vector3.Distance(CC1,CC2)来计算每2帧间距,依次得到间距为d1,d2,d3,…,d29。

由于在使用场景下,设备的移动相对稳定而缓慢,因此设备的移动速度相对来说是比较平滑的,由于越接近运行帧,其速度越真实,因此采用权重的方式计算速度s。假设当前运行帧数为n,

n=0时,s=0;

n<30时,s=(d1*1+d2*2+…+dn*n)/(1+2+…+n);

n>=30时,s=(d1*1+d2*2+…+d30*30)/(1+2+…+30)。

如图4所示,一种增强现实交互系统,适用于现实设备和现实设备通过AR技术得到的虚拟设备,增强现实交互系统包括:

建立模块1,用于在Unity中建立三维场景,将Unity中的坐标系作为AR空间坐标系,将现实场景的中心点作为AR空间坐标系的原点,将现实设备作为AR空间坐标系中的一点;

获取模块2,用于通过Unity中的transform组件实时获取现实设备的AR空间坐标;

计算模块3,用于根据现实设备的AR空间坐标,计算现实设备的移动方向和移动速度;

控制模块4,用于根据现实设备的移动方向和移动速度,控制虚拟设备进行与现实设备同步的运动;

其中,建立模块1、获取模块2、计算模块3和控制模块4依次连接。

如图5所示,计算模块3包括:

第一获取子模块31,用于获取现实设备的第一预设帧数的AR空间坐标;

转换子模块32,用于将第一预设帧数的AR空间坐标转换为相应的空间向量;

第一计算子模块33,用于通过Unity的Vector3组件和空间向量,计算现实设备的运动向量,得到移动方向;

其中,获取子模块31、转换子模块32和计算子模块33连接。

如图5所示,计算模块3还包括:

第二获取子模块34,用于获取现实设备的第二预设帧数的AR空间坐标;

第二计算子模块35,用于通过Unity的Vector3组件计算每相邻两帧返回的现实设备的AR空间坐标的间距;

加权子模块36,用于通过加权平均法对间距进行加权平均,得到移动速度;

其中,第二获取子模块34、第二计算子模块35和加权子模块36依次连接。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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