一种基于物理引擎的三维手物交互重建方法和系统

文档序号:31763766发布日期:2022-10-12 03:45阅读:174来源:国知局
一种基于物理引擎的三维手物交互重建方法和系统

1.本发明涉及计算机图形学领域,具体地,涉及一种基于物理引擎的三维手物交互重建方法和系统。


背景技术:

2.随着科学技术的进步,图形学技术尤其是三维手势的重建技术得到了飞速发展,且已经达到了相对成熟的阶段。但是,日常生活中,手通常会与物体发生接触,从而拿起或放下一个物体。在虚拟现实、增强现实领域,手物交互过程更是重要的一个环节,比如增强现实中的ar试衣;虚拟现实中手抓取、释放物体的过程等。因此,探索一种更精准、更高效的三维手物交互重建系统,可以大幅度增加用户的使用体验。
3.如今,三维手物交互的重建过程已经取得不错的研究成果。大致可以分为如下几种:1)通过训练神经网络,完成从单一rgb图像重建手物交互的过程,从而达到端到端的结果;2)提前给定已知物体的3d模型,通过训练神经网络,从单一rgb中估计手的姿势,从而实现整个三维重建过程。经过多年的科学研究,虽然现有的三维手物重建过程取得了较大的成功,但依然存在着如下几个问题:1)当前的手物交互系统存在的最大问题是重建的效果可能与实际交互情况并不相符。如果图像中的手物交互过程是一种不稳定的抓取,即在实际生活中并不符合实际物理现象的抓取,通过以往的方法,尤其是基于单一rgb图像的方法重建出的结果可能依然是一种非物理现象的重建结果。2)重建过程中通常采用优化的方法,这种方法是可行的,但以往的优化工作中,并没有给出一种明确的优化目的,泛化性能并不出众。3)以往的重建工作中,虽然部分工作采用了全局优化算法,但并没有就重建效果和运行时间进行有效的衡量。这就很容易出现重建精度高,时间损耗也高;或者虽然时间损耗低,但重建精度也低的极端现象。


技术实现要素:

4.发明所要解决的主要问题是通过一种新的方法实现高精度的三维手物交互重建,并能通过该方法判断重建结果是否是一种符合物理现象的交互过程,如果不符合物理现象,也能基于该方法对此进行矫正;与以往工作不同的是,本发明使用了一种基于椭球体表示的手物模型,使手物交互过程中手和物体的交互状态更容易得到分析与矫正。
5.为了解决上述技术问题,本发明提供了一种基于物理引擎的三维手物交互重建方法和系统,该方法包括以下步骤:
6.步骤1,搭建所需要的神经网络结构,从彩色图像(rgb图像)中获得手物交互的姿态参数;
7.步骤2,根据步骤1中获得的姿态参数,使用堆叠椭球体表示三维手物模型;
8.步骤3,将步骤2中获得的三维手物模型送至物理仿真环境bullet平台中,通过测试手物交互过程中合外力的大小,判断手物交互的稳定性;
9.步骤4,对于手物之间有着较大合外力的重建结果,基于当前初始姿态参数进行迭
代优化,即通过对参数进行采样,获得一系列新的参数分布;
10.步骤5,再次在物理仿真平台中估计手物交互的稳定性,直至达到设定的迭代次数。在所有的重建结果中选择最优结果作为手物交互的最终结果。
11.进一步,所述步骤1中的神经网络结构采用端到端的方式进行训练,且在训练前进行预训练。
12.进一步,所述预训练可以通过下面的损失函数对各参数进行约束:
[0013][0014]
其中,损失函数第一项表示对形状参数β进行约束;损失函数第二项表示对姿势参数θ进行约束;损失函数第三项表示对手的21个关节位置x进行约束;损失函数第四项,即l
2d
,表示对其他2d参数进行约束;损失函数第五项,表示对椭球体之间发生穿模的部分进行约束,该损失项的公式为:
[0015][0016]
进一步,在预训练结束后,进一步对整个网络进行重新训练,总的损失函数可以表示为:
[0017][0018]
其中,损失函数第二项表示对物体参数进行约束;损失函数第三项表示对手和物体的掩膜进行约束,在已知手物交互状态s的情况下,通过正交投影矩阵∏即可获得掩膜。
[0019]
进一步,所述步骤1中,对已有的包含手物交互的rgb图像,使用搭建的神经网络获得相应的2d参数,将获得的2d参数送至多层感知器中获得模型的3d姿态参数;并将部分感知器的输出送至一个回归器,得到手的3d关节点。
[0020]
进一步,所述步骤2中所述三维手物模型中手由16个椭球体构成,每个手指用三个椭球体表示,手掌用一个椭球体表示,物体由一个椭球体构成。
[0021]
进一步,所述步骤3中,判断手物交互的稳定性,可以通过手和物体之间的合外力及合外力矩来进行评估。该过程可以概述为如下代价函数:
[0022][0023]
代价函数的第一项公式如下:
[0024][0025]
其中p表示物体位置的变化、q表示物体方向的变化、v表示手的各个椭球体角度的变化,为了便于后续采样过程,这里的角度用欧拉角表示,t表示手根节点的变化。
[0026]
代价函数的第二项公式如下:
[0027][0028]
其中,表示手和物体之间产生的合外力、表示手和物体之间的力矩,m(t)表示接触点的个数。
[0029]
进一步,该系统包括手和物体的姿态参数估计模块和手物稳定性交互模块,所述手和物体的姿态参数估计模块包括以下单元:2d参数估计单元,基于输入的图像,获得物体掩膜、手的z坐标、手的掩膜、手的2d关节点;3d参数估计单元,主要对2d参数估计单元的输出结果进行后处理,包括将物体掩膜和手的z坐标送至多层感知器mlp中,获得物体的3d参数φ,将手的掩膜和手的z坐标送至多层感知器mlp中,获得手的3d参数β,将手的2d关节点、手的掩膜及手的z坐标送至多层感知器mlp中,获得手的3d参数θ;为了得到手的3d关节点,该系统还可以将3d参数θ和β送至一个关节回归器中,得到手的3d坐标。所述手物稳定性交互模块,包括以下两个单元:抓取稳定性分析单元,主要判断当前的3d于调整当前的3d参数,对于不稳定的抓取过程,使用模拟退火算法对当前姿态参数进行迭代采样,并将采样结果送至稳定性分析单元,得出基于新的姿态参数的最新评分结果。当迭代次数达到上限时,选出所得分数最高的交互结果作为最终的手物交互重建结果。
[0030]
与现有技术相比,本发明具有以下优点:
[0031]
本发明提出了一种新的三维手物交互重建方法,只需要单张rgb图像,便可以将稳定的抓取过程重建出来,实现了端到端的建模方式,减少了手物交互重建过程中的复杂度。
[0032]
此外,针对不稳定的抓取,本发明可以给出一定的指导意见,进而使交互过程变得合理。
[0033]
此外,使用堆叠的椭球体表示手和物体的三维模型,使稳定性分析过程更加方便。
附图说明
[0034]
图1是本发明实施例中三维手物交互重建方法的流程图;
[0035]
图2是本发明实施例中三维手物交互重建系统的结构示意图;
[0036]
图3是本发明实施例中用于表示手物三维模型的堆叠椭球体。
[0037]
图4是本发明可以实现的重建效果。
具体实施方式
[0038]
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明使用的方法及实现效果进行梳理,使使用者对本发明有更清晰的了解。值得注意的是,在不构成冲突的情况下,本发明实施例间的特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
[0039]
此外,附图中示出的流程图可以在计算机中以一系列连续的指令执行,并且在某些情况下可以对流程顺序进行适当修改。
[0040]
实施例
[0041]
图1为本发明实施例中提到的三维手物交互重建的流程图,下面参照图1详细说明各个步骤。
[0042]
步骤s110,搭建网络结构。
[0043]
为了从单张rgb图像中获得用于三维重建任务的姿态参数,本发明搭建了一个用于实现最终效果所需的网络结构,如图2所示。该神经网络由一个编码器-解码器结构组成。其中,编码器的主要结构采用resnet18,并在编码器后面加入解码器,来得到所需的2d参数,包括用于获得手部掩膜的解码器、用于获得物体掩膜的解码器、用于获得手的2d关节点和关节z坐标的解码器。将上述得到的2d信息送至多层感知器mlp中再次编码,以获得手物交互所需的姿态参数β、θ、φ,并将β、θ参数送至关节回归器中,用于回归手关节的3d坐标。
[0044]
为了实现上述功能,先使用如下损失函数对网络进行预训练,
[0045][0046]
该损失函数的第一项表示对形状参数β进行约束,其中β
*
表示已知的形状参数真值;损失函数第二项表示对姿势参数进行约束,其中θ
*
表示已知的姿势参数真值;损失函数第三项表示对手的关节进行约束,其中x
*
表示已知的3d关节点真值;损失函数第四项,即l
2d
,表示对在网络训练过程中涉及到的其他2d参数进行约束;损失函数第五项,表示对点接触进行约束,主要用于惩罚椭球体之间发生的碰撞,该损失项的公式为:
[0047][0048]
进一步,使用数据集中的所有已知真值训练网络,损失函数为:
[0049][0050]
该损失函数的第一项详见上一步骤;损失函数第二项表示对物体参数进行约束,其中φ
*
表示物体参数真值;损失函数第三项表示对手和物体的掩膜进行约束,∏表示通过正交投影,即通过已知的手物交互状态生成手和物体的掩膜。
[0051]
步骤s120,一种新的、用于表示3d模型的方式。
[0052]
要实现稳定性分析,需要先根据已有参数获得三维模型。在近几年的研究中,研究者们大多采用mano模型表示手的三维模型,但是这种表示方法会受到自由度的限制,不利于稳定性评价。所以,本发明使用一系列堆叠的椭球体来表示,如图3所示。其中,手的三维模型由16个椭球体构成,每个手指三个椭球体、手掌一个椭球体;物体的三维模型由一个椭球体构成。每个椭球体可以隐式地表示为二次型函数的零等值面,并可以用以下式子进行表示。
[0053]
ε(x|c,r,a)=(x-c)
t a(r,a)(x-c)-1
[0054]
其中,c表示每个椭球体的中心,r表示椭球体的半径,a表示椭球体轴角度的方向。根据这种椭球体的表示方法,手物交互状态可以表述为:
[0055][0056][0057]
其中,β表示手的形状,体现在16个椭球体的半径上;θ表示手的姿势,体现在椭球体的轴方向上,即不同方向的椭球体构成了手指不同的弯曲方向;φ表示用于表示物体的椭球体,对于初始状态的椭球体,用下标为0的符号表示;δ表示缩放系数,通过改变δ,可以获得不同形状参数的椭球体。此外,要获得上述椭球体,首先需要根据蒙皮权重将lbs网格进行分割,然后为每个分割结果创建有向包围盒,最后,获得与该包围盒同向的椭球体。
[0058]
步骤s130,基于当前获得的姿态参数进行手物交互稳定性分析。
[0059]
根据步骤s120,将获得的手物交互状态作为初始值,导入物理引擎仿真平台。首先,根据获得的形状参数β,获得一个标准的用椭球体堆叠而成的手模型;物体的位置和方向则通过参数φ得出;另外为了方便后期的迭代优化过程,将用轴方向表示的姿势参数θ转换为欧拉角来表示;令手的根节点在优化过程中获得新位置
[0060]
对于给定的手物交互状态,手物之间的接触主要通过检测手和物体模型之间的碰撞来进行计算。基于此,垂直于各个接触点的弹力以及相切于接触点的摩擦力可以被计算得出。另一方面,对于手持物体这一过程,手的状态可以在pd控制器的作用下保持给定的姿势,但是,如果前一步骤估计出的姿势参数不合理,物体将会在重力的作用下产生滑落,因此可以通过稳定性分析来判断手物交互的重建效果。该过程可以概述为如下代价函数:
[0061][0062]
代价函数的第一项公式如下:
[0063][0064]
该项主要用于计算优化前后物体位置p的变化、物体方向q的变化、欧拉角v的变化以及手根节点位置t的变化。其中物体位置的变化以及手根节点位置的变化使用二范数进行计算;欧拉角的变化使用一范数进行计算。对于物体方向的变化,主要通过计算角度的变化来求取,即:
[0065][0066]
代价函数的第二项公式如下:
[0067][0068]
该项代价函数主要测量手物交互过程中的物理关系,包括合外力力矩以及接触点的个数m
(t)
。在这一过程中,由于合外力和力矩都是关于时间t的函数,通过生活经验可以知道,如果在一定仿真步长t内物体不会从手中脱落,那么可以认为这是一个稳定的抓取过程,所以代价函数的第二项cr要满足时间关系,即0《t《t。在实际应用中,为避免由于物体变化而对代价函数造成的影响,要先根据物体的质量m0以及转动惯量i0对合外力和合外力矩进行归一化。为了防止物体在仿真期间从手中脱落,当物体位置变化大于0.1,或者物体的方向变化也即角度变化大于0.3π时,手物的交互状态将会被重新修改。
[0069]
步骤s140,采用模拟退火算法对当前参数进行采样,得到一组呈高斯分布的姿态参数。
[0070]
对于不稳定的抓取,也即当合外力及力矩不为0时,采用基于采样的优化方法对姿态参数进行调整。在步骤s130中已经指出,用椭球体表示的手的姿势可以通过椭球体的欧拉角进行表示,欧拉角的初始分布满足高斯分布,该初始分布的期望值设为方差设为0.1π;另外,手根节点的位置同样满足高斯分布,且初始期望值设为0,方差设为0.05。通过模拟退火算法,分别在二者的分布上进行采样,得出一系列不同的新分布。
[0071]
在本发明的实验阶段,设置迭代采样次数为30次,每次迭代采集样本数设置为300,并设置步长t为120步,即在优化过程中,总计迭代优化30次,在每轮迭代中,基于当前的分布采集300对采样值,并基于这些采样值计算代价函数。由于在仿真环境中,每一步的长度对应现实生活中的0.5秒,所以当交互过程持续60秒时,即可认为是一次稳定的交互过程。
[0072]
步骤s150,在获得的采样值基础上重新进行抓取过程的稳定性分析。
[0073]
在每次迭代采样中,对于不同的迭代结果,当对应更小的代价函数值时,给予这次采样更大的权重,进而两个参数分布的方差也会发生变化。最终,当求得的代价函数最小时,对应的接触点及合外力作为最终的手物交互结果。
[0074]
本实施例中,对输入的rgb图像不需要做任何的鲁棒处理,实验结果如图4所示,其中图4第一列表示输入不同数据集的rgb图像,第二列表示优化前的重建效果,第三列表示经过优化后的重建效果。通过图4也可以验证,即在合外力接近0时,可以获得更好的重建效果。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1