首页> 中国专利> 支持移动虚拟现实应用的单Kinect多人跟踪系统及方法

支持移动虚拟现实应用的单Kinect多人跟踪系统及方法

摘要

本发明公开了一种支持移动虚拟现实应用的单Kinect多人跟踪系统及方法,本发明在单Kinect捕捉设备的情况下,可完成对不同程度遮挡使用者位置的实时跟踪,保证玩家的流畅性、沉浸式体验。本发明利用在一定的光照条件下,当使用者被遮挡时,该使用者的影子不会被遮挡的原理,将将求解遮挡使用者的运动转换为求解遮挡使用者影子运动的问题,能够准确检测到各个使用者的位置,而不仅仅是估计使用者位置,真正实现跟踪。

著录项

  • 公开/公告号CN107274438A

    专利类型发明专利

  • 公开/公告日2017-10-20

    原文格式PDF

  • 申请/专利权人 山东大学;

    申请/专利号CN201710508204.X

  • 申请日2017-06-28

  • 分类号G06T7/285(20170101);G06T7/254(20170101);G06T7/70(20170101);G06T19/00(20110101);G06F3/01(20060101);

  • 代理机构37221 济南圣达知识产权代理有限公司;

  • 代理人张勇

  • 地址 250061 山东省济南市经十路17923号

  • 入库时间 2023-06-19 03:33:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-17

    授权

    授权

  • 2017-11-17

    实质审查的生效 IPC(主分类):G06T7/285 申请日:20170628

    实质审查的生效

  • 2017-10-20

    公开

    公开

说明书

技术领域

本发明涉及一种支持移动虚拟现实应用的单Kinect多人跟踪系统及方法。

背景技术

位置跟踪是基于移动虚拟现实设备体验的关键问题之一,捕捉使用者在物理空间中的位置和方向,保证使用者运动的真实感觉与虚拟设备中所看到的图像之间的空间一致性。

目前,可用于移动VR中的定位技术主要有:

(1)全球定位系统(Global positioning system,GPS)方法,是广泛使用的卫星定位系统,其覆盖范围最大。然而,当GPS信号较弱而被干扰的建筑物甚至树叶以及包括室内场所在内的区域阻塞时,该系统将无法正常工作。同时,GPS不能部署在室内,因为在室内环境中不可能在接收机和卫星之间进行视距传输。

(2)室内定位系统(Indoor positioning system,IPS),主要有基于WIFI信号、基于radio信号、基于超声波、基于红外线(infrared)的定位。这类定位传感器需要一个永久性的电子基础设施来促进测量,而依赖于这种基础设施的可定位物体需要特殊的传感器或执行器。

(3)基于视觉的跟踪方法,例如立体相机和飞行时间(TOF)相机。Kinect是一个革命性的深度摄影机,成本比传统3D摄像机要低得多。它利用TOF(飞行时间)计算的方法,获取传感器出射光线遇到物体反射后的相位差,从而得到设备与实际场景之间的距离值,也就是深度值(depth)。由此形成的深度图像不仅可以用来判断物体相对体感设备的位置,还可以进一步得到物体的点云数据,甚至是角色的骨骼信息。

同时,遮挡是多使用者跟踪系统中一个不容忽视的重要问题,当使用者长时间处于遮挡状态时,如何识别使用者的位置而不影响使用者的沉浸式体验。目前的方法大多使用者检测模型检测到使用者,然后对使用者进行跟踪。但是,对于发生严重遮挡甚至完全遮挡的使用者,现有方法无法实现有效的跟踪。

发明内容

本发明为了解决上述问题,提出了一种支持移动虚拟现实应用的单Kinect多人跟踪系统及方法。

本发明的第一目的是提供一种支持移动虚拟现实应用的单Kinect多人跟踪系统,本系统在单Kinect捕捉设备的情况下,可完成对不同程度遮挡使用者位置的实时跟踪,保证玩家的流畅性、沉浸式体验。

