基于深度卷积自编码器的人体运动风格转换研究
2018-02-15昝晓菲
昝晓菲
(北京交通大学 计算机与信息技术学院,北京 100044)
1 引言
随着虚拟现实及动画产业的高速发展,人体运动捕捉技术扮演着越来越重要的角色。然而,由于人体运动捕捉设备价格昂贵、设备的使用对场地及人员的要求过高等因素,人体运动捕捉数据的获取是一件成本很大、门槛很高的事情。这大大制约了相关产业的发展。人体运动捕捉数据的重用技术则是解决运动数据获取成本较高的有效手段。通过人体运动捕捉数据的重用技术,可以利用运动数据库中已经存在的运动捕捉数据生成逼真的新的指定运动序列,从而提高数据的利用率,摆脱运动捕捉设备的限制。
在动画制作中,虚拟角色的运动往往需要具有鲜明的风格。但是,传统的人体运动捕捉技术很难满足众多的人体运动风格需求;如果依靠动画师进行人工处理,这项工作也十分繁琐,需要耗费大量的精力。
本文所研究的人体运动风格转换这一运动数据重用技术,可以通过计算机自动地将一段普通的运动序列转换为具有指定的鲜明运动风格的新运动。例如,把一段正常行走的运动序列转换成具有垂头丧气行走风格的运动序列。人体运动非常复杂,人体运动捕捉数据由大量的骨骼关节数据组成,这些对生成自然且符合期望的新运动带来了很大的挑战。
本文将功能强大的深度学习网络应用到人体运动数据重用领域,构建出一个基于深度卷积自编码器的模型来解决人体运动风格转换问题。
2 相关工作
2.1 人体运动合成
在人体运动合成领域,Kovar等[1]最早提出运动图的合成方法。运动图是由大量的运动数据生成的表示运动数据之间相关关系的一种数据结构。根据用户的需求可以在所构造的运动图中搜索最优的运动路径,最后生成具有独特风格的新运动。但是,这类方法容易产生脚步滑动、运动不自然等问题。参数化的合成方法可以有效地解决这些问题。Kwon[2]等将运动速度、加速度、落脚点等因素构造为参数,添加到合成模型中。通过这样的控制可以使新合成的运动大大减少脚步滑动、漂移等问题。Min等[3]使用主成分分析法对运动数据进行降维,得到与人体运动紧密相关的低维参数,然后通过对低维参数的修改达到合成的目的,最后将处理后的数据恢复到原来的空间。
2.2 深度学习模型
近年来,各种深度学习模型的出现对图像处理及自然语言处理等领域的发展有很大的推动作用。深度学习模型重要的优点之一就是它可以自动地从数据集中学习到数据的特征,这为数据的编辑和处理提供了新的研究方向。Gatys等[4]利用深度网络模型分别在隐层提取图像的风格特征和内容特征,然后通过在隐层的编辑处理,最后可以得到保持原来图像的内容但风格不同的新图像。在运动数据重用领域,Taylor等[5]构建出一个受限玻尔兹曼机的模型,通过提取运动的相关参数来进行运动混合,以生成新的运动。Holden等[6]提出一种基于深度网络框架的模型,该方法通过对大量运动数据的学习得到一个关于数据集的运动特征空间,在特征空间进行特征编辑最后达到运动合成的目的。
3 运动流形的构建
运动流形是大量有效的自然运动所构成的一个子空间,它也是由大量人体运动数据提取构造出的特征空间。在本文中,运动流形由深度卷积自编码器的隐层单元所表示。该隐层单元可以表示运动数据时序与姿态的高度相关性。经此深度卷积自编码器的隐层单元处理重新生成的运动序列具有生动自然、流畅逼真的特点。
3.1 数据的预处理
本文使用的人体运动捕捉数据来自于卡内基梅隆大学运动捕捉数据库(CMU Motion Capture Datebase)[7]。该数据库共有2605组人体运动序列。其运动数据所对应的人体骨骼架构如图1所示。为了处理方便,把原来120帧每秒的数据调整为60帧每秒,同时对所有的数据进行归一化处理。
图1 人体骨骼架构
3.2 深度卷积自编码器
为了得到运动的流形空间和提取运动数据的特征,本文构建了一个具有三个隐层的卷积自编码器[8]。自编码器的网络结构如图2所示。在此卷积网络中,网络的每一个隐层都表示了不同层次的运动流形。网络的L1、L2、L3隐层对应的滤波器的大小分别设置为3063、3064、30128。此卷积自编码器提供了前向操作和反向操作。前向操作就是自编码器的编码过程,把输入的运动序列X编码成在隐层空间的值H;反向操作就是自编码器的解码过程,把在隐层的值H进行解码生成运动序列。
图2 深度卷积自编码器的网络结构
在对网络的每一层进行前向操作时,首先对输入的数据进行卷积操作;然后再用一维最大池化方法来进行时域约减;最后,再对约减后的数据进行非线性映射操作ReLu[9]。这样,就得到了运动数据在隐层的运动流形。
对于第k层网络,给定卷积操作*、最大池化操作Ψ、权重矩阵Wk和偏置bk,前向操作的定义如下式所示:
Φk(X)=ReLu(Ψ(X*Wk+bk))
(1)
其中,矩阵在对每一层进行反向操作时,只需要把前向操作反转即可。需要特别注意的是反池化操作。在单独训练每一层网络时,反池化操作就是在每个隐层单元所对应的两个单元中随机选取一个赋予池化值,然后把另一个单元置零;在最后进行网络的微调训练阶段或者是使用网络生成新的运动序列时,反池化操作和平均池化一样将两个对应的单元都设为池化值。这样,新生成的运动序列会更加流畅。
(2)
权重矩阵Kk初始化[10]为一些小的数值,偏置bk初始化为0。
3.3 网络的训练
网络模型的训练通过输入的运动序列X经过前向操作和反向操作来完成。训练分为两个阶段。首先对网络的每一层进行单独训练,然后再对整个网络进行微调训练。网络训练可以视为一个最优化问题,通过最小化下面的损失函数可以求得网络对应的参数θ={W,b}。
(3)
在这个式子中,第一项度量的是生成运动序列与输入运动序列误差的平方;第二项是对网络参数数量的限制,用来保证尽可能使用最少数目的参数来构建网络。
在使用CMU运动捕捉数据库的2605组运动序列完成网络的训练后[11],这些滤波器可以表示运动库中各种运动的时序与姿态的强相关特征。网络中隐层的层级越深,得到的这种运动特征就越抽象、越具有概括性。
4 运动风格转换
在进行运动风格转换时,需要输入一段具有鲜明运动风格的运动序列,即运动风格序列;同时,还需要输入期望它的运动风格发生转换的序列,即运动内容序列。在进行运动风格转换之后,新生成的运动序列同时具有前者的运动风格和后者的运动内容。因此,在转换时需要先使用训练好的深度卷积自编码器把运动内容序列的内容特征和运动风格序列的风格特征分别提取出来;然后,在深度卷积自编码器的隐层单元对随机初始化生成的运动数据建立约束进行训练;最后,再通过反向操作输出风格转换后的新运动序列。
4.1 运动内容特征和运动风格特征
根据深度卷积网络的特性,运动序列的内容特征可以定义为运动序列在深度卷积网络中的隐层值。由于池化操作减小了运动数据在时域上的分辨率,所以层级越浅的隐层对运动内容的完成性的保持就越好。由于网络的层级越深,隐层值所表达的内容就越抽象。所以,层级越深对运动风格的概括性就越好。运动序列的风格特征具体可以使用Gram矩阵来计算。
利用训练好的深度卷积自编码器,可以分别提取运动内容序列的内容特征和运动风格序列的风格特征。根据网络层级与特征的关系,本文使用深度卷积自编码器的L1隐层也就是最浅的隐层来提取运动序列的内容特征,使用L3隐层也就是最深的隐层来提取运动序列的风格特征。这样会得到更为准确的内容及风格特征。
4.2 约束的建立
对运动风格转换建立的约束包括运动内容约束和运动风格约束两个部分。首先,为了避免生成的转换后的运动序列偏向于运动内容或者是偏向于运动风格,在网络的L2隐层利用白噪声初始化得到得隐层值Ht。网络最后输出的转换后的运动序列就是由Ht通过反向操作生成的。对于运动内容约束,即是Ht在L1隐层的值与运动内容序列在L1隐层的值建立的约束。内容约束的定义如下:
(4)
对于风格约束,即是Ht在L3隐层的值与运动风格序列在L3隐层的值建立的约束。风格约束的定义如下:
(5)
其中,Φ3(S)是输入的运动风格序列由式(1)进行三次前向操作传到网络L3隐层的值,Φ3(Ht)是由网络L2隐层的初始值Ht由式(1)进行一次前向操作传到网络L3隐层的值。函数G用来计算格莱姆矩阵,表示为隐层单元的内积。函数G的定义如下式所示:
(6)
其中,H是网络隐层单元的值。
为了进行运动风格转换,本文将式(4)中的运动内容约束和式(5)中的运动风格约束合并成整体转换约束进行训练。这样,通过不断变换L2隐层值Ht使整体转换约束达到最小。最后,可以得到使整体转换约束最小时对应的Ht。把Ht进行反向操作就可以得到转换后的新运动序列。整体转换约束定义为:
Ltranster=cLcontent+sLstyle
(7)
其中,参数c和s是约束系数,用来调节运动内容和运动风格的相对重要性。在本文中,c和s分别设置为1.00和0.01。
5 实验结果与分析
本文的目标是通过深度卷积自编码器,在运动内容序列的基础上生成具有另一种风格的新的运动序列。这段新的运动序列同时具有原来的运动内容和指定的运动风格。例如,输入一段具有老人行走风格的运动序列S作为运动风格序列,再输入另一段普通行走的运动序列C作为运动内容序列。经过深度卷积自编码器处理,可以把普通行走的运动序列C转换成也具有老人行走风格的新运动序列T。
实验中,分别使用了老人行走风格的运动序列、僵尸行走风格的运动序列、沮丧行走风格的运动序列等分别作为运动风格序列与普通运动序列相结合,把没有鲜明风格的普通运动序列转换成了具有不同鲜明风格的新运动序列。部分实验结果如图3、图4、图5所示。
(a) (b)图3 老人行走风格转换
(a) (b)图4 僵尸行走风格转换
(a) (b)图5 沮丧行走风格转换
图3(a)是具有老人行走风格的运动序列,图中的动画角色以佝偻的姿态慢慢行走;将图3(b)左侧普通的运动序列进行对应的转换后,生成的图3(b)右侧转换后的运动序列同样也具有了老人行走的运动风格。图4(a)是具有僵尸行走风格的运动序列,图中的动画角色手臂伸直、走路摇摆,将图4(b)右侧普通的运动序列进行对应的风格转换后,生成的图4(b)左侧转换后的运动序列同样也具有僵尸行走风格。图5(a)是具有沮丧风格的运动序列,图中的角色垂头丧气地行走着,将图5(b)右侧的普通运动序列进行对应的风格转换后,生成的图5(b)左侧转换后的运动序列同样也具有明显的沮丧风格。
风格转换后的运动序列具有了新的运动风格,同时保留着原来的运动内容,比如运动的类型和运动轨迹。但是,这些运动内容也会发生一些微小的变化。这是因为运动风格的改变会对运动的类型和轨迹带来影响。具体来说,运动步伐的大小和频率也是运动风格的一部分,它们的改变会对运动类型和运动轨迹有一定影响。可以通过调节式(7)中c和s的相对大小来调节转换后的运动序列,通过调节可以使它偏向于特定的运动风格或是特定的运动内容。
6 结论
本文将近几年发展迅猛的深度学习技术应用到人体运动捕捉数据重用领域,提出了基于深度卷积自编码器的运动风格转换模型。该模型可以有效地实现对运动序列的运动风格的转换。不同于传统的人体运动捕捉数据重用技术,该模型在操作时无需对运动数据进行大量的人工处理,具有很高的工作效率。另外,它不仅具有良好的转换效果,该模型还有着较强的泛化能力。未来将考虑把此模型推广到视频人体运动研究领域。