文章目录
原文翻译
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}
FGAN进行从粗到精的空间调制,在保持高保真度的同时获得逼真的结果。
在训练过程中,除了引入全局判别损失外,我们还引入了带有判别器的面部成分损失来增强感知上重要的面部成分,即眼睛和嘴巴。为了对身份进行再培训,我们还采用了身份保留指导。
3.2. Degradation Removal Module
真实世界的盲人脸复原具有复杂和严重退化的人脸,通常是低分辨率、模糊、噪声和JPEG伪影的混合。降解去除模块旨在明确去除上述降解,提取“干净”的特征
F
l
a
t
e
n
t
F_{latent}
Flatent和
F
s
p
a
t
i
a
l
F_{spatial}
Fspatial,减轻后续模块的负担。我们采用U-Net[56]结构作为退化去除模块,因为它可以1)增加大范围模糊消除的接受场,2)生成多分辨率特征。公式如下:
潜在特征
F
l
a
t
e
n
t
F_{latent}
Flatent用于将输入图像映射到StyleGAN2中最接近的潜在代码(第3.3节)。多分辨率空间特征
F
s
p
a
t
i
a
l
F_{spatial}
Fspatial用于调制StyleGAN2特征(第3.4节)。
为了对去除退化有一个中间监督,我们在训练的早期阶段在每个分辨率尺度上使用L1恢复损失。具体来说,我们还为UNet解码器的每个分辨率尺度输出图像,然后将这些输出限制为接近GT图像的金字塔。
3.3. Generative Facial Prior and Latent Code Mapping
预训练的人脸GAN在其卷积的倾斜权重中捕获人脸分布,即生成先验[19,54]。我们利用这种预训练的人脸gan为我们的任务提供多样化和丰富的面部细节。部署生成先验的一种典型方法是将输入图像映射到与其最近的潜在代码Z,然后通过预训练的GAN生成相应的输出[1,76,54,19]。然而,这些方法通常需要耗时的迭代优化来保持保真度。我们不是直接生成最终图像,而是生成最近人脸的中间卷积特征
F
G
A
N
F_{GAN}
FGAN,因为它包含更多细节,并且可以通过输入特征进一步调制以获得更好的保真度(参见第3.4节)。
具体来说,给定输入图像的编码向量Flatent(由U-Net产生,Eq. 1),我们首先将其映射到中间潜在代码W,以更好地保留语义属性,即中间空间由z转换为多个多层感知器层(MLP)[76]。然后,潜在代码W通过预训练GAN中的每个卷积层,并生成每个分辨率尺度的GAN特征。
讨论:关节修复和颜色增强。生成模型捕捉多样化和丰富的先验超越现实的细节和生动的纹理。例如,它们还封装了颜色先验,可以用于我们的联合面部恢复和颜色增强任务。现实世界的人脸图像,如老照片,通常是黑白的,古黄色的,或暗淡的颜色。生成面部先验中的活泼颜色先验允许我们执行包括着色在内的颜色增强[72]。我们认为生成式面部先验还包括传统的几何先验[9,69]、3D先验[16]等,用于修复和操作。
3.4. Channel-Split Spatial Feature Transform
为了更好地保持保真度,我们进一步利用输入空间特征
F
s
p
a
c
e
F_{space}
Fspace(由U-Net产生,Eq. 1)对Eq. 2中的GAN特征
F
G
A
N
F_{GAN}
FGAN进行调制。从输入中保留空间信息对于人脸恢复至关重要,因为它通常需要局部特征进行保真度保存,并在人脸的不同空间位置自适应恢复。因此,我们采用空间特征变换(SFT)[63],为空间特征调制生成仿射变换参数,并在图像恢复[63,44]和图像生成[55]中加入其他条件方面表现出了其有效性。
具体来说,在每个分辨率尺度上,我们通过几个卷积层从输入特征
F
s
p
a
t
i
a
l
F_{spatial}
Fspatial 生成一对仿射变换参数 (α, β)。之后,通过缩放和移动 GAN 特征
F
G
A
N
F_{GAN}
FGAN 来执行调制,公式如下:
为了更好地平衡真实性和保真度,我们进一步提出了通道分割空间特征变换(CSSFT)层,它通过输入特征
F
s
p
a
t
i
a
l
F_{spatial}
Fspatial(归因于保真度)对GAN部分特征进行空间调制,并将左侧GAN特征(归因于真实性)直接通过,如图2所示:
其中
F
G
A
N
s
p
l
i
t
0
F^{split0}_{GAN}
FGANsplit0 和
F
G
A
N
s
p
l
i
t
1
F^{split1}_{GAN}
FGANsplit1 在通道维度上从
F
G
A
N
F_{GAN}
FGAN 拆分特征,Concat[·, ·] 表示连接操作。
因此,CS-SFT具有直接结合先验信息和输入图像有效调制的优点,从而在纹理忠实度和保真度之间取得了很好的平衡。此外,CS-SFT 还可以降低计算复杂度,因为它需要较少的调制通道,类似于 GhostNet [23]。
我们在每个分辨率尺度上进行通道分割SFT层,最后生成一个恢复的人脸
y
^
\hat y
y^。
3.5. Model Objectives
训练我们的GFP-GAN的学习目标包括:1)重建损失,约束输出
y
^
\hat y
y^接近地面真相y,2)恢复真实纹理的对抗损失,3)提出的面部成分损失进一步增强面部细节,4)身份保留损失。
重建损失。我们采用广泛使用的 L1 损失和感知损失 [33, 41] 作为我们的重建损失 Lrec,定义如下:
其中
ϕ
\phi
ϕ 是预训练的 VGG-19 网络 [59],我们在激活之前使用 {conv1,····, conv5} 特征图 [64]。
λ
l
1
λ_{l1}
λl1 和
λ
p
e
r
λ_{per}
λper 分别表示 L1 和感知损失的损失权重。
对抗性损失。我们采用对抗性损失
L
a
d
v
L_{adv}
Ladv 来鼓励 GFP-GAN 偏爱自然图像流形中的解决方案并生成逼真的纹理。与StyleGAN2[36]类似,采用了逻辑损失[18]:
其中 D 表示鉴别器,
λ
a
d
v
λ_{adv}
λadv 表示对抗性损失权重。
面部成分损失。为了进一步增强感知上重要的面部成分,我们引入了左眼、右眼和嘴巴的局部鉴别器的面部成分损失。如图2所示,我们首先用ROI对齐[24]裁剪感兴趣的区域。对于每个区域,我们训练分离和小的局部鉴别器来区分恢复补丁是否真实,将补丁推近自然面部成分分布。
受[62]的启发,我们进一步结合了基于学习鉴别器的特征样式损失。与之前具有空间约束的特征匹配损失[62]不同,我们的特征风格损失试图匹配真实补丁和恢复补丁的Gram矩阵统计[15]。Gram矩阵计算特征相关性,通常有效地捕获纹理信息[17]。我们从学习的局部鉴别器的多层中提取特征,并学习匹配来自真实和恢复补丁的中间表示的这些 Gram 统计量。根据经验,我们发现在生成逼真的面部细节和减少不愉快的伪影方面,特征样式损失比以前的特征匹配损失表现更好。
面部成分损失定义如下。第一项是判别损失[18],第二项是特征风格损失:
其中ROI是来自组件集合{左眼,右眼,嘴巴}的兴趣区域。DROI是每个区域的局部鉴别器。ψ 表示来自学习鉴别器的多分辨率特征。
λ
l
o
c
a
l
λ_{local}
λlocal 和
λ
f
s
λ_{fs}
λfs 分别表示局部判别损失和特征风格损失的损失权重。
身份保持损失。我们从 [31] 中汲取灵感,并在我们的模型中应用身份保留损失。与感知损失[33]类似,我们根据输入人脸的特征嵌入来定义损失。具体来说,我们采用了预训练的人脸识别ArcFace[10]模型,该模型捕捉了身份识别最突出的特征。身份保留损失强制恢复的结果在紧凑的深度特征空间中与地面实况的距离很小:
其中 η 表示人脸特征提取器,即在我们的实现中 ArcFace [10]。
λ
i
d
λ_{id}
λid 表示身份保留损失的权重。
整体模型目标是上述损失的组合:
损失超参数设置如下:
λ
l
1
λ_{l1}
λl1 = 0.1,
λ
p
e
r
λ_{per}
λper = 1,
λ
a
d
v
λ_{adv}
λadv = 0.1,
λ
l
o
c
a
l
λ_{local}
λlocal = 1,
λ
f
s
λ_{fs}
λfs = 200,
λ
i
d
λ_{id}
λid = 10。
4. Experiments
4.1. Datasets and Implementation
训练数据集。我们在FFHQ数据集[35]上训练我们的GFP-GAN,该数据集由70,000张高质量图像组成。在训练期间,我们将所有图像调整为
51
2
2
512^{2}
5122。
我们的GFP-GAN是在近似真实低质量图像的合成数据上训练的,并在推理过程中推广到真实世界的图像。我们遵循 [46, 44] 中的实践,并采用以下退化模型来合成训练数据:
高质量图像 y 首先与高斯模糊核
k
σ
k_{σ}
kσ 进行卷积,然后是比例因子 r 的下采样操作。之后,在图像中添加加性高斯白噪声
n
δ
n_{δ}
nδ,最后用质量因子 q 的 JPEG 压缩。与 [44] 类似,对于每个训练对,我们分别从 {0.2 : 10},{1: 8}, {0 : 15}, {60 : 100} 中随机采样 σ、r、δ 和 q。我们还在训练期间添加了颜色抖动以进行颜色增强。
测试数据集。我们构建了一个合成数据集和三个不同的具有不同来源的真实数据集。所有这些数据集与我们的训练数据集都没有重叠。我们在这里简要介绍。
•CelebA-Test是一个合成数据集,包含来自其测试分区[51]的3,000张CelebA-HQ图像。生成方式与训练期间相同。
• LFW-Test。LFW[29]在野外包含低质量的图像。我们将验证分区中每个身份的所有第一个图像分组,形成1711个测试图像。
•CelebChild-Test包含从互联网上收集的180个名人儿童面孔。它们是低质量的,其中许多是黑白旧照片。
•WebPhoto-Test。我们从互联网上抓取了 188 张现实生活中的低质量照片,提取了 407 张人脸来构建 WebPhoto 测试数据集。这些照片有不同的和复杂的退化。其中一些是旧照片,细节和颜色都有非常严重的退化。
实现。我们采用预训练的StyleGAN2[36],输出
51
2
2
512^{2}
5122作为我们的生成面部先验。StyleGAN2 的通道乘数设置为一个紧凑的模型大小之一。用于退化去除的UNet由7个下采样和7个上采样组成,每个上采样都有一个剩余块[25]。对于每个 CS-SFT 层,我们使用两个卷积层分别生成仿射参数 α 和 β。
训练 mini-batch 大小设置为 12。我们使用水平翻转和颜色抖动来增强训练数据。我们考虑三个组件:左眼、右眼、嘴巴,用于面部成分损失,因为它们在感知上是显着的。每个组件都由 ROI align [24] 裁剪,并与原始训练数据集中提供的面部标志对齐。我们使用 Adam 优化器 [38] 训练我们的模型,总共 800k 次迭代。学习率设置为
2
×
1
0
−
3
2 × 10^{−3}
2×10−3,然后在第 700k、750k 次迭代时衰减 2 倍。我们使用 PyTorch 框架实现我们的模型,并使用四个 NVIDIA Tesla P40 GPU 对其进行训练。
4.2. Comparisons with State-of-the-art Methods
我们将我们的GFP-GAN与几种最先进的人脸恢复方法进行了比较:HiFaceGAN[67]、DFDNet[44]、PSFRGAN[6]、Super-FAN[4]和Wan等人[61]。用于人脸恢复的 GAN 反演方法:PULSE [52] 和 mGANprior [19] 也被包括在内以进行比较。我们还将我们的GFP-GAN与图像恢复方法进行了比较:RCAN[74]、ESRGAN[64]和DeblurGANv2[40],并在我们的人脸训练集上对它们进行微调,以便进行公平的比较。我们采用他们的官方代码,除了 Super-FAN,为此我们使用重新实现。
为了评估,我们采用了广泛使用的非参考感知指标:FID [27] 和 NIQE [53]。我们还采用像素级度量(PSNR和SSIM)和感知度量(LPIPS[73])对带有Ground-Truth (GT)的CelebA-Test。我们在ArcFace[10]特征嵌入中使用Angels测量身份距离,其中较小的值表示更接近GT的身份。
合成CelebA-Test。比较在两种设置下进行:1)输入和输出具有相同分辨率的盲人脸恢复。2)4×人脸超分辨率。请注意,我们的方法可以将上采样的图像作为人脸超分辨率的输入。
各设置的定量结果见表1和表2。在这两种设置下,GFP-GAN实现了最低的LPIPS,表明我们的结果在感知上接近基本事实。GFP-GAN还获得了最低的FID和NIQE,表明输出分别接近真实人脸分布和自然图像分布。除了感知性能之外,我们的方法还保持了更好的身份,这表明我们的方法在人脸特征嵌入中具有最小的程度。请注意:1)我们的方法的FID和NIQE低于GT并不表明我们的性能优于GT,因为这些“感知”指标在粗尺度上与人类意见得分良好相关,但在细尺度上并不总是良好相关[2];2)像素指标PSNR和SSIM与人类观察者的主观评价相关性不强[2,41],我们的模型在这两个指标上表现不佳。
表1:CelebA-Test盲脸恢复的定量比较。红色和蓝色分别表示最佳和次佳表现。'‘表示对我们的训练集进行微调。Deg.表示单位距离。
表2:4×face超分辨率CelebA-Test的定量比较。红色和蓝色分别表示最佳和次佳表现。’'表示对我们的训练集进行微调。Deg.表示单位距离。
定性结果如图3和图4所示。1)由于强大的生成面部先验,我们的GFPGAN恢复了眼睛(瞳孔和睫毛)、牙齿等的忠实细节。2)我们的方法在恢复时将面部视为整体,也可以生成逼真的头发,而以前依赖成分字典(DFDNet)或解析图(PSFRGAN)的方法无法生成忠实的头发纹理(第二行,图3)。它产生自然闭合的口腔,而不像PSFRGAN那样强制添加牙齿(第二行,图3)。并且在图4中,GFP-GAN也恢复了合理的眼睛注视方向。
图3:CelebA-Test盲脸修复的定性比较。我们的GFP-GAN在眼睛,嘴巴和头发上产生忠实的细节。放大以获得最佳视角。
图4:×4人脸超分辨率的CelebA-Test对比。我们的GFP-GAN恢复逼真的牙齿和忠实的眼睛注视方向。放大以获得最佳视角。
真实世界的LFW, CelebChild和wedphototest。为了测试泛化能力,我们在三个不同的真实数据集上评估了我们的模型。定量结果如表3所示。我们的GFP-GAN在所有三个真实数据集上都取得了卓越的性能,显示了其卓越的泛化能力。PULSE[52]虽然也能获得较高的感知质量(FID分数较低),但无法保留人脸身份,如图5所示。
定性比较如图5所示。GFPGAN可以利用强大的生成先验对真实照片进行人脸复原和色彩增强。我们的方法可以在复杂的真实世界退化中生成可信和逼真的人脸,而其他方法无法恢复忠实的面部细节或产生伪像(特别是在图5的WebPhoto-Test中)。除了眼睛和牙齿等常见的面部成分外,GFP- gan在头发和耳朵上的表现也更好,因为GFP先验考虑了整个面部而不是单独的部分。使用SC-SFT层,我们的模型能够实现高保真度。如图5最后一行所示,以前的方法大多无法恢复闭上的眼睛,而我们的方法可以用更少的伪影成功地恢复眼睛。
表3:现实世界LFW、CelebChild、WebPhoto的定量比较。红色和蓝色分别表示最佳和次佳表现。'*'表示对我们的训练集进行微调。Deg.表示单位距离。
图5:三个真实世界数据集的定性比较。放大以获得最佳视角。
4.3. Ablation Studies
CS-SFT层。如表4[配置a)]和图6所示,当我们去除空间调制层,即只保留隐码映射而不保留空间信息时,恢复的人脸即使有身份保持损失(高LIPS分数和大Deg.)也不能保留人脸身份。因此,在CS-SFT层中使用多分辨率空间特征对于保持保真度至关重要。当我们将CS-SFT层切换到简单的SFT层[表4中的配置b)]时,我们观察到1)感知质量在所有指标上都下降了,2)它保持了更强的同一性(较小的度),因为输入图像特征对所有调制特征施加影响,输出偏置于退化的输入,从而导致感知质量降低。相比之下,CSSFT层通过调制特征的分割提供了真实和保真的良好平衡。
表4:CelebA-Test盲面修复下消融研究结果。
图6:CS-SFT层消融研究、GFP先验和金字塔恢复损失。放大以获得最佳视角
将GAN预训练为GFP。预训练GAN为恢复提供了丰富多样的特征。如果我们不使用生成面部先验,可以观察到性能下降,如表4[配置c)]和图6所示。
金字塔修复损失。在降解去除模块中采用金字塔恢复损失,增强了对现实环境中复杂降解的恢复能力。如果没有这种中间监督,后续调制的多分辨率空间特征可能仍然会退化,从而导致性能下降,如表4[配置d)]和图6所示。
面部成分损失。我们比较了 1) 删除所有面部组件损失的结果,2) 仅保持组件鉴别器,3) 添加额外的特征匹配损失,如 [62] 和 4) 采用基于 Gram 统计 [15] 的额外特征样式损失。如图 7 所示,具有特征样式损失的组件鉴别器可以更好地捕获眼睛分布并恢复合理的细节。
图7:消融对面部成分损失的研究。图中,D, fm, fs为成分鉴别器,特征
4.4. Discussion and Limitations
训练偏差。我们的方法在大多数深色皮肤的脸和各种种群组上表现良好(图8),因为我们的方法使用预先训练的GAN和输入图像特征进行调制。此外,我们使用重建损失和身份保留损失来限制输出以保留输入保真度。然而,当输入图像为灰度时,人脸颜色可能存在偏差(图 8 中的最后一个示例),因为输入不包含足够的颜色信息。因此,需要多样化和平衡的数据集。
限制。如图9所示,当真实图像的退化严重时,GFPGAN恢复的面部细节被伪影扭曲。我们的方法还为非常大的姿势产生了不自然的结果。这是因为合成退化和训练数据分布与现实世界中的分布不同。一种可能的方法是从真实数据中学习这些分布,而不仅仅是使用合成数据,这留作未来的工作。
图 8:深色皮肤脸的结果。
图 9:我们模型的局限性。还给出了PSFRGAN[6]的结果。
5. Conclusion
我们提出了GFP-GAN框架,该框架在具有挑战性的盲人脸恢复任务中利用丰富多样的生成面部先验。该先验被合并到具有通道分割空间特征变换层的恢复过程中,使我们能够实现真实性和保真度的良好平衡。广泛的比较证明了GFP-GAN在真实图像的联合人脸恢复和颜色增强方面的优越性能,优于现有技术。