← 返回

⚓{0x02} MANN导读

发布于
·
更新于

书接上回,PFNN是一种动态调整网络参数的一种motion生成模型,它在运行时根据当前的角色状态的Phase,来调整网络参数。调整方法是将Phase映射到一个周期样条函数,其输出为网络的参数。同时作者也提出,调整方法也可以是网络。那么这篇导读就是一个初步的尝试。


背景

MANN,全称“Mode-Adaptive Neural Networks for Quadruped Motion Control”。从标题上看,这是一种模式适应的生成网络,用于生成四足运动。 这篇文章和PFNN的主要不同是,动态更新网络参数的方法变为使用一个网络来调整,称为gating network。 其次研究对象变为了四足运动,相比于双足运动,其复杂度和多变性更大。由此引出了一些问题:

  • 如何定义四足运动的Phase?
  • gating network是何物?

首先是第一个问题,在PFNN中,Phase的定义是比较简单的,将左右脚着地的信号映射到0,  0.5π,  π,  1.5π,  2π0, \; 0.5\pi, \; \pi, \; 1.5\pi, \; 2\pi上,这么做的原因是PFNN的研究对象是human locomotion,更具体的说是很简单的人类移动。如果套用PFNN的方法,我们是很难定义四足动物的运动的Phase。比如MANN的具体对象是狼,它的locomotion的pattern相比于human locomotion更为复杂。如下图所示,同一类别的运动,四肢着地的方式就有四种不同(可能不止),同时某些肢体的着地时间还有交叠,这使得我们更难去定义Phase。

这里作者给出的方法是,用部分的肢体信息去隐式地表示Phase,让网络去学到这其中的”奥妙“。

对于第二个问题,其实比较好解释,如果还记得??中的Phase Function,那么这个gating network就是Phase Function。一样是在运行时调整生成网络的参数。如果小伙伴读过其它论文的话,有一个东西很像gating network,就是hyper network。

Overview

整个Pipeline如上图所示。其生成网络的输入与PFNN大同小异。同时使用了CCD full-body反向动力学来调整四肢与地面的接触,减少artifact。下面主要讲一下gating network

Gating Network

MANN 区别于 PFNN 的最主要不同点就是,计算 Blending 因子的方式。在这篇论文中,作者使用 gating network 来预测 blending 因子。相比于人为定义一个确定的函数计算,用网络的方式能生成更好地生成合适地 blending 因子。gating network 的输入xiR19,x^iR19x^i \in \mathbb{R}^{19}, \quad \hat{\mathbf{x}}_i \in \mathbb{R}^{19}是生成网络输入的一个子集,包括

  • tiaR6,t^iaR6t^a_i \in \mathbb{R}^6, \quad \hat{\mathbf{t}}_i^a \in \mathbb{R}^6, 当前帧的动作类型(取路径窗口的中点)
  • tivR1,t^iv^R1t^i v \in \mathbb{R}^1, \quad \hat{\mathbf{t}}_i^{\hat{v}} \in \mathbb{R}^1, 当前帧的期望速度大小(取路径窗口的中点)
  • j(i,foot)vR3×4,j^(i,foot)vR3×4j^{(i, \text{foot})} v \in \mathbb{R}^{3 \times 4}, \quad \hat{\mathbf{j}}^v_{(i, \text{foot})} \in \mathbb{R}^{3 \times 4}, 四只脚的速度

作者还尝试过向 gating network 中输入整个生成网络的输入 x,四脚的位置,或者是四脚的位置 速度朝向。发现这些都能分别生成不错的结果。其中的原因可能是因为,接触点的速度和 Phase 之间具有很强的关联。

而它的的输出就是我们在 PFNN 中详细介绍过的 blending 因子了,它会将专家权重αi\alpha_i进行加权求和,得到最终用于生成动作的网络

总结

通过运行作者release的源码可以感觉的到,狼的运动的效果是很不错的。

GitHub

GitHub - sebastianstarke/AI4Animation: Bringing Characters to Life with Computer Brains in Unity

Bringing Characters to Life with Computer Brains in Unity - sebastianstarke/AI4Animation

github.com
Bringing Characters to Life with Computer Brains in Unity - sebastianstarke/AI4Animation

这篇文章和 PFNN 在生成动作的思想上并没有很大的不同,同时 gating network + motion prediction network 的架构的引入,奠定了后面几篇文章的动作生成架构。

Reference

[1] Zhang, H., Starke, S., Komura, T., and Saito, J. 2018. Mode-adaptive neural networks for quadruped motion control. ACM Transactions on Graphics 37, 4, 145:1-145:11.

[2] Holden, D., Komura, T., and Saito, J. 2017. Phase-functioned neural networks for character control. ACM Transactions on Graphics 36, 4, 42:1-42:13.