基于裸眼3D的手势碰撞检测方法及设备与流程

文档序号:17637928发布日期:2019-05-11 00:29阅读:328来源:国知局
基于裸眼3D的手势碰撞检测方法及设备与流程

本发明涉及虚拟现实技术领域,特别是涉及一种基于裸眼3d的手势碰撞检测方法及设备。



背景技术:

目前,虚拟现实技术发展迅速,为现实世界和虚拟世界的交互搭建了桥梁。其中,裸眼3d作为一种特殊的虚拟现实方式,不需头戴设备也能体验一个虚拟的三维场景,很受用户欢迎,而手势操作是裸眼3d中人机交互的主要操作方式,所以虚拟的手代替真实的手成为了三维世界中的主要交互方式。

为了解决裸眼3d环境下快速准确的手势碰撞检测,现有技术中采用基于层次包围体树的方法来进行手势碰撞检测,该方法对于刚体碰撞检测效果显著。但是对于手这样一个结构复杂、运动变化多样的物体,以及不同用户的不同尺寸的手,现有的检测方法的检测精度还是太低,运算也相对复杂,严重影响交互体验。



技术实现要素:

本发明的主要目的在于,提供一种基于裸眼3d的手势碰撞检测方法及设备,解决现有技术中手势碰撞检测精度低、运算复杂,影响交互体验的技术问题。

本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种基于裸眼3d的手势碰撞检测方法,其包括:

输出3d视图呈现虚拟目标物体,并记录所述虚拟目标物体的位置数据;

检测用户的手,并对检测到的手对应建立关键节点的位置数据;

根据手的关键节点的位置数据拟合成虚拟球体,并获得所述虚拟球体的位置数据;

将所述虚拟目标物体的位置数据、所述手的关键节点的位置数据、所述虚拟球体的位置数据带入预设函数中,当满足所述预设函数设置的条件时,判断为用户的手碰撞所述虚拟目标物体并施加预定大小的抓取力。

本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。

优选的,前述的基于裸眼3d的手势碰撞检测方法,其中所述虚拟目标物体的位置数据为obj(xobj,yobj,zobj,l);

其中,(xobj,yobj,zobj)表示为所述虚拟目标物体的中心坐标,l为所述虚拟目标物体的外包围盒的边长。

优选的,前述的基于裸眼3d的手势碰撞检测方法,其中所述对检测到的手对应建立关键节点的位置数据的方法包括:

选用所述手的16个部位作为所述手的关键节点,并对应的建立关键节点的位置数据;

其中,所述手的16个部位的关键节点的位置数据为坐标数据,分别为p1(x1,y1,z1),p2(x2,y2,z2),...,p16(x16,y16,z16),p1为大拇指指尖、p2为大拇指的掌指关节、p3为大拇指的指末端、p4为食指指尖、p5为食指的掌指关节、p6为食指的指末端、p7为中指指尖、p8为中指的掌指关节、p9为中指的指末端、p10为无名指指尖、p11为无名指的掌指关节、p12为无名指的指末端、p13为小拇指指尖、p14为小拇指的掌指关节、p15为小拇指的指末端、p16为手掌中心。

优选的,前述的基于裸眼3d的手势碰撞检测方法,其中所述根据手的关键节点的位置数据拟合成虚拟球体,并获得所述虚拟球体的位置数据的方法包括:

拟合得到的所述虚拟球体的位置数据为s(x0,y0,z0,r),其中,(x0,y0,z0)为所述虚拟球体的球心坐标,r为所述虚拟球体的半径;

且,拟合得到所述虚拟球体时需要满足第一预设条件;所述虚拟球体的位置数据需要满足第二预设条件。

优选的,前述的基于裸眼3d的手势碰撞检测方法,其中所述拟合得到所述虚拟球体时需要满足的第一预设条件包括:

所述手的各个手指的弯曲度为θ且在预设范围内;

其中,手指的弯曲度指的是每个手指的指尖、掌指关节、指末端三个点所构成的夹角;大拇指的弯曲度为θ1,食指的弯曲度为θ2,中指的弯曲度为θ3,无名指的弯曲度为θ4,小拇指的弯曲度为θ5;θ1、θ2、θ3、θ4以及θ5均小于等于165度;θ1、θ2、θ3以及θ4均大于等于30度;θ5大于等于105度。

优选的,前述的基于裸眼3d的手势碰撞检测方法,其中所述虚拟球体的位置数据需要满足的第二预设条件包括:

所述虚拟球体的位置数据与所述手的关键节点的位置数据的差值的平方和的偏导为0。

优选的,前述的基于裸眼3d的手势碰撞检测方法,其中预设函数包括第一函数和第二函数,分别为:

和,

其中,d1为所述虚拟目标物体中心与所述虚拟球体中心之间的距离,d2为所述手的五根手指的指尖与所述虚拟目标物体中心的距离;i为1到5,分别代表从大拇指的指尖到小拇指的指尖的位置数据;

当所述虚拟目标物体的位置数据、所述手的关键节点的位置数据、所述虚拟球体的位置数据满足第一函数和第二函数时,判断为所述手与所述虚拟目标物体碰撞。

优选的,前述的基于裸眼3d的手势碰撞检测方法,其中预设函数包括第三函数:

其中,θ’i为所述手的各个手指的弯曲度归一化到(1,0)之间所对应的弯曲度;αi为各个手指在抓取物体时作用力的权重系数,分别包括:大拇指权重系数α1、食指权重系数α2、中指权重系数α3、无名指权重系数α4、小拇指权重系数α5;

且α1的取值范围为0.3-0.4,α2的取值范围为0.2-0.3,α3的取值范围为0.15-0.25,α4的取值范围为0.1-0.2,α5的取值范围为0-0.1,α1>α2>α3>α4>α5,α1+α2+α3+α4+α5=1;

当判断为所述手与所述虚拟目标物体碰撞时,将所述手的关键节点的位置数据带入所述第三函数,能够得到所述手对虚拟目标物体施加的抓取力。

优选的,前述的基于裸眼3d的手势碰撞检测方法,其中检测用户手的方式为实时检测。

另外,本发明的目的及解决其技术问题还采用以下技术方案来实现。依据本发明提出的一种基于裸眼3d的手势碰撞检测设备,其包括:

裸眼3d显示屏、手势检测模组,所述裸眼3d显示屏用于输出3d视图呈现虚拟目标物体,所述手势检测模组用于检测用户手的位置,以及建立对应于所述用户手的关键节点的位置数据;

至少一个处理器;

以及与所述处理器连接的至少一个存储器、总线;

其中,所述处理器、存储器通过所述总线完成相互间的通信;

所述处理器用于调用所述存储器中的程序指令,以执行基于裸眼3d的手势碰撞检测方法;

其中所述基于裸眼3d的手势碰撞检测方法包括:

输出3d视图呈现虚拟目标物体,并记录所述虚拟目标物体的位置数据;

检测用户的手,并对检测到的手对应建立关键节点的位置数据;

根据手的关键节点的位置数据拟合成虚拟球体,并获得所述虚拟球体的位置数据;

将所述虚拟目标物体的位置数据、所述手的关键节点的位置数据、所述虚拟球体的位置数据带入预设函数中,当满足所述预设函数设置的条件时,用户的手碰撞所述虚拟目标物体并施加预定大小的抓取力。

借由上述技术方案,本发明基于裸眼3d的手势碰撞检测方法及设备至少具有下列优点:

本发明技术方案中,通过检测和建立用户手的关键节点的位置数据、虚拟目标物体的位置数据,并根据关键节点的位置数据得到拟合成虚拟球体的位置数据,进而利用上述数据和预设的函数公式,可以精准的得到手碰撞虚拟目标物体以及施加抓取力的大小。相比于现有技术中,由于用户手的复杂程度高、运动变化多样,使用层次包围体树的方法来进行手势碰撞检测,存在运算复杂、精度低的问题。而采用本发明实施例提供的方法,其通过用户手的关键节点的位置数据拟合成虚拟球体,并利用该虚拟球体进行检测,该虚拟球体可以根据不同用户的不同尺寸的手,以及处于不同运动状态的手,建立具有对应关系的球心位置数据、对应的半径数据的虚拟球体,解决了用户手的复杂结构、运动变化多样的问题,进而可以直接将本方法中检测以及建立得到的数据直接带入预设的公式,而获得手势碰撞的检测结果,使运算的复杂度大幅度的降低。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。

附图说明

图1是本发明的实施例一提供的一种基于裸眼3d的手势碰撞检测方法的流程示意图;

图2是本发明的实施例一提供的一种手的关键节点的示意图;

图3是本发明的实施例一提供的一种手弯曲预设角度后的关键节点的示意图;

图4是本发明的实施例一提供的一种手的手指指的弯曲度示意图;

图5是本发明的实施例二提供的一种基于裸眼3d的手势碰撞检测设备的结构示意图。

具体实施方式

为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的基于裸眼3d的手势碰撞检测方法及设备,其具体实施方式、结构、特征及其功效,详细说明如后。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。

实施例一

如图1,本发明的实施例一提出的一种基于裸眼3d的手势碰撞检测方法,其包括如下步骤:

101、输出3d视图呈现虚拟目标物体,并记录所述虚拟目标物体的位置数据。

具体的,可以直接采用裸眼3d显示屏输出带有视差的左右视差图,使人眼观看后产生立体效果,以形成3d视图的虚拟目标物体,或者也可以采用其他能够输出3d视图的设备输出3d状态的虚拟目标物体,且该虚拟目标物体的具体结构不做限定。在输出3d视图的同时通过处理器或者控制系统直接获得虚拟目标物体的位置数据。

进一步的,可以采用三维坐标的方式记录虚拟目标物体的位置数据,例如可以将虚拟目标物体的位置数据记录为obj(xobj,yobj,zobj,l),其中,(xobj,yobj,zobj)表示为所述虚拟目标物体的中心坐标,l为所述虚拟目标物体的外包围盒的边长,外包围盒的边长可以认为是虚拟目标物体的最外表层的位置到中心坐标的距离,这样通过中心位置中标和外包围盒的边长的配合,能够将输出的任何结构的3d视图所表示的虚拟目标物体表示出来。例如当通过3d视图输出一个球体、正方体或者一个具体的实物结构如水杯等,均可以通过中心坐标与外包围盒的边长的位置数据所表示。此外,位置数据记录为obj(xobj,yobj,zobj,l)的虚拟目标物体还可以是移动的,或者虚拟目标物体可以是变化的,只要在移动或者变化物体时随时跟着变化位置数据即可。

102、检测用户的手,并对检测到的手对应建立关键节点的位置数据。

具体的,可以配合裸眼3d显示屏使用手势检测模组对用户的手进行检测,其检测的方式可以是实时的检测,也可以是按照预设的规则进行检测,例如当用户的手伸入到预设的空间中开始检测,即检测用户的手包括检测到和未检测到两种情况;其中实时检测用户的手是较佳的一种方案。建立关键节点的位置数据时,最好是将用户的手与虚拟目标物体在同一空间中建立坐标信息,例如均采用三维空间中的坐标信息作为位置数据,这样获得的手的关键节点的位置数据能够与虚拟目标物体的位置数据快速的建立空间联系,且减少后续的运算量。

进一步的,可以选用户手的多个关节点作为关键节点,且由于主要检测手与虚拟目标物体之间的碰撞和抓持动作,可以选择手在抓取物体时主要工作的关节点,作为关键节点。其中,优选手的16个部位作为所述手的关键节点,并对应的建立关键节点的位置数据;如图2和图3所示,在虚拟目标物体所在的三维空间中建立手的16个部位的关键节点的位置数据,即对应手的16个部位的关键节点的为坐标数据,具体的可以分别为p1(x1,y1,z1),p2(x2,y2,z2),...,p16(x16,y16,z16);其中,对应的p1为大拇指指尖、p2为大拇指的掌指关节、p3为大拇指的指末端、p4为食指指尖、p5为食指的掌指关节、p6为食指的指末端、p7为中指指尖、p8为中指的掌指关节、p9为中指的指末端、p10为无名指指尖、p11为无名指的掌指关节、p12为无名指的指末端、p13为小拇指指尖、p14为小拇指的掌指关节、p15为小拇指的指末端、p16为手掌中心。

103、根据手的关键节点的位置数据拟合成虚拟球体,并获得所述虚拟球体的位置数据。

具体的,由于对手势的检测主要是用于判断手是否与虚拟目标物体碰撞,以及判断手是否对虚拟目标物体进行抓持,所以在手的动作过程中主要是进行碰撞和抓取的动作,因此无论手的尺寸大小、弯曲的弧度如何以及抓取动作如何变化,手的各个关键节点的位置数据均能够拟合成虚拟球体,且结合上述步骤102中将手的关键节点使用坐标数据表示,拟合所得的虚拟球体也将是使用三维坐标数据表示的一个球体,且随着用户手的动作变化以及位置的变化,可以得到对应的虚拟球体的位置数据。

进一步的,将手的关键节点的位置数据拟合成虚拟球体的方式可以为多种,例如采用数学建模公式的方式进行数据拟合、直接使用预设的软件程序进行拟合等,本发明不对拟合的具体方式做限定。

具体的,可以在满足第一预设条件的情况下拟合手的关键节点的位置数据得到虚拟球体,并得到虚拟球体的位置数据s(x0,y0,z0,r)。其中,(x0,y0,z0)为虚拟球体在三维中标系中的球心坐标,r为在三维坐标系中虚拟球体的半径。其中,第一预设条件为手的各个手指的弯曲度为θ且在预设范围内;其中如图4所示,手指的弯曲度θ指的是每个手指的指尖、掌指关节、指末端三个点所构成的夹角;大拇指的弯曲度为θ1,食指的弯曲度为θ2,中指的弯曲度为θ3,无名指的弯曲度为θ4,小拇指的弯曲度为θ5;θ1、θ2、θ3、θ4以及θ5均小于等于165度;θ1、θ2、θ3以及θ4均大于等于30度;θ5大于等于105度。即第一预设条件需要手具有一定的弯曲度,且抓取力是与弯曲度成一定比例的,伸平的手是不具备拟合成虚拟球体的条件的,因为伸平的手也不具备抓取物体的条件,所以可以进一步的理解,为何将手的关键节点的位置数据拟合成虚拟球体。

104、将虚拟目标物体的位置数据、手的关键节点的位置数据、虚拟球体的位置数据带入预设函数中,当满足预设函数设置的条件时,判断为用户的手碰撞虚拟目标物体并施加预定大小的抓取力。

具体的,预设的函数即其条件,可以直接存储在系统中或者处理器中,在使用时可以在获得了上述的数据之后,直接使用预设函数判断以及运算得到具体的手势,例如得到用户的手碰撞到虚拟目标物体,或者手碰撞到虚拟目标物体的同时对其施加一定的抓取力,同时计算出手的抓取力的大小。

进一步的,预设函数包括第一函数和第二函数,分别为:

和,

其中,d1为虚拟目标物体中心与虚拟球体中心之间的距离,d2为手的五根手指的指尖与虚拟目标物体中心的距离;i为1到5,分别代表从大拇指的指尖到小拇指的指尖的位置数据;这样当虚拟目标物体的位置数据、手的关键节点的位置数据、虚拟球体的位置数据满足第一函数和第二函数时,判断为手与虚拟目标物体碰撞。

再进一步的,预设函数还可以包括第三函数:

其中,θ’i为所述手的各个手指的弯曲度归一化到(1,0)之间所对应的弯曲度;αi为各个手指在抓取物体时作用力的权重系数,分别包括:大拇指权重系数α1、食指权重系数α2、中指权重系数α3、无名指权重系数α4、小拇指权重系数α5;且α1的取值范围为0.3-0.4,α2的取值范围为0.2-0.3,α3的取值范围为0.15-0.25,α4的取值范围为0.1-0.2,α5的取值范围为0-0.1,α1>α2>α3>α4>α5,α1+α2+α3+α4+α5=1。

通过具体的实验得知,抓取力f>2.5时能够判断此时手抓取到虚拟目标物体。这样当手与虚拟目标物体碰撞时,即虚拟目标物体的位置数据、手的关键节点的位置数据、虚拟球体的位置数据满足第一函数以及第二函数的条件下,对应的将手的关键节点的位置数据带入第三函数,就可以得到手对虚拟目标物体施加的抓取力f。

本发明技术方案中,通过检测和建立用户手的关键节点的位置数据、虚拟目标物体的位置数据,并根据关键节点的位置数据得到拟合成虚拟球体的位置数据,进而利用上述数据和预设的函数公式,可以精准的得到手碰撞虚拟目标物体以及施加抓取力的大小。相比于现有技术中,由于用户手的复杂程度高、运动变化多样,使用层次包围体树的方法来进行手势碰撞检测,存在运算复杂、精度低的问题。而采用本发明实施例提供的方法,其通过用户手的关键节点的位置数据拟合成虚拟球体,并利用该虚拟球体进行检测,该虚拟球体可以根据不同用户的不同尺寸的手,以及处于不同运动状态的手,建立具有对应关系的球心位置数据、对应的半径数据的虚拟球体,解决了用户手的复杂结构、运动变化多样的问题,进而可以直接将本方法中检测以及建立得到的数据直接带入预设的公式,而获得手势碰撞的检测结果,使运算的复杂度大幅度的降低。

在具体实施中,其中为了使拟合得到的虚拟球体更加接近实际的手的位置,需要对拟合得到的虚拟球体的位置数据进行处理,使虚拟球体的位置数据满足第二预设条件。

具体的,第二预设条件可以是虚拟球体的位置数据满足如下公式:

ei(x0,y0,z0,r)=(xi-x0)2+(yi-y0)2+(zi-z0)2-r2(1);

其中,公式(1)为手的每个关键节点的位置数据与拟合后的虚拟球体的数据的做差公式;公式(2)是对通过公式(1)得到的差值做平方和;公式(3)是对通过公式(2)得到的平方和数据进行的偏导计算。进而通过按照公式(1)至公式(3)的顺序对虚拟球体的位置数据进行处理,可以得到无限接近真实的手的关键节点的位置数据,进而使检测出的手势动作更加精准。

实施例二

图5所示,本发明的实施例二提出的一种基于裸眼3d的手势碰撞检测设备,其包括:裸眼3d显示屏1、手势检测模组2;裸眼3d显示屏1用于输出3d视图呈现虚拟目标物体,所述手势检测模组2用于检测用户手的位置,以及建立对应于所述用户手的关键节点的位置数据;至少一个处理器;以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行实施例一中项所述的方法。

具体的,本实施例二中所述的基于裸眼3d的手势碰撞检测设备,其使用实施例一提供的方法,可以精准的得到手碰撞虚拟目标物体以及施加抓取力的大小。相比于现有技术中,由于用户手的复杂程度高、运动变化多样,使用层次包围体树的方法来进行手势碰撞检测,存在运算复杂、精度低的问题。而采用本发明实施例提供的设备,其通过用户手的关键节点的位置数据拟合成虚拟球体,并利用该虚拟球体进行检测,该虚拟球体可以根据不同用户的不同尺寸的手,以及处于不同运动状态的手,建立具有对应关系的球心位置数据、对应的半径数据的虚拟球体,解决了用户手的复杂结构、运动变化多样的问题,进而可以直接将本方法中检测以及建立得到的数据直接带入预设的公式,而获得手势碰撞的检测结果,使运算的复杂度大幅度的降低。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

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