基于GAN网络结构的方法
这类方法主要分为两种类型:基于朴素GAN架构的方法(Plain GAN method)和基于预训练GAN嵌入式结构的方法(Pre-trained GAN embedding method)。
这两种方法的简明结构图如下所示:
基于普通GAN架构的方法通常是在网络模型中引入对抗性损失,然后使用对抗性学习策略来联合优化判别器和生成器(人脸复原网络),从而生成更加逼真的人脸图像。
典型的方法如下图所示,研究人员提出了HLGAN网络模型,这个模型由两个生成对抗网络组成。
第一个是 High-to-Low GAN网络,它使用非成对的图像进行训练来学习高分辨率图像的退化过程。第一个网络的输出(即低分辨率人脸图像)被用来训练第二个 Low-to-High GAN网络,从而实现人脸超分辨率。
基于预训练GAN嵌入式结构的方法的核心思路是利用预训练的人脸GAN模型(如 StyleGAN)中的潜在先验,然后将潜在先验融合到人脸复原的过程中,借助于潜在先验和对抗学习策略来实现高效的人脸复原。
典型的方法如下图所示,研究人员设计了一个GFP-GAN 模型,这个模型主要包含一个降质去除模块和一个基于预训练GAN模型的先验模块,这两个模块通过一个latent code连接和几个通道分割空间特征转换层进行高效信息传递。
基于ViT网络结构的方法
最近Visual Transformer (ViT)网络架构在自然语言处理和计算机视觉等领域表现出了卓越的性能,这也启发了Transformer 架构在人脸复原任务的应用。
典型的方法如下图所示,基于Swin Transformer,研究人员提出了一种用于人脸复原的端到端Swin Transformer U-Net (STUNet)网络。
在 STUNet 中,transformer模块利用自注意力机制和移位窗口策略来帮助模型关注更多有利于人脸复原的重要特征,这个方法取得了良好的性能。
网络模型中常用的模块
在人脸复原领域,研究者们设计了各种类型的基础模块来构建出强大的人脸复原网络。常用的基础模块如下图所示,其中这些基础模块主要有残差模块(Residual Block),Dense模块(Dense Block),注意力模块(Channel attention block, Residual channel attention block, spatial attention block)和Transformer 模块(Transformer block)。
损失函数
人脸复原任务中常见的损失函数主要有以下几类:Pixel-wise loss (主要包括L1和L2损失), Perceptual loss, Adversarial loss, face-specific loss。各项人脸复原方法以及他们使用的损失函数总结在下表中:
数据集
人脸复原任务相关的公开数据集以及相关统计信息总结如下:
性能比较
本文总结并测试了一些具有代表性的人脸复原方法在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.80G MACs的计算量,这在现实世界的应用程序中部署它是非常困难的。因此,开发具有更少计算成本的模型是未来重要的方向。
基准数据集
与图像去模糊、图像去噪和图像去雾等其他底层视觉任务不同,人脸复原的标准评估基准很少。
例如,大多数人脸复原方法通常在私有数据集上进行实验(从FFHQ合成训练集)。
研究人员可能倾向于使用偏向于他们提出的方法的数据。另一方面,为了进行公平比较,后续工作需要花费大量时间来合成私有数据集并重新训练其他比较方法。此外,最近广泛使用的数据集规模通常较小,不适合深度学习方法。
因此,开发标准的基准数据集是人脸复原任务的一个方向。未来,我们期望社区的研究人员能够构建更多标准和高质量的基准数据集。
视频人脸复原
随着手机和相机等移动设备的普及,视频人脸复原任务变得越来越重要。然而,现有的工作主要集中在图像人脸复原任务上,而视频相关的人脸复原工作较少。
另一方面,视频去模糊、视频超分辨率和视频去噪等其他底层视觉任务近年来发展迅速。
因此,视频人脸复原是社区的一个潜在方向。视频人脸复原任务可以从以下两个方面来考虑。
首先,对于基准数据集,我们可以考虑为此任务构建高质量的视频数据集,这可以快速促进视频相关算法的设计和评估,这有利于人脸复原社区的发展;
其次,对于视频复原方法,我们应该通过充分考虑连续视频帧之间的空间和时间信息来开发基于视频的人脸复原方法。
真实世界的人脸复原和应用
现有方法依靠合成数据来训练网络模型。然而,经过训练的网络不一定在现实世界的场景中表现出良好的泛化能力。
如图19所示,大多数人脸复原方法在面对真实世界的人脸图像时效果不佳。因为合成数据和现实世界数据之间存在很大的数据域差距。
尽管一些方法引入了一些解决方案来解决这个问题,例如无监督技术或学习真实图像退化技术。然而,他们仍然依赖于一些特定的假设,即所有图像都有类似的退化。
因此,现实世界的应用仍然是人脸复原任务的一个具有挑战性的方向。
此外,一些方法表明,人脸恢复可以提高人脸验证和人脸识别等后续任务的性能。然而,如何在一个框架中将人脸复原任务与这些任务结合起来也是未来的研究方向。
其他相关任务
除了上面讨论的人脸复原任务,还有很多与人脸复原相关的任务,包括人脸修饰、照片素描合成、人脸到人脸翻译、人脸修复、颜色增强和旧照片恢复。
例如,面部修复旨在通过匹配或学习来恢复面部图像的缺失区域。它不仅需要在语义上为缺失的面部组件生成新的像素,而且还应该保持面部结构和外观的一致性。老照片修复是修复老照片的任务,老照片的退化是相当多样和复杂的(例如,噪点、模糊和褪色)。
此外,一些任务侧重于面部风格迁移,例如人脸到人脸翻译和面部表情分析,这与人脸复原任务不同。
因此,将现有的人脸复原的方法应用到这些相关任务中,也是一个很有前景的方向,这可以触发更多的应用落地。
参考资料:https://arxiv.org/abs/2211.02831