论文题目:GANimation: Anatomically-aware Facial Animation from a Single Image(ECCV 2018)

介绍

生成式对抗网络 (GAN) 在面部表情合成任务上取得了令人瞩目的进展。

最成功的结构是 StarGAN,在生成过程中使用特定领域的图片集合,即具有相同表情的人脸图片集。 虽然有效,但能生成的表情数量是离散的,取决于数据集的内容。

本文提出了一种基于 AU (Action Units) 标注的 GAN 训练机制。该方法允许控制每个 AU 的激活程度以及互相结合。除此之外,本文还提出了一个完全无指导的模型训练策略,只需要标注了激活 AU 的图片,以及使网络能改变背景和光照条件的注意力机制。实验表明相较于其他条件生成器,此方法不仅能生成更广泛的表情,而且对其他图片有更强的泛化能力。

人脸表情合成的应用:

  • 电影工业
  • 摄影技术
  • 时尚
  • 电子商务
  • ...

面部表情是面部肌肉有组织地、互相结合地收缩的产物,不能用离散、低数量的类别来分类。Ekman 和 Friesen 创造了使用 AU(Action Units) 来描述面部表情的 FACS(Facial Action Coding System),在解剖学上与具体的面部肌肉的收缩有关。虽然 AU 的数量相对较少 (30 个 AU 被发现在解剖学上与具体的面部肌肉收缩有关),却观测到了超过 7000 种 AU 的组合。取决于 AU 的量级,表情的程度也会发生变化。

本文的目的是建立一个能够在连续域上生成表情的模型,且不需要获取任何面部标识。为此,我们利用 EmotionNet 数据集,它包含一百万张带有激活 AU 标注的面部表情图片 (使用了其中 20 万张)。我们建立的 GAN 结构不是以特定域的图片作为条件,而是以一个表示每个 AU 的存在与否和程度大小的一维向量来作为条件。我们无指导地训练此结构,只需要图片和它们的激活 AU。为了避免在不同表情下对同一个人的图片训练对的需要,我们将此问题分为两个阶段。首先,我们考虑一个 AU 条件的双向对抗体系结构,在给定单个训练照片的情况下,最初在所需表情下生成新图像。然后将这个合成的图像变回原来的姿态,因此可以直接与输入图片相比较。除此之外,此系统可以处理变化的背景和照明条件的图片,通过一个只关注与表达表情相关的区域的注意力层来实现。

相关工作

GANs GAN 是一种基于游戏理论的强大的生成式模型。一个典型的 GAN 同时训练一个生成网络来生成假数据,和一个辨别网络来区分真数据和假数据。近期的研究显示出了使用 Earth Mover Distance 进行度量的稳定性上的改进,此文中也将使用这一度量来训练模型。GAN 能够生成十分真实的、细节的图片,已被成功应用于图像翻译、人脸生成、超分辨率成像、室内场景建模和人体姿态编辑等。

Conditional GANs 一个活跃的设计 GAN 模型的研究领域,将条件和约束纳入生成过程。基于图片的条件方法对此任务来说十分有趣,如在图像超分辨率、未来帧预测、图像修复、图像到图像翻译和多目标域转移中的那样。

Unpaired Image-to-Image Translation 我们的方法与利用循环一致性以保留输入和映射图像之间的关键属性的那些工作更相关,例如 CycleGAN,DiscoGAN,StarGAN 等。

Face Image Manipulation 人脸生成和编辑是计算机视觉和生成式模型中被深入研究的主题。与我们的工作最为相关的是人脸表情合成的相关工作。早期的方法使用质量和弹簧模型来物理地近似皮肤和肌肉运动来解决该问题,这种方法的问题在于难以产生自然的面部表情,因为有许多微妙的皮肤运动难以用简单的弹簧模型渲染。另一项研究依赖于 2D 和 3D 变形,但在区域边界周围产生了强烈的伪影,并且无法模拟光照变化。

更多近期的工作培训了高度复杂的卷积网络,能够处理野外的图像。然而,这些方法已经以离散的情绪类别为条件(例如,快乐,中立和悲伤)。相反,我们的模型恢复了对皮肤和肌肉进行建模的想法,但我们将其整合到现代深度学习机器中。更具体地说,我们学习了一种以连续嵌入肌肉运动为条件的 GAN 模型,允许生成大范围的解剖学上可能的面部表情以及视频序列中的平滑面部运动过渡。

问题描述

RGB 图片:$\mathbf{I}_{\mathbf{y}_{r}} \in \mathbb{R}^{H \times W \times 3}$

图片表情使用 $N$ 个 AU 的集合来编码:$\mathbf{y}_{r}=\left(y_{1}, \dots, y_{N}\right)^{T}$,每个 $y_n$ 是一个标准化的 0 到 1 之间的
值,表示第 $n$ 个 AU 的大小。

