近年来,随着深度学习的发展和大规模数据集的出现,深度学习也使得许多领域都取得了进展,但其中,“人脸修复”(FaceRestoration)任务仍然缺乏系统的回顾。近日,来自南京大学、澳大利亚国立大学、中山大学、帝国理工学院和腾讯的研究人员对基于深度学习的人脸修复技术、分类人脸修复方法的研究进展进行了全面回顾和总结,讨论了网络架构、损失函数和基准数据集,以及现有SOTA方法的系统性能评估。论文链接:https://arxiv.org/abs/2211.02831仓库链接:https://github.com/TaoWangzj/Awesome-Face-Restoration本文也是人脸修复领域的第一篇综述,主要贡献是:1.回顾人脸复原任务中的主要退化模型和常用评价指标,总结人脸图像的显着性特征;2.总结目前人脸修复面临的挑战,对现有方法进行分类总结。方法主要包括两类:基于先验的深度学习恢复方法和无先验的深度学习恢复方法;3.整理了方法中使用的基本网络架构、基本网络模块、损失函数和标准数据集;4.在公共基准数据集上对现有的SOTA方法进行了系统的实验评估;5.分析了人脸修复任务的未来发展前景。文章整体结构研究背景人脸修复(FaceRestoration,FR)是底层视觉中的一个特定的图像修复问题,旨在从低质量的输入人脸图像中恢复出高质量的人脸图像。一般来说,退化模型可以描述为:其中I(lq)是低质量人脸图像,D是与噪声不相关的退化函数,n是加性高斯噪声。当退化函数D不同时,对应不同的退化模型。因此,FR任务可以看作是求解上述退化模型的逆过程,可以表示为:根据退化函数的不同,人脸恢复任务可以分为以下五类,分别对应不同的退化models:1.人脸去噪任务(FaceDenoising,FDN):去除人脸图像中的噪声,恢复出一张高质量的人脸;2.人脸去模糊任务(FDB):去除人脸图像中的模糊,恢复高质量的人脸;3.FaceSuper-Resolution(FSR):从低质量的低分辨率人脸中恢复出高分辨率高质量的人脸;4.FacesFaceArtifactRemoval(FAR):去除人脸图像压缩过程中出现的伪影,还原高质量人脸;5.BlindFaceRestoration(BFR):将未知退化的低质量人脸恢复为高质量人脸;人脸的特征不同于一般自然图像的复原任务,人脸图像具有很强的结构信息,因此人脸复原任务可以利用人脸图像的先验信息来辅助人脸复原过程,先验信息可以划分分为以下三部分:人的属性信息:比如性别,年龄,是否戴眼镜,如下图;该人的身份信息;其他先验信息:如下图所示,具有代表性的先验有人脸特征点、人脸热图、人脸分析图和3D人脸先验;人脸修复的主要挑战1.人脸修复本身就是一个不适定的问题。由于低质量人脸图像的退化类型和退化参数事先未知,因此从退化图像中估计高质量人脸图像是一个病态问题。另一方面,在真实场景中,人脸图像的退化是复杂多样的。因此,如何设计一个有效且鲁棒的人脸恢复模型来解决这个不适定问题具有一定的挑战性。2.难以探索未知的人脸先验。现有的人脸恢复算法很难充分利用人脸先验知识,因为人脸先验(如人脸成分和人脸特征点)通常是从低质量的人脸图像中估计出来的,而低质量的人脸可能会导致先验估计的不准确直接影响人脸复原算法的性能。另一方面,在真实场景中拍摄的人脸图像往往包含复杂多样的退化类型,在辅助人脸恢复过程之前很难找到合适的人脸。因此,如何挖掘合理的人脸先验具有挑战性。3.缺乏大型公共基准数据集。随着深度学习技术的发展,基于深度学习的方法在人脸修复方面表现出了令人印象深刻的性能。大多数基于深度学习的人脸恢复方法都强烈依赖于大规模数据集来训练网络。然而,大多数当前的人脸恢复方法通常是在非公开数据集上训练或测试的。因此,目前很难直接公平地比较现有的人脸修复方法。此外,缺乏高质量和大规模的基准限制了模型的潜力。然而,如何获取大规模的人脸数据仍然存在困难,因此构建合理的公共基准数据集用于人脸恢复任务具有挑战性。4、人脸复原算法在实际场景中泛化能力有限。尽管基于深度学习的方法在人脸修复方面取得了良好的性能,但大多数方法都依赖于监督策略进行训练。也就是说,这些方法需要成对的(低质量和高质量图像对)数据集,如果不满足这个条件,它们的性能将大大降低。另一方面,在现实场景中很难收集具有配对样本的大规模数据集。因此,在合成数据集上训练的算法在真实场景中的泛化能力较差,从而限制了模型在真实场景中的适用性。因此,如何提高人脸算法在实际场景中的泛化能力具有挑战性。人脸修复方法的总结和分类迄今为止,研究人员提出了许多人脸修复算法来尝试解决上述挑战。下图展示了基于深度学习的人脸修复方法的一个简明里程碑。如图所示,自2015年以来,基于深度学习的人脸修复方法数量逐年增加。这些人脸修复方法分为两类:基于先验的深度学习修复方法和基于非先验的深度学习修复方法。而对于基于先验的深度学习恢复方法,我们将其分为三类:基于几何先验的深度学习恢复方法、基于参考先验的深度恢复方法和基于生成先验的深度恢复方法。下面简单介绍一下具有代表性的人脸复原算法。基于几何先验的深度恢复方法(GeometricPriorBasedDeepRestorationMethods)该方法主要利用图像中人脸独特的几何形状和空间分布信息,帮助模型逐步恢复出高质量的人脸。典型的几何先验包括面部标志、面部热图、面部分析图和面部成分。代表作品包括:SuperFAN:它是第一个同时实现人脸超分辨率和人脸特征点定位任务的端到端方法。该方法的核心思想是利用联合任务训练策略,引导网络学习更多的人脸几何信息,辅助模型实现高效的人脸超分辨率和人脸特征点定位。MTUN:是一种包含两个分支网络的人脸复原方法,其中第一个分支网络用于实现人脸图像的超分辨率,第二个分支用于估计人脸成分的热图。该方法表明,利用低质量人脸图像中的人脸元素信息可以进一步提高算法人脸恢复的性能。PSFR-GAN:是一种基于多尺度渐进网络的盲人脸修复方法。该方法的核心思想是以多尺度低质量人脸图像和人体分析图为输入,通过语义感知风格迁移逐步恢复人脸的面部细节。ReferencePriorBasedDeepRestorationMethods过去,人脸恢复方法仅依靠退化图像来估计人脸先验。然而,人脸图像的退化过程通常是高度病态的,这些方法仅使用退化图像。无法获得准确的人脸先验。因此,另一类方法使用额外的高质量人脸图像来获取面部结构或面部成分字典作为面部参考先验来指导模型进行有效的面部恢复。代表性工作包括:GFRNet:网络模型由经线网络(WarpNet)和重建网络(RecNet)组成。WarpNet是提供畸变引导信息,目的是通过生成流场使参考图像畸变来矫正人脸的姿态和姿态表情。RecNet将低质量图像和扭曲的引导信息作为输入来生成高质量的人脸图像。GWAInet:这项工作是在GFRNet的基础上提出的,以对抗生成的方式进行训练,生成高质量的人脸图像。与GFRNet相比,GWAInet在训练阶段不依赖人脸标记。该模型更加关注整个面部区域,以增加模型的鲁棒性。DFDNet:该方法首先使用K-means算法从高质量图像中为感知显着的面部成分(即左/右眼、鼻子和嘴巴)生成深度字典;然后,从生成的组件字典中选择最相似的组件特征,将细节转移到低质量的人脸图像中,指导模型进行人脸恢复。基于生成先验的深度恢复方法(GenerativePriorBasedDeepRestorationMethods)随着快速发展GenerativeAdversarialNetworks(GAN)的研究发现,预训练的人脸GAN模型,例如StyleGAN、StyleGAN2可以提供更丰富的人脸先验(例如几何和面部纹理)。因此,研究人员开始使用GAN生成的先验辅助模型进行人脸修复。代表作品包括:PULSE:这项工作的核心是迭代优化预训练StyleGAN的潜在代码,直到输出和输入之间的距离低于阈值,从而实现高效的人脸超分辨率。GFP-GAN:这项工作利用预训练的GAN模型中丰富多样的先验作为生成先验实验来指导模型进行盲人脸修复。该方法主要包括退化去除模块和基于预训练GAN模型的先验模块。这两个模块通过潜在代码连接和多个通道分段空间特征转换层执行高效的信息传输。GPEN:该方法的核心思想是有效融合GAN和DNN中不同框架的优势,实现高效的人脸修复。GPEN首先学习了一个生成高质量人脸图像的GAN模型;然后将这个预训练的GAN模型嵌入到深度卷积网络中作为先验解码器;最后通过微调这个深度卷积网络实现人脸识别。恢复。Non-priorBasedDeepRestorationMethods:(基于非先验的深度恢复方法)虽然大多数基于深度学习的人脸恢复方法都可以借助人脸先验来恢复满意的人脸,但是它们依赖于人脸先验。实验在一定程度上加剧了生成人脸图像的成本。为了解决这个问题,另一类方法旨在设计一个端到端网络模型来直接学习低质量和高质量人脸图像之间的映射函数,而不引入任何额外的人脸先验。代表作有:BCCNN:ADual-ChannelConvolutionalNeuralNetworkModelforFaceSuper-Resolution。它由特征提取器和图像生成器组成,其中特征提取器从低分辨率人脸图像中提取鲁棒的人脸表示,图像生成器自适应地将提取的人脸表示与输入人脸图像进行融合以生成高分辨率图像。HiFaceGAN:该方法将人脸修复问题转化为语义引导生成问题,设计HifaceGAN模型实现人脸修复。该网络模型是一个包含多个协作抑制模块和补充模块的多阶段框架。这种结构设计减少了模型对退化先验或训练结构的依赖。RestoreFormer:这是一种基于Transformer的端到端的人脸恢复方法。主要探索对上下文信息建模的全空间注意力机制。该方法的核心思想中有两个主要思想。第一个是提出一个多头交叉注意层来学习损坏的查询和高质量键值对之间的全空间交互。第二点是attention机制中的key-valuepair是从一个高质量的字典中采样出来的,其中包含了高质量的人脸特征。下图综合总结了近年来基于深度学习的人脸修复方法的特点。其中Plain表示基于非先验的深度复原方法,Facialcomponent和Geometricprior表示两类基于几何先验的深度复原方法,Referenceprior表示基于参考先验的深度复原方法,Generativeprior表示方法基于非先验的深度还原方法,DeepCNN、GAN、ViT分别表示模型使用深度卷积神经网络,生成对抗网络和VisualTransformer网络结构。技术发展回顾这部分全面回顾了基于深度学习的人脸复原方法的技术发展历程,主要从以下几个方面进行总结和分析:网络模型的基本结构、使用的基本模块、模型使用的损失函数与人脸相关的基准数据集。网络架构现有的基于深度学习的人脸复原方法的网络架构主要分为三类:基于先验引导的方法、基于GAN网络结构的方法和基于ViT网络结构的方法。因此,我们将在本节中讨论这些发展。基于先验指导的方法这类方法主要分为四种,即基于先验先验的Pre-prior人脸恢复方法、联合先验估计人脸恢复方法(Jointpriorfacerestorationmethod)。人脸复原方法),基于中间先验人脸复原方法(Pre-priorfacerestorationmethod),基于参考先验人脸复原方法(Reference-priorfacerestorationmethod)。上述四种方法的简明结构图如下:基于先验先验的人脸复原方法通常使用一个先验估计网络(例如人脸的先验估计网络或预训练的人脸GAN模型)qualityinput从图像中估计人脸先验,然后使用网络使用人脸先验和人脸图像生成高质量的人脸。典型的方法如下图所示。研究人员设计了一个人脸分析网络。首先,从输入的模糊人脸图像中提取人脸语义标签,然后将模糊图像和人脸语义标签输入到去模糊网络中,生成清晰的人脸图像。联合先验估计与人脸复原方法主要探索人脸先验估计任务与人脸复原任务之间的互补关系。这类方法通常联合训练人脸修复网络和先验估计网络,因此这类方法同时兼顾了两个子任务的优点,可以直接提高人脸修复任务的性能。典型的方法如下图所示。研究人员提出了一种结合人脸对齐和人脸超分辨率的网络模型。该方法联合估计人脸的标志位置和超分辨率人脸图像。基于中间先验的人脸复原方法的核心思想是先使用复原网络生成粗糙的人脸图像,然后从粗糙图像中估计出人脸先验信息,可以比直接输入低精度更准确-质量图像。先验信息。典型的方法如下图所示。研究人员提出了FSRNet网络模型,在网络中间进行人脸先验估计。具体来说,FSRNet使用一个粗略的SR网络来粗略地还原图像;然后使用精细SR编码器和先验估计网络分别对粗结果图像进行先验估计和细化;最后,将图像细化特征和先验实验信息同时输入到一个细化的SR解码器中,恢复最终结果。基于GAN网络结构的方法这些方法主要分为两类:基于普通GAN架构的方法(PlainGANmethod)和基于预训练GAN嵌入结构的方法(Pre-trainedGANembeddingmethod)。这两种方法的简明结构图如下:基于常见GAN架构的方法通常在网络模型中引入对抗性损失,然后使用对抗性学习策略联合优化判别器和生成器(人脸恢复网络),从而生成更逼真的人脸图像。典型的方法如下图所示。研究人员提出了HLGAN网络模型,该模型由两个生成对抗网络组成。第一个是High-to-LowGAN网络,它使用未配对的图像进行训练,以学习高分辨率图像的退化过程。第一个网络的输出(即低分辨率人脸图像)用于训练第二个Low-to-HighGAN网络以实现人脸超分辨率。基于预训练GAN嵌入结构的方法的核心思想是在预训练人脸GAN模型(如StyleGAN)中使用潜在先验,然后将潜在先验融入到人脸修复过程中,借助潜在的先验和对抗性学习策略进行有效的面部修复。典型的方法如下图所示。研究人员设计了一个GFP-GAN模型,主要包括退化去除模块和基于预训练GAN模型的先验模块。这两个模块通过一个latentcode和几个Achannel-segmentedspatialfeatureconversionlayer连接起来,用于高效的信息传递。基于ViT网络结构的方法最近,VisualTransformer(ViT)网络架构在自然语言处理和计算机视觉领域表现出了优异的性能,这也启发了Transformer架构在人脸修复任务中的应用。典型的方法如下图所示。基于SwinTransformer,研究人员提出了一种端到端的SwinTransformerU-Net(STUNet)网络用于人脸修复。在STUNet中,transformer模块使用self-attention机制和shiftwindowstrategy帮助模型关注更重要的有利于人脸恢复的特征。这种方法取得了很好的效果。网络模型中的常用模块在人脸修复领域,研究人员设计了各种类型的基础模块来构建强大的人脸修复网络。常用的基础模块如下图所示,其中这些基础模块主要包括ResidualBlock、DenseBlock、AttentionModule(Channelattentionblock、Residualchannelattentionblock、spatialattentionblock)和Transformer模块(Transformerblock)。损失函数人脸恢复任务中常见的损失函数主要包括以下几类:Pixel-wiseloss(主要包括L1和L2loss)、Perceptualloss、Adversarialloss、face-specificloss。各种人脸恢复方法及其使用的损失函数总结如下表:在PSNR/SSIM/MS-SSIM/LPIPS/NIQE等方面定量结果比较定性结果比较方法复杂度比较未来发展方向虽然基于深度学习的人脸恢复方法取得了一些进展,但仍然存在很多挑战和未解决的问题.网络结构设计对于基于深度学习的人脸复原方法,网络结构会对方法的性能产生显着影响。例如,由于Transformer架构的强大功能,最近基于Transformer的方法通常具有更好的性能。基于GAN的方法可以生成视觉上更赏心悦目的人脸图像。因此,在设计网络时,值得从CNN、GAN、ViT等不同的结构中学习和研究。另一方面,最近基于Transformer的模型通常包含更大的参数并且需要更高的计算成本,这使得它们难以部署在边缘设备中。因此,如何设计一个性能强大的轻量级网络是未来工作的另一个潜在研究方向。人脸先验和网络的融合被用作特定领域的图像恢复任务,人脸特征可以用于人脸恢复任务。在设计模型时,许多方法旨在利用面部先验来恢复真实面部细节。尽管一些方法试图将几何先验、面部成分、生成先验或3D先验引入人脸修复过程,但如何更合理地将先验信息整合到网络中仍然是该任务的一个有前途的方向。此外,进一步挖掘与人脸相关的新先验,例如来自预训练GAN的先验或网络中的数据统计,是该任务的另一个方向。损失函数和评估指标对于人脸修复任务,广泛使用的损失函数有L1损失、L2损失、感知损失、对抗性损失和面部特定损失,如表3所示。现有方法通常不使用单一的损失函数,而是结合多个损失函数和相应的权重来训练模型。然而,如何设计更合理的损失函数来指导模型训练尚不清楚。因此,在未来,更多的工作有望寻求更准确的损失函数(例如,通用或人脸任务驱动的损失函数),以促进人脸恢复任务的发展。此外,损失函数可以直接影响模型的评估结果。如表5、6和7所示,L1损失和L2损失在PSNR、SSIM和MS-SSIM方面往往会取得更好的结果。感知和对抗损失往往会产生更令人满意的结果(即产生高LPIPS、FID和NIQE值)。因此,如何制定兼顾人机两方面的指标来更合理地评价模型性能,也是未来一个非常重要的方向。计算开销现有的人脸恢复方法通常通过显着增加网络的深度或宽度来提高恢复性能,而忽略了模型的计算成本。沉重的计算成本使这些方法无法用于资源受限的设置,例如移动或嵌入式设备。例如,如表8所示,最先进的方法RestoreFormer具有72.37M参数和340.80GMAC计算,这在实际应用中部署起来非常困难。因此,开发计算成本更低的模型是未来的一个重要方向。基准数据集与图像去模糊、图像去噪和图像去雾等其他低级视觉任务不同,人脸恢复的标准评估基准很少。例如,大多数人脸恢复方法通常在私有数据集(来自FFHQ的合成训练集)上进行实验。研究人员可能倾向于使用偏向于他们提出的方法的数据。另一方面,后续工作需要花费大量时间合成私有数据集,并重新训练其他比较方法以进行公平比较。此外,最近广泛使用的数据集通常规模较小,不适合深度学习方法。因此,开发一个标准的基准数据集是人脸修复任务的一个方向。未来,我们期待社区的研究人员构建更多标准和高质量的基准数据集。视频人脸修复随着手机、相机等移动设备的普及,视频人脸修复的任务变得越来越重要。然而,现有的工作主要集中在图像人脸恢复任务上,而视频相关的人脸恢复工作较少。另一方面,视频去模糊、视频超分辨率和视频去噪等其他低级视觉任务近年来发展迅速。因此,视频人脸修复是社区的一个潜在方向。视频人脸修复任务可以从以下两个方面考虑。首先,对于基准数据集,我们可以考虑为该任务构建高质量的视频数据集,可以快速推动视频相关算法的设计和评估,有利于人脸修复社区的发展;其次,对于视频恢复方法,我们应该通过充分考虑连续视频帧之间的空间和时间信息来开发基于视频的人脸恢复方法。现有的真实世界人脸修复和应用方法依赖于合成数据来训练网络模型。然而,经过训练的网络不一定在现实场景中表现出良好的泛化能力。如图19所示,大多数人脸恢复方法在面对真实世界的人脸图像时表现不佳。因为合成数据和真实世界的数据之间存在很大的数据域差距。尽管一些方法引入了一些解决这个问题的方法,例如无监督技术或学习真实图像退化技术。然而,他们仍然依赖于一些特定的假设,即所有图像都有类似的退化。因此,现实世界的应用仍然是人脸修复任务的一个具有挑战性的方向。此外,一些方法表明人脸复原可以提高后续任务的性能,例如人脸验证和人脸识别。然而,如何将人脸修复任务与这些任务结合在一个框架中也是未来的研究方向。OtherRelatedTasks除了上面讨论的人脸修复任务外,还有许多其他与人脸修复相关的任务,包括人脸修饰、素描合成、人脸翻译、人脸修复、色彩增强和旧照片修复。例如,面部修复旨在通过匹配或学习来恢复面部图像的缺失区域。它不仅需要为缺失的面部组件语义生成新的像素,还应该保持面部结构和外观的一致性。旧照片修复是修复退化非常多样和复杂(例如,噪声、模糊和褪色)的旧照片的任务。此外,一些任务侧重于面部风格迁移,例如面对面翻译和面部表情分析,这与面部恢复任务不同。因此,将现有的人脸恢复方法应用到这些相关任务中也是一个很有前途的方向,可以引发更多的应用。参考资料:https://arxiv.org/abbs/2211.02831
