一种虚拟现实环境下可变形手抓取交互方法与流程

文档序号:15684671发布日期:2018-10-16 20:56阅读:790来源:国知局

本发明涉及计算机图形学建模和虚拟现实人机手势交互领域,特别是涉及一种虚拟现实环境下可变形手抓取交互方法。



背景技术:

随着虚拟现实技术的发展和普及,基于视觉的手势识别技术已成为手势交互领域内的研究热点之一。手势交互是利用计算机图形学等技术识别人手静动态信息并转化为命令来操作设备,弥补鼠标、键盘和触屏等人机交互方式不自然的缺点。然而目前国内外对这一方面的研究均有一定的缺陷,比如:利用最大似然准则hausdorff距离的方法和多分辨率搜索策略较好地识别字母手势(参见何力,傅忠谦,顾理.一种基于最大似然hausdorff距离的手势识别算法[j].电子技术,2010,47(5)),但是对于发生变形(旋转和缩放)的手势效果不好。通过图像特征提取和多类支持向量机可对手势较好地识别,但由于sift算法的计算复杂度导致识别速度较慢,实时性差(参见张秋余,王道东,张墨逸等.基于特征包支持向量机的手势识别[j].计算机应用,2012,32(12):3392-3396)。

leapmotion是面向pc和mac的体感控制器制造公司leap研发的专门识别手并进行手势交互的体感控制器。其优势在于能够直接获取一些关于手的静态、动态信息,缺陷在于封装了识别方法和过程自身的封闭性及其提供信息的局限性的影响,难以直接通过这些信息完整地估计手的姿态,必须借助以下两种基于视觉的人手姿态估计方法:一、基于表观,通过机器学习从二维图像特征空间到三维人手姿态空间建立映射来估计人手的状态;二、基于模型,把人手三维模型投影到二维图像空间,通过特征比较和数据估算修正三维模型中估计的姿态参数。

为增强vr环境下手势交互的直观性,需构建可变形手抓取系统。虚拟现实眼镜暴风魔镜与全球领先的科技公司leapmotion进行深度合作,在原有的暴风魔镜中内置leapmotion,开发出世界首项基于移动虚拟现实的3d动态手势识别追踪技术,与pc相比功耗更低、更便捷。可实时追踪手部22个关键点,26个自由度,可以完全模拟手部的各个动作(参见胡弘,晁建刚,杨进等.leapmotion关键点模型手姿态估计方法[j],计算机辅助设计与图形学报,2015,27(7):1211-1216)。

本发明拟通过构建虚拟3d手骨架以及用两层蒙皮(第一层用于骨骼绑定的隐藏层,第二层用于变形的显示层)的特殊方式驱动3d手模型,同时采用等距面构建虚拟3d物体(参见一种基于卷积曲面的头戴设备虚拟现实环境下生成可直接三维打印的建模系统zhux.,songl.,youl.,etal.brush2model:convolutionsurface‐basedbrushesfor3dmodellinginhead‐mounteddisplay‐basedvirtualenvironments[j].computeranimation&virtualworlds,2017,28(3-4))。此外采用基于骨架半径的滤波策略(参考mathieus.,olegf.,pierre-alainf.,etal.convolutionfilteringofcontinuoussigneddistancefieldsforpolygonalmeshes.computergraphicsforum34(6):277-288(2015))去除非连续变化的距离场后有效生成处处光滑的距离场。既可避免虚拟3d手指穿透虚拟3d物体,又给用户在虚拟环境中更直观、自然3d手虚拟抓取效果,从而增强虚拟交互性和真实感。



技术实现要素:

本发明目的为提出涉及一种虚拟现实环境下可变形手抓取交互方法。该方法主要构建两层蒙皮方式绑定虚拟3d手骨骼,并与基于距离场构建的虚拟3d物体接触交互,使虚拟3d手模型始终贴在被抓取虚拟3d物体表面,同时用平滑滤波算子滤掉距离场不够光滑的过渡区域来避免虚拟3d手模型形变产生凹凸现象,从而提高虚拟现实的交互体验和沉浸感。

为达到上述目的,本发明采用如下技术方案:

一种虚拟现实环境下可变形手抓取交互方法,包括以下步骤:

1)构建虚拟3d手模型;

2)基于距离场构建虚拟3d物体c;

3)leapmotion采集帧数据驱动虚拟3d手模型;

4)平滑滤波虚拟3d手模型有向距离场;

5)3d虚拟手与虚拟3d物体c交互。

所述步骤1)中按照如下方式进行构建虚拟3d手模型:首先根据手部几何模型,建立虚拟3d手骨架,然后根据位置及旋转角实时保持相同的两层蒙皮的特殊方式绑定虚拟3d手骨骼形成虚拟3d手模型,其中,两层蒙皮为蒙皮a和蒙皮b,蒙皮a为绑定的隐式层,b为不绑定的显式层。

所述步骤2)中按照如下方式进行基于距离场构建虚拟3d物体c:分别对三维空间中的复杂多组件物体中的点、线、面骨架计算可变权重距离场,再对多组件的距离场进行混合加、布尔减运算生成复杂距离场,用基于骨架半径的低通滤波有效地生成处处连续变化的复杂物体的距离场c。

所述步骤3)中根据leapmotion的api提供的关于度量位置和手、手指的实体信息的快照运动追踪数据库,从控制器通过摄像头捕获含追踪信息的一帧数据。

所述步骤4)中平滑滤波是采用5×5×5精度低通滤波模板进行离散距离场滤波,按照以下方式进行:

选取接触部分空间中p点紧密围绕的125点,其中边界处点特殊处理,依照“离p点越近权值越高”的原则对应的函数如下:

式中distfeildp表示周围125个点,包括p点,对p点势能距离场影响权值,wi表示第i个点对p点的权重系数,distfeildi表示第i个点对p点的势能距离场影响权值。

所述步骤5)中所述的交互对应如下:

蒙皮b上点fi(xi,yi,zi)距离虚拟3d物体c的距离为di,默认虚拟3d物体c提取的等距面的阈值为x=0,当虚拟3d手模型未接触或者刚好接触虚拟3d物体c时,设蒙皮a与蒙皮b所有点空间位置和旋转方向实时相等,即当di≥x,令a=b;当手接触并陷入虚拟3d物体c时,即当di<x,令di=x,求解蒙皮b上的fi(xi,yi,zi),得到虚拟3d手模型顶点变形后的位置,对应的函数表达式如下:

式中fi(xi,yi,zi)表示蒙皮b上空间中的i点坐标,fai(xi,yi,zi)表示蒙皮a上空间中的i点坐标,fci(xi,yi,zi)表示虚拟3d物体c中与蒙皮b接触的部分空间中的i点坐标,从而实现虚拟3d手模型与虚拟3d物体的自然交互。

与现有技术相比,本发明具有如下突出的实质性特点和显著的优点如下:

本发明提高了现有oculusrift和htcvive等相对比较成熟的虚拟现实头盔显示设备中手柄交互、输入方式的不直接自然的不足以及leapmotion和诺亦腾公司的非力反馈手套识别的手部动画,在虚拟现实环境中容易穿透被抓取的物体的缺点。本发明实时交互,算法明确,自然变形,提高虚拟现实的交互体验。

附图说明

图1是本发明方法对应的流程示意图。

图2是两层蒙皮绑定虚拟3d手骨架对应的示意草图。

图3是虚拟3d手未接触虚拟3d物体对应的示意图。

图4(a)是虚拟3d手接触并陷入虚拟3d物体变形前对应的示意图。

图4(b)是虚拟3d手接触并陷入虚拟3d物体变形后对应的示意图。

具体实施方式

下面结合附图对本发明方法通过实施例进行详细说明。

如图1所示,本发明提出了一种虚拟现实环境下可变形手抓取交互方法,主要包括构建并采用两层蒙皮绑定手骨骼形成虚拟3d手模型,用平滑滤波算子构建虚拟3d物体的光滑有向距离场,然后采用距离场驱动虚拟3d手模型接触表面的形变。具体步骤如下:

1)构建虚拟3d手模型;

首先根据手部几何模型,在3d动画编辑软件,如maya中建虚拟3d手骨架。然后根据位置及旋转角实时保持相同的两层蒙皮(蒙皮a和蒙皮b)的特殊方式(蒙皮a为绑定的隐式层,蒙皮b为不绑定的显式层)绑定虚拟3d手骨骼形成虚拟3d手模型,如图2所示,白色为蒙皮b,外围黑色轮廓为蒙皮a。

2)基于距离场构建虚拟3d物体c;

在三维渲染引擎如unity中,分别对三维空间中的复杂多组件物体中的点、线、面骨架计算可变权重距离场,再对多组件的距离场进行混合加、布尔减等运算生成复杂距离场,用基于骨架半径的低通滤波有效地生成处处连续变化的复杂物体的距离场c。

3)leapmotion采集帧数据驱动虚拟3d手模型;

根据leapmotion的api提供的关于度量位置和手、手指的实体信息的快照运动追踪数据库,可以从控制器通过摄像头捕获含追踪信息的一帧数据。由于三维渲染引擎(如unity)的帧速率和leapmotion的帧速率不同,采用轮询的方法:将已保存的处理过的帧id与当前的帧id比较来检测当前帧是否为已处理的帧;在历史缓存中访问由三维渲染引擎(如unity)帧速率过快导致丢失的帧;用回调获取多线程中的独立数据来防止由于任务过多导致数据帧不能加入历史缓存中。再从数据帧中获取数据得到追踪的手和手指实体,由手掌坐标获取手的坐标,由运动速度获取运动的属性,由运动因子获取一只手在两帧时的位移、旋转和缩放值的变化,同时由当前的id获取关联的手指,从获取到的帧数据来驱动已绑定好的虚拟3d手模型。

4)平滑滤波虚拟3d手模型有向距离场

由于蒙皮b有向距离场驱动变形时取离散的点集,导致虚拟3d手模型与虚拟3d物体接触时,接触部位出现锯齿和凹凸不平的现象,因此采用5×5×5精度低通滤波模板进行离散距离场滤波。选取接触部分空间中p点紧密围绕的125点(边界处点特殊处理),依照“离p点越近权值越高”的原则对应的函数如下:

式中distfeildp表示周围125个点(包括p点)对p点势能距离场影响权值,wi表示第i个点对p点的权重系数,distfeildi表示第i个点对p点的势能距离场影响权值。

通过平滑算子低通滤波后,实现接触部分的变形过渡自然。

5)3d虚拟手与虚拟3d物体c交互;

设蒙皮b上点fi(xi,yi,zi)距离虚拟3d物体c的距离为di。当虚拟3d手模型未接触或者刚好接触虚拟3d物体c时,如图3所示,a表示绑定的隐式层蒙皮a,b表示不绑定的显式层蒙皮b,c表示由两个球与线段组成的复杂虚拟3d物体,x表示c提取的等距面的阈值,默认为0,fai(x,y,z)表示蒙皮a上空间中的i点坐标,fci(x,y,z)表示虚拟3d物体c空间中的i点坐标。设蒙皮a与蒙皮b所有点空间位置和旋转方向实时相等,即当di≥x,令a=b,蒙皮b上的fi(xi,yi,zi)对应的函数表达式如下:

fi(xi,yi,zi)=fai(x,y,z)

当手接触并陷入虚拟3d物体c时,如图4(a)所示,a表示绑定的隐式层蒙皮a,b表示不绑定的显式层蒙皮b,c表示由两个球与线段组成的复杂虚拟3d物体,x表示c提取的等距面的阈值,di表示蒙皮b上点fi(xi,yi,zi)距离虚拟3d物体c质心o(x0,y0,z0)的距离,fai(x,y,z)表示蒙皮a上空间中的i点坐标,fci(x,y,z)表示虚拟3d物体c空间中的i点坐标。当di<x,令di=x,如图4(b)所示,蒙皮b上的fi(xi,yi,zi)应的函数表达式如下:

fi(xi,yi,zi)=fci(x,y,z)

综上两种情况,得到虚拟3d手模型顶点变形后的位置对应的函数表达式如下:

式中fi(xi,yi,zi)表示蒙皮b上空间中的i点坐标,fai(xi,yi,zi)表示蒙皮a上空间中的i点坐标,fci(xi,yi,zi)表示虚拟3d物体c中与蒙皮b接触的部分空间中的i点坐标。

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