本发明的第二目的是提供一种融合多感知数据线索的遮挡目标的检测方法,本方法利用在一定的光照条件下,当使用者被遮挡时,该使用者的影子不会被遮挡的原理,将求解遮挡使用者的运动转换为求解遮挡使用者影子运动的问题,能够准确检测到各个使用者的位置,而不仅仅是估计使用者位置,真正实现跟踪。

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

一种支持移动虚拟现实应用的单Kinect多人跟踪系统,包括跟踪子系统和体验子系统,其中:

所述跟踪子系统包括图像捕获模块、终端传感器信息捕获模块、当前状态判断模块、定位实现模块和虚实位置映射模块:

所述图像捕获模块,被配置为通过体感摄像机Kinect,获取使用者的彩色图像信息和识别骨骼数据,为当前状态判断模块提供输入数据;

所述终端传感器信息捕获模块,获取手机陀螺仪的旋转信息,得到使用者的朝向信息;

所述当前状态判断模块,根据连续采样时间内图像捕获模块获取的数量为参考,判断当前是否存在遮挡以及遮挡的状态;

所述定位实现模块,接收当前状态判断结果,确定与遮挡状态对应的跟踪算法实现位置的计算;

所述虚实位置映射模块,用于将计算得到的物理坐标映射到虚拟空间坐标,保证使用者运动的真实感觉与虚拟设备中所看到的图像之间的空间一致性;

所述体验子系统包括立体显示模块与虚拟空间的交互模块,所述立体显示模块通过虚拟现实眼镜所看到的东西呈现出立体感,根据捕捉到的头部转动、虚实位置映射模块得到的使用者位置,完成对使用者的视场与视点的跟踪,确定当前视场中的目标物、视点的位置和朝向。

支持移动虚拟现实游戏的基于单Kinect的多使用者跟踪方法,包括以下步骤:

(1)开启Kinect捕获设备,并记录背景图像信息,将终端与之连接;

(2)初始化场景中参与的使用者人数Nk,当前时刻k=1,系统中是否发生遮挡标记Occ=0;

(3)如果k=1则调整步骤(8),否则跳转步骤(4);

(4)统计当前时刻Kinect可识别的使用者人数Nk,并记录终端陀螺仪的旋转角度;

(5)根据相邻时刻可识别的使用者人数关系,判断当前时刻系统所处的状态,如果Nk=Nk-1,则跳转步骤(6);否则,跳转步骤(7);

(6)通过遮挡发生标记Occ,确定系统所处的状态,如果Occ=0,则系统处于未遮挡状态,调用未遮挡方法计算使用者位置,跳转步骤(8);否则,系统处于遮挡持续状态,调用遮挡持续状态方法计算使用者位置,跳转步骤(8);

(7)如果Nk<Nk-1,则系统处于遮挡出现状态,调用遮挡出现状态方法计算使用者位置,且Occ=1,跳转步骤(8);否则,系统处于遮挡消失状态,调用遮挡消失状态方法计算使用者位置,且Occ=0,跳转步骤(8);

(8)将计算得到的使用者位置映射到虚拟空间坐标下,保证使用者运动的真实感觉与虚拟设备中所看到的图像之间的空间一致性;

(9)根据(8)中得到的使用者位置和终端陀螺仪的旋转角度,完成对使用者视场与视点的渲染,并通过虚拟现实眼镜实现沉浸式体验;

(10)将k值加一;

(11)判断游戏是否结束,如果是,则结束;否则,调整步骤(3)。

所述步骤(6)中系统处于未遮挡状态时所使用的使用者位置计算方法,具体包括以下步骤:

(6-1)根据Kinect提供的骨架信息,记录使用者位置信息和对应的使用者编号信息;

(6-2)根据每个使用者的编号信息,实时更新对应使用者的位置。