值得指出的是,由于这种连续表示,可以在不同的表情之间进行自然插值,从而可以渲染各种逼真和平滑的面部表情。

我们的目标是学习一个映射 $\mathcal{M}$,它以 AU 目标 $\mathbf{y}_{g}$ 为条件将 $\mathbf{y}_{r}$ 翻译成输出图片 $\mathbf{I}_{\mathbf{y}_{g}}$ ,即 $\mathcal{M} :\left(\mathbf{I}_{\mathbf{y}_{r}}, \mathbf{y}_{g}\right) \rightarrow \mathbf{I}_{\mathbf{y}_{g}}$。

为此,我们提出无指导地训练 $\mathcal{M}$,使用 $\mathcal{M}$ 个训练三元组 $\left\{\mathbf{I}_{\mathbf{y} r}^{m}, \mathbf{y}_{r}^{m}, \mathbf{y}_{g}^{m}\right\}_{m=1}^{M}$,其中目标向量 $\mathbf{y}_{g}^{m}$ 是随机生成的。重要地,我们既不需要成对的同一个人在不同表情下的图片,也不需要假设已知的目标图片 $\mathbf{I}_{\mathbf{y}_{g}}$。

方法

1.png

包含两个模块:
生成器 $G\left(\mathbf{I}_{\mathbf{y}_{r}} | \mathbf{y}_{g}\right)$ 用于将图片 $\mathbf{I}_{\mathbf{y}_{r}}$ 中的表情转化成想要的 $\mathbf{y}_{g}$ 。$G$ 被双向地应用两次。
评价器 $D\left(\mathbf{I}_{\mathbf{y}_{g}}\right)$ 基于 WGAN-GP,用于评估生成的图片和它的表情的质量。

网络结构

生成器

2.png

给定图片 $\mathbf{I}_{\mathbf{y}_{0}} \in \mathbb{R}^{H \times W \times 3}$ 和表示目标表情的 $N$ 元向量 $ \mathbf{y}_{f}$ (表示成 $N$ 个 $H \times W$ 大小的数组),生
成器的输入为连接 $\left(\mathbf{I}_{\mathbf{y}_{o}}, \mathbf{y}_{o}\right) \in \mathbb{R}^{H \times W \times(N+3)}$。

注意力机制:只关注与表情有关的图片区域,色彩mask $\mathbf{C}$ ,注意力mask $\mathbf{A}$。

$$ \mathbf{I}_{\mathbf{y}_{f}}=(1-\mathbf{A}) \cdot \mathbf{C}+\mathbf{A} \cdot \mathbf{I}_{\mathbf{y}_{o}}\\ \mathbf{A}=G_{A}\left(\mathbf{I}_{\mathbf{y}_{o}} | \mathbf{y}_{f}\right) \in\{0, \ldots, 1\}^{H \times W}\\ \mathbf{C}=G_{C}\left(\mathbf{I}_{\mathbf{y}_{o}} | \mathbf{y}_{f}\right) \in \mathbb{R}^{H \times W \times 3} $$

评价器 用于评价生成图片的照片真实性和表情满足性。

$D(\mathbf{I})$ 的结构类似于 PatchGan 网络,将输入图片 $\mathbf{I}$ 映射到矩阵 $\mathbf{Y}_{I} \in \mathbb{R}^{H / 2^{6} \times W / 2^{6}}$,$\mathbf{Y}_{I}[i, j]$ 表示重叠区域 $ij$ 的真实性概率。为了评估条件,添加一个辅助的回归,用于估计图片中的 AU 激活情况 $\hat{\mathbf{y}}=\left(\hat{y}_{1}, \dots, \hat{y}_{N}\right)^{\top}$

模型学习

损失函数包含 4 项。

Image Adversial Loss 由 Gulrajani 等人的工作修改而来,使生成图片的分布趋向于训练图片的分布。$\mathbf{I}_{\mathbf{y}_{o}}$ 是输入图片,初始条件为 $\mathbf{y}_{o}$,期望的最终条件$\mathbf{y}_{f}$ ,$\mathbb{P}_{o}$ 是输入图片的数据分布,$\mathbb{P}_{\tilde{I}}$ 是随机插值分布。

$$ \mathcal{L}_{I}\left(G, D_{I}, \mathbf{I}_{\mathbf{y}_{o}}, \mathbf{y}_{f}\right)=\mathbb{E}_{\mathbf{I}_{\mathbf{y}_{o}} \sim \mathbb{P}_{o}}\left[D_{\mathbf{I}}\left(G\left(\mathbf{I}_{\mathbf{y}_{o}} | \mathbf{y}_{f}\right)\right)\right]-\mathbb{E}_{\mathbf{I}_{\mathbf{y}_{o}} \sim \mathbb{P}_{o}}\left[D_{\mathbf{I}}\left(\mathbf{I}_{\mathbf{y}_{o}}\right)\right]+\lambda_{\mathrm{gp}} \mathbb{E}_{\widetilde{I} \sim \mathbb{P}_{\tilde{I}}}\left[\left(\left\|\nabla_{\widetilde{I}} D_{\mathbf{I}}(\widetilde{I})\right\|_{2}-1\right)^{2}\right] $$

