文章目录
原文翻译
paper:https://arxiv.org/pdf/2206.11253
github:https://github.com/sczhou/CodeFormer
摘要
盲人脸修复是一个高度不适定的问题,通常需要辅助指导来 1) 改善从降质输入到期望输出的映射,或 2) 补充输入中丢失的高质量细节。本文展示了一种在小型代理空间中学习的离散代码本先验,通过将盲人脸修复视为一个代码预测任务,极大地减少了修复映射的复杂性和模糊性,同时提供了丰富的视觉原子用于生成高质量的人脸。在这一范式下,我们提出了一种基于变换器的预测网络,称为 CodeFormer,用于建模低质量人脸的全局组成和上下文,以便进行代码预测,从而发现即使在输入严重降质的情况下也能与目标人脸紧密接近的自然人脸。为了增强对不同降质情况的适应性,我们还提出了一个可控特征转换模块,允许在真实感和质量之间灵活权衡。得益于表现力强的代码本先验和全局建模,CodeFormer 在质量和真实感方面均优于当前最先进的技术,并表现出对降质的优越鲁棒性。大量关于合成和真实世界数据集的实验结果验证了我们方法的有效性。
1 Introduction
在野外捕获的人脸图像经常受到各种退化的影响,如压缩、模糊和噪声。由于退化引起的信息丢失导致给定低质量 (LQ) 输入无限合理的高质量 (HQ) 输出,因此恢复此类图像是高度不适定的。在盲恢复中,不适定性进一步提高,其中特定的退化是未知的。尽管随着深度学习的出现取得了进展,但在巨大的图像空间中没有额外指导的情况下学习LQ-HQ映射仍然是难以处理的,导致早期方法的恢复质量次优。为了提高输出质量,1)降低LQ-HQ映射的不确定性和2)补充高质量细节的辅助信息是必不可少的。
各种先验已被用于缓解这个问题的不适定性,包括几何先验[5,6,31,45]、参考先验[24-26]和生成先验[2,38,44]。虽然观察到改进的纹理和细节,但这些方法往往对退化或有限的先验表达能力有很高的敏感性。这些先验为人脸恢复提供了不充分的指导,因此它们的网络本质上求助于通常高度损坏的LQ输入图像的信息。因此,LQ-HQ映射不确定性仍然存在,输出质量因输入图像的退化而恶化。最近,基于生成先验,一些方法通过迭代潜在优化[27]或直接潜在编码[29]将退化的人脸投影到连续的无限空间中。尽管输出的真实性很大,但在严重退化的情况下很难找到准确的潜在向量,从而导致低保真结果(图 1(d))。为了提高保真度,这种方法通常需要编码器和解码器之间的跳跃连接[38,44,2],如图1(a)(上)所示,然而,这样的设计同时在输入严重退化时会在结果中引入伪影,如图1(e)所示。
图 1:动机的说明。(a) 连续生成先验(顶部)和我们的离散码本先验(底部)的恢复框架。(b) HQ/LQ 人脸特征和码本项目的 t-SNE [36] 可视化。© LQ 输入。(d-e) 具有连续先验 (PULSE [27] 和 GFP-GAN [38]) 的现有方法的结果。(f-g)离散先验的结果(最近邻[11,35]和CodeFormer)。(h) 代码序列基本事实的重建结果。(i) HQ 基本事实。如图所示,(d) 没有跳跃连接的 PULSE 显示出低保真度。(e) 带有跳跃连接的 GFP-GAN 缓解了身份问题,但引入了显着的伪影。(f) 与 (d-e) 相比,利用最近邻匹配进行代码查找可以恢复更准确的面部结构,但无法恢复眼镜等一些细节,可能会引入一些伪影。(g) 使用 Transformer 进行代码预测,我们的 CodeFormer 以高质量和保真度生成最佳结果。
与上述方法不同,这项工作将盲人脸恢复作为学习离散码本先验的小有限代理空间中的代码预测任务,显示出对退化的鲁棒性和丰富的表现力。码本是通过使用矢量量化自动编码器自重建HQ人脸来学习的,解码器存储丰富的HQ细节进行人脸恢复。与连续生成先验[11,38,44]相比,码本项的组合形成了一个具有有限基数的离散先验空间。通过将LQ图像映射到更小的代理空间(例如1024个代码),LQ-HQ映射的不确定性显著减弱,促进了对不同退化的鲁棒性,如图1(d-g)所示。此外,码本空间具有更强的表现力,在感知上近似于图像空间,如图1(h)所示。这种性质允许网络减少对输入的依赖,甚至没有跳过连接。
虽然基于码本的离散表示已被部署用于图像生成[4,11,35],但图像恢复的准确代码组合仍然是一个不平凡的挑战。现有的工作通过最近邻(NN)特征匹配查找码本,这对于图像恢复来说是不可行的,因为LQ输入的内在纹理通常被破坏。LQ图像中的信息丢失和多样性退化不可避免地扭曲特征分布,禁止准确的特征匹配。如图1(b)(右)所示,即使在对LQ图像上的编码器进行微调后,LQ特征不能很好地聚类到精确的代码,而是扩散到其他附近的代码集群中,因此在这种情况下最近邻匹配是不可靠的。
为恢复量身定制,我们提出了一种基于 Transformer 的代码预测网络 CodeFormer,以利用 LQ 人脸的全局组合和远程依赖关系来更好地进行代码预测。具体来说,Transformer 模块将 LQ 特征作为输入,预测代码标记序列,该序列被视为码本空间中人脸图像的离散表示。由于全局建模来弥补LQ图像中的局部信息损失,所提出的CodeFormer对严重退化的鲁棒性,并保持整体一致性。比较图1(f-g)所示的结果,所提出的CodeFormer能够恢复比最近邻匹配更多的细节,如眼镜,提高恢复的质量和保真度。
此外,我们提出了一个具有可调系数的可控特征变换模块,用于控制从 LQ 编码器到解码器的信息流。这样的设计允许在恢复质量和保真度之间进行灵活的权衡,从而实现它们之间的连续图像转换。该模块增强了CodeFormer在不同退化下的自适应性,例如,在严重退化的情况下,可以手动减少携带退化的LQ特征的信息流,生成高质量的结果。
配备上述组件,所提出的CodeFormer在现有数据集中表现出了优越的性能,以及我们新引入的WIDER-Test数据集,该数据集由从WIDER-Face数据集[43]收集的970个严重退化的人脸组成。除了人脸恢复之外,我们的方法还证明了它在人脸修复等其他具有挑战性的任务上的有效性,其中需要来自其他区域的远程线索。进行了系统的研究和实验,以证明我们的方法相对于以前的工作的优点。
2 Related Work
盲人脸恢复。由于人脸是高度结构化的,人脸的几何先验被用于盲人脸恢复。一些方法在他们的设计中引入了面部标志 [6]、人脸解析图 [5, 31, 42]、面部成分热图 [45] 或 3D 形状 [16, 28, 49]。然而,这种先验信息无法从退化的人脸中准确获取。此外,几何先验无法为高质量的人脸恢复提供丰富的细节。
已经提出了基于参考的方法[9,24 - 26]来规避上述限制。这些方法通常需要参考与输入退化人脸具有相同的身份。例如,Li等人[26]提出了一种由翘曲子网络和重建子网络组成的引导人脸恢复网络,并使用与输入具有相同身份的高质量图像来更好地恢复面部细节。但是,此类引用并不总是可用的。DFDNet[24]预先构建了由高质量面部成分特征组成的字典。然而,特定于组件的字典特征仍然不足以获得高质量的人脸恢复,特别是对于字典范围之外的区域(例如皮肤、头发)。为了缓解这个问题,最近的基于 VQGAN 的方法 [40,47] 探索了一个学习的 HQ 字典,其中包含更通用和更丰富的细节人脸恢复。
最近,来自预训练生成器(例如 StyleGAN2 [21])的生成面部先验已被广泛研究用于盲人脸恢复。它通过不同的迭代潜在优化策略来实现有效的 GAN 反演 [12, 27] 或退化人脸的直接潜在编码 [29]。然而,当将退化的人脸投影到连续的无限潜在空间中时,保持恢复的人脸的高保真度是具有挑战性的。为了缓解这个问题,GLEAN [2, 3]、GPEN [44] 和 GFPGAN [38] 将生成先验嵌入到编码器-解码器网络结构中,并将输入图像的额外结构信息作为指导。尽管保真度有所提高,但这些方法高度依赖于跳过连接的输入,当输入严重损坏时,这可能会给结果引入伪影。
字典学习。使用学习字典的稀疏表示已经证明了它在图像恢复任务中的优越性,例如超分辨率[13,33,34,41]和去噪[10]。然而,这些方法通常需要迭代优化来学习字典和稀疏编码,计算成本高。尽管效率低下,但它们对探索HQ字典的高级洞察启发了基于参考的恢复网络,如LUT[18]和自参考[48],以及合成方法[11,35]。Jo 和 Kim [18] 通过将网络输出值转移到 LUT 来构建一个查找表 (LUT),以便在推理过程中只需要一个简单的值检索。然而,将HQ纹理存储在图像域通常需要巨大的LUT,限制了其实用性。VQVAE[35]首先引入矢量量化自编码器模型学习的高度压缩码本。VQGAN[11]进一步采用对抗性损失和感知损失,以较高的压缩率提高感知质量,在不牺牲码本表达能力的情况下显著降低码本大小。与大型手工字典[18,24]不同,可学习码本自动学习HQ图像重建的最优元素,提供卓越的效率和表现力,并规避费力的字典设计。受码本学习的启发,本文研究了一种用于盲人脸恢复的离散代理空间。与最近的基于VQGAN的方法不同[40,47],我们通过全局建模预测代码序列来利用离散码本,并通过固定编码器来保证先验的有效性。这样的设计允许我们的方法充分利用码本,使其不依赖于与LQ线索的特征融合,显著提高了人脸恢复的鲁棒性。
3 Methodology
这项工作的主要重点是利用离散表示空间来减少恢复映射的不确定性,并为退化的输入补充高质量的细节。由于局部纹理和细节在低质量的输入中丢失和损坏,我们使用 Transformer 模块对自然人脸的全局组合进行建模,从而弥补局部信息损失,从而实现高质量的恢复。整个框架如图2所示。
图2:CodeFormer的框架。(a) 我们首先学习一个离散的码本和一个解码器,通过自重构学习存储人脸图像的高质量视觉部分。(b) 在固定码本和解码器的情况下,我们引入了一个用于代码序列预测的 Transformer 模块,对低质量输入的全局人脸组成进行建模。此外,利用可控特征变换模块控制从LQ编码器到解码器的信息流。请注意,此连接是可选的,当输入严重退化时,可以禁用此连接以避免不利影响,并且可以调整标量权重 w 以在质量和保真度之间进行权衡。
我们首先结合矢量量化[11,35]的思想,通过自重构预训练量化自编码器,得到离散码本和相应的解码器(第3.1节)。然后使用码本组合和解码器的先验进行人脸恢复。基于这个码本先验,我们使用 Transformer 从低质量输入(第 3.2 节)中准确预测代码组合。此外,引入了一个可控的特征变换模块来利用恢复质量和保真度之间的灵活权衡(第 3.3 节)。我们方法的训练相应地分为三个阶段。
3.1 Codebook Learning (Stage I)
为了减少LQ-HQ映射的不确定性,并补充高质量的恢复细节,我们首先预训练量化自编码器来学习一个上下文丰富的码本,提高了网络的表达能力以及对退化的鲁棒性。
如图2(a)所示,首先将HQ人脸图像 I h ∈ R H × W × 3 I_{h}∈R^{H×W×3} Ih∈RH×W×3嵌入到编码器 E H E_{H} EH的压缩特征 Z h ∈ R m × n × d Z_{h}∈R^{m×n×d} Zh∈Rm×n×d中。在VQVAE[35]和VQGAN[11]之后,我们将 Z h Z_{h} Zh中的每个“像素”替换为可学习码本 C = { c k ∈ R d } k = 0 N C =\{ c_{k}∈R^{d} \}^{N}_{k=0} C={
ck∈Rd}k=0N中最近的项,得到量化特征 Z c ∈ R m × n × d Z_{c}∈R^{m×n×d} Zc∈Rm×n×d和相应的代码标记序列 s ∈ { 0 , 1 } m ⋅ n s∈\{0,1\}^{m·n} s∈{
0,1}m⋅n:
然后解码器 D H D_{H} D