所述步骤(6)中,系统处于遮挡持续状态时所使用的使用者位置计算方法,当系统处于遮挡持续状态时所使用的使用者位置计算方法,从使用者影子的角度设计跟踪方法,用影子的运动替代遮挡使用者的运动,融合Kinect得到的骨架信息、彩色图像使用者影子信息和传感器数据完成遮挡使用者的位置计算。

具体包括以下步骤:

假设k时刻被遮挡使用者为pj,遮挡pj的使用者为pi,根据Kinect得到的使用者pi的位置、光源的位置,以及pi和pj之间的物理关系,确定遮挡使用者Pj影子的搜索矩形区域,计算遮挡的使用者的脚位置与影子搜索框的起点位置的差值,Kinect实时捕获的彩色图像,与获取的背景图像进行相减运算,得到遮挡使用者影子的剪影,根据得到的使用者影子剪影,计算影子的中心位置,陀螺仪传感器数据,判断遮挡使用者Pj的运动方向,根据相邻帧的影子位置变化,判断遮挡使用者是否发生运动,进而确定遮挡使用者的位置。

进一步的,根据使用者Pi与光源的位置不同,搜索矩形框的大小也实时变化。

进一步的,若差值大于预先设置的阈值,则认为生成图像是前景图像,并标记为黑色;若差值不大于预先设置的阈值,则认为搜索区域内没有使用者影子。

所示步骤(7)中系统处于遮挡出现状态时所使用的使用者位置计算方法,具体包括以下步骤:假设k时刻检测到的使用者编号信息集为curID,检索k-1时刻的使用者编号信息集合UID,寻找被遮挡使用者,根据陀螺仪传感器数据,判断遮挡使用者Pj的运动方向,结合运动方向和运动幅度,计算遮挡使用者k时刻的位置。

所示步骤(7)中系统处于遮挡消失状态时所使用的使用者位置计算方法,具体包括以下步骤:

(7-2-1)根据使用者被遮挡标记,选择不同的位置计算方法,如果使用者未发生遮挡,跳转步骤(7-2-2);如果使用者属于遮挡后再次出现的使用者,跳转步骤(7-2-3);

(7-2-2)根据每个使用者的编号信息,实时更新对应使用者的位置;

(7-2-3)更新使用者再次出现后的编号和位置信息。

所述步骤(8)将计算得到的使用者位置映射到虚拟空间坐标下,具体包括以下步骤:

(8-1)在Kinect布置好后,标记出跟踪区域,并测出跟踪区域的4个角点位置;

(8-2)根据虚拟场景空间中4个角点的位置,计算Kinect空间坐标系对于虚拟场景坐标系的变换矩阵M;

(8-3)假设当前时刻k,使用者j的位置为(posxkj,poszkj),则使用者在虚拟场景中的对应位置为(vposxkj,vposzkj)=(posxkj,poszkj)*M。

所述步骤(9)中,将手机放置在虚拟现实眼镜中,使用者通过虚拟现实眼镜所看到的东西呈现出立体感,根据手机传感器信息捕获模块捕捉到的使用者头部转动、虚实位置映射模块得到的使用者位置,完成对使用者视场与视点的跟踪,确定当前视场中的目标物、使用者视点的位置和朝向。

与现有技术相比,本发明的有益效果为:

(1)针对遮挡持续状态,本发明提出了一种融合多感知数据线索的遮挡用户的检测方法,在一定的光照条件下,当某个使用者被遮挡时,该使用者的影子不会被遮挡,基于此,将求解遮挡用户的运动转换为求解遮挡用户影子运动的问题,该方法融合了各种类型的信息,如手机陀螺仪的数据、Kinect彩色图像的信息、深度图像的信息,以补偿由遮挡造成的数据缺失;

(2)本发明通过建立遮挡用户影子的运动模型和方向模型,从而计算得到遮挡用户的位置信息,与之前的方法相比,它能检测并计算发生严重遮挡甚至完全遮挡的用户位置,而不是估计用户位置;

(3)考虑到移动虚拟现实的应用,在单Kinect捕捉设备的情况下,提出了一种校准简单、成本低廉、部署简单的解决多用户(不多于6人)的遮挡问题的方法,保证玩家的流畅性、沉浸式体验;

