文章目录
原文翻译
Towards Real-World Blind Face Restoration with Generative Facial Prior
基于生成面部先验的真实世界盲人脸恢复
github:https://github.com/TencentARC/GFPGAN
Abstract
盲人脸恢复通常依赖于面部先验,如面部几何先验或参考先验,以恢复真实和忠实的细节。然而,非常低质量的输入不能提供精确的几何先验,而高质量的参考是不可访问的,限制了现实场景的适用性。在这项工作中,我们提出了GFP-GAN,它利用封装在预先训练的人脸GAN中的丰富多样的先验进行盲人脸恢复。这种生成面部先验(GFP)通过空间特征变换层被纳入人脸恢复过程中,这使得我们的方法能够实现真实性和保真度的良好平衡。由于强大的生成面部先验和精细的设计,我们的 GFP-GAN 可以通过一次前向传递联合恢复面部细节并增强颜色,而 GAN 反演方法在推理时需要图像特定的优化。大量实验表明,我们的方法在合成数据集和真实数据集上都取得了比现有技术更好的性能。
1. Introduction
盲人脸复原的目的是从低质量的人脸中恢复高质量的人脸,这些人脸受到未知的退化,如低分辨率[13,48,9]、噪声[71]、模糊[39,58]、压缩伪影[12]等。当应用于现实场景时,由于更复杂的退化,不同的姿势和表情,它变得更具挑战性。先前的研究[9,69,6]通常利用面部特征先验进行面部恢复,如面部特征[9]、分割图[6,9]、面部构件热图[69],并表明这些几何面部先验对于恢复准确的面部形状和细节至关重要。然而,这些先验通常是根据输入图像估计的,并且不可避免地会在现实世界中使用非常低质量的输入。此外,尽管具有语义指导,但上述先验包含的用于恢复面部细节(例如瞳孔)的纹理信息有限。
另一类方法研究参考先验,即高质量的引导人脸[46,45,11]或面部成分字典[44],以生成真实结果,并减轻对退化输入的依赖。然而,高分辨率参考的不可访问性限制了其实际应用,而字典的有限容量限制了其面部细节的多样性和丰富性。
在这项研究中,我们利用生成面部先验 (GFP) 进行真实世界的盲人脸恢复,即先验隐式封装在预训练的人脸生成对抗网络 (GAN) [18] 模型中,例如 StyleGAN [35, 36]。这些人脸 GAN 能够生成具有高度可变性的真实人脸,从而提供丰富多样的先验,例如几何、面部纹理和颜色,从而可以联合恢复面部细节和增强颜色(图 1)。然而,将这种生成先验纳入恢复过程具有挑战性。以前的尝试通常使用 GAN 反演 [19,54,52]。他们首先将退化后的图像“反转”回预训练GAN的潜在代码,然后进行昂贵的图像特定优化来重建图像。尽管输出在视觉上很逼真,但它们通常产生保真度较低的图像,因为低维潜码不足以指导准确的恢复。
图1:与当前最先进的面部恢复方法HiFaceGAN[67]、DFDNet[44]、Wan等[61]和PULSE[52]在真实低质量图像上的比较。虽然以前的方法难以恢复忠实的面部细节或保留面部身份,但我们提出的GFP-GAN在真实感和保真度之间取得了很好的平衡,而且伪像少得多。此外,强大的生成式面部先验使我们能够同时进行复原和色彩增强。(放大以获得最佳视角)
为了解决这些挑战,我们提出了具有精致设计的GFP-GAN,以在单个向前传递中实现真实和保真度的良好平衡。具体来说,GFPGAN由降解去除模块和作为面部先验的预训练人脸GAN组成。它们通过直接潜在代码映射和几个通道分割空间特征变换(CS-SFT)层以粗到细的方式连接起来。所提出的CS-SFT层对特征的分裂进行空间调制,并使左侧特征直接通过以获得更好的信息保存,从而使我们的方法在重新训练高保真度的同时有效地结合生成先验。此外,我们引入了带有局部鉴别器的面部成分损失来进一步增强感知的面部细节,同时采用身份保持损失来进一步提高保真度。
我们总结如下贡献。(1)利用丰富多样的生成人脸先验进行盲人脸修复。这些先验包含足够的面部纹理和颜色信息,使我们能够共同进行面部恢复和颜色增强。(2)我们提出了GFP-GAN框架,该框架具有精致的架构设计和损失,以结合生成面部先验。我们的具有CS-SFT层的GFP-GAN在单个向前传递中实现了保真度和纹理忠实度的良好平衡。(3)大量的实验表明,我们的方法在合成和现实世界数据集上都取得了优于现有技术的性能。
2. Related Work
图像恢复通常包括超分辨率[13、48、60、49、74、68、22、50]、去噪[71、42、26]、去模糊[65、39、58]和去压缩[12、21]。为了获得视觉上令人愉悦的结果,生成对抗网络[18]通常被用作损失监督,以使解决方案更接近自然流形[41,57,64,7,14],而我们的工作试图利用预训练的人脸gan作为生成面部先验(GFP)。
人脸恢复。基于一般人脸幻觉[5,30,66,70],结合两种典型的人脸特定先验:几何先验和参考先验,进一步提高性能。几何先验包括面部标志 [9, 37, 77]、人脸解析图 [58, 6, 9] 和面部成分热图 [69]。然而,1)这些先验需要从低质量的输入中估计,并且在现实场景中不可避免地会下降。2) 它们主要关注几何约束,可能不包含足够的细节来恢复。相反,我们使用的GFP不涉及退化图像的显式几何估计,并在其预先训练的网络中包含足够的纹理。
参考先验[46,45,11]通常依赖于相同身份的参考图像。为了克服这个问题,DFDNet [44] 建议使用 CNN 特征构建每个组件(例如眼睛、嘴巴)的人脸字典来指导恢复。然而,DFDNet主要关注字典中的组件,因此在字典范围(如头发、耳朵和面部轮廓)以外的区域退化,相反,我们的GFP-GAN可以将人脸作为一个整体来恢复。此外,字典的有限大小限制了其多样性和丰富度,而 GFP 可以提供丰富多样的先验,包括几何、纹理和颜色。
预训练GAN的生成先验[34,35,36,3]先前被GAN反演[1,76,54,19]利用,其主要目的是找到给定输入图像的最接近的潜在代码。PULSE[52]迭代优化StyleGAN的潜在代码[35],直到输出和输入之间的距离低于阈值。mGANprior[19]尝试对多个代码进行优化,以提高重构质量。然而,由于低维隐码不足以指导恢复,这些方法通常产生的图像保真度较低。相比之下,我们提出的CS-SFT调制层可以预先合并多分辨率空间特征以实现高保真度。此外,我们的GFP-GAN在推理过程中不需要昂贵的迭代优化。
为了设计紧凑的模型,提高模型表示能力,通常使用通道分割操作。MobileNet[28]提出深度卷积,GhostNet[23]将卷积层分成两部分,使用较少的过滤器生成内在特征映射。DPN中的双路径架构[8]可以对每条路径进行特征重用和新特征探索,从而提高其表示能力。超分辨率也采用了类似的思路[75]。我们的CS-SFT层具有相同的精神,但具有不同的操作和目的。我们在其中一条分割上采用空间特征变换[63,55],将左侧分割作为身份,以达到真实与保真的良好平衡。
局部组件鉴别器。提出了局部鉴别器来关注局部斑块分布[32,47,62]。当应用于人脸时,这些区别性损失被施加到单独的语义面部区域[43,20]。我们引入的面部成分损失也采用了这样的设计,但在学习到的判别特征的基础上进行了进一步的风格监督。
3. Methodology
3.1. Overview of GFP-GAN
我们在本节中描述GFP-GAN框架。给定一个未知退化的输入面部图像x,盲人脸恢复的目的是估计一个高质量的图像 y ^ \hat y y^,它在真实度和保真度方面尽可能与真实图像y相似。
GFP-GAN的总体框架如图2所示。GFP-GAN由降解去除模块(U-Net)和预训练的人脸GAN(如StyleGAN2[36])组成。它们通过潜在代码映射和几个通道分割空间特征变换(CS-SFT)层桥接。具体来说,退化去除模块用于去除复杂的退化,提取两种特征,1)潜在特征 F l a t e n t F_{latent} Flatent用于将输入图像映射到StyleGAN2中最接近的潜在代码,2)多分辨率空间特征 F s p a t i a l F_{spatial} Fspatial用于调制StyleGAN2特征。
图2:GFP-GAN框架概述。它由降解去除模块(U-Net)和作为人脸先验的预训练人脸GAN组成。它们通过潜在代码映射和几个通道分割空间特征变换(CS-SFT)层桥接。在训练过程中,我们采用1)中间恢复损失来去除复杂退化,2)带有鉴别器的面部成分损失来增强面部细节,3)身份保持损失来保持面部身份。
然后,通过几个线性层将 F l a t e n t F_{latent} Flatent映射到中间潜在代码w。给定输入图像的接近潜在代码,StyleGAN2可以生成中间卷积特征,用 F G A N F_{GAN} FGAN表示。这些特征提供了在预训练GAN的权重中捕获的丰富的面部细节。利用多分辨率特征 F s p a t i a l F_{spatial} Fspatial,利用所提出的CS-SFT层对人脸GAN特征 F G A N F_{GAN}