GAN「一生万物」, ETH、谷歌用单个序列玩转神经动作合成,入选SIGGRAPH

d99508c0840f5fd99c92b2a7338cf771.png

来源:机器之心
本文约2000字,建议阅读5分钟
酷炫的神经动作合成技术,单个序列就能完成。

生成逼真且多样化的人体动作是计算机图形学的长期目标。对于动作建模和合成来说,研究者通常使用概率模型来捕获有限的局部变化或利用动作捕捉(mocap)获得的大型动作数据集。在阶段设置(stage-setting)和后期处理(例如,涉及手动数据清理)中,使用动作捕捉系统捕获数据的成本很高,并且动作数据集通常是有限制的,即它们缺乏所需的骨骼结构、身体比例或样式。利用动作数据集通常需要复杂的处理,例如重新定位,这可能会在原始捕获的动作中引入错误。

近日,来自苏黎世联邦理工学院、谷歌、芝加哥大学等机构的研究者开发了一个框架 GANimator,该框架能够产生不同且逼真的动作,只使用一个单一的训练序列。这一框架大大简化了数据收集过程,同时允许创建逼真的动作变化,还可以准确地捕捉单独动作序列细节。该研究入选 SIGGRAPH 2022。

fd0828bba8c591a4cc7124df13c547a1.png

  • 论文地址:

    https://arxiv.org/pdf/2205.02625.pdf

  • 项目地址:

    https://peizhuoli.github.io/ganimator/

我们先来看如下效果图,左边输入的是单个动作序列,右边是生成结果:

44384a8845bca16ddabf2c816b93c98d.gif

GANimator 框架也可以处理动物类的输入:

8b226371b422ab520b80137058907035.gif

群体动画。GANimator 框架训练了一个单一的螃蟹舞蹈序列,可以生成各种新颖的运动:

c723a185163895018580ac908bb7792d.gif

GANimator 框架也可以混合不同的序列,生成一个动作序列:

79abb14dffc9a6a80f92e725071de4b7.gif

上述示例说明 GANimator 框架是生成新动作的有效工具,它可以仅使用短动作序列作为输入来合成较长、多样和高质量的动作序列。

方法概览

研究者提出的生成模型可以从单个动作序列中学习,采用的方法受到了图像领域最近使用渐进式生成的工作以及在单个示例上训练深度网络的工作的启发。接下来详细介绍分层框架、动作表征和训练流程的主要构建块。

动作表征

研究者通过一个𝑇姿势的时序集来表征动作序列,该时序集由足部关节位移 O ϵ R^𝑇×3 和关节旋转 R ϵ R^𝑇×𝐽𝑄组成,其中𝐽表示关节数,𝑄表示旋转特征数。

为了减少常见的足部滑动伪影,研究者在表征中加入了足部接触标签。并且,为了简化注释,他们还将连接特征的度量空间表示成了 M_𝑇 ≡ R^𝑇×(𝐽 𝑄+𝐶+3)。

渐进式动作生成架构

研究者提出的动作生成框架如下图 2 所示。该框架由𝑆个粗放到精细(coarse-to-fine)对抗生成网络组成,每个负责生成具有特定帧数 {𝑇_𝑖 }^𝑆_𝑖=1 的动作序列。

90ab5617e2ce49865a1932bfa76db9c2.png

第一层负责纯生成,也即𝐺_1 将随机噪声𝑧_1 ϵ M_𝑇_1 映射为粗放动作序列,如下公式(1)所示。

268c7b9481c9e73b41bf86549c8fd8fa.png

然后,更精细层𝐺_𝑖 (2 ≤ 𝑖 ≤ 𝑆) 中的生成器通过如下公式(2)渐进式地采样 Q_1。

5144d092186e037f4c4cf297c5a7cc0d.png

重复上述过程,直到最精细输出序列 Q_𝑆 ϵ M_𝑇_𝑆通过𝐺_𝑆生成。

网络构建块

首先是生成器。研究者采用的生成器𝐺_𝑖包含一个全卷积神经网络𝑔_𝑖 (·),该网络由具有一些骨骼感知卷积层和其后的非线性层。由于该网络的主要作用是添加缺失的高频细节,因此他们使用残差结构,因此对于 2 ≤ 𝑖 ≤ 𝑆,得到如下公式(4)。

89f6ad1ed2536e2003f68366ac285b8d.png

下图为 3 则为生成器架构概览。

520cf861fb2bf4e555bbf0b35de707b3.png

其次是鉴别器。虽然经典 GAN 架构中的鉴别器输出单个标量,指示输入被分类为「真」或「假」。但对于训练数据中单个序列的情况,这种结构会导致模式崩溃,原因是生成器通常过拟合序列。

最后是骨骼感知算子。研究者采用骨骼感知卷积作为框架基础构建块。骨骼感知算子需要一个由一组关节(顶点)和临接表(边)定义的固定骨骼拓扑。由于网络在单个序列上运行,他们调整该拓扑以匹配输入序列。这允许在任何骨骼拓扑上操作,并且不需要将输入动作重新定位到特定的骨骼结构。

损失函数

对抗性损失。研究者使用 WGAN-GP 损失来训练层𝑖,如下公式(5)所示。

890b51903d3183d5b70566cb8a6121e4.png

重建损失。为了确保网络生成涵盖所有不同时序 patch 的变化,并且生成特定动作子集时不会崩溃,研究者要求网络从一组预定义的噪声信号 {𝑧^∗_𝑖 }^𝑆_𝑖=1 中重建输入动作。为了鼓励系统这样做,他们重新定义了重建损失,如下公式(6)所示。

c369d00b38035fcec651b3c430d828da.png

接触一致性损失。由于准确的足部接触是保证动作质量的主要因素之一,研究者在框架中预测足部接触标签并使用 IK 后处理来确保接触。由于关节接触标签 L 被集成到动作表征 M 中,骨骼感知网络可以直接在 M 上操作并学习将接触标签预测为动作的一部分。

研究者注意到,接触标签的隐式学习可以导致激活和非激活接触标签转换过程中产生伪影。因此,他们提出了一种新的损失来鼓励接触标签和足部速度之间的一致性。具体地,研究者要求在每一帧中通过如下公式(7)最小化接触标签或足部速度。

ed663270a12c56290a050a410fc77987.png

训练

用于训练的完整损失如下公式(8)所示。

094f21d18a1fd7171d037a8040e5304a.png

为了提升结果的稳健性和质量,研究者将每两个连续层组合成一个块并逐块地训练框架。

实验结果

下图 4 展示了动作序列外推能力,并与 acRNN 和经典统计模型 MotionTexture 进行了比较:可以看出,GANimator 产生了全局结构变化,姿态和过渡看起来很自然。

6058319e3e79047d6c44e4b5b407d7b5.png

下表 1 为 GANimator 与 MotionTexture 和 acRNN 定量比较结果。可以看出,acRNN 由于收敛于静态位姿,覆盖范围有限,而 GANimator 生成的动作很好地覆盖了训练序列。此外,GANimator 模型在生成可信动作和保持多样性之间取得了良好的平衡。

8e0a6628277e544799ded1f03f90a47e.png

下图展示了该模型使用两个序列进行训练。第一个序列(左)包含相对静态动作,第二个序列(右)包含较大的动作。该研究在相应的序列中可视化生成的结果(蓝色)及其修补后的最近邻(绿色)的骨骼动画。可以看出,生成的结果包含来自两个训练序列的内容(参见上述生成大象的动图)。

b85b331ccf429a880f062d84a95faf9c.png

下图展示了该研究生成结果与输入内容相同,同时生成结果更逼真,例如人走路时手肘位置较高。

8c635959ad6eb28c26cce98a3430322d.png

编辑:于腾凯

校对:杨学俊

cc34362197a1eb00e28e5c9ecf755112.png

17b8b1f6d67320cb6900a6f487a91c8e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值