超酷的神经网络合成动物运动动画,解救动画师!代码开源+视频
新智元报道
来源:GitHub
编辑:肖琴
【新智元导读】针对四足动物的动画生成问题,爱丁堡大学的研究人员开发了一个被称为“模式自适应神经网络”的新神经网络架构,它可以从实际的运动数据学习,生成非常自然的动画。团队在今天开源了所有代码、数据和编译的demo。
开源地址:
https://github.com/sebastianstarke/AI4Animation
创作四足动物动画是计算机动画行业一个特别困难的问题。四足动物动画在电脑游戏和电影中的应用很重要,同时也是机器人领域的一个具有挑战性的话题。传统方法制作四足动物动画时,动画师必须经过特殊培训,设计出各种复杂的动作,然后利用各种DCC软件进行动作捕捉。
针对四足动物的动画生成问题,来自爱丁堡大学HE ZHANG、SEBASTIAN STARKE、TAKU KOMURA和Adobe Research的JUN SAITO等人的团队开发了一个被称为“模式自适应神经网络”的新神经网络架构,它可以从实际的运动数据学习,生成自然的动画。系统不需要对相位或运动步态进行标记,而是从非结构化的运动捕获数据,以端到端的方式学习。
整个研究使用 Unity3D / Tensorflow 完成,并且团队在今天开源了所有代码、数据和编译的demo。
模式自适应神经网络
四足动物运动的多模态造成了动画制作的复杂性。四足动物有多种移动模式,例如步行、踱步、快走、慢跑、疾跑等,运动时其躯干和四肢的相位变化非常复杂。
图:不同的四足运动模式。横条表示每条腿的站立相位。右侧的图像表示步态周期中脚接触的顺序。
目前还没有以数据驱动的方式系统地构建四足动物运动控制器的工作。除了上面提到的运动复杂性外,困难还来源于四足动物与人类不同,无法进行受控的数据采集。因此,捕获的数据往往不是结构化的。使用这些数据设计角色控制器时,工程师需要手动/半自动地提取步态周期和转换,再将它们拼接在一起,调整motion trees和有限状态机的参数。因此,传统的方法要么效率低,要么不精确。
上图展示了基于动作捕捉实现的动画制作,但捕捉的动画是非结构化的,而且随机动作太过广泛。捕捉的数据不是很精准,动作存在很多噪波,细节的地方还需要后期修正。
上图是通过标准神经网络生成的动画,但会产生失真和明显的滑步。
上图的动画由相位函数神经网络(Phase-Functioned Neural Networks)的方式生成,优点是动作精准,但是当两个动作进行融合时动作显得僵硬,而且操控不是那么灵敏。
这个新研究提出了一种新的网络架构——模式自适应神经网络(Mode-Adaptive Neural Networks ,MANN),它可以从大量的非结构化四足动物运动捕获数据中学习运动控制器。
MANN架构图示,由门控网络和运动预测网络组成。
这个系统由运动预测网络和门控网络组成。在每一帧处,运动预测网络在给定的前一帧的状态和用户提供控制信号的情况下计算当前帧的角色状态。门控网络通过选择和混合所谓的专家权重(expert weights),动态地更新运动预测网络的权重,每个expert weight都专门针对特定的运动。
MANN与以前方法的对比
这种架构提供了灵活性,使得系统能够在广泛的非周期动作和周期性的无标记步态类型中学习一致的特征。这个框架可以将开发人员从冗长而困难的相位标记工作中解放出来。特别是,我们的模型不需要单独的标签来区分不同的步态,这种区分即使对人类来说也很难,因此,可以在数据预处理过程避免步态错误。
该研究的贡献可概括如下:
- 提出第一个构建数据驱动的四足角色控制器的系统方法,它可以合成具有各种运动模式和动作转换的高质量动画。
- 提出一种新颖的端到端神经网络架构,可以从非结构化的四足动物运动捕捉数据中学习,而无需提供相位和运动步态标签。
- 通过与现有方法进行比较,对所提出的架构进行了全面评估。
数据准备和结果
研究人员使用狗的动作捕捉(Dog Motion Capture)作为训练数据。这些数据包含各种运动模式,例如步行、踱步、小跑、跑步等,以及其他类型的动作,例如坐、站、闲散,躺着和跳跃。通过镜像将数据规模加倍。
实验中使用的狗模型的骨架结构。由27块骨头组成,总共有81个自由度。
表1:狗运动数据集和运动类型
四足动物在不平坦地形上行走
沿预定的地面轨迹的行走。可以观察到,即使在突然转弯的情况下,它也能很好地沿着曲线运动。
值得一提的是,这个研究延续自去年该团队所做的“用于角色控制的 Phase-Functioned 神经网络”(PFNN)工作,当时在SIGGRAPH 2017大会演示,同样令人印象深刻。
参考新智元报道:【超酷视频】神经网络生成游戏角色动作,自然逼真不重复
GitHub地址:
https://github.com/sebastianstarke/AI4Animation