AI科技大本营

人工智能技术和产业社区

模拟狗狗的“魔鬼步伐”,比更真还更真

640?wx_fmt=gif


翻译 | 林椿眄

编辑 | 阿司匹林

出品 | AI科技大本营(公众号ID:rgznai100


闭上眼睛,回想一下,自家的狗狗是怎样走路的?

 

如果这难不倒你,那么再试着回忆下,它是怎样跑步的?和走路的步伐是一样的吗?

 

虽然只比人类多了两条腿,但是四足动物的“魔鬼步伐”却足以让人凌乱。要知道,在动画领域,想要创作一个四足动物的角色,绝对是劳心劳力的一件苦差事。

 

针对四足运动控制的问题,来自爱丁堡大学的团队研发了一种被称为“模式自适应神经网络”的新型神经网络架构,它可以通过学习实际的非结构化的运动数据,端到端地生成出自然的动画,整个过程无需用于相位或运动步态的标签,也无需对一组固定的权重值进行优化。整个研究使用 Unity3D / Tensorflow 完成开发。




这样逼真的模拟效果到底是如何实现的?我们现在就来一起解读下这篇论文。(论文地址:http://homepages.inf.ed.ac.uk/tkomura/dog.pdf


640?wx_fmt=png


摘要


四足动作包括各种步态,如行走,踱步,快步和慢跑,以及跳跃,坐姿,转身和打转等动作。应用现有的特性控制框架来解决四足运动问题需要大量的数据及繁琐的数据预处理,例如动作的标注和对齐等。在本文中,我们提出了一种新型的神经网络架构,称为模式自适应神经网络(Mode-Adaptive Neural Networks),用于控制动物的四足运动特性。


该系统由运动预测网络(motion prediction network)和门控网络(gating network)组成。给定前一帧的运动状态和用户提供的控制信号,运动预测网络会计算出当前每一帧的运动特性状态。而门控网络通过选择和混合专家权重(expert weigts)来动态地更新运动预测网络的权重值,每个专家权重都对应特定的动作。由于灵活性增加,系统可以通过非结构化运动捕捉数据,以端到端的方式,在各种非周期性/周期性操作中学习一致的专家权重。另外,用户也可以从标记不同步态中的相位这一复杂任务种解脱出来。我们证明,这种体系结构适合编码多模态的四足运动及实时动作响应的合成。


640?wx_fmt=png

图1.我们的方法所产生的四足动画结果。 我们展示了一些不同的四足动作模式,从左往右依次是坐姿,转圈,快步,踱步,慢跑,跳跃和站立。 这些运动步态不是逐一标记的,而是由运动速度的控制自然产生的。


简介


四足动画是计算机动画领域中未解决的关键问题之一。它与电脑游戏和电影等应用息息相关,同时也是机器人领域一个具有挑战性的话题。当制作四足动物动画时,动画师 (animator) 必须经过专门的训练才能设计各种复杂的动作。本质上,这种复杂性是来自于四足动物的多种运动形式。如图2所示,一些诸如行走,踱步,快步,慢跑,疾驰等运动模式,它们的躯干和四肢部分都随着运动而发生复杂的变化。


据我们所知,先前没有任何研究工作是基于数据驱动的方式来系统地构建四足运动控制器。造成这个困难原因是上面提到的复杂性,以及四足动物的运动数据采集,毕竟动物不会像人那样配合。因此,所捕获的数据通常缺乏结构化,所包含的随机动作并不是一个接一个地进行着。当使用这些非结构化数据设计动作特性控制器时,工程师需要手动或半自动地提取步态周期,通过数据转换将不连续的动作缝合在一起,并调整运动树及有限状态机的参数。


最近,基于神经网络的运动控制研究表明,使用明确的周期来为双足动物运动提供高质量动画的方法是可行的 [Holden et al. 2017]。但是,这种框架无法应用于四足动物的运动控制,因为无法定义单一阶段中四条腿在不同的脚步模式间的过渡步态。这也使得手动对四足运动的非结构化数据进行复杂的步态标记变得不切实际。


在本文中,我们提出了一种新型网络体系结构,称为模式自适应神经网络 (MANN)。它可以从大量的非结构化四足运动数据中学习一个运动控制器。该系统由运动预测网络和门控网络组成。给定前一帧的运动状态和用户提供的控制信号,运动预测网络会计算出当前每一帧的运动特性状态。而门控网络通过选择和混合专家权重来动态地更新运动预测网络的权重值,每个专家权重都对应特定的动作。


这个架构具有足够的灵活性,以便系统能够学习一致的专家权重值,来捕捉大量的周期/非周期行动动作数据。由于所捕获的非结构化四足运动数据必须将不同步态类型沿着时间轴对齐,因此,我们的框架能够大大缓解开发者进行复杂而繁琐的动作数据标记工作。此外,我们的模型不需要为不同步态给定单独标签,从而节省了数据预处理过程中对步态错位的处理时间。

640?wx_fmt=png

图2.生成不同四足运动模式下的足迹 [Huang et al. 2013]。 横条表示每条腿站立的阶段。 图像的右边表示步态周期中一系列的脚印。


这篇论文的贡献如下:

  • 我们构建了一个基于数据驱动的四足运动特性控制器,这种系统可以合成多种运动模式及其过渡状态的高质量动画。

  • 我们提出了一种新颖的、端到端的神经网络结构,它能够从非结构化的四足动作中捕捉数据,而不需要任何阶段和运动步态的标签。

  • 我们将所构建的四足运动特性控制器与现有的方法进行了全面地评估对比。

模型系统


我们的系统是一个时间序列模型,给定前一个帧的状态 x 和用户的控制信号,模型可以预测当前每一帧的运动特性状态 y。为了产生各种各样的周期性和非周期性的四足运动特性,我们提出了一种新型的神经网络,称为模式自适应神经网络的结构 MANN (如下图3所示,详见原文章节6)。当前每一帧的运动由运动预测网络得到 (如下图3右,详见原文第6.1节),其网络权重是通过一个门控结构的神经网络结构 (如下图3左,详见原文第6.2节) 来动态地计算获取。门控网络收到一个动作特征  ( x 的子集),并计算专家权重的混合系数 (图3),其中每一个权重都是为特定的动作训练而准备的。


为了准备训练所需的数据集,我们首先对狗的运动数据集进行预处理,并为这些数据添加标签 (详见原文第4节),然后准备网络的输入和输出向量 (详见原文第5节)。在训练期间,整个网络以端到端的方式进行训练 (详见原文第7节)。在运行期间,系统使用前一帧的运动状态和用户提供的控制信号,能够实时地展现当前每一帧中运动特性的动画 (详见原文第8节)。


640?wx_fmt=png

图3.由门控网络和运动预测网络组成的神经网络结构体系。门控网络以当前脚部末端速度,期望速度和动作向量作为输入。运动预测网络将前一帧的动作姿势和运动轨迹作为输入,并预测当前每一帧更新后的姿势和轨迹。

数据准备


为了后续研究的进行,这里我们介绍下动作捕捉和动作分类阶段所要用到的数据。


狗的动作捕捉。我们的动作捕捉数据由 30 分钟的非结构化的狗的动作捕捉数据组成,包括各种运动模式,如行走,踱步,快步和慢跑等,以及其他类型的动作,如坐着,站立,打转,躺着和跳跃。通过镜像,数据的大小增加了一倍。由于捕捉设施的限制,所有的运动数据仅在平坦的地形上捕捉。如图4所示,这是一个由 27 块骨头构成的骨架模型,它总共有 81 个自由度,非常适用于数据采集工作。

640?wx_fmt=png

 图4. 实验用到的构模型的骨架结构。它由 27 块骨头构成,总计 81 个自由度。


动作分类。首先,将动作类型分为运动,坐着,站着,打转,躺着,跳跃等等。在运行阶段,用户可以通过指定相应的标签来控制动作特性。这个过程是手动完成的,但想自动化实现这个过程也并不困难,因为这些动作类型中的每一种动作都具有独特性。关于动作数据的具体比率可以参见表1。


640?wx_fmt=png


表1. 狗的动作训练数据集的细分。这个数据集包含原始的和镜像得到的狗动作捕捉数据,这些都是未结构化的数据。


运动模式。在我们的论文中,我们专门研究四种运动模式的类型:行走,踱步,快步和慢跑。尽管我们的系统在运行时不需要运动模式的标签来控制角色,但我们分析了数据集中模式的分布。由于复杂的运动过渡状态和一些模棱两可的情况,将数据分类为不同的运动模式是一件相对困难的操作。首先,基于速度曲线,我们对运动模式进行大致的分类,然后手动地将它们归入相应的模式。最终,速度与其运动模式的可视化关系结果如图5所示。这种相关性与 Coros 等人在 2011 年提出的模型完美匹配。


四足动作控制的模式自适应神经网络模型


运动预测网络


运动预测网络表示为 Θ(·),它是一个简单的三层神经网络,接收字符 x的前一状态,并按照如下格式输出数据 y:


640?wx_fmt=png

 

其中网络 α 的参数由 α= {W0∈R^(h×n),W1∈R^(h×h),W2∈R^(m×h),b0∈R^h,b1∈R^h,b2∈R^m} 定义。此外,这里的 h 表示网络中隐藏层所用的单元数,我们的模型把它设为 512。网络的激活函数采用指数型的修正线性单元 (ReLU) [Clevert et al. 2015],其数学表达式如下:


640?wx_fmt=png

 

门控网络


门控网络表示为 Ω (·),它是一个三层的神经网络。基于给定的输入 x,它可以计算混合系数 ω,其数学表达式如下:


640?wx_fmt=png


 其中 x(hat) ∈R^19是 x 的子集,x 表示脚部末端速度,当前动作标量和期望动作速度的特性。σ (・) 是一个 softmax 算子,用于归一化输入以使得它们相加的和为1,这是为了进一步线性混合所必需的操作。


我们已经以多种不同的输入测试了我们的模型,理想的情况下,网络可以从输入中学习信息特征,尽管由于我们的数据量相对较少,这可能会导致我们的训练过程变得非常困难。但与此同时,我们观察到使用动作变量和期望值速度能够有助于提高动作特性的可控性和响应性。


训练


整个网络使用处理后的动作捕获数据,以端对端的方式进行训练。每个帧的输入 x 和 y 被堆叠成矩阵形式:X = [x1x2 ...],Y = [y1y2 ...]。我们使用它们的均值和标准差,对这些值进行平移和缩放操作,以便标准化数据。由于快步和慢跑的周期非常短,我们对这些动作的数据复制 11 次,这有助于增强我们模型的鲁棒性。


训练网络的目标是对于给定的一组输入 X,我们可以产生相应的输出变量 Y。这是一个典型的回归任务,目的是求取预测值和真实值之间的均方误差,该损失函数的数学表达式如下所示:


640?wx_fmt=png

 

借助 Tensorflow 深度学习框架,我们部署了模型的训练过程。我们使用 AdamWR 技术中的随机梯度下降算法,这是由 Loshchilov 和 Hutter 提出的能够自动计算损失函数关于 β 和 μ 导数的一种优化技术。正如 AdamWR 算法在优化过程中所做的正则化一样,我们使用两个参数 Ti 和 Tmult来控制学习率 η 和权重衰减率 λ 的下降和重启动,其初始值设置为 η = 1.0×10^-4和 λ = 2.5×10^-3。Ti 表示第i次运行/重新启动时的迭代总数,其初始值设为10。在每次重启动时,Ti 都乘上一个因子 Tmult = 2,即Ti + 1 = 2Ti。


我们总共进行150次迭代,因此重启动过程一共发生3次,分别在第11次,第31次和第71次迭代。在训练期间,我们使用大小为32的小批量数据反复迭代,每个批量中的训练样本都是随机选择的。我们使用 Dropout 技术,其保留概率设为0.7。 整个训练过程使用4或8个专家网络,在 NVIDIA GeForce GTX 970 GPU 上运行了 20 或 30 个小时。下图5显示了不同方法的学习曲线,请注意较高的运动质量并以一定意味着较低的训练损失和测试损失。

640?wx_fmt=png

图5. Vanilla neural network,PFNN 和 MANN 网络的学习曲线。

 实验结果及展望


在实验阶段,我们设置了不同的运动特性控制方案,在运行过程中交互式地查看不同运动特性控制的结果。我们通过与现有方法比较,来评估我们的系统在运动质量,足部滑动伪影,腿部僵硬度及运动响应等性能,评估结果如下表2,表3,表4所示。我们还进一步研究了专家的激活权重,并在运动期间抑制它分析专家权重的功能特性。

 

640?wx_fmt=png

表2. 使用 vanilla NN,PFNN 和 MANN 模型,以4或8个专家权重所得到的所有腿部真实的平均滑行数据。


640?wx_fmt=png

表3. 使用 vanilla NN,PFNN 和 MANN 模型,以4或8个专家权重所得到的所有腿部每个关节真实的平均角度更新数据。

640?wx_fmt=png

表4. 使用 vanilla NN,PFNN 和 MANN 模型,沿着预定义的不同曲线轨迹所得到的平均位置和角度偏差数据。

 

虽然实验结果展示了出色的性能及其系统优越性,但是我们的系统仍存在一些局限性,如时间序列模型的学习,稀疏数据库的构建以及数据库局限性等,我们将在未来的工作中进一步探讨这些问题。除了我们提出的方法以外,对于四足运动动画领域,还有几个有趣的方向值得进一步研究,如重定向不同的四足动物大小和形态,计算生成对抗运动的损失并用于优化,复杂的动态障碍环境下的四足运动控制研究等。

 

最后,附上 GitHub 链接:https://github.com/sebastianstarke/AI4Animation


——【完】——

关注AI科技大本营,获取更多精彩内容添。加小助手csdnai,加入读者群



没有更多推荐了,返回首页