基于卷积自编码器和流形学习人体运动编辑方法与流程

文档序号:16214461发布日期:2018-12-08 08:10阅读:312来源:国知局
基于卷积自编码器和流形学习人体运动编辑方法与流程
本发明属于计算机动画领域,尤其涉及一种卷积自编码器和流形学习相结合的人体运动编辑方法。
背景技术
人体运动捕捉数据是通过运动捕捉设备采集得到,其作为一种新型的多媒体数据,可以记录实际物体的事件并将其转换为可用的数学参数,并且能够记录人体真实的运动轨迹,具有精度高,质量好的特点,这种数据已经广泛的应用在动画制作、机器人控制、医疗技术、智能人机交互、智能视频监控、虚拟现实、三维游戏、影视特效等众多领域。随着运动捕捉数据库中人体运动数据的不断增长,运动数据再编辑可以更好的理解与描述运动的过程,有利于对已有的运动捕捉数据进行管理与重用。但是由于运动捕捉数据采样频率高,数据量庞大等因素,在一定程度上制约了运动捕捉数据的有效利用,针对高维,冗余的人体运动数据,如何获得有效的运动已成为当前研究的热点。面对以上的问题,研究人员发现一种运动流形的技术可以有效的解决这个问题。运动流形通常是相对于数据处理任务来定义的,目的是为了让运动数据在有效的子空间中展现出好的效果。最近几年,卷积神经网络不仅在图像分类领域取得了很大的成功,还被用于人体姿态估计、语音情感识别、人脸识别等任务中,我们的工作是将这些技术应用在运动数据学习运动流形的领域。为了克服对大量数据预处理的缺点,holden等人针对cmu运动捕获数据库提出了利用卷积自编码器学习运动流形的方法,但是这种方法不能保证诸如双脚对地面接触和关节长度等条件的限制。技术实现要素:本发明为解决上述技术问题,提供一种基于卷积自编码器和流形学习相结合的人体运动编辑方法。该方法包括训练模型的步骤及测试模型的步骤:训练模型的步骤包括:s1:输入一类运动捕捉数据,对其进行预处理和训练,进行运动数据的归一化得到可以用来进行网络训练的数据;s2:建立卷积自编码器网络模型,将归一化后的运动数据进行编码、解码、训练,最终在卷积自编码器的隐藏单元中构造出运动流形;s3:在隐藏单元中加入位置约束、骨长度约束、轨迹约束;s4:在建立的网络中选择选择激活函数的参数和正则化参数对应的mse值最小的参数,以此参数构建网络模型;测试模型的步骤包括:s5:将四种腐蚀后的运动数据:即噪声数据、滑步数据,缺失数据及错误数据,输入到训练好的模型中,以测试四类被腐蚀的数据是否能得到良好的修复。与现有的技术相比,本发明具有以下有益技术效果:1)本发明不需要为获得训练数据,手动的对运动数据进行分割,对齐处理;2)本发明不需要为获取有效的运动数据而进行复杂过程;3)本发明没有数据集的要求,可以扩展到大量的数据集,进行并行的处理;4)本发明不仅可以避免运动数据的过拟合的现象,保持动作的姿态,而且可以展现出符合人体惯性的动作。附图说明图1为本发明基于卷积自编码器和运动流形的人体运动编辑算法整体框架图;图2为本发明中卷积自编码器的内部网络结构;图3为本方法中四类腐蚀数据在此模型上的应用;图4为本方法中四类腐蚀的数据的第一类数据,对恢复含有随机噪声的运动数据的处理,四种方法的效果对比图;其中每一幅小图中的三个人物分别代表:左边是随机添加噪声的被破坏掉的运动数据;中间人物是左边通过运动流形网络模型投影出来的运动;右边是归一化后的运动。图中分别展示了(a)上楼梯的动作、(b)坐的动作、(c)后退的动作,三种运动的动画效果图。方框标注代表处理后的动作与归一化运动不同的区域;图5为本方法中四类腐蚀的数据的第二类数据,运动数据中存在滑步现象的运动的处理,四种方法的效果对比图;其中每一幅小图中的三个人物分别代表:左边人物是去除双脚的约束;中间是左边人物通过运动流形网络模型投影出来的运动;右边是归一化后的运动。图上分别展示了(a)僵尸走、(b)向前踢腿、(c)跳舞,三种运动的动画效果图。方框标注代表处理后的动作与归一化运动不同的区域;图6为本方法中四类腐蚀的数据的第三类数据,对修复关节缺失运动数据的处理,四种方法的效果对比图;其中每一幅小图中的三个人物分别代表:左边是左侧胳膊多出一段数据;中间人物是左边通过运动流形投影出来的运动;右边是归一化后的运动。图上分别展示了(a)拍球、(b)蛙泳、(c)打拳,三种运动的动画效果图。方框标注代表处理后的动作与归一化运动不同的区域;图7为本方法中四类腐蚀的数据的第四类数据,对kinect捕捉到的错误运动数据的处理,四种方法的效果对比图;。其中每一幅小图中的三个人物分别代表:左边是kinect捕捉出来错误的动作;中间人物是左边通过运动流形投影出来的运动;右边是归一化后的运动。方框标注代表处理后的动作与归一化运动不同的区域;图8参数的确定。(a)迭代次数的确定。(b)激活函数及正则化的确定。具体实施方式以下结合附图和具体的实施方式对本发明作进一步的说明。如图1所示,一种基于卷积自编码器和流形学习人体运动编辑方法。该方法包括训练模型及测试模型的步骤:训练模型的步骤:s1:输入收集的数据库中的运动捕捉数据,对其进行预处理和训练,进行运动数据的归一化,得到可以用来进行网络训练的数据;s2:建立卷积自编码器网络模型,将归一化后的运动数据进行编码、解码、训练,最终在卷积自编码器的隐藏单元中构造出运动流形;s3:在隐藏单元中加入位置约束、骨长度约束、轨迹约束;s4:在建立的网络中选择选择激活函数的参数和正则化参数对应的mse值最小的参数,并以此参数构建网络模型;测试模型的步骤:s5:将四种腐蚀后的运动数据:即噪声数据、滑步数据,缺失数据、错误数据,输入到训练好的模型中,以测试四类被腐蚀的数据是否能得到良好的修复。以下对本发明中出现的参数进行解释说明:本发明中有四个参数需要确定,分别是隐藏单元的个数、迭代的次数、激活函数的参数、正则化的参数。首先我们设置隐藏单元的个数为256个进行训练,在迭代10次以后曲线慢慢收敛,mse(平方误差)值最小慢慢收敛在0.01附近。mse值越小说明训练结果的预测值与真实值越接近,模型效果越好。然后固定隐藏单元为256,迭代次数为10,改变激活函数参数和正则化的参数,在不同的参数下进行训练,发现了卷积自动编码器(cae)在不同参数下的mse的值,在取以下两个点的参数时,误差是最小的,因此我们选择这两组进行分别训练:如图8所示,即第一组为迭代次数10,激活函数参数设置为0.01,正则化参数0.2,此为本发明的方法1参数设置(ours1);第二组为迭代次数10,激活函数参数设置为0.25,正则化参数0.25,此为本发明的方法2参数设置(ours2)。如图2所示,基于卷积自编码器和运动流形相结合的方法对人体运动数据进行编辑中,网络模型的建立需要以下步骤:首先将腐蚀后的运动数据输入到训练好的模型中,在通过此网络模型后,输出处理完毕的数据,并与归一化后的数据进行对比。在以上的步骤中,本发明的网络模型要通过编码、解码、训练的过程,为了让克服隐藏单元的编辑范围过大的情况,使用了位置约束,轨迹约束,骨长度约束。具体步骤如下:在本发明中,卷积自动编码器对于每个滤波器在时域上独立地进行一维卷积。网络提供了一个正向操作φ(x)(即编码)和反向操作φ+(h)(即解码)。正向操作接收可见单元空间中的输入向量x,并在隐藏的单元空间中输出编码值h。编码:φ(x)=prelu(ψ(x*w0+b0))(1)其中(*)表示卷积运算,表示权重矩阵,w0为时间滤波器宽度25,m为自动编码层中隐藏单元的个数256,b0∈rm表示偏置,ψ表示最大池操作,prelu是参数化修正线性单元,公式为其中a为参数。之所以选用prelu作为激活函数,而不是普通的tanh,sigmoid,relu,是因为相比于tanh存在过饱和的现象,prelu收敛速度快;而sigmoid则是要通过复杂的指数运算才可以得到激活值,prelu就相对简单;relu和prelu虽然都具有没有饱和区,收敛快,计算起来简单的特点,但是relu在训练的过程中由于神经元比较脆弱容易失去作用。例如当relu神经元接收一个非常大的梯度数据流之后,这个神经元将有可能对再输入的任何数据都没了反映。另一方面如果输入的变量更新的很快,没有找到最佳的值,此时就会进入小于零的分段,导致梯度变为零,不能继续更新。所以relu需要仔细的控制学习率,如果控制不好,部分神经元就会进入死区,而且导致输出的均指也不是零。由文献可知,prelu要比relu的效果要好,因此实验中我们选择prelu。解码:输入为隐藏单元并由逆池操作ψ+,减去偏置b0和权重矩阵进行卷积。是权重矩阵w0反映在时间轴上。在编码的过程中,隐藏单元中的每一个单元将被汇集,在去池化过程中,每一个单元在可见单元中生成两个单元,并且这个操作是单向的,我们只能使用近似值,即逆最大池操作,在训练时,逆池操作ψ+随机选择两个可见单元,把完整值分配给其中一个单元,另一个单元设置为零。滤波器的值w0,偏置b0初始化值为0。训练网络是为了再现编码和解码操作的一些输入x。因此,训练是一个优化问题。最小化关于网络参数的以下目标函数:在这个等式中,θ={w0,b0},第一个项表示平方误差,第二个项表示一个额外的稀疏项,确保网络参数的最小数目用于再现输入。常数a,这里设置为0.1。为了最小化这个函数,使用最常见的随机梯度下降法。从数据库输入随机元素x,并使用theano自动的计算更新的网络参数θ导数。利用自适应梯度下降算法来提高实验最终的训练速度和质量。为了避免过度拟合,使用了一个计算方便并且功能强大的正则化模型dropout。在隐含单元空间中应用约束:由于运动编辑的范围非常大,因此在隐藏单元中添加一些约束是有必要的,本发明使用了在角色动画中3种常见位置约束,骨长度约束和轨迹约束。位置约束:约束关节位置对于固定脚滑动作或引导角色的手抓住物体是必不可少的。给定隐藏单元空间h中的初始输入运动,计算违反位置的代价函数如下:vj'∈rn×2是人体坐标系中关节j的目标速度,wh∈rn是根关节的速度,有关节的地方的位置和速度,以及身体绕y轴的角速度。骨长度约束:由于本发明使用关节位置表示人体姿态,所以需要在相邻关节之间施加骨长度约束来保持身体的刚度。这种约束的代价函数可以写如下:其中b是人体的骨骼指数,是在坐标系i中,b两端关节重建的三维位置,lb是b骨骼的长度。轨迹约束:由于运动编辑中的运动可能不完全遵循所期望的轨迹。因此需要另外将运动精确地限制在某个轨迹上。这种约束目标函数可以写如下:自动编码器所产生的运动通过梯度下降在隐藏单元的空间中进行调整,直到总的约束收敛到一个阈值:通过最小化方程(8)和使用式子(3)将发现h′在可见单元空间中,我们可以限制连接到所需位置,同时保持各骨的刚度。本发明的有益技术效果可以通过以下实验进一步具体说明:实验条件:1)实验所用的运动数据集由cmu,hdm05,mhad三个大型数据库以及文献中捕获的一些小型内部数据组成。2)实验中的测试数据集是由训练数据集经过腐蚀之后获得;3)实验基于ubuntu16.04的系统,编程平台为python2.7,深度学习框架为theano;4)实验所用geforcegtx1080ti,内存是11g,处理器为英特尔corei7-8700,3.2ghzx12,内存为32g的服务器;5)实验中采用平方误差(mse)客观评价指标对实验结果进行评价;6)实验中参数的设置是通过多次实验选择最小的mse进行确定。实验内容:如图3所示,使用本发明提出的算法,分别对噪声数据、滑步数据,缺失数据,错误数据,进行处理,同样使用其他两种方法(holden1和holden2)与本发明的两种方法(ours1和ours2)进行对比,并将数据集进行扩大。表格1-4展现了4种方法在运动数据处理之后的误差比较,分别是图4到图7对应的动画效果。为了比较直观地阅读表格,对表格中重建误差做了标记,加粗体的数值表示文献[1-2]方法的误差优于本发明的误差。表1.实验1的误差(‰)表2.实验2的误差(‰)表3.实验3的误差(‰)表4四种方法的误差比较结果holden1holden2ours1ours2误差(‰)11.1005.5224.7203.359实验结果分析:通过以上四个实验对运动数据的编辑,本发明的两种方法最大误差与最小误差相差很小,动画效果更加逼真自然,也证明了误差越小,模型的精度越高。由图4到图7以及表1到表4对比结果可以看出,在相同的运动数据库下,在处理运动去噪问题时,holden2的效果不好,误差在四种方法中也是最高的,本发明方法1产生的误差高于holden1的误差,但是本发明方法1的动画效果要优于holden1的效果,本发明方法2的误差是最低的,效果也是相比较好的。在运动的去滑步、数据的填充、修复错误的数据时,本发明的两种方法的误差远远低于文献中两种方法的误差,动画效果也是很自然的,因此把本发明的模型用在以上三个问题时效果更显著。在不同的运动数据库下,我们的方法对运动数据进行以上三种不同的编辑时,所得到的三类误差都在一个很小的范围内上下波动,说明本发明模型具有良好的鲁棒性。本发明holden1及holden2方法所涉及的参考文献为:[1]holdend,saitoj,komurat,etal.learningmotionmanifoldswithconvolutionalautoencoders[c]//siggraphasia2015technicalbriefs.acm,2015:18.[2]holdend,saitoj,komurat.adeeplearningframeworkforcharactermotionsynthesisandediting[j].acmtransactionsongraphics(tog),2016,35(4):138。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1