Face Synthesis

概述

人脸姿态不变处理方法可以分为两类:

  • 手工构造或学习姿态不变特征: 此类方法主要存在两个问题, 一是需要在不变性和可区分性之间找到平衡, 因此对于大的姿态变化性能不好; 二是数据通常呈现重尾分布, 某些情形下模型泛化能力有限;
  • 合成正脸人脸图像: 主要包含两类方法, (1) 3D 几何变换法, 该类方法难以有效恢复人脸细节; (2) 数据驱动方法, 如 VAE, GAN-based 的方法. 基于 GAN 的方法是我们重点关注和讨论的方法,

正脸合成问题理解:

  • 优化角度: 病态问题, 若无先验知识约束, 将会存在多个解;

方法总结

TP-GAN

Beyond Face Rotation: Global and Local Perception GAN for Photorealistic and Identity Preserving Frontal View Synthesis, 2017, ICCV.

Framework of TP-GAN

创新点:

  • 提出了全局和局部感知的对抗神经网络结构;
  • 联合了数据分布 (adversarial training) 先验和人脸领域知识先验 (symmetry & identity perserving loss);
  • 首次尝试将合成人脸应用到识别问题中.

符号定义:

  • $I^F$: 正脸图像 (frontal image)
  • $I^P$: 侧脸图像 (profile image)
  • $D_{\theta_D}$: 鉴别器, 区分 $I^F$ 和 $G_{\theta_G} (I^P)$

数据需求: $\{I^F, I^P\}$ 图像对

网络结构特点

Insight: 由于整幅图像的所有空间位置共享滤波器, 因此全局网络无法有效恢复局部细节和旋转人脸.

生成网络

1) 全局生成器 $G_{\theta^g}$

  • 包含降采样生成器 $G_{\theta_E^g}$ 和升采样解码器 $G_{\theta_D^g}$;
  • 引入 skip layers 的目的在于多尺度融合;
  • 中间输出为 256 维的特征向量 $v_{id}$, 用于identity classification. 此外, 连接 100维高斯随机噪声建模不止于姿态和 ID 的变化.

2) 局部生成器 $G_{\theta^l}$

  • 每个 $G_{\theta_i^l}$, $i \in \{0, 1, 2, 3\}$ 皆采样 Encoder-Decoder 结构, 但是没有全连接的 bottleneck layer.

3) 信息融合

  • 融合四个局部通路为一个特征张量
    • template landmark location
    • max-out 融合策略减少拼接伪影
  • 融合全局和局部特征张量

对抗网络

采用交替训练方式训练 $D_{\theta_D}$ 和 $G_{\theta_G} (I^P)$.

$D_{\theta_D}$ 输出采用 2x2 的概率图替代 1 维标量. 每个概率值对应某个人脸的区域而非整个人脸, 从而聚焦到每个语义区域.

合成损失函数

1) Pixel-wise Loss

  • pixel-wise L1 loss
  • 应用点: global 网络, local 网络, 最终输出

1) Symmetry Loss

  • 利用人脸的对称性解决自遮挡问题
  • 应用点: 原始像素空间和 Laplacian 图像空间 (对光照变化不敏感);
  • 操作方式: 选择性水平翻转输入数据, 使得遮挡部分处于右侧; 另外, 仅 $I^{pred}$ 参与对称损失计算

1) Adversarial Loss

1) Identity Preserving Loss


PIM

Towards Pose Invariant Face Recognition in the Wild, 2018, CVPR

  • 创新点:

    • 正脸化子网络 (FFN) 和鉴别学习子网络 (DLN) 端到端联合优化;
    • FFN 采用双路径 GAN, 同时感知全局结构和局部细节;
    • DLN 为人脸识别卷积神经网络.

CAPG-GAN

Pose-Guided Photorealistic Face Rotation, 2018, CVPR

CAPG-GAN: Couple-Agent Pose-Guided Generative Adversarial Network

创新点:

  • 合成任意视角人脸;
  • 使用 landmark heatmaps 作为姿态引导生成器的控制信号合成人脸;
  • 偶联鉴别器 (Couple-Agent Discriminator) 有效利用了姿态和局部结构的领域先验知识,强化合成图像真实性;

网络结构

Pose-Guided Generator

  • 生成器 $G_{\theta_G}$ 采用 U-Net 结构;
  • landmark detector 离线获得 landmark 信息;
  • 5 个关键点的 heatmaps 编码为 pose embeddings;

Couple-Agent Discriminator

Agent 1

  • 将源图像 $I^a$ 作为条件, 生成器输出 $\hat{I}_b$ (或者目标自然图像 $I^b$) 与 $I^a$ 组成图像对作为输入;
  • 同 TP-GAN 类似, 输入图像对映射为概率图, 概率图中的每个位置对应这局部区域

因此, Agent 1 不但能区分合成人脸和真实人脸, 还能学习旋转姿态的差异.

Agent 2
结构同 Agent 1, 不同的是将 pose embeddings $P^b$ 作为条件, 生成器输出 $\hat{I}_b$ (或者目标自然图像 $I^b$) 与 $P^b$ 组成输入对.

损失函数

包含了四个损失, 分别是

  • multi-scale pixel-wise loss: 约束图像内容的一致性
  • conditional adversarial loss ($L_{adv}$): 整合领域先验
  • identity preserving loss: 使用预训练的 light-CNN 作为特征提取器.
  • total variation regularization: 旨在减轻图像伪影.

Ablation Study

一些结论:

  • 无 $L_{adv}$, 生成的图像很模糊;
  • identity preserving loss 对模型性能影响最大, total variation regularization 影响最小.

FaceFeat-GAN

FaceFeat-GAN: a Two-Stage Approach for Identity-Preserving Face Synthesis (2018-arXiv)

目的: 合成丰富多样且身份不便的人脸.

方法: 两阶段合成法, 第一阶段生成不同特征, 第二阶段为特征到图像渲染.

Introduction

Previous works:

  • 将 identity label 喂给生成器 G 引导合成过程. \
    缺点: facial identity 十分复杂, 仅仅将 identity label 作为监督是不够的, 无法合成高质量图像;

  • 利用相同 ID 的图像对, 如 TP-GAN, FF-GAN. \
    缺点: 限制了图像的多样性.

Proposed method:

  • 第一阶段: 引入一组特征生成器 $\{G_i^f\}_{i=1}^k$ 生成一组人脸特征 $\{\textbf{f}_i^s\}_{i=1}^k$. 其中 $k$ 表示生成器的个数, 每个生成器对应不同的人脸属性, 如姿态, 表情, 年龄等;

  • 第二阶段: 图像生成器 $G^I$ 将所有生成的特征作为输入, 并输出合成图像.

  • $G_i^f$ 与 $D_i^f$ 在语义特征域对抗合成人脸特征, $G^I$ 和 $D^I$ 在图像域中对抗, 生成人脸图像.

Identity-Preserving Face Synthesis

  • FaceID-GAN: 三方博弈, 生成器 G 与鉴别器 D 博弈生成图像, 与 ID 分类器 C 博弈保持 ID 信息.

由于像素级监督导致生成的多样性降低, 应用范围有限. 这些方法通常只能处理多对一的情形, 如正脸化.

VAE

  • Attribute2image: 缺点, 生成图像模糊 (缺少鉴别器).
  • CVAE-GAN: 联合条件 GAN 和条件 VAE. 由于解码器忽略了输入的随机性, 限制了生成结果的多样性.
  • Towards Open-Set Identity Preserving Face Synthesis: 使用不同属性图像作为目标输出图像. 显而易见, 属性图像并不总是具有相同的 ID, 从而导致 ID 信息丢失.

Methods

图像合成过程分解为两个阶段:

  • 第一阶段: 输入随机变量 $\{\textbf{z}_i\}_{i=1}^k$ 经过生成器组 $\{G_i^f\}_{i=1}^k$ 获得一组特征 $\{\textbf{f}_i^s\}_{i=1}^k$;
  • 第二阶段: 使用生成器 $G^I$ 解码特征组 $\{\textbf{f}_i^s\}_{i=1}^k$, 合成图像 $\textbf{x}^s$. 同时, $G^I$ 也利用 ID 特征 $\textbf{f}_{id}$ 获得 ID 信息.

为了保证每个阶段合成结果的真实性, 引入了特征鉴别器 $\{D_i^f\}_{i=1}^k$ 和图像鉴别器 $D^I$.

与传统 GAN 不同的是, FaceFeat-GAN 不但生成 fake 图像, 还重建输入图像从而获得像素级监督信息. 特别地, 引入一组特征提取器 $\{E_i\}_{i=1}^k$ 从输入图像 $\textbf{x}^r$ 中提取特征 $\{\textbf{f}_i^r\}_{i=1}^k$, 人脸识别模块 $E_id$ 用于提取 ID 特征 $\textbf{f}_{id}$. 然后相同的 $G^I$ 将这些特征作为输入生成 $\textbf{x}^{rec}$.

特征提取器

  • 3DMM 特征 $\textbf{f}_1^r=E_1(\textbf{x}^r)$ 建模姿态和表情;
  • 一般特征 $\textbf{f}_2^r=E_2(\textbf{x}^r)$ 表示其他人脸的变化.

(1) Identity 特征 $E_{id}(\textbf{x}^r)$ \
编码 ID 信息. 用于提取输入图像 $\textbf{x}^r$ 的特征为 $\textbf{f}_{id}$. 模型训练过程采用交叉熵损失.

(2) 3DMM 特征 $E_1(\textbf{x}_1^r)$