Attention Loss 使注意力mask变得平滑,防止饱和。注意力面具很容易饱和为全 1,使得生成图片与原始图片相同。为防止这种情况,使用 $L2$ 正则化mask。同时为了加强颜色变换的空间平滑性,对 $\mathbf{A}$ 施加一个 Total Variation Regularization。

$$ \mathcal{L}_{A}\left(G, \mathbf{I}_{\mathbf{y}_{o}}, \mathbf{y}_{f}\right)=\lambda_{\mathrm{TV}} \mathbb{E}_{\mathbf{I}_{\mathbf{y}_{o}} \sim \mathbb{P}_{o}}\left[\sum_{i, j}^{H, W}\left[\left(\mathbf{A}_{i+1, j}-\mathbf{A}_{i, j}\right)^{2}+\left(\mathbf{A}_{i, j+1}-\mathbf{A}_{i, j}\right)^{2}\right]\right]+\mathbb{E}_{\mathbf{I}_{\mathbf{y} o} \sim \mathbb{P}_{o}}\left[\|\mathbf{A}\|_{2}\right] $$

Conditional Expression Loss 使生成图片的表情与期望中的相似。这个损失包含两个部分:假图片的 AU 回归损失,用于最优化 $G$;真图片的 AU 回归损失,用于学习 $D$ 顶部的回归。

$$ \mathcal{L}_{\mathrm{y}}\left(G, D_{\mathrm{y}}, \mathbf{I}_{\mathbf{y}_{o}}, \mathbf{y}_{o}, \mathbf{y}_{f}\right)=\mathbb{E}_{\mathbf{I}_{\mathbf{y}_{o}} \sim \mathbb{P}_{o}}\left[ \| D_{\mathbf{y}}\left(G\left(\mathbf{I}_{\mathbf{y}_{o}} | \mathbf{y}_{f}\right)\right)\right]-\mathbf{y}_{f}\left\|_{2}^{2}\right]+\mathbb{E}_{\mathbf{I}_{\mathbf{y}_{o}} \sim \mathbb{P}_{o}}\left[\left\|D_{\mathbf{y}}\left(\mathbf{I}_{\mathbf{y}_{o}}\right)-\mathbf{y}_{o}\right\|_{2}^{2}\right] $$

Identity Loss 保护人物的特点,使输入图片与输出图片中的脸是同一个人。使用 cycle consistency loss 来使生成器维持人物特点。

$$ \mathcal{L}_{\mathrm{idt}}\left(G, \mathbf{I}_{\mathbf{y}_{o}}, \mathbf{y}_{o}, \mathbf{y}_{f}\right)=\mathbb{E}_{\mathbf{I}_{\mathbf{y}_{o}} \sim \mathbb{P}_{o}}\left[\left\|G\left(G\left(\mathbf{I}_{\mathbf{y}_{o}} | \mathbf{y}_{f}\right) | \mathbf{y}_{o}\right)-\mathbf{I}_{\mathbf{y}_{o}}\right\|_{1}\right] $$

Full Loss

$$ \begin{aligned} \mathcal{L} &=\mathcal{L}_{I}\left(G, D_{I}, \mathbf{I}_{\mathbf{y}_{r}}, \mathbf{y}_{g}\right)+\lambda_{y} \mathcal{L}_{y}\left(G, D_{y}, \mathbf{I}_{\mathbf{y}_{r}}, \mathbf{y}_{r}, \mathbf{y}_{g}\right) \\ &+\lambda_{A}\left(\mathcal{L}_{A}\left(G, \mathbf{I}_{\mathbf{y}_{g}}, \mathbf{y}_{r}\right)+\mathcal{L}_{A}\left(G, \mathbf{I}_{\mathbf{y}_{r}}, \mathbf{y}_{g}\right)\right)+\lambda_{i d t} \mathcal{L}_{i d t}\left(G, \mathbf{I}_{\mathbf{y}_{r}}, \mathbf{y}_{r}, \mathbf{y}_{g}\right) \end{aligned} $$

最终可以定义如下minimax问题:

$$ G^{\star}=\arg \min _{G} \max _{D \in \mathcal{D}} \mathcal{L} $$

实验评估

Single Action Units Edition

3.png

Simultaneous Edition of Multiple AUs

4.png

参考文献

[1] GANimation: Anatomically-aware Facial Animation from a Single Image

Last modification:August 11th, 2019 at 11:12 pm
如果觉得我的文章对你有用,请随意赞赏