欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> VR一体机的6DoF数据处理方法和装置独创技术17444字

VR一体机的6DoF数据处理方法和装置

2021-04-25 03:36:45

VR一体机的6DoF数据处理方法和装置

  技术领域

  本发明涉及VR技术领域,具体地,涉及一种VR一体机的6DoF数据处理方法和装置。

  背景技术

  目前,在VR技术领域,通常通过自内而外的追踪技术,解决VR头戴式一体机的6DoF(degree of freedom)问题。相比自外而内的追踪技术,不需要用户在其使用的场景内布置多个追踪相机或者VR头戴式一体机追踪感知传感器,只需要通过VR头戴式一体机内置的追踪相机就可以解决头戴端6DoF信息,不需要用户额外添加太多的传感器设备和搭建环境的工作量,只需要用户戴上VR头戴就可以一个相对的真实环境空间中,自由畅想在虚拟场景体验了。

  但是,由于实际使用场景复杂多变,比如有些用户环境场景的灯光较多,有些用户环境场景的反光物体比较多,或者有些用户环境场景中的物体纹理信息不够丰富,会导致VR头戴式一体机的头戴端6DoF数据精度较低,导致有定位追踪不够准确和不稳定的现象发生,导致VR虚拟场景有抖动或者瞬时晃动现象,特别是当用户在慢速走动或者慢速转动的时候,VR虚拟场景的抖动或者瞬时晃动现象会比较明显,用户会出现比较明显的眩晕等现象,比较容易影响用户的沉浸感。

  发明内容

  鉴于以上问题,本发明的目的是提供一种VR一体机的6DoF数据处理方法和装置,以解决根据6DoF数据信息定位追踪不够准确和不稳定的问题。

  为了实现上述目的,本发明采用以下技术方案:

  本发明的一个方面是提供一种VR一体机的6DoF数据处理方法,包括:

  实时获取VR一体机的原始6DoF数据;

  对所述原始6DoF数据做第一次平滑滤波处理,得到6DoF平滑滤波数据;

  构建扩展卡尔曼滤波器;

  利用所述扩展卡尔曼滤波器对所述6DoF平滑滤波数据进行第二次平滑滤波处理,得到所述VR一体机的6DoF追踪数据;

  其中,所述扩展卡尔曼滤波器的状态转移模型如下式所示:

  

  其中,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的x轴方向上的位移分量,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的y轴方向上的位移分量,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的z轴方向上的位移分量;

  分别是第k时刻和k-1时刻的6DoF平滑滤波数据中x轴方向上的速度位移分量,分别是第k时刻和k-1时刻的6DoF平滑滤波数据中y轴方向上的速度位移分量,分别是第k时刻和k-1时刻的6DoF平滑滤波数据中z轴方向上的速度位移分量;

  分别表示第k时刻去掉重力方向之后的重力加速度传感器在x轴、y轴和z轴的运动数据;

  ΔT表示k时刻和k-1时刻的时间差;

  所述扩展卡尔曼滤波器的观测模型如下式所示:

  

  其中,分别是按照扩展卡尔曼滤波迭代优化生成的x方向、y方向和z方向的位置数据;

  分别是6DoF平滑滤波数据中的在k时刻的x,y,z三个轴方向上的位置移动数据。

  优选地,构建扩展卡尔曼滤波器的步骤还包括:

  设定如下式所示的过程噪声方差矩阵:

  

  其中,PNoiseCov表示过程噪声方差矩阵,p_error表示位移噪声误差,v_error表示速度噪声误差。

  优选地,通过如下模型对过程噪声中位移噪声误差和速度噪声误差进行自适应调整:

  p_error=(1-x)4*10,x∈[0.01,0.1]

  v_error=(1-x)5*10,x∈[0.01,0.1]

  其中,x表示当前时刻帧VR一体机的6DoF平滑滤波数据中的在k时刻的x、y、z三个轴方向上的位置移动数据的平滑置信度。

  优选地,构建扩展卡尔曼滤波器的步骤还包括:

  设定如下式所示的测量噪声方差矩阵:

  

  其中,MNoiseCov表示测量噪声方差矩阵,M_error表示测量噪声误差。

  优选地,按照下式对所述原始6DoF数据做一次平滑滤波处理:

  St=(Ft+1+S1t)/2

  其中,St表示第一次平滑滤波处理得到的6DoF平滑滤波数据,S1t表示当前时刻帧的6DoF平滑滤波数据,Ft+1表示下一个时刻帧的原始6DoF数据的平滑值。

  优选地,未来时刻帧的原始6DoF数据的平滑值通过下式获取:

  Ft+m=bt+ct*m+dt*m2/2

  其中,bt=3*S1t-3*S2t+S3t;

  ct=a*((6–5*a)*S1t-(10–8*a)*S2t+(4–3*a)*S3t)/(2*(1-a)2);

  dt=a2*(S1t-2*S2t+S3t)/(1-a)2;

  S1t=a*Dt+(1-a)*S1t-1;

  S2t=a*S1t+(1-a)*S2t-1;

  S3t=a*S2t+(1-a)*S3t-1;

  Ft+m表示未来时刻帧的原始6DoF数据的平滑值,t表示当前时刻,S1t、S2t、S3t表示当前时刻帧的6DoF平滑滤波数据,S1t-1、S2t-1、S3t-1表示上一个时刻帧的6DoF平滑滤波数据;a表示系数,Dt表示原始6DoF数据。

  本发明的另一个方面是提供一种VR一体机的6DoF数据处理装置,包括:

  数据获取模块,用于实时获取VR一体机的原始6DoF数据;

  一次平滑模块,用于对所述原始6DoF数据做第一次平滑滤波处理,得到6DoF平滑滤波数据;

  滤波器构建模块,用于构建扩展卡尔曼滤波器;

  二次平滑模块,利用所述扩展卡尔曼滤波器对所述6DoF平滑滤波数据进行第二次平滑滤波处理,得到所述VR一体机的6DoF追踪数据;

  其中,所述扩展卡尔曼滤波器的状态转移模型如下式所示:

  

  其中,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的x轴方向上的位移分量,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的y轴方向上的位移分量,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的z轴方向上的位移分量;

  分别是第k时刻和k-1时刻的6DoF平滑滤波数据中x轴方向上的速度位移分量,分别是第k时刻和k-1时刻的6DoF平滑滤波数据中y轴方向上的速度位移分量,分别是第k时刻和k-1时刻的6DoF平滑滤波数据中z轴方向上的速度位移分量;

  分别表示第k时刻去掉重力方向之后的重力加速度传感器在x轴、y轴和z轴的运动数据;

  ΔT表示k时刻和k-1时刻的时间差;

  所述扩展卡尔曼滤波器的观测模型如下式所示:

  

  其中,分别是按照扩展卡尔曼滤波迭代优化生成的x方向、y方向和z方向的位置数据;

  分别是6DoF平滑滤波数据中的在k时刻的x,y,z三个轴方向上的位置移动数据。

  优选地,所述滤波器构建模块构建扩展卡尔曼滤波器时,设定如下式所示的过程噪声方差矩阵:

  

  其中,PNoiseCov表示过程噪声方差矩阵,p_error表示位移噪声误差,v_error表示速度噪声误差。

  优选地,所述滤波器构建模块构建扩展卡尔曼滤波器时,设定如下式所示的测量噪声方差矩阵:

  

  其中,MNoiseCov表示测量噪声方差矩阵,M_error表示测量噪声误差。

  与现有技术相比,本发明具有以下优点和有益效果:

  本发明通过扩展卡尔曼滤波器对VR一体机的6DoF数据进行优化处理,提高了通过6DoF数据信息进行定位追踪的准确性,进一步提高了VR一体机定位追踪的稳定性。

  附图说明

  图1是本发明所述VR一体机的6DoF数据处理方法的流程示意图。

  具体实施方式

  下面将参考附图来描述本发明所述的实施例。本领域的普通技术人员可以认识到,在不偏离本发明的精神和范围的情况下,可以用各种不同的方式或其组合对所描述的实施例进行修正。因此,附图和描述在本质上是说明性的,而不是用于限制权利要求的保护范围。此外,在本说明书中,附图未按比例画出,并且相同的附图标记表示相同的部分。

  图1是本发明所述VR一体机的6DoF数据处理方法的流程示意图,如图1所示,本发明所述VR一体机的6DoF数据处理方法,包括:

  步骤S1,实时获取VR一体机的原始6DoF数据,包括每一个时刻帧的6DoF数据;当用户进行VR场景交互时,即用户戴上VR头戴式一体机,在一个相对空间里自由移动和转动时,通过VR头戴式一体机上内置的一个,或者两个,或者两个以上的追踪摄像头,可以实时捕捉此时用户的空间环境信息,通过计算机视觉技术、多传感器融合技术和图像处理技术,实时计算用户的VR头戴式一体机相对三维环境空间的6DoF信息(用户的旋转信息和位置移动信息),将此作为原始6DoF数据;

  步骤S2,对所述原始6DoF数据做第一次平滑滤波处理,得到6DoF平滑滤波数据;

  步骤S3,构建扩展卡尔曼滤波器;

  步骤S4,利用所述扩展卡尔曼滤波器对所述6DoF平滑滤波数据进行第二次平滑滤波处理,得到所述VR一体机的6DoF追踪数据。

  本发明在做第一次平滑滤波时,需要对每一帧的原始6DoF数据进行处理,且不考虑由于平滑滤波带来的6DoF数据轨迹信息延时。优选地,未来时刻帧的原始6DoF数据的平滑值通过下式获取:

  Ft+m=bt+ct*m+dt*m2/2

  其中,bt=3*S1t-3*S2t+S3t;

  ct=a*((6–5*a)*S1t-(10–8*a)*S2t+(4–3*a)*S3t)/(2*(1-a)2);

  dt=a2*(S1t-2*S2t+S3t)/(1-a)2;

  S1t=a*Dt+(1-a)*S1t-1;

  S2t=a*S1t+(1-a)*S2t-1;

  S3t=a*S2t+(1-a)*S3t-1;

  Ft+m表示未来时刻帧的原始6DoF数据的平滑值,t表示当前时刻,S1t、S2t、S3t表示当前时刻帧的6DoF平滑滤波数据,S1t-1、S2t-1、S3t-1表示上一个时刻帧的6DoF平滑滤波数据;上标1,2,3不表示任何物理含义,仅表示对6DoF平滑滤波数据的处理迭代顺序,a表示系数,Dt表示原始6DoF数据。

  进一步地,由于考虑到定位追踪精度和平滑延时的影响,取m为1,即以Ft+m表示下一个时刻帧的原始6DoF数据的平滑值。按照如式对所述原始6DoF数据做第一次平滑滤波处理:

  St=(Ft+1+S1t)/2

  其中,St表示第一次平滑滤波处理得到的6DoF平滑滤波数据,S1t表示当前时刻帧的6DoF平滑滤波数据,Ft+1表示下一个时刻帧的原始6DoF数据的平滑值。

  需要说明的是,VR头戴式一体机运行的第一个时刻帧不做任何处理,即第一个时刻帧的原始6DoF数据进行第一次平滑滤波处理之后的数据St=Dt;通过对VR头戴式一体机6DoF定位追踪系统的数据稳定性观察,取a为0.372。

  通过自内而外的定位追踪系统可知,6DoF数据中的X,Y,Z三轴的位置移动的抖动数据相对旋转角度的抖动要大。在一个实施例中,对VR头戴式一体机的6DoF数据的X,Y,Z三个轴方向上的位置移动数据进一步构建一种扩展卡尔曼滤波器,对6DoF平滑滤波数据进一步进行第二次平滑滤波处理,得到最终的6DoF追踪数据。

  所述扩展卡尔曼滤波器的状态转移模型如下式所示:

  

  其中,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的x轴方向上的位移分量,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的y轴方向上的位移分量,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的z轴方向上的位移分量;第一个时刻x,y,z三个轴方向上的位移分量等于S1t;

  分别是第k时刻和k-1时刻的6DoF平滑滤波数据中x轴方向上的速度位移分量,分别是第k时刻和k-1时刻的6DoF平滑滤波数据中y轴方向上的速度位移分量,分别是第k时刻和k-1时刻的6DoF平滑滤波数据中z轴方向上的速度位移分量;第一个时刻x,y,z三个轴方向上的速度位移分量为0;

  分别表示第k时刻去掉重力方向之后的重力加速度传感器在x轴、y轴和z轴的运动数据;

  ΔT表示k时刻和k-1时刻的时间差;优选地,获取6DoF平滑滤波数据St帧率为500Hz,即第k时刻和第k-1时刻的时间差ΔT为2ms。

  所述扩展卡尔曼滤波器的观测模型如下式所示:

  

  其中,分别是按照扩展卡尔曼滤波迭代优化生成的x方向、y方向和z方向的位置数据;

  分别是6DoF平滑滤波数据中的在k时刻的x,y,z三个轴方向上的位置移动数据。

  进一步地,构建扩展卡尔曼滤波器的步骤还包括设定如下式所示的过程噪声方差矩阵:

  

  其中,PNoiseCov表示过程噪声方差矩阵,p_error表示位移噪声误差,v_error表示速度噪声误差。

  将过程噪声方差矩阵设定为一个对角矩阵,根据噪声属性,VR头戴式一体机的x、y、z三个轴方向的位移噪声误差相等,x、y、z三个轴方向上的速度噪声误差相等;通过VR头戴式一体机的6DoF定位追踪系统可知,VR头戴式一体机运动速度越小,x、y、z三个轴方向上的位置平移和速度的过程噪声越大,VR头戴式一体机运动速度越大,x、y、z三个轴方向上的位置平移和速度的过程噪声越小。因此,通过如下模型对过程噪声中位移噪声误差和速度噪声误差进行自适应调整:

  p_error=(1-x)4*10,x∈[0.01,0.1]

  v_error=(1-x)5*10,x∈[0.01,0.1]

  其中,x表示当前时刻帧VR一体机的6DoF平滑滤波数据中的在k时刻的x、y、z三个轴方向上的位置移动数据的平滑置信度,x和VR头戴式一体机的运动速度成反比。

  在一个实施例中,构建扩展卡尔曼滤波器的步骤还包括设定如下式所示的测量噪声方差矩阵:

  

  其中,MNoiseCov表示测量噪声方差矩阵,M_error表示测量噪声误差。

  测量噪声方差矩阵也为一个对角矩阵,x、y、z三个轴方向上的值可以认为是相等。优选地,考虑到VR头戴式一体机的6DoF定位追踪系统的整体噪声评价,取值M_error=2。当然,对于不同的定位追踪系统,M_error也可以是其他数值。

  本发明还提供一种VR一体机的6DoF数据处理装置,包括:

  数据获取模块,用于实时获取VR一体机的原始6DoF数据;

  一次平滑模块,用于对所述原始6DoF数据做第一次平滑滤波处理,得到6DoF平滑滤波数据;

  滤波器构建模块,用于构建扩展卡尔曼滤波器;

  二次平滑模块,利用所述扩展卡尔曼滤波器对所述6DoF平滑滤波数据进行第二次平滑滤波处理,得到所述VR一体机的6DoF追踪数据;

  其中,所述扩展卡尔曼滤波器的状态转移模型如下式所示:

  

  其中,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的x轴方向上的位移分量,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的y轴方向上的位移分量,分别是第k时刻和k-1时刻对6DoF平滑滤波数据优化迭代后的z轴方向上的位移分量;

  分别是第k时刻和k-1时刻的6DoF平滑滤波数据中x轴方向上的速度位移分量,分别是第k时刻和k-1时刻的6DoF平滑滤波数据中y轴方向上的速度位移分量,分别是第k时刻和k-1时刻的6DoF平滑滤波数据中z轴方向上的速度位移分量;

  分别表示第k时刻去掉重力方向之后的重力加速度传感器在x轴、y轴和z轴的运动数据;

  ΔT表示k时刻和k-1时刻的时间差;

  所述扩展卡尔曼滤波器的观测模型如下式所示:

  

  其中,分别是按照扩展卡尔曼滤波迭代优化生成的x方向、y方向和z方向的位置数据;

  分别是6DoF平滑滤波数据中的在k时刻的x,y,z三个轴方向上的位置移动数据。

  在一个实施例中,所述滤波器构建模块构建扩展卡尔曼滤波器时,设定如下式所示的过程噪声方差矩阵:

  

  其中,PNoiseCov表示过程噪声方差矩阵,p_error表示位移噪声误差,v_error表示速度噪声误差。

  在一个实施例中,所述滤波器构建模块构建扩展卡尔曼滤波器时,设定如下式所示的测量噪声方差矩阵:

  

  其中,MNoiseCov表示测量噪声方差矩阵,M_error表示测量噪声误差。

  需要说明的是,本发明之VR一体机的6DoF数据处理装置的具体实施方式与上述VR一体机的6DoF数据处理方法的具体实施方式大致相同,在此不再赘述。

  以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

《VR一体机的6DoF数据处理方法和装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)