CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior

单位:腾讯PCG

论文
代码
Xintao Wang大佬(ESRGAN、EDVR作者)的力作,这篇论文和他们另一篇CVPR2021论文《GLEAN: Generative Latent Bank for Large-Factor Image Super-Resolution》想法相近,但是做的是两个不同的恢复任务。

摘要

人脸盲恢复通常依赖于人脸先验信息,如人脸几何先验信息或参考先验信息来恢复真实可信的细节。然而,极低质量的输入无法提供精确的几何先验,而高质量的参考通常难以得到,从而限制了在现实场景中的应用。

在本文中,我们提出了GFP-GAN,它利用封装在预训练脸部GAN中的丰富多样的先验信息进行人脸盲修复。这种生成性面部先验(GFP)通过空间特征变换层被纳入到人脸恢复过程中,这使得我们的方法能够实现真实性和保真度的良好平衡。得益于强大的通用人脸先验和精细设计,我们的GFP-GAN只需一次前向传递即可联合恢复人脸的细节和增强颜色,而GAN-inversion方法需要在推理时进行image-specific优化。大量的实验表明,我们的方法在合成数据集和真实数据集上都取得了优于现有技术的性能。

方法

先前方法表明,facial landmarks, parsing maps, facial component heatmaps等这些几何面部先验对于恢复准确的面部形状和细节至关重要。并表明这些几何人脸先验是恢复准确的人脸形状和细节的关键。然而,这些先验值通常是从输入图像中估计出来的,在现实世界中,当输入质量非常低时,这些先验值不可避免地会降低。此外,尽管有语义指导,上述先验知识包含很有限的纹理信息去恢复面部细节(如瞳孔)。
另一类方法采用参考先验,即高质量的人脸指导或面部组件字典。然而,高分辨率参考的不可获得性质限制了其实际适用性,而面部组件字典的有限容量限制了其面部细节的多样性和丰富性。
在本文中,我们利用生成性面部先验(GFP)进行真实世界的盲人脸恢复,即隐式封装在预训练人脸GAN模型中的先验信息,如StyleGAN。这些人脸GAN能够生成具有高度可变性的人脸,从而提供丰富多样的先验信息,如几何、面部纹理和颜色,从而能够共同恢复面部细节并增强颜色(图1)。然而,将这些生成性先验引入恢复过程是一个挑战。以前的尝试通常使用GAN-inversion。他们首先将退化图像“反转”回预训练GAN的latent code,然后进行复杂的image-specific优化以重建图像。尽管输出具有视觉真实感,但它们通常生成保真度较低的图像,因为低维度的latent code不足以指导精确的恢复。为了应对这些问题,我们提出了具有精致设计的GFP-GAN,以在单个正向传递中实现真实性和保真度的良好平衡。

网络框架

CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior_第1张图片

  • x是输入的退化人脸图像,y_hat是输出的人脸图像以求得接近GT图像y。

  • GFP-GAN is comprised of a degradation removal module (U-Net) and a pretrained face GAN (such as Style- GAN2) as prior。二者以latent code和Channel-Split Spatial Feature Trans- form (CS-SFT) layers为桥梁。

  • 具体而言,Degradation Removal 旨在消除复杂的退化,并提取两种特征,即
    1)潜在特征平坦以将输入图像映射到StyleGAN2中最近的latent code
    2)多分辨率空间特征F_spatial以调制StyleGAN2特征。

  • F_latent通过几个线性层映射到中间latent code W。给定与输入图像接近的latent code,StyleGAN2可以生成中间卷积特征,用F_GAN表示。这些特征被预训练的GAN捕捉到丰富的面部细节。多分辨率特征F_spatial用于以从粗到精的方式利用所提出的CS-SFT层对面部GAN特征FGAN进行空间调制,在保持高保真度的同时实现真实结果。

  • 在训练过程中,除了全局判别损失外,我们还引入了带有判别器的人脸成分loss,以增强重要的人脸成分感知质量,即眼睛和嘴巴。In order to retrain identity, we also employ identity preserving guidance.

Degradation Removal Module:U-Net,产生latent code和F_spatial.
CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior_第2张图片
之后的latent code会经过MLP映射,经过StyleGAN生成含有面部信息的特征。
Channel-Split Spatial Feature Transform:为了更好的保真度。保留输入的空间信息对于人脸恢复至关重要,因为它通常需要局部特征来保持保真度,并在人脸的不同空间位置进行自适应恢复。因此,采用空间特征变换(SFT),该变换生成仿射变换参数用于空间特征调制,并在图像恢复和图像生成中结合其他条件时显示了其有效性。

但是输入图像的特征存在退化信息,因此为了更好地平衡真实性和保真度,我们进一步提出了通道分离空间特征变换(CS-SFT)层,只调节部分空间的特征。这个想法和说法很妙!

Model Objectives


Reconstruction Loss 用的L1和感知损失。Adversarial Loss用的styleGAN的判别损失。
CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior_第3张图片

Facial Component Loss.用ROI align提取左、右眼、嘴巴,对于每个区域都用一个判别器去判别。此外还提到一个特征匹配损失,不同于以往的spatial-wise约束,这里用Gram矩阵,Gram matrix calculates the feature correlations and usually effectively captures texture information。

Identity Preserving Loss类似于感知损失,预训练一个face recognition model ArcFace。
CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior_第4张图片

实验

Datasets and Implementation
Training Dataset:FFHQ 70,000对人脸,resize为512*512大小。

Testing Datasets:1合成3真实,一共4个数据集。
Implementation:StyleGAN2作为预训练的模型提供先验。Unet一共7个下采样,上采样。

Comparisons with State-of-the-art Methods

CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior_第5张图片CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior_第6张图片
Table1和2分别是在人脸恢复和超分辨上的指标结果。
CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior_第7张图片
图片5是在真实场景的效果,感觉还是挺不错的,公司做业务的注重感知结果,这质量杠杠的!

Ablation Studies

CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior_第8张图片CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior_第9张图片
Table 4:(a)是不用SFT去调制,(b)是采用全通道的SFT去调制特征。©是不用预训练的StyleGAN2作为生成先验(d)是去掉多级的恢复损失。相应的视觉结果再Figure6中。
Figure7展现的是对Facial Component Loss的消融实验。第2张图是不用组件判别损失,第3张图是用组件判别损失,第4、5是分别在第三张图情况上加特征匹配损失和特征风格损失(Gram矩阵)。
CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior_第10张图片
Limitations:当输入图像为灰度图时,会造成肤色差异,如Figure8的第三组图。此外退化严重的情况下,产生的图像也会有扭曲和artifacts,如Figure 9.

看完有个问题,不知道本文方法在运行时间上怎么样,是否能够实际应用。

下次再见!

你可能感兴趣的:(计算机视觉,图像处理)