研究展示: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。上方:极端情况下的成功案例;下方:失败案例。