一种基于神经运动控制的高物理真实感人体运动捕捉方法

文档序号:30234680发布日期:2022-06-01 08:20阅读:92来源:国知局
一种基于神经运动控制的高物理真实感人体运动捕捉方法

1.本发明涉及属于计算机视觉及计算机图形学领域;尤其涉及一种基于神经运动控制的高物理真实感人体运动捕捉方法。


背景技术:

2.人体运动捕捉在人机交互、个人健康管理和人类行为理解等方面有着多种应用。随着无标记运动捕捉的迅速发展,市场对人体运动捕捉的要求不断提高。现有的大量工作可以通过网络回归或者优化的方法,从单视角视频和图像中以运动学的方式捕捉准确人体姿态。然而由于视觉歧义性,基于运动学进行单视角运动捕捉,会出现一系列非自然现象,例如穿模、抖动以及脚步的不合理滑动等。部分方法通过简单且可微分的物理模型,在重建框架中添加物理约束。然而这类方法存在较大的近似误差;其余方法采用不可微的物理引擎和深度强化学习方法进行估计。但训练一个理想的策略需要复杂的配置过程,并且训练得到的策略对环境变化十分敏感。此外,传统基于采样控制的方法需要准确的参考运动,生成合理的采样分布非常耗时且存在随机误差。因此,采用基于采样的神经运动控制方法,实现在场景地形复杂、人体体型多变、动作姿态多样的情况下的人体运动捕捉,将有望推动解决当前人体运动捕捉技术应用落地的痛点问题。


技术实现要素:

3.为解决上述问题,本发明公开了一种基于神经运动控制的高物理真实感人体运动捕捉方法。该方法首先提出一种基于物理引擎的采样分布先验网络,训练得到准确的采样分布先验。其次提出一种场景接触约束,输入单视角视频通过优化框架获得人体参考运动。最后,利用训练完成的采样分布先验,从人体参考运动和物理角色当前状态中估计采样分布,进而使用采样控制的方法在不可微的物理引擎中实现高物理真实感的人体运动捕捉。
4.本发明所述的一种基于神经运动控制的高物理真实感人体运动捕捉方法,包括以下步骤:
5.s1.人体运动学模型与人体动力学模型建模:人体运动学模型是可蒙皮的人体骨架,具有51个关节自由度,骨架姿态使用关节旋转进行表示。人体动力学模型具有与人体运动学模型相同的结构,每个关节带有质量、摩擦力等动力学参数,可以在不可微物理引擎中进行物理仿真。给定人体骨骼长度,根据运动学树结构可以自动生成人体运动学模型和人体动力学模型。人体动力学模型的动力学参数不随人体体型进行变化。
6.s2.人体参考运动及物理角色状态定义:人体参考运动是由人体运动学模型拟合到输入视频的人体特征得到,每帧拟合后的人体参考姿态参数组成完整的人体参考运动,其中第t帧的人体参考姿态参数表示为人体参考骨架姿态参数包括3维模型平移、3维模型全局旋转和51维关节旋转,总维度为57维。物理角色状态是人体动力学模型经过仿真后,从物理引擎中读取的参数,其中包含模拟姿态参数q和速度参数模拟姿态
参数与人体参考骨架姿态参数构成相同,速度参数包括3维根节点线速度,3维根节点角速度和51维关节角速度,物理角色状态总维度为114维。
7.s3.采样分布先验神经网络训练:从现有运动学人体数据集中获取数据,离线运行协方差矩阵自适应进化策略,生成采样分布,用于监督分布编码器的预训练。预训练完成后,接入二分支的解码器,对编码器网络参数进行进一步优化训练,直至网络收敛。将训练完成的编码器网络作为采样分布先验,用于后续的人体运动捕捉。
8.s4.人体参考运动及人体体型估计:使用现有人体二维姿态估计方法从输入视频中获取人体二维姿态。构建场景接触约束,优化人体运动学模型姿态参数,获取人体参考运动
9.s5.高物理真实感人体运动捕捉:从人体参考运动中读取第t帧的人体参考姿态读取第t-1帧物理角色的状态s
t-1
,将参考姿态和物理状态输入采样分布先验,输出采样分布q(μ
t

t
)。从估计得到的分布中采样k个参考姿态的修正值分别与人体参考姿态相加构成人体目标姿态将k个人体目标姿态输入物理引擎进行仿真,对每个仿真结果进行评价,选取损失函数值最小的仿真结果,作为t时刻物理角色状态,重复步骤s5进行下一帧的运动捕捉。执行完所有视频帧后,每帧物理角色的模拟姿态参数 q
t
构成完整运动作为输出。
10.进一步地,步骤s3的具体方法包括:
11.s31:训练数据准备:从现有运动学人体数据集中选取连续的两帧:t-1时刻、t时刻,通过对选取姿态进行差分,计算t-1时刻的人体关节速度,进而将t-1时刻的人体姿态和速度作为物理角色的状态,以第t帧的人体姿态作为参考姿态。构建标准正态分布作为初始采样分布,将对应的物理角色状态、参考姿态以及从初始分布采样的参考姿态修正值进行物理仿真,使用协方差矩阵自适应策略优化初始分布,优化完成的分布依次处理完数据集内所有数据,所估计分布即为用于预训练网络参数的监督数据;由于差分获取的结果与现实仿真有偏差,为了增强数据的真实性,在物理角色状态中加入随机噪声来模拟真实情况;
12.其中物理仿真包括以下步骤,且后文提及物理仿真与此步骤相同:
13.s311:将参考姿态和采样得到的参考姿态修正值相加,得到目标姿态;
14.s312:以目标姿态作为设定值,结合当前的物理角色状态,使用pd控制计算得到关节力矩;
15.s313:将关节力矩应用于物理角色的关节上,使用物理引擎执行物理仿真;
16.s314:读取仿真结果;
17.s32:分布编码网络预训练:构建6层全连接的编码网络,输出为32维的均值和方差;将估计得到的均值和方差组成正态分布;使用离线协方差矩阵自适应策略生成的分布作为监督,训练网络直至收敛。以kullback-leibler散度作为约束,其损失函数公式为:
[0018][0019]
其中是由协方差矩阵自适应进化策略得到的分布,是由编码网络估计得到的分布,kl为kullback-leibler 散度。
[0020]
s33:训练收敛后,由于协方差矩阵自适应进化策略具有随机误差,其生成的标注中存在噪声,预训练后的模型难以回归准确的采样分布。本发明提出一种包括姿态解码网络和物理模拟分支的二分支解码器,用于辅助编码器训练得到准确的参数。其中姿态解码网络具有4层全连接层,从目标姿态中回归模拟后的人体姿态;物理模拟分支也接收目标姿态,经过仿真后获得模拟姿态。由于物理模拟分支不可微,其获得的模拟姿态作为监督,作用于姿态解码网络估计得到的人体姿态上,促使姿态解码网络回归得到与物理仿真相同的结果。其损失函数为:
[0021][0022]
其中,为姿态解码网络回归得到的人体姿态,和j
t
分别为回归得到的人体姿态和模拟人体姿态通过前向运动学获取的关节位置,‖
·
‖2为二范数。
[0023]
此外,为了让编码器回归正确的分布,重建约束进一步被用于约束估计得到的人体姿态:
[0024][0025]
其中是参考姿态通过前向运动学获取的关节点位置。
[0026]
为了避免网络过拟合,正则项为:
[0027][0028]
其中φ为网络参数。加入二分支解码器后完整的损失函数为:
[0029][0030]
该过程中kullback-leibler散度损失的权重系数λ降低为0.2;训练网络直至再次收敛。将训练完成的编码器及其参数取出,作为采样分布先验。
[0031]
进一步地,步骤s4的具体方法包括:
[0032]
s41:利用现有人体二维姿态估计方法获取人体二维姿态;
[0033]
s42:根据场景网格,生成该场景的符号距离场,用于在优化拟合中构建接触约束;
[0034]
s43:构建优化方程和约束项,通过优化人体运动学骨架参数,使得在各约束项下损失最小。约束项整体公式为:
[0035][0036]
其中θ,分别为每帧人物的姿态参数、全局旋转和平移;β为人体骨骼长度参数;t为帧数。
[0037]
其中数据项公式为:
[0038][0039]
其中p,σ为二维姿态以及对应的置信度。为人体运动学模型关节点三维位置。π为相机投影,将三维关节点投影到二维平面。
[0040]
正则项为:
[0041][0042]
为了更好地重建人体与场景的交互,利用步骤s42中生成的可微分符号距离场进一步构建接触约束。预定义双脚脚趾和脚踝的关键点为接触点,使用预定义的关键点在符号距离场中采样,促使接触点接近场景表面:
[0043][0044]
其中为三维关键点的位置,sdf为采样操作。为了使该方法符合空中运动,加入了germa-mcclure误差函数ρ,从而降低远离场景网格的关键点的权重。通过优化上述方程,最终可得到参考姿态
[0045]
进一步地,步骤s5的具体方法包括:
[0046]
s51:从视频的第一帧开始实现基于神经运动控制的人体运动捕捉。使用人体参考运动的第一帧和第二帧姿态进行差分,以获取得到的角速度和第一帧的姿态对物理角色进行初始化。
[0047]
s52:从人体参考运动中取出下一帧参考姿态,将物理角色当前状态和参考姿态送入训练好的分布先验估计采样分布;
[0048]
s53:从估计分布中采样k个参考姿态的修正值,与估计输入的参考姿态相加后构成目标姿态;
[0049]
s54:使用物理引擎在当前物理角色的状态下,依次仿真每个目标姿态;
[0050]
s55:使用运动一致性损失评价采样结果。其中,模拟姿态与参考姿态的损失函数用于衡量姿态和关节位置的一致性:
[0051][0052]
人物的动态特性对于基于物理的动作捕捉尤其重要,因而引入动态损失用于衡量速度一致性:
[0053][0054]
其中和为关节角速度和线速度。
[0055]
为了保持物理角色的平衡,加入了平衡项来调节质心:
[0056][0057]
其中,dm=j
m-j
com
|
z=0
,为肢体末端关节点到质心的二维向量;j
com
为质心的线速度;m为末端的数量。
[0058]
此外,进一步使用图像特征对采样质量进行评估,加入图像层面的损失函数,增强遮挡情景下的鲁棒性:
[0059][0060]
基于神经运动控制的运动捕捉的整体损失函数为:
[0061][0062]
s56:所有结果中损失最小的仿真结果被用作下一帧物理角色的起始状态;重复步骤s52-步骤s56,直至运动序列的所有视频帧处理完成;
[0063]
s57:运动序列的所有帧中具有最小运动损失的仿真结果作为重建结果输出。
[0064]
与现有技术相比,本发明的有益效果为:
[0065]
1.本发明所提出的基于神经运动控制的人体捕捉框架使用物理引擎提供硬物理约束,避免了传统人体运动捕捉中的穿模、抖动等物理不真实的现象。2.本发明所提出的采样分布先验及其训练方式,避免了传统基于协方差矩阵自适应优化策略耗时的分布优化过程,消除了估计得到的分布中的随机误差。3.本发明所提出的接触约束能够在具有复杂地形场景的环境中获取准确的人体参考运动,进一步使用神经运动控制实现在复杂地形上的人体运动捕捉。4.本方法输入仅为单视角rgb视频,采集方便,成本较低,易于实现。
附图说明
[0066]
图1是本发明的流程图;
[0067]
图2是目标姿态分布先验训练框架示意图;
[0068]
图3是基于神经运动控制的人体运动捕捉框架图;
[0069]
图4是不同身材比例物理人体建模结果图;
[0070]
图5是人体姿态重投影结果及三维可视化结果图。
具体实施方式
[0071]
下面结合附图和具体实施方式,进一步阐明本发明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。需要说明的是,下面描述中使用的词语“前”、“后”、“左”、“右”、“上”和“下”指的是附图中的方向,词语“内”和“外”分别指的是朝向或远离特定部件几何中心的方向。
[0072]
以下结合实施例和说明书附图,详细说明本发明的实施过程。
[0073]
本实施例的一种基于神经运动控制的高物理真实感人体运动捕捉方法,包括如下步骤:
[0074]
(一)不同体型人体模型构建
[0075]
(1)根据现有人体运动学数据集提供的人体骨骼长度和预定义的运动学树构建不同体型的人体模型,其结果如图4所示。
[0076]
(二)采样分布先验训练
[0077]
(2)利用现有人体运动学数据集进行采样分布先验训练。从数据集中依次选取t-1时刻、t时刻连续的两帧人体姿态,通过对选取姿态进行差分,计算t-1时刻的人体关节速度,进而将t-1时刻的人体姿态和速度作为物理角色的状态,以第t帧的人体姿态作为参考姿态。构建标准正态分布作为初始采样分布,将对应的物理角色状态、参考姿态以及初始分布采样的结果进行物理仿真,使用协方差矩阵自适应策略优化初始分布,优化完成的分布依次处理完数据集内所有数据,所估计分布即为用于预训练网络参数的监督数据;由于差分获取的结果与现实仿真有偏差,为了增强数据的真实性,在物理角色状态中加
入随机噪声来模拟真实情况。
[0078]
(3)完成人体模型和数据准备后,构建如图2所示的神经网络训练框架,使用生成的数据对分布编码神经网络进行预训练。将 t时刻的参考姿态和t-1时刻的角色物理状态输入分布编码神经网络,得到估计的采样分布使用自适应进化策略优化得到的分布对编码器,即分布编码神经网络进行监督。使用 kullback-leibler散度作为损失函数对分布编码神经网络进行预训练:
[0079][0080]
其中是由协方差矩阵自适应进化策略得到的分布,为是由编码网络估计得到的分布,kl为 kullback-leibler散度。损失收敛时完成预训练
[0081]
(4)完成预训练后,由于协方差矩阵自适应进化策略具有随机误差,引入二分支解码器来优化网络参数网络。如图2右上支路所示,姿态解码网络从目标姿态中估计人体物理姿态;如图2右下支路所示,物理模拟分支也接收目标姿态,经过仿真后获得模拟状态,去除关节点速度,得到人体模拟姿态q
t
。由于物理模拟分支不可微,其获得的模拟姿态作为监督,作用于姿态解码器估计得到的人体姿态上,促使姿态解码网络回归得到与物理仿真相同的结果,其损失函数为:
[0082][0083]
其中,为姿态解码网络回归得到的人体姿态,和j
t
分别为回归得到的人体姿态和模拟人体姿态通过前向运动学获取的关节位置,‖
·
‖2为二范数。
[0084]
此外,为了让编码器回归正确的分布,重建约束进一步被用于约束估计得到的人体姿态:
[0085][0086]
其中是参考姿态通过前向运动学获取的关节点位置。
[0087]
加入正则项以避免网络出现过拟合:
[0088][0089]
其中φ为网络参数。加入二分支解码器后完整的损失函数为:
[0090][0091]
本实施例中,kullback-leibler散度损失的权重系数λ在引入二分支解码器训练的阶段降低为0.2;训练网络直至再次收敛。将训练完成的编码器及其参数取出,作为采样分布先验。
[0092]
(三)人体运动学重建
[0093]
(5)利用现有人体二维姿态估计方法。输入单视角视频,每帧即为人体rgb图像,使用现有人体二维姿态估计方法,检测环境中的人体边界框,继而检测每个人体区域的姿态,获取人体二维姿态。
[0094]
(6)根据场景网格,生成该场景的符号距离场,用于在优化拟合中构建接触约束,即图1中的场景接触约束。
[0095]
(7)完成输入准备后,进行如图1所示的物理角色建模过程。构建优化方程和约束项,通过优化人体运动学骨架参数,使得在各约束项下损失最小。本实施例中的约束项整体公式为:
[0096][0097]
其中θ,分别为每帧人物的姿态参数、全局旋转和平移;β为人体骨骼长度参数;t为帧数。
[0098]
其中数据项公式为:
[0099][0100]
其中p,σ为步骤(5)中估计的人体二维姿态以及对应的置信度。为人体运动学模型关节点三维位置。π为相机投影,将三维关节点投影到二维平面。
[0101]
正则项为:
[0102][0103]
为了更好地重建人体与场景的交互,利用(6)中生成的可微分符号距离场进一步构建接触约束。预定义双脚脚趾和脚踝的关键点为接触点,使用预定义的关键点在符号距离场中采样,促使接触点接近场景表面:
[0104][0105]
其中为三维关键点的位置,sdf为采样操作。为了使该方法符合空中运动,加入了germa-mcclure误差函数ρ,从而降低远离场景网格的关键点的权重。通过优化上述方程,最终可得到参考姿态所有帧的姿态通过上述过程即可得到人体参考运动即完成物理角色建模。
[0106]
(四)基于神经运动控制的人体运动捕捉
[0107]
(8)从视频的第一帧开始实现基于神经运动控制的人体运动捕捉。使用人体参考运动的第一帧和第二帧姿态进行差分,以获取得到的角速度和第一帧的姿态对物理角色进行初始化,即可得到第一帧的物理角色状态。
[0108]
(9)基于第t-1帧的物理角色状态和第t帧的参考姿态,本发明利用训练好的采样分布先验,实现神经运动控制,获得第t帧的物理角色状态。
[0109]
(10)如图3所示,将物理角色当前状态即t-1时刻物理状态,以及从人体参考运动序列中取出的下一帧即t时刻参考姿态,送入训练好的分布先验神经网络,估计采样分布q(μ
t

t
);对其进行k次采样,得到参考姿态的修正值将其分别与人体参考姿态相加构成k个人体目标姿态,即即图3中的目标姿态修正采样过程;将k个人体目标姿态输入物理引擎,在当前物理角色的状态下,依次仿真每个目标姿态,即图1
中的物理仿真过程。
[0110]
(11)在仿真结果中加入由人体二维姿态得到的运动-动力学约束;对仿真结果进行评估,样本的质量由人物水平和图像水平的损失函数进行评价,选取损失函数值最小的仿真结果,作为t时刻物理角色状态。可视化输出物理角色如图5所示。在本实例实施过程中,使用运动一致性损失评价采样结果。其中,模拟姿态与参考姿态的损失函数用于衡量姿态和关节位置的一致性:
[0111][0112]
人物的动态特性对于基于物理的动作捕捉尤其重要,因而引入动态损失用于衡量速度一致性:
[0113][0114]
其中和为关节角速度和线速度。
[0115]
为了保持物理角色的平衡,加入了平衡项来调节质心:
[0116][0117]
其中,dm=j
m-j
com
|
z=0
,为肢体末端关节点到质心的二维向量;j
com
为质心的线速度;m为末端的数量。
[0118]
此外,进一步使用图像特征对采样质量进行评估,加入图像层面的损失函数,增强遮挡情景下的鲁棒性:
[0119][0120]
基于神经运动控制的运动捕捉的整体损失函数为:
[0121][0122]
以上显示和描述了本发明的基本原理、主要特征和优点。本领域的技术人员应该了解,本发明不受上述具体实施例的限制,上述具体实施例和说明书中的描述只是为了进一步说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由权利要求书及其等效物界定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1