(4)除了在游戏娱乐方面有广泛应用外,也可将本发明应用于教育、消防训练等领域。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为本发明的硬件结构图;

图2为本发明的系统架构图;

图3为本发明的方法流程图;

图4为本发明用于双人虚拟现实迷宫游戏的实例。

具体实施方式:

下面结合附图与实施例对本发明作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

正如背景技术所介绍的,现有技术中存在目前的方法大多使用用户检测模型检测到用户,然后对用户进行跟踪。但是对于发生严重遮挡甚至完全遮挡的用户,无法实现有效的跟踪的不足,为了解决如上的技术问题,本申请提出了一种支持移动虚拟现实应用的基于单Kinect的多用户跟踪系统,设计了一种融合多感知数据线索的遮挡处理方法,完成对不同程度遮挡用户位置的实时跟踪。该方法可以分为四个层次:

第一,信息获取层。根据输入信息,获取用户数目、用户骨骼数据、陀螺仪数据和用户影子信息。

第二,信息分析层。根据获取信息,对系统当前所处的状态进行判断。本发明将系统状态分为四类:未出现遮挡状态、遮挡出现状态、遮挡持续状态、遮挡消失状态。

第三,决策选择层。针对上述4种系统状态,本发明设计了不同的跟踪方法。根据系统状态的不同,自适应调用不同的跟踪方法。

第四,应用层。利用基于多线索的决策融合方法,实现对不同程度遮挡用户的位置计算,并将得到的用户物理坐标映射到虚拟空间坐标,保证用户运动的真实感觉与虚拟设备中所看到的图像之间的空间一致性。

该方法融合了各种类型的信息,如手机陀螺仪的数据、彩色图像的信息、深度图像的信息,以补偿由遮挡造成的数据缺失。针对遮挡持续状态,本发明提出了一种新的基于影子的用户检测模型。在一定的光照条件下,当用户被遮挡时,用户的影子不会被遮挡。基于此,我们将求解遮挡用户的运动转换为求解遮挡用户影子运动的问题。通过建立遮挡用户影子的运动模型和方向模型,从而计算得到遮挡用户的位置信息。与之前的方法相比,它能检测并计算发生严重遮挡的用户位置,而不是估计用户位置。

一种基于支持移动虚拟现实游戏的单Kinect的多用户跟踪系统,包括用户跟踪子系统和用户体验子系统;其中,用户跟踪子系统包括用户图像捕获模块、终端传感器信息捕获模块、系统当前状态判断模块、定位实现模块,虚实位置映射模块;用户体验子系统包括立体显示模块、与虚拟空间的交互模块。

所述用户图像捕获模块,借助体感摄像机Kinect,用于获取用户的彩色图像信息、识别的用户骨骼数据,为系统当前状态判断模块提供输入数据;

所述终端传感器信息捕获模块,用户获取手机陀螺仪的旋转信息,从而得到用户的朝向信息,为用户定位实现模块和立体显示模块提供输入数据;

所述系统当前状态判断模块,利用用户图像捕获模块提供的信息,以相邻两时刻所识别的用户数量作为参考,判断当前系统所处的状态:未出现遮挡状态、遮挡出现状态、遮挡持续状态、遮挡消失状态,为用户定位实现模块提供依据;

所述用户定位实现模块,根据系统当前所处的状态,选择不同的跟踪算法实现用户位置的计算;

所述虚实位置映射模块,用于将用户实现模块计算得到的用户物理坐标映射到虚拟空间坐标,保证用户运动的真实感觉与虚拟设备中所看到的图像之间的空间一致性;

所述立体显示模块,用户通过头戴式虚拟现实眼镜所看到的东西呈现出立体感,根据手机传感器信息捕获模块捕捉到的用户头部转动、虚实位置映射模块得到的用户位置,完成对用户视场与视点的跟踪,确定当前视场中的目标物、用户视点的位置和朝向;

