刘晓坤 张倩 高璇编译

ECCV 2018 | GANimation让图片秒变GIF表情包,秒杀StarGAN

近期生成对抗网络(GAN)在人脸表情合成任务中取得了惊人的表现,其中最成功的架构是 StarGAN,但该架构只能生成不连续的表情。为突破这一局限,本文提出了一种基于动作单元(AU)标注的新型 GAN 条件化方法,可以从单张图像和表情编码生成连续的表情动画,生成的图像具备连贯性、真实性、广泛性、鲁棒性。该方法以完全无监督的方式进行训练,使用符合人类解剖结构的面部动作编码系统来编码面部表情。目前,该论文已被 ECCV 2018 接收,并被选为 Oral 论文。

  • 研究展示:http://www.albertpumarola.com/#projects
  • 项目地址:https://github.com/albertpumarola/GANimation

以下是部分动画示例:

1 引言

如果一张图片中的面部表情可以自动变成动画形式,就会打开许多不同领域新应用的大门,包括电影产业、摄影技术、时尚界和电子商务等。随着生成对抗网络的流行,这项任务取得了重大的进展,例如 StarGAN 这样的架构不仅能够合成新表情,还能更改面部的其它属性,如年龄、发色、性别等。尽管 StarGAN 很通用,但它只能在由数据集的注释粒度定义的离散属性中改变面部一个特定的部分。例如,在面部表情合成任务中,StarGAN 在数据集 RaFD 上进行训练,该数据集上只有八种二元标签,分别是悲伤、中立、愤怒、轻蔑、厌恶、惊讶、恐惧和快乐。

图 1:从单张图像生成的人脸动画。研究者提出了一种解剖结构上连贯的方法,该方法不局限于离散数量的表情,可以对给定的图像进行动画化处理, 并在一些连续的图像域中生成新的表情。在这些例子中,只给出最左边的图像输入 I_yr(由绿色方框圈出), 参数α控制微笑表情中包含的目标动作单元的激活程度。此外, 该系统可以处理非自然光照条件下的图像, 如最下面一行的例子。

然而,面部表情是面部肌肉组合和协调运动的结果,不能被归为离散的、数量较少的类别。Ekman 和 Friesen[6] 开发了面部动作编码系统(FACS),以动作单元(AU)来描述面部表情,它们在解剖学上与特定面部肌肉的收缩有关。尽管动作单元的数量相对较少(已发现 30 个 AU 在解剖学上与特定面部肌肉的收缩有关),但人们已经观察到了 7000 多个不同的 AU 组合 [30]。例如,恐惧的面部表情通常是通过以下 AU 激活产生的:眉心提升(AU1)、眉尾提升(AU2)、眉毛降低(AU4)、上眼睑提升(AU5)、眼睑收紧(AU7)、嘴唇伸展(AU20)和下颌下降(AU26)[5]。根据每个 AU 的大小,表情将或多或少地传递恐惧情绪。

本文旨在建立一个具有 FACS 表达水平的合成面部动画模型,能够在连续的域中产生解剖学结构的表情,而不需要获得任何面部关键点标注 [36]。为此,研究者利用最近的 EmotioNet 数据集 [3],该数据集由 100 万幅(我们使用其中的 20 万幅)自然状态下的情绪面部表情图像组成,用离散的 AU 激活标注。研究者构建了一个 GAN 架构,它不像 [4] 中那样被特定域的图像所条件化,而是被一个一维向量所条件化,该向量表示每个动作单元的存在/缺失以及大小。研究者以一种无监督的方式训练这个架构,只需要输入激活 AU 和图像。为了避免对同一个人在不同表情下的成对训练图像的需求,研究者将问题分为两个主要阶段。首先,研究者考虑一个 AU 条件化的双向对抗性架构,在给定一张训练照片的情况下,它最初会在期望表情下呈现一个新的图像。然后,该合成图像被渲染回原始状态,因此可以与输入图像直接比较。研究者结合最近提出的损失函数来评估生成图像的真实感。此外,该系统还超越了当前最佳水平,因为它可以在不断变化的背景和光照条件下处理图像。研究者通过一个注意力层来实现这一点,该注意力层只将网络的动作集中在与传达新表情相关的图像区域。

最终,研究者构建了一个自动化的连贯人脸表情合成方法,可以在连续域中渲染图像,并且可以处理包含复杂背景和光照条件的自然图像。如结果部分所示,研究者将它与其它的条件化 GAN 模型在最终的视觉效果以及生成图像的范围上做了对比。图 1 展示了部分结果示例,其中给定一张输入图像,模型可以逐渐改变 AU 激活值的大小来生成笑脸。

论文:GANimation: Anatomically-aware Facial Animation from a Single Image

论文地址:https://arxiv.org/abs/1807.09251

摘要:近期生成对抗网络(GAN)在人脸表情合成任务中取得了惊人的表现。其中最成功的架构是 StarGAN,它使用特定域的图像来调整 GAN 生成过程,即一系列相同表情的人脸图像。尽管该方法很有效,但它只能生成不连续的表情,而这是由数据集决定的。为了解决这个局限,本文提出了一种基于动作单元(AU)标注的新型 GAN 条件化方法,该方法在连续流形中描述了定义人脸表情解剖结构的运动。我们的方法允许控制每个 AU 的激活值大小,并将其组合。此外,我们还提出了一个完全无监督的策略来训练该模型,仅需要用激活 AU 标注的图像,并利用注意力机制使我们的网络对背景和光照条件变化具备鲁棒性。扩展评估结果表明,我们的方法在合成更多样表情(按解剖结构的肌肉运动),以及处理自然图像的能力上都超越了对比的条件生成模型。

