上一篇博客更新还是在校期间,工作这么久,感觉需要重新关注论文了。正好趁着最近能早下班,陆陆续续学习一下。
Towards Robust Blind Face Restoration with Codebook Lookup Transformer
摘要
盲脸恢复是一个高度不适定的问题,通常需要辅助引导来:1)改进从退化输入到期望输出的映射;2)补充输入中丢失的高质量细节。在本文中,我们证明了在一个小的代理空间中学习到的离散码本先验,通过将盲人脸恢复转换为码本预测任务,大大降低了恢复映射的不确定性和模糊性,同时为生成高质量人脸提供了丰富的视觉原子。在这种范式下,我们提出了一种基于 Transformer 的预测网络,名为 CodeFormer,用于对低质量人脸的全局构图和上下文进行建模以进行码本预测,即使在输入严重退化的情况下,也能发现与目标人脸非常接近的自然人脸。为了增强对不同退化情况的适应性,我们还提出了一种可控特征转换模块,允许在保真度和质量之间进行灵活权衡。得益于具有表现力的码本先验和全局建模,CodeFormer 在质量和保真度方面均优于现有方法,对退化表现出卓越的鲁棒性。在合成数据集和真实世界数据集上的大量实验结果验证了我们方法的有效性。
1. 引言
在野外捕获的人脸图像常常遭受各种退化,如压缩、模糊和噪声。恢复这些图像是一个高度不适定的问题,因为退化导致的信息丢失使得给定一个低质量(LQ)输入时,存在无限可能的高质量(HQ)输出。在盲恢复中,由于具体的退化情况未知,不适定性进一步加剧。尽管深度学习的出现取得了一些进展,但在巨大的图像空间中,在没有额外引导的情况下学习低质量到高质量的映射仍然难以处理,导致早期方法的恢复质量不理想。为了提高输出质量,减少低质量到高质量映射的不确定性并补充高质量细节的辅助信息不可或缺。各种先验已被用于缓解这个问题的不适定性,包括几何先验、参考先验和生成先验。尽管观察到纹理和细节有所改善,但这些方法通常对退化高度敏感或先验表达能力有限。这些先验为人脸恢复提供的指导不足,因此它们的网络本质上依赖于通常严重受损的低质量输入图像的信息。结果,低质量到高质量映射的不确定性仍然存在,并且输出质量因输入图像的退化而下降。最近,基于生成先验,一些方法通过迭代潜在优化或直接潜在编码将退化的人脸投影到一个连续的无限空间中(这里说的连续的无限空间是什么含义,要看下论文27)。尽管输出看起来很真实,但在严重退化的情况下很难找到准确的潜在向量,导致结果保真度低(图 1(d))。为了提高保真度,这类方法通常需要在编码器和解码器之间使用跳跃连接,然而,当输入严重退化时,这种设计会在结果中引入伪影,如图 1(e)所示。
图 1:动机说明。(a) 连续生成式先验的恢复框架(上)和我们的离散码本先验的恢复框架(下)。(b) 高分辨率 / 低分辨率人脸特征和码本元素的 t-SNE [35] 可视化结果。(c) 低分辨率输入。(d-e) 现有采用连续先验方法(PULSE [27] 和 GFP-GAN [37])的结果。(f-g) 采用离散先验方法(最近邻算法 [11, 34] 和 CodeFormer)的结果。(h) 根据真实代码序列得到的重建结果。(i) 高分辨率真实图像。如图所示,(d) 没有跳跃连接的 PULSE 方法显示出较低的保真度。(e) 带有跳跃连接的 GFP-GAN 方法缓解了身份特征方面的问题,但引入了明显的伪影。(f) 与 (d-e) 相比,利用最近邻匹配进行代码查找能够恢复出更准确的面部结构,但像眼镜这样的一些细节无法恢复,并且可能会引入一些伪影。(g) 我们的 CodeFormer 方法采用 Transformer 进行代码预测,生成了质量高且保真度好的最佳结果。
与上述方法不同,本文将盲人脸恢复转换为在一个学习到的离散码本先验的小有限代理空间中的码本预测任务,该方法对退化表现出卓越的鲁棒性和丰富的表达能力。码本通过使用向量量化自动编码器对高质量人脸进行自重建学习得到,它与解码器一起存储了用于人脸恢复的丰富高质量细节。与连续生成先验相比,码本项的组合形成了一个只有有限基数的离散先验空间。通过将低质量图像映射到一个小得多的代理空间(例如,1024 个码),低质量到高质量映射的不确定性显著降低,提高了对各种退化的鲁棒性,如图 1(d - g)所示。此外,码本空间具有更强的表达能力,在感知上更接近图像空间,如图 1(h)所示。这种特性使网络能够减少对输入的依赖,甚至无需跳跃连接。(感觉这里其实有个更朴素的思想,对于噪声而言,什么是好的是一定的,不存在分歧的,所以可以用代理空间去拟合)
虽然基于码本的离散表示已被用于图像生成,但为图像恢复确定准确的码本组合仍然是一个具有挑战性的问题。现有工作通过最近邻(NN)特征匹配查找码本,由于低质量输入的固有纹理通常已损坏,这种方法在图像恢复中不太可行。低质量图像中的信息丢失和各种退化不可避免地扭曲了特征分布,阻碍了准确的特征匹配。如图 1(b)(右)所示,即使在对低质量图像上的编码器进行微调后,低质量特征也无法很好地聚集到准确的码上,而是扩散到其他附近的码簇中,因此在这种情况下最近邻匹配不可靠。(由于特征扭曲导致的无法进行特征匹配)
为了适应恢复任务,我们提出了一种基于 Transformer 的码本预测网络,名为 CodeFormer,用于利用低质量人脸的全局构图和长距离依赖关系,以实现更好的码本预测。具体来说,Transformer 模块以低质量特征为输入,预测码本标记序列,该序列被视为码本空间中人脸图像的离散表示。得益于对低质量图像中局部信息丢失的全局建模补救,所提出的 CodeFormer 对严重退化具有鲁棒性,并保持整体一致性。比较图 1(f - g)中的结果,与最近邻匹配相比,所提出的 CodeFormer 能够恢复更多细节,如眼镜,提高了恢复的质量和保真度。
此外,我们提出了一种可控特征转换模块,通过一个可调节的系数来控制从低质量编码器到解码器的信息流。这种设计允许在恢复质量和保真度之间进行灵活权衡,从而实现它们之间的连续图像转换。该模块增强了 CodeFormer 在不同退化情况下的适应性,例如,在严重退化的情况下,可以手动减少携带退化的低质量特征的信息流,以产生高质量的结果。
配备了上述组件后,所提出的 CodeFormer 在现有数据集以及我们新引入的 WIDER - Test 数据集上展示了卓越的性能,该数据集包含从 WIDER - Face 数据集中收集的 970 张严重退化的人脸图像。除了人脸恢复,我们的方法在其他具有挑战性的任务中也证明了其有效性,如人脸修复,在该任务中需要来自其他区域的长距离线索。我们进行了系统的研究和实验,以证明我们的方法优于先前工作。
3. 方法
本文的主要重点是探索一个离散表示空间,以减少恢复映射的不确定性,并为退化输入补充高质量细节。由于低质量输入中局部纹理和细节丢失和损坏,我们采用 Transformer 模块对自然人脸的全局构图进行建模,以弥补局部信息丢失,实现高质量的恢复。整体框架如图 2 所示。
图 2:CodeFormer 的框架。(a) 我们首先通过自重建学习来学习一个离散码本和一个解码器,以存储人脸图像的高质量视觉部分。(b) 在码本和解码器固定的情况下,我们随后引入一个 Transformer 模块用于代码序列预测,对低质量输入的人脸整体构图进行建模。此外,使用了一个可控的特征变换模块来控制从低分辨率编码器到解码器的信息流。请注意,这种连接是可选的,当输入严重退化时可以将其禁用,以避免产生不良影响,而且人们可以调整一个标量权重 w 来在质量和保真度之间进行权衡。
我们首先结合向量量化的思想,通过自重建预训练一个量化自动编码器,以获得一个离散码本和相应的解码器(3.1 节)。然后,利用码本组合和解码器的先验进行人脸恢复。基于这个码本先验,我们采用 Transformer 从低质量输入中准确预测码本组合(3.2 节)。此外,引入了一个可控特征转换模块,在恢复质量和保真度之间进行灵活权衡(3.3 节)。我们方法的训练相应地分为三个阶段。(第一步的质量越高,后面的效果越好)
3.1 码本学习(阶段 I)
为了减少低质量到高质量映射的不确定性,并为恢复补充高质量细节,我们首先预训练量化自动编码器以学习一个上下文丰富的码本,这提高了网络的表达能力以及对退化的鲁棒性。
如图 2(a)所示,高质量人脸图像\(I_{h} \in \mathbb{R}^{H ×W ×3}\)首先由编码器\(E_{H}\)嵌入为压缩特征\(Z_{h} \in \mathbb{R}^{m ×n ×d}\)。遵循 VQVAE 和 VQGAN,我们用可学习码本\(C={c_{k} \in \mathbb{R}^{d}}_{k=0}^{N}\)中最近的项替换\(Z_{h}\)中的每个 “像素”,以获得量化特征\(Z_{c} \in \mathbb{R}^{m ×n ×d}\)和相应的码本标记序列\(s \in{0, \cdots, N-1}^{m-n}\) :
\(Z_{c}^{(i, j)}=\underset{c_{k} \in \mathcal{C}}{arg min }\left\| Z_{h}^{(i, j)}-c_{k}\right\| _{2} ; s^{(i, j)}=\underset{k}{arg min }\left\| Z_{h}^{(i, j)}-c_{k}\right\| _{2} .\)
(这个公式是最近邻进行匹配)
然后,解码器\(D_{H}\)根据\(Z_{c}\)重建高质量人脸图像Irec。\(m \cdot n\)个码本标记序列s形成一个新的潜在离散表示,指定了学习到的码本中各自的码索引,即当\(s^{(i, j)}=k\)时,\(Z_{c}^{(i, j)}=c_{k}\)。
总结来看是从人脸图像I,变化到压缩特征Zh,然后变化到量化特征Zc和码本标记序列S,这里的具体实现需要结合代码进行学习
训练目标:为了使用码本训练量化自动编码器,我们采用了三种图像级重建损失:L1 损失\(L_{1}\)、感知损失\(L_{per }\)和对抗损失\(L_{a d v}\):
\(\mathcal{L}_{1}=\left\| I_{h}-I_{rec }\right\| _{1} ; \mathcal{L}_{per }=\left\| \Phi\left(I_{h}\right)-\Phi\left(I_{rec }\right)\right\| _{2}^{2} ; \mathcal{L}_{adv }=\left[log D\left(I_{h}\right)+log \left(1-D\left(I_{rec }\right)\right)\right],(2)\)
其中\(\Phi\)表示 VGG19 的特征提取器。由于在更新码本项时图像级损失约束不足,我们还采用了中间码级损失\(L_{code }^{feat }\)来减少码本c与输入特征嵌入\(Z_{h}\)之间的距离:
\(\mathcal{L}_{code }^{feat }=\left\| sg\left(Z_{h}\right)-Z_{c}\right\| _{2}^{2}+\beta\left\| Z_{h}-sg\left(Z_{c}\right)\right\| _{2}^{2},\)
其中\(sg(·)\)表示停止梯度算子,\(\beta = 0.25\)是编码器和码本更新率的权重权衡。由于公式(1)中的量化操作不可微,我们采用直通梯度估计器将解码器的梯度复制到编码器。码本先验学习的完整目标\(L_{codebook }\)为:
\(\mathcal{L}_{codebook}=\mathcal{L}_{1}+\lambda_{per}\mathcal{L}_{per}+\lambda_{adv}\mathcal{L}_{adv}+\mathcal{L}_{code}^{feat}\)
在我们的实验中\(\lambda_{a d v}\)设置为 0.8。
码本设置:我们的编码器\(E_{H}\)和解码器\(D_{H}\)分别由 12 个残差块和 5 个用于下采样和上采样的缩放层组成。因此,我们获得了\(r = H / n = W / m = 32\)的大压缩比(这里看起来只是在说有5次下采样),这为我们在阶段 II 中的全局建模带来了对退化的强大鲁棒性和可控的计算成本。虽然更多的码本项可以简化重建(相当于维度多了),但冗余元素可能会在后续的码本预测中导致歧义。因此,我们将码本的项数N设置为 1024,这对于准确的人脸重建已经足够。此外,码本维度d设置为 256。(这里的码本维度又指什么东西?看起来像是m×n×d中的d,)
3.2 码本查找 Transformer 学习(阶段 II)
由于低质量人脸中的纹理损坏,公式(1)中的最近邻(NN)匹配通常无法为面部恢复找到准确的码本。如图 1(b)所示,具有各种退化的低质量特征可能偏离正确的码本并被分组到附近的簇中,导致不理想的恢复结果,如图 1(f)所示。为了缓解这个问题,我们采用 Transformer 对全局关系进行建模,以实现更好的码本预测。基于 3.1 节中学习到的自动编码器,如图 2(b)所示,我们在编码器之后插入一个包含九个自注意力块的 Transformer 模块。我们固定码本c和解码器\(D_{H}\),并微调编码器\(E_{H}\)进行恢复。微调后的编码器表示为\(E_{L}\)。为了通过\(E_{L}\)获得低质量特征\(Z_{l} \in \mathbb{R}^{m ×n ×d}\),我们首先将特征展开为\(m \cdot n\)个向量\(Z_{l}^{v} \in \mathbb{R}^{(m \cdot n) ×d}\),然后将它们输入到 Transformer 模块中。Transformer 的第s个自注意力块计算如下: \(Attention(Q,K,V)=softmax(\frac{QK^{T}}{\sqrt{d_{k}}})V\) 其中\(X_{0}=Z_{l}^{v}\)。查询Q、键K和值V通过线性层从\(X_{s}\)获得。
我们在查询Q和键K上添加正弦位置嵌入\(P \in \mathbb{R}^{(m \cdot n) ×d}\),以提高对序列表示的建模能力。在自注意力块之后,采用线性层将特征投影到\((m \cdot n) ×N\)的维度。总体而言,以编码特征\(Z_{l}^{v}\)为输入,Transformer 以N个码本项的概率形式预测\(m·n\)个码本序列\(\hat{s} \in{0, \cdots,|N|-1}^{m \cdot n}\)。预测的码本序列然后从学习到的码本中检索\(m \cdot n\)个相应的码本项,形成量化特征\(\hat{Z}_{c} \in \mathbb{R}^{m ×n ×d}\),通过固定的解码器\(D_{H}\)生成高质量的人脸图像。得益于我们的大压缩比(即 32),我们的 Transformer 在对低质量人脸图像的全局相关性进行建模方面既有效又高效。
训练目标:我们训练 Transformer 模块 T 并微调编码器 \(E_{L}\) 进行恢复,同时固定码本 c 和解码器 \(D_{H}\)。在这个阶段,我们不使用图像级的重建损失和对抗损失,只需要码级损失:1)用于码本标记预测监督的交叉熵损失 \(L_{code }^{token }\);2)用于使低质量特征 \(Z_{l}\) 接近从码本中获取的量化特征 \(z_{c}\) 的 L2 损失 \(L_{code }^{feat' }\),这降低了标记预测学习的难度: \(\mathcal{L}_{code}^{token}=-\sum_{i=1}^{m \cdot n}\sum_{k=1}^{N}\hat{s}_{i,k}\log(s_{i,k})\) \(\mathcal{L}_{code}^{feat'}=\left\| Z_{l}-Z_{c}\right\| _{2}^{2}\) 其中,\(\hat{s}_{i,k}\) 是第 i 个标记预测为第 k 个码本项的概率,\(s_{i,k}\) 是对应的真实标签。这个阶段的总损失函数为: \(\mathcal{L}_{transformer}=\mathcal{L}_{code}^{token}+\mathcal{L}_{code}^{feat'}\)
(transformer目的是从低质量特征中预测高质量特征码本,所以可以看到第一个损失函数就是正确率的损失函数,同时为了降低预测难度,所以给出了接近码本中量化特征的L2损失函数,先按照高质量的编码方法学习,然后去预测)
3.3 可控特征转换(阶段 III)
尽管我们在第二阶段已经得到了一个出色的人脸恢复模型,但我们还研究了如何在人脸恢复的质量和保真度之间进行灵活权衡。因此,我们提出了可控特征转换(CFT)模块,用于控制从低质量(LQ)编码器 \(E_{L}\) 到解码器 \(D_{H}\) 的信息流。具体来说,如图 2 所示,低质量特征 \(F_{e}\) 通过具有仿射参数 α 和 β 的空间特征变换 [38] 来轻微调整解码器特征 \(F_{d}\)。然后使用一个可调系数 \(w \in[0,1]\) 来控制输入的相对重要性:
\(\hat{F}_{d}=F_{d}+\left(\alpha \odot F_{d}+\beta\right) × w ; \alpha, \beta=\mathcal{P}_{\theta}\left(c\left(F_{d}, F_{e}\right)\right)\)
其中,\(P_{\theta}\) 表示一组卷积层,用于从拼接后的特征 \(c(F_{e}, F_{d})\) 中预测出 α 和 β。我们在编码器和解码器之间的多个尺度 \(s \in \{32, 64, 128, 256\}\) 上采用了 CFT 模块。这样的设计使我们的网络在面对轻度退化时能保持高保真度,在面对重度退化时能保证高质量。具体而言,当输入的低质量图像退化严重时,可以使用较小的 w 值来减少对输入图像的依赖,从而生成高质量的输出。而当退化程度较轻时,增大 w 值可以引入更多低质量图像的信息,以增强恢复结果的保真度。
训练目标:
在本阶段训练可控模块并微调编码器\(E_{L}\)时,我们保留第二阶段的码级损失\(L_{tf}\),同时添加图像级损失\(L_{1}\)、\(L_{per}\)和\(L_{adv}\)。这些图像级损失与第一阶段相同,只是将重建图像\(I_{rec}\)替换为恢复输出\(I_{res}\)。
本阶段的总损失是上述损失与其原始权重因子加权后的总和。在本阶段训练时,我们将w设置为 1,这样在推理时通过在 [0, 1] 范围内调整w,网络就能实现结果的连续变化。在推理时,除非另有说明,我们默认将w设置为 0.5,以便在输出的质量和保真度之间取得良好的平衡。
4. 实验
4.1 数据集
训练数据集:我们在 FFHQ 数据集上训练模型,该数据集包含 70,000 张高质量(HQ)图像,所有图像在训练时均调整大小为 512×512。为形成训练对,我们根据以下退化模型,从高质量图像 \(I_{h}\) 合成低质量图像 \(I_{L}\): \(I_{l}=\left\{\left[\left(I_{h} \otimes k_{\sigma}\right)_{\downarrow_{r}}+n_{\delta}\right]_{JPEG_{q}}\right\}_{\uparrow_{r}}\) 其中,高质量图像 \(I_{h}\) 首先与高斯核 \(k_{\sigma}\) 卷积,接着进行尺度为 r 的下采样。之后,向图像中添加加性高斯噪声 \(n_{\delta}\),再应用质量因子为 q 的 JPEG 压缩。最后,将低质量图像重新调整大小为 512×512。我们分别从 [1, 15]、[1, 30]、[0, 20] 和 [30, 90] 中随机采样 \(\sigma\)、\(\delta\) 和 q。
测试数据集:我们在合成数据集 CelebA - Test 和三个真实世界数据集(LFW - Test、WebPhoto - Test 和我们提出的 WIDER - Test)上评估我们的方法。CelebA - Test 包含从 CelebA - HQ 数据集中选择的 3,000 张图像,其中低质量图像的合成退化范围与我们的训练设置相同。三个真实世界数据集分别包含不同程度的退化,即轻度(LFW - Test)、中度(WebPhoto - Test)和重度(WIDER - Test)。LFW - Test 由 LFW 数据集中每个人的第一张图像组成,包含 1,711 张图像。WebPhoto - Test 由从互联网收集的 407 张低质量人脸图像组成。我们的 WIDER - Test 包含从 WIDER Face 数据集中选取的 970 张严重退化的人脸图像,为评估盲人脸恢复方法的泛化性和鲁棒性提供了更具挑战性的数据集。
4.2 实验设置和指标
设置:我们将尺寸为 512×512×3 的人脸图像表示为 16×16 的码序列。在所有训练阶段,我们使用 Adam 优化器,批量大小为 16。在阶段 I 和阶段 II 中,我们将学习率设置为 \(8×10^{-5}\),在阶段 III 中采用较小的学习率 \(2×10^{-5}\)。这三个阶段分别训练 150 万次、20 万次和 2 万次迭代。我们的方法使用 PyTorch 框架实现,并使用四个 NVIDIA Tesla V100 GPU 进行训练。
指标:对于有真实标签的 CelebA - Test 数据集的评估,我们采用峰值信噪比(PSNR)、结构相似性指数(SSIM)和学习感知图像块相似度(LPIPS)作为指标。我们还使用 ArcFace 网络特征的余弦相似度来评估身份保持情况,记为 IDS。对于没有真实标签的真实世界数据集的评估,我们采用广泛使用的无参考感知指标:FID和 MUSIQ(KonIQ)。
4.3 与最先进方法的比较
我们将提出的 CodeFormer 与最先进的方法进行比较,包括 PULSE、DFDNet、PSFRGAN、GLEAN、GFP - GAN 和 GPEN。我们在合成数据集和真实世界数据集上都进行了广泛的比较。
合成数据集上的评估:我们首先在表 1 中展示了 CelebA - Test 数据集上的定量比较结果。在图像质量指标 LPIPS、FID 和 MUSIQ 方面,我们的 CodeFormer 取得了比现有方法更好的分数。此外,它还能很好地保持身份,这体现在最高的 IDS 分数和 PSNR 上。另外,我们在图 3 中展示了定性比较结果。相比之下,其他方法无法产生令人满意的恢复结果,例如,DFDNet、PSFRGAN、GFP - GAN 和 GPEN 引入了明显的伪影,而 GLEAN 产生的结果过度平滑,缺乏面部细节。此外,所有比较的方法都无法保持身份。得益于具有表现力的码本先验和全局建模,CodeFormer 不仅能生成高质量的人脸,即使在输入严重退化的情况下,也能很好地保持身份。
真实世界数据集上的评估:如表 2 所示,在具有轻度和中度退化的真实世界测试数据集上,我们的 CodeFormer 在 FID 分数上与比较方法具有可比的感知质量,在具有重度退化的测试数据集上取得了最佳分数。尽管 PULSE 在 MUSIQ 分数上也表现良好,但它无法保持输入图像的身份,如表 1 中的 IDS 分数和图 4 中的视觉结果所示。从图 4 的视觉比较中可以看出,我们的方法对真实的严重退化表现出了卓越的鲁棒性,并产生了最令人满意的视觉效果。值得注意的是,CodeFormer 成功地保持了身份,并生成了具有丰富细节的自然结果。
4.4 消融研究
码本空间的有效性:我们首先研究码本空间的有效性。如表 3 中的实验(a)所示,去除码本(即直接将编码器特征 \(Z_{l}\) 输入解码器)会导致 LPIPS 和 IDS 分数变差。结果表明,码本的离散空间是确保我们模型鲁棒性和有效性的关键。
基于 Transformer 的码本预测的优越性:为了验证我们基于 Transformer 的码本查找预测方法的优越性,我们将其与两种不同的解决方案进行比较,即最近邻(NN)匹配(实验(b))和基于卷积神经网络(CNN)的码本预测模块(实验(c)),后者在编码器 \(E_{L}\) 之后采用线性层进行预测。如表 3 所示,实验(b)和(c)的比较表明,采用码本预测进行码本查找比最近邻特征匹配更有效。然而,CNN 卷积操作的局部性限制了其对长码序列预测的建模能力。与纯基于 CNN 的方法(实验(c))相比,我们基于 Transformer 的解决方案在 LPIPS 和 IDS 分数方面产生了更高保真度的结果,并且在所有退化程度下的码本预测准确率也更高,如图 6 所示。此外,CodeFormer 的优越性还在图 5 和图 9 的视觉比较中得到了体现。
固定解码器的重要性:与 DFDNet 中旨在存储大量面部细节的大型字典(约 3.2G)不同,我们特意采用了一个紧凑的码本 \(C \in \mathbb{R}^{N ×d}\),其中 \(N = 1024\),\(d = 256\),它仅保留了用于人脸恢复的基本码,这些码随后激活了预训练解码器中存储的详细线索。因此,码本必须与解码器一起使用才能充分发挥其潜力。为了证明我们的设计,我们进行了两项研究:1)固定码本和解码器(实验(g));2)固定码本但微调解码器(实验(e))。表 3 显示,微调解码器会降低性能,验证了我们的观点。这是因为微调解码器破坏了预训练码本和解码器所保持的先验知识,导致性能次优。因此,在我们的方法中,我们固定了解码器。
可控特征转换模块的灵活性:考虑到真实世界低质量人脸图像中的各种退化情况,我们提供了一个可控特征转换(CFT)模块,以实现质量和保真度之间的灵活权衡。如图 7 所示,较小的 w 倾向于产生高质量的结果,而较大的 w 则提高了保真度。虽然这种灵活性在以前的工作中很少被探索,但在这里我们表明,这是一种有吸引力的策略,可以提高我们的方法在不同场景下的适应性。如表 3 中的实验(f)所示,将系数 w 设置为 1 会提高重建和身份分数,但会降低视觉质量。在这项工作中,我们在质量和保真度之间进行权衡,默认将系数 w 设置为 0.5。
4.5 运行时间
我们比较了最先进方法和提出的 CodeFormer 的运行时间。所有现有方法均使用其公开代码在 512 张人脸图像上进行评估。如表 5 所示,提出的 CodeFormer 的运行时间与 PSFRGAN 和 GPEN 相似,能够在 0.1 秒内推断出一张图像。同时,我们的方法在 Celeb - Test 数据集上的 LPIPS 指标方面取得了最佳性能。
4.6 扩展应用
人脸颜色增强:我们使用与 GFP - GAN(v1)相同的颜色增强方法(随机颜色抖动和灰度转换)对人脸颜色增强任务进行模型微调。我们在存在颜色损失的真实世界老照片(来自 CelebChild - Test 数据集)上,将我们的方法与 GFP - GAN(v1)进行比较。提出的 CodeFormer 生成的高质量人脸图像具有更自然的颜色和真实的细节。
人脸修复:提出的 CodeFormer 可以轻松扩展到人脸修复任务,即使在大掩码比例的情况下也表现出色。为构建训练对,我们使用一个公开可用的脚本随机绘制不规则折线掩码来生成掩码人脸。我们将我们的方法与两种最先进的人脸修复方法 CTSDG 和 GPEN,以及基于最近邻匹配的码本查找方法进行比较。如图 9 所示,CTSDG 和 GPEN 在大掩码的情况下表现不佳。在我们的框架中使用最近邻匹配大致可以重建人脸结构,但在恢复完整的视觉部分(如眼镜和眼睛)方面也失败了。相比之下,我们的 CodeFormer 生成的高质量自然人脸没有笔触和伪影。
4.7 局限性
我们的方法基于一个带有码本的预训练自动编码器。因此,自动编码器的能力和表达能力可能会影响我们方法的性能。1)尽管 Transformer 的全局建模显著缓解了身份不一致问题,但在一些罕见的视觉部分(如配饰)中仍然存在不一致的情况,当前的码本空间无法无缝表示这些图像空间。在码本空间中使用多尺度来探索更细粒度的视觉量化可能是一种解决方案。2)虽然 CodeFormer 在大多数情况下表现出很强的鲁棒性,但在处理侧脸时,CodeFormer 相对于其他方法的优势有限,也无法产生良好的结果,如图 10 中的失败案例所示。这是因为 FFHQ 训练数据集中侧脸图像很少,因此,码本无法为这种情况学习到足够的码,导致在重建和恢复方面的效果较差。
5. 结论
本文旨在解决盲人脸恢复中的基本挑战。通过学习一个小的离散但具有表现力的码本空间,我们将人脸恢复转化为码元预测,显著降低了恢复映射的不确定性,简化了恢复网络的学习过程。为了弥补局部信息损失,我们通过一个具有表现力的 Transformer 模块,从退化的人脸中探索全局构图和依赖关系,以实现更好的码本预测。受益于这些设计,我们的方法表现出很强的表现力和对严重退化的鲁棒性。为了增强我们的方法对不同退化情况的适应性,我们还提出了一个可控特征转换模块,允许在保真度和质量之间进行灵活权衡。实验结果证明了我们方法的优越性和有效性。