所述与虚拟空间的交互模块,实现用户与虚拟对象的交互,确定对虚拟对象发出的指令,对其解释,给出相应的反馈结果,通过虚拟现实眼镜给用户呈现虚拟世界的景象。

基于上述支持移动虚拟现实游戏的基于单Kinect的多用户跟踪方法,包括以下步骤:

(1)开启Kinect捕获设备,并记录背景图像信息;同时将终端与之连接;

(2)初始化场景中参与人数Nk,当前时刻k=1,系统中是否发生遮挡标记Occ=0;

(3)如果k=1则调整步骤(8),否则跳转步骤(4);

(4)统计当前时刻Kinect可识别的用户人数Nk,并记录手机陀螺仪的旋转角度

(5)根据相邻时刻可识别的用户人数关系,判断当前时刻系统所处的状态。如果Nk=Nk-1,则跳转步骤(6);否则,跳转步骤(7);

(6)通过遮挡发生标记Occ,确定系统所处的状态。如果Occ=0,则系统处于未遮挡状态,调用未遮挡方法计算用户位置,跳转步骤(8);否则,系统处于遮挡持续状态,调用遮挡持续状态方法计算用户位置,跳转步骤(8);

(7)如果Nk<Nk-1,则系统处于遮挡出现状态,调用遮挡出现状态方法计算用户位置,且Occ=1,跳转步骤(8);否则,系统处于遮挡消失状态,调用遮挡消失状态方法计算用户位置,且Occ=0,跳转步骤(8);

(8)将计算得到的用户位置映射到虚拟空间坐标下,保证用户运动的真实感觉与虚拟设备中所看到的图像之间的空间一致性;

(9)根据(8)中得到的用户位置和手机陀螺仪的旋转角度,完成对用户视场与视点的渲染,并通过虚拟现实眼镜实现沉浸式体验;

(10)将k值加一;

(11)判断游戏是否结束。如果是,则结束;否则,调整步骤(3)。

步骤(6)中系统处于未遮挡状态时所使用的用户位置计算方法,具体包括以下步骤:

(6-1-1)初始化阶段。根据Kinect SDK提供的骨架信息,记录用户位置信息Pk={pki|i=1,2,…,Nu},和对应的用户编号信息UID={uIDi|i=1,2,…Nu}。其中pki表示第i个用户k时刻的位置信息,uIDi表示用户i的编号信息,Nu表示当前时刻用户的人数。

(6-1-2)根据每个用户的编号信息,实时更新对应用户的位置。假设当前时刻用户i的编号信息为u,位置为pos,如果u=uIDj(j=1,2,…Nu),则pkj=pos。

步骤(6)中系统处于遮挡持续状态时所使用的用户位置计算方法,当系统处于遮挡持续状态时所使用的用户位置计算方法,从用户影子的角度设计跟踪方法,用影子的运动替代遮挡用户的运动,融合Kinect得到的骨架信息(skeleton data)、彩色图像用户影子信息(shadow data)、手机传感器数据(gyroscope data)完成遮挡用户的位置计算。具体包括以下步骤:

假设k时刻被遮挡用户为pj,遮挡pj的用户为pi

(6-2-1)根据Kinect得到的用户pi的位置、光源的位置,以及pi和pj之间的物理关系,确定遮挡用户Pj影子的搜索矩形区域,且矩形区域长为h,宽为w。

假设点A(posfxi,posfzi)表示Pi的脚位置,点B(possx,possz)表示影子搜索框的起点位置,则

possx=posfxi+disx

possz=posfzi+disz

其中,(disx,disz)表示点A与B的相对位置关系,disz=0,

根据用户pi与光源的位置不同,disx选择不同的取值,δ=0.0。其中(posxi,poszi)表示用户pi的位置信息。

此外,根据用户Pi与光源的位置不同,搜索矩形框的大小也实时变化,

(6-2-2)Kinect实时捕获的彩色图像,与获取的背景图像进行相减运算,得到遮挡用户影子的剪影:若差值大于预先设置的阈值,则认为生成图像是前景图像,并标记为黑色;若差值不大于预先设置的阈值,则认为搜索区域内没有用户影子。根据得到的用户影子剪影,计算影子的中心位置cPos(cposx,cposz):

其中,C表示属于影子的点集合。

(6-2-3)根据手机陀螺仪传感器数据,判断遮挡用户Pj的运动方向:

a,b表示用户前后、左右的运动标记。其中,参数t1,t2,t3,t4,t5,t6,t7,t8,t9,t10是我们设置的手机陀螺仪旋转方向的参考值,t1=70,t2=110,t3=70,t4=110,t5=0,t6=20,t7=320,t8=360,t9=160,t10=200。我们将用户的运动方向划分为前、后、左、右4个方向,当用户陀螺仪数据属于某个运动范围时,我们认为用户向某一方向运动。

(6-2-4)根据相邻帧的影子位置变化,判断遮挡用户是否发生运动:

fmxk,fmzk表示用户影子的运动标记。其中,(cposxk,cposzk)、(cposxk-k0,cposzk-k0)表示遮挡用户影子在k时刻、k-k0时刻的位置信息。k0=10,θ1=3,θ2=6。

(6-2-5)计算遮挡用户的位置:

(posxkj,poszkj)表示遮挡用户在k时刻的位置,S表示用户的运动步幅,S=0.01。

步骤(7)中系统处于遮挡出现状态时所使用的用户位置计算方法,具体包括以下步骤:

(7-1-1)假设k时刻检测到的用户编号信息集为curID,检索k-1时刻的用户编号信息集合UID,寻找被遮挡用户。如果则遮挡用户为pj,被遮挡时编号为uIDj,且用户被遮挡标记fj=1。

(7-1-2)根据手机陀螺仪传感器数据,判断遮挡用户Pj的运动方向:

a,b表示用户前后、左右的运动标记。其中,参数t1,t2,t3,t4,t5,t6,t7,t8,t9,t10是我们设置的手机陀螺仪旋转方向的参考值,t1=70,t2=110,t3=70,t4=110,t5=0,t6=20,t7=320,t8=360,t9=160,t10=200。我们将用户的运动方向划分为前、后、左、右4个方向,当用户陀螺仪数据属于某个运动范围时,我们认为用户向某一方向运动。

(7-1-3)计算遮挡用户k时刻的位置(posxkj,poszkj):

并设置遮挡发生标记Occ=1,S表示用户的运动步幅,S=0.01。

步骤(7)中系统处于遮挡消失状态时所使用的用户位置计算方法,具体包括以下步骤:

(7-2-1)根据用户被遮挡标记,选择不同的位置计算方法。如果用户被遮挡标记fi=0,则用户未发生遮挡,跳转步骤(7-2-2);如果用户被遮挡标记fi=1,则用户属于遮挡后再次出现的用户,跳转步骤(7-2-3)。

(7-2-2)根据每个用户的编号信息,实时更新对应用户的位置。假设当前时刻用户i的编号信息为u,位置为pos,如果u=uIDj(j=1,2,…Nu),则pkj=pos。

(7-2-3)更新用户再次出现后的编号和位置信息。假设遮挡用户再次出现后的编号信息为v,位置为apos,则uIDi=v,pki=apos。同时,fi=0,Occ=0,标记遮挡已经消失。

步骤(8)将计算得到的用户位置映射到虚拟空间坐标下,具体包括以下步骤:

(8-1)在Kinect布置好后,标记出跟踪区域,并测出跟踪区域的4个角点位置;

(8-2)根据虚拟场景空间中4个角点的位置,计算Kinect空间坐标系对于虚拟场景坐标系的变换矩阵M。

(8-3)假设当前时刻k,用户j的位置为(posxkj,poszkj),则用户在虚拟场景中的对应位置为(vposxkj,vposzkj)=(posxkj,poszkj)*M。

步骤(9)中,将手机放置在虚拟现实眼镜中,用户通过虚拟现实眼镜所看到的东西呈现出立体感,根据手机传感器信息捕获模块捕捉到的用户头部转动、虚实位置映射模块得到的用户位置,完成对用户视场与视点的跟踪,确定当前视场中的目标物、用户视点的位置和朝向。

本申请的一种典型的实施方式中,如图1所示,本发明所需的关键设备包括:移动式虚拟现实眼镜、Kinect传感器、辅助光源。用户佩戴虚拟现实眼镜,它的画面生成和渲染由相连手机负责,Kinect可以把你的位置和姿态投射到虚拟世界当中,从而实现沉浸式体验。

如图2所示,本发明提出了一种支持移动虚拟现实应用的基于单Kinect的多用户跟踪系统,设计了一种基于多线索的决策融合方法,完成对不同程度遮挡用户位置的实时跟踪。该方法可以分为四个层次:

第一,信息获取层。根据输入信息,获取用户数目、用户骨骼数据、陀螺仪数据和用户影子信息。

第二,信息分析层。根据获取信息,对系统当前所处的状态进行判断。本发明将系统状态分为四类:未出现遮挡状态、遮挡出现状态、遮挡持续状态、遮挡消失状态。

第三,决策选择层。针对上述4种系统状态,本发明设计了不同的跟踪方法。根据系统状态的不同,自适应调用不同的跟踪方法。

第四,应用层。利用基于多线索的决策融合方法,实现对不同程度遮挡用户的位置计算,并将得到的用户物理坐标映射到虚拟空间坐标,保证用户运动的真实感觉与虚拟设备中所看到的图像之间的空间一致性。

该方法融合了各种类型的信息,如手机陀螺仪的数据、彩色图像的信息、深度图像的信息,以补偿由遮挡造成的数据缺失。

如图3所示,本发明的操作流程为:

(1)开启Kinect捕获设备,并记录背景图像信息;同时将手机端与之连接;

(2)初始化场景中参与人数Nk,当前时刻k=1,系统中是否发生遮挡标记Occ=0;

(3)如果k=1则调整步骤(8),否则跳转步骤(4);

(4)统计当前时刻Kinect可识别的用户人数Nk,并记录手机陀螺仪的旋转角度

(5)根据相邻时刻可识别的用户人数关系,判断当前时刻系统所处的状态。如果Nk=Nk-1,则跳转步骤(6);否则,跳转步骤(7);

(6)通过遮挡发生标记Occ,确定系统所处的状态。如果Occ=0,则系统处于未遮挡状态,调用未遮挡方法计算用户位置,跳转步骤(8);否则,系统处于遮挡持续状态,调用遮挡持续状态方法计算用户位置,跳转步骤(8);

(7)如果Nk<Nk-1,则系统处于遮挡出现状态,调用遮挡出现状态方法计算用户位置,且Occ=1,跳转步骤(8);否则,系统处于遮挡消失状态,调用遮挡消失状态方法计算用户位置,且Occ=0,跳转步骤(8);

(8)将计算得到的用户位置映射到虚拟空间坐标下,保证用户运动的真实感觉与虚拟设备中所看到的图像之间的空间一致性;

(9)根据(8)中得到的用户位置和手机陀螺仪的旋转角度,完成对用户视场与视点的渲染,并通过虚拟现实眼镜实现沉浸式体验;

(10)k=k+1;

(11)判断游戏是否结束。如果是,则结束;否则,调整步骤(3)。

如图4所示,是本发明应用于双人虚拟现实迷宫游戏的一个实例。当玩家发生遮挡时,利用本发明可以继续追踪遮挡玩家的位置,保证玩家体验的流畅性、沉浸感。图4(a)所示为遮挡用户的影子运动,图4(b)中为用户通过虚拟现实眼镜所看到的虚拟场景中遮挡用户的运动。

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

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号