SuperFront从低分辨率人脸进行正面化

发布 : 2021-02-07 分类 : GAN 浏览 :

摘要

随着深度学习话题的推进,面部旋转和其他基于面部的生成任务变得更加频繁。及时在合成人脸方面达到了令人印象深刻的里程碑,但在实践中保持身份的重要性仍然是必须的,不应被忽视。同样,对于人脸模糊,姿势较大,质量较低的数据,不应该更困难。现有的方法倾向于集中在姿势变化的样本上,但用的假设数据质量很高。我们提出了一种基于 GAN 的模型,以从一个或多个具有低姿态的低分辨率(LR)面孔生成高质量的、保留身份信息的正面面孔。具体来说,我们提出 SuperFront GAN(SF-GAN)从具有 多种姿势和身份保留的 one-to-many LR faces 合成高分辨率(HR)的正面人脸。我们将超分辨率(SR)侧视图模块集成到 SF-GAN 中,以保留身份信息,并在 HR 空间中精细化侧视图的细节,这有助于建模重建面部的高频信息(例如:眼周、鼻子和嘴巴区域)。此外,SF-GAN 接受多个 LR 面部作为输入,并改进了每个被添加的样本。我们通过在生成器中使用正交约束来挤压性能的额外增益,以惩罚多余的潜在表示,从而使学习的特征空间多样化。

  • 关键字:SR 模块、多输入、低分辨率侧视图人脸

引言

先前的方法倾向于假设大姿态人脸图像有很高的质量。在学习将低分辨率(LR)侧视图空间映射到高分辨率(HR)正面视图的高度非线性转换时,先前的尝试会丢失身份信息。
视图之间的低质量输入和大姿态差异都使得正面化问题具有挑战性。现代模型通常旨在解决任一个挑战(即,脸部超分辨率(SR)或大姿势人脸正面化),脸部同时处于低质量和大姿势时分解两个任务。为了克服这些障碍,我们同时提出了 SuperFront GAN(SF-GAN)。因此,SF-GAN 以任意姿势从 LR 脸部合成 HR 和保留身份的正面脸部。为此,将 SR 模块集成到 SF-GAN 中,以保留低质量图像的身份。此后,通过学习从 LR 侧视图到 HR 额叶的精确非线性转换,引入了补丁损失来解决较大的姿态差异。此外,我们认为极端姿势下单个 LR 图像中的信息是有限的(即在极端情况下不足以合成准确的正面)。因此,我们将模型设计为接受一对多输入,每个添加的样本可进一步改善结果。
作者认为之前 encoder-decoder 模型,例如 U-Net 结构网络在面对 LR 输入时。会丢失精确的低频信息,在这种情况下,U-Net 结构会导推理不准确(例如,结构模型和身份丢失)。为了适当地保留 LR 脸部的细节和主体身份,我们并行使用超分辨率(SR)模块以更好地提供精确的低频信息和高频细节。
为了适当地保留 LR 脸部的细节和主体身份,我们并行使用超分辨率(SR)模块以更好地提供精确的低频信息和高频细节。
正面人脸合成的另一个挑战是由于姿势差异大而导致从侧面到正面的高度非线性转换,从而导致推断时不精确的面部结构。先前的作品通常使用像素级(例如 L1 或 L2),身份和对抗性损失来学习视图之间的映射。然而使用这样的 loss 训练的模型通常对区分结构信息的信心较低。为了捕获对象的详细面部结构以及身份信息,我们将补丁级别的损失合并到常用的损失集中(i.e. pixel loss, identity loss, and adversarial loss),从而,加强模型可以更加关注图像结构(即面部组件的边缘和形状)(i.e. Structural Similarity Index (SSIM))。与现有作品不同,我们以 patch-level 提供的补充信息的形式添加了结构级别的知识,从而显着提高了最终结果。
而且,由于 LR 脸部的极端姿势,通常难以从单个图像合成 HR 和保留身份的正面视图。在许多现实生活中(例如监视系统),每个对象都有多个图像可以互补使用,以进一步改善合成效果[34]。但是,大多数现有的面部正面算法每次只能处理一张图像。为了进一步提高面部质量,我们扩展了模型以接受多个面部作为输入(图 1)。
image.png
由于所提出模型中的所有生成器共享相同的权重,因此输入图像可以具有任意姿势。与其采用简单的融合方法(例如图像级或特征级串联[28]或特征级求和[34]),我们建议在基于生成对抗网络(GAN)的模型中使用正交正则化以获得最佳训练和学习更广泛的特征[2]。

所做贡献如下:

  • 据我们所知,我们是第一个通过提出一种多任务模型来共同解决正面人脸识别和人脸超分辨率问题的多方面任务模型,从而解决了人脸识别问题。
  • 我们引入基于补丁的损失来捕获面部结构,并学习在 LR 侧视图和 HR 正面视图之间进行精确的非线性转换。
  • 我们扩展了一对多的输入:更多的 LR 输入可以更好地保持身份并使用早期或晚期融合来提高合成质量。此外,我们添加了约束以使功能多样化(即正交正则化)以进一步改进

方法

image.png

网络结构

所提出框架如上图所示。

Deep encoder

作者认为,以前常用的类似 U-Net 的模型,太浅了不能捕捉从 LR 空间恢复高质量 HR 人脸所需要的高频信息。它采用了更深的编码器。这个编码器由 16 个 sixteen residual dense blocks 组成(来自 Residual dense network for image super-resolution.)。此外 SR module 也提供了重建的 HR 空间,可以提供更多细节信息。

SR-integrated decoder

从编码器输出开始,两个分支分开处理。SR module 超分辨率重建图像,最终合并到主分支去重建正面人脸。side-view SR 采用 pixel shuffle 去完成上采样,factor 设置为 4.

损失函数

Pixel-level loss

使用 L1 loss 计算像素等级的损失,因为它在监督图像生成任务比 L2 损失更容易收敛。L1 损失同时用于 SR 分支和 Main 分支的计算。公式如下:

$$ \mathcal{L}_{p i x}=\frac{1}{W \times H} \sum_{w, h=1}^{W, H}\left|I_{w, h}^{H P}-I_{w, h}^{S P}\right|+\left|I_{w, h}^{H F}-I_{w, h}^{S F}\right| $$

其中$I^{HP}$和$I^{HF}$分别表示 HR side-view and HR frontal faces。

Patch-level loss

补丁级别损失更关注图像结构,例如人脸组件的边缘和形状。这里采用 SSIM 作为 patch-level loss(参考 Image quality assessment: from error visibility to structural similarity)。输入图像被分为 K*K 个区域,$\mathbf{x}=\left\{x_{1}, \ldots, x_{K^{2}}\right\}$ and $\mathbf{y}=\left\{y_{1}, \ldots, y_{K^{2}}\right\}$
SSIM X 和 Y 计算如下:

$$ S S I M(\mathbf{x}, \mathbf{y})=1-\frac{\left(2 \mu_{x} \mu_{y}+C_{1}\right)\left(2 \sigma_{x y}+C_{2}\right)}{\left(\mu_{x}^{2} \mu_{y}^{2}+C_{1}\right)\left(\sigma_{x}^{2}+\sigma_{y}^{2}+C_{2}\right)} $$

上式常数$C_1=0.01^2$ $C_2 = 0.03^2$损失定义如下:

$$ \mathcal{L}_{\text {patch }}=\frac{1}{P} \sum_{p=1}^{P} S S I M\left(\mathbf{x}^{p}, \mathbf{y}^{p}\right) $$

Global-level loss

全局损失引入了两种,对抗损失和身份保持损失
Adversarial loss更关注用于区分整个人脸的所有细节,以合成逼真的正面人脸。受到《A multi-yaw multi-pitch high-quality database and benchmark for facial pose analysis》启发,这里使用预训练的人脸解析模型,将人脸各个区域进行划分。分别计算 loss,目的在于捕捉低频信息,例如皮肤区域。划分的区域如下:

$$ \begin{array}{l} \text { real } I^{p}=\left\{I^{f} \odot M_{s}, I^{f} \odot M_{k}, I^{f} \odot M_{h}\right\} \\ \text { fake } \hat{I}^{p}=\left\{\hat{I}^{f} \odot M_{s}, \hat{I}^{f} \odot M_{k}, \hat{I}^{f} \odot M_{h}\right\} \end{array} $$ $M_s$,$M_k$,$M_h$,分别表示皮肤,关键点和头发区域的 mask。最后对抗损失表示如下: $$ \begin{aligned} \mathcal{L}_{a d v}=\sum_{j \in\{f, p\}} &\left(\mathbb{E}_{I^{j}}\left[\log D_{j}\left(I^{j}\right)\right]\right.\\ &\left.+\mathbb{E}_{\hat{I}^{j}}\left[\log \left(1-D_{j}\left(\hat{I}^{j}\right)\right)\right]\right) \end{aligned} $$

Identity preserving loss

这里使用 pre-trained 29-layer Light CNN作为身份特征的提取器,它的参数在训练时是固定的,使用人脸识别模型提取特征计算 loss,有利于增加生成器的人脸特征保持能力。
对于合成图像$I^{SF}$和 ground-truth$I^HF$:

$$ \mathcal{L}_{I D}=\sum_{i=1}^{2}\left\|p_{i}\left(I^{S F}\right)-p_{i}\left(I^{H F}\right)\right\|_{2}^{2} $$ $p_{i}(i \in 1,2)$表示 LightCNN 的两个全连接层的输出。

Overall loss

所有损失加权计算损失:

$$ \mathcal{L}_{G}=\lambda_{1} \mathcal{L}_{p i x}+\lambda_{2} \mathcal{L}_{\text {patch }}+\lambda_{3} \mathcal{L}_{a d v}++\lambda_{4} \mathcal{L}_{I D}+\lambda_{5} \mathcal{L}_{t v} $$

其中 L_tv 损失参考《Perceptual losses for real-time style transfer and super-resolution》

Multi-image SF-GAN

它与 Single image SF-GAN 的区别主要在于有多张图像输入,多张图像输入有助于让编码器提取更多有用的信息。
它使用的 decoder 与 SI SF-GAN 相同,使用共享参数的 encoder 提取不同输入图像。不通点在于 MI SF-GAN 对于 encoder 提取的特征引入了 orthogonal regularization 约束。正交约束使特征更加多样化,因此可以尽可能地相互补充。约束 loss 如下:

$$ \mathcal{L}_{\text {orth }}=\frac{1}{N} \sum_{n=1}^{N}\left\|G\left(I_{n}^{L P}\right)^{\top} G\left(I_{n}^{L P}\right)\right\|_{F}^{2} $$

总 loss 可表示为:

$$ \mathcal{L}_{M I}=\mathcal{L}_{G}+\mathcal{L}_{\text {orth }} $$

实验结果

image.png
image.png
image.png

本文作者 : HeoLis
原文链接 : https://ishero.net/SuperFront%E4%BB%8E%E4%BD%8E%E5%88%86%E8%BE%A8%E7%8E%87%E4%BA%BA%E8%84%B8%E8%BF%9B%E8%A1%8C%E6%AD%A3%E9%9D%A2%E5%8C%96.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

学习、记录、分享、获得

微信扫一扫, 向我投食

微信扫一扫, 向我投食