4 我们的方法

这一节将描述我们用于生成逼真图像的新方法。如图 2 所示,该模型由两个模块组成。一方面,生成器 G(I_yr | yg) 被训练来将图像 I_yr 中的表情逼真地转换为目标表情 yg。注意 G 被应用了两次,第一次映射输入图像为 I_yg,即 I_yr→I_yg,然后将其渲染回去,即 I_yg→I_yr hat。另一方面,我们使用了一个基于 WGAN-GP[9] 的判别器 D(I_yg) 来评估生成图像及其表情的质量。

4.1 网络架构生成器

令 G 为生成器模块。由于它需要被双向应用(即映射输入图像为期望表情,反之亦然),在接下来的讨论中我们使用下标 o 和 f 来表示初始和最终。

给定图像 I_yo ∈ R^H×W×3 以及编码期望表情的 N 维向量 yf,我们将生成器的输入设置为拼接(I_yo,yo)∈ R^H×W×(N+3),其中 yo 被表征为 N 个大小为 H x W 的数组。

我们系统的一个关键是使 G 聚焦于那些对合成新表情有意义的图像区域,并保持图像的余下部分不变,例如头发、眼镜、帽子或饰物等。为此,我们嵌入了一个注意力机制到生成器中。

具体来说,我们的生成器不是回归整个图像,而是输出了两个掩码,一个着色掩码 C 和一个注意力掩码 A。最终的图像由以下式子获得:

其中 A=G_A(I_yo | yf)∈ {0, . . . , 1} ^H×W 以及 C=G_C(I_yo | yf)∈ R^H×W×3。掩码 A 表示 C 的每个像素在多大程度上对输出图像 I_yf 有贡献。这样生成器就无需渲染与表情无关的元素,仅聚焦于定义了人脸表情的像素上,从而能得到锐度更高和更加真实的合成图像。该过程如图 3 所示。

条件化判别器。这是一个用来训练评估生成图像的逼真度和期望表情的完成度的网络。D(I) 的结构集成了 PatchGan[10] 网络的组件,将输入图像映射到一个矩阵 Y_I∈ R^H/2^6×W/2^6,其中 Y_I[i,j] 表示重叠补丁 ij 为真实的概率,此外,为了评估它的约束,我们在顶部添加了一个辅助回归头来估计图像中 AU 的激活值 y hat = (y1 hat, . . . , yN hat)^T。

图 2:用我们的方法来生成逼真图像的过程概览。该架构由两个主要模块构成:一个生成器 G 来回归注意力和着色掩码;一个判别器来评估生成图像的照片真实度 D_I 和表情条件化完成度 yg。注意我们的系统是无监督的,即不需要同一个人的不同表情的图像对比,也不需要假设目标图像 I_yg 已知。

图 3:注意力生成器。给定一个输入图像和目标表情,生成器将对整个图像进行回归并将注意力掩码 A 和 RGB 色彩转换 C 覆盖在原图上。注意力掩码定义了每个像素的强度,指定扩展源图像的每个像素对最终渲染图像的影响。

6 实验评估

图 4:只调整 AU。特定的 AU 在强度增强时被激活(从 0.33 到 1)。第一行对应于 AU 零强度应用,在所有情况下都会准确生成原始图像。

图 5. 注意力模型。注意力掩码 A(第一行)和着色掩码 C(第二行)中间级的具体表现。最底行图像是合成表情。注意力掩码 A 的较暗区域显示了图像中与每个特定 AU 相关的区域。较亮的区域从原始图像中保留下来。

图 6:与当前最优方法进行定性比较。不同方法的面部表情合成结果:DIAT、CycleGAN、IcGAN、StarGAN 和我们的方法。上图分别是输入图像和七种不同的面部表情。可以看出,我们的方法在视觉精度和空间分辨率之间取得了最好的平衡。目前最好的方法——StarGAN 的一些结果出现了一定程度的模糊。之前模型的图像来自 [4]。

图 7:采样面部表情分布空间。通过向量 y_g 应用 AU 参数化,我们可以用相同的源图像 I_y_r 合成大量逼真图像。

图 8:对自然图像的定性评估。上行:我们从《加勒比海盗》中选取了一张图片(左),然后用我们的方法合成了一张新图(右)。下行:我们用类似的方式在《权力的游戏》中选择了一张图片(左),并合成了五个不同表情的新图。

图 9:成功案例和失败案例。源图像 I_y_r,目标图像 I_y_g、着色掩码 C、注意力掩码 A。上方:极端情况下的成功案例;下方:失败案例。

理论生成对抗网络ECCV 2018
5
相关数据
注意力机制技术
Attention mechanism

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

生成对抗网络技术
Generative Adversarial Networks

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

映射技术
Mapping

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

损失函数技术
Loss function

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

WGAN技术
Wasserstein GAN

就其本质而言,任何生成模型的目标都是让模型(习得地)的分布与真实数据之间的差异达到最小。然而,传统 GAN 中的判别器 D 并不会当模型与真实的分布重叠度不够时去提供足够的信息来估计这个差异度——这导致生成器得不到一个强有力的反馈信息(特别是在训练之初),此外生成器的稳定性也普遍不足。 Wasserstein GAN 在原来的基础之上添加了一些新的方法,让判别器 D 去拟合模型与真实分布之间的 Wasserstein 距离。Wassersterin 距离会大致估计出「调整一个分布去匹配另一个分布还需要多少工作」。此外,其定义的方式十分值得注意,它甚至可以适用于非重叠的分布。