CodeFormer——Towards Robust Blind Face Restoration with Codebook Lookup Transformer

链接:CodeFormer

摘要

盲脸恢复是一个高度病态的问题,通常需要辅助引导来1)改善从退化输入到期望输出的映射;2)   补充输入中丢失的高质量细节

在本文中,作者证明了在小代理空间中学习离散码本先验,通过将盲人脸恢复作为潜码预测任务,极大地减少了恢复映射的不确定性和模糊性,同时为生成高质量的人脸提供了丰富的视觉原子。在这种模式下,作者提出了一个基于transformer的预测网络,名为CodeFormer,用于对低质量人脸的全局组成和上下文进行建模,以进行潜码预测,即使在输入严重退化的情况下,也能发现与目标人脸非常接近的自然人脸。为了增强对不同退化的适应性,作者还提出了一个可控的特征转换模块,允许在保真度和质量之间灵活权衡。由于具有表现力的码本先验和全局建模,CodeFormer在质量和保真度方面都优于目前的技术水平,对退化表现出卓越的鲁棒性,在合成数据集和真实数据集上的大量实验结果验证了该方法的有效性。

引言

在野外拍摄的人脸图像经常遭受各种退化,如压缩、模糊和噪声。恢复这样的图像是高度病态的,因为退化引起的信息损失导致在低质量(LQ)输入的情况下产生无限的高质量(HQ)输出。在盲目恢复中,具体的退化是未知的,病态进一步升高。尽管随着深度学习的出现取得了进展,但在巨大的图像空间中,在没有额外指导的情况下学习LQ-HQ映射仍然是棘手的,导致早期方法的恢复质量不是最优。为了提高输出质量,降低LQ-HQ映射的不确定性和补充高质量细节的辅助信息是必不可少的。

各种先验被用来减轻这个问题的不适定性,包括几何先验、参考先验和生成先验。虽然改进的纹理和细节被观察到,这些方法往往遭受对退化的高敏感性或有限的先验表现力问题。这些先验对人脸恢复没有足够的指导,因此它们的网络本质上依赖于LQ输入图像的信息,而这些信息通常是高度损坏的。因此,LQ-HQ映射的不确定性仍然存在,并且由于输入图像的退化导致输出质量下降。最近,基于生成先验,一些方法通过迭代潜在优化或直接潜在编码将退化的人脸投影到连续的无限空间中。尽管输出的真实度很高,但在退化严重的情况下,很难找到准确的潜在向量,导致结果的保真度较低(图1(d))。为了提高保真度,在这种方法中通常需要在编码器和解码器之间进行跳过连接,然而,当输入严重退化时,这种设计同时会在结果中引入伪影。

与上述方法不同的是,该方法将盲人脸恢复作为一种编码预测任务,在学习到的离散码本先验的小的有限代理空间中进行,具有较好的抗退化鲁棒性和丰富的表达性。码本是通过使用矢量量化自编码器自构建HQ人脸来学习的,该自编码器与解码器一起存储丰富的HQ细节用于人脸恢复。与连续生成先验相比,码本项目的组合形成一个只有有限基数的离散先验空间。通过将LQ图像映射到更小的代理空间(例如1024个代码),LQ- hq映射的不确定性显著减弱,增强了对各种退化的鲁棒性,如图1(d-g)所示。此外,码本空间具有更强的表现力,在感知上近似于图像空间,如图1(h)所示。这种性质允许网络减少对输入的依赖,甚至不需要跳过连接。

尽管基于码本的离散表示已被用于图像生成,但用于图像恢复的准确潜码组成仍然是一个非平凡的挑战。现有的工作是通

### GFP-GAN在真实世界盲人脸修复中的应用及生成式面部先验 GFP-GAN是一种专门针对真实世界盲人脸修复的任务提出的先进方法,其核心在于利用生成式面部先验(Generative Facial Prior, GFP)来提升修复的真实性和保真度[^1]。该方法通过引入预训练的人脸生成对抗网络(GAN),特别是StyleGAN,提取丰富的面部先验信息,并将其融入到人脸修复的过程中[^4]。 #### 方法概述 GFP-GAN的核心创新之一是设计了一种新的空间特征变换层(Spatial Feature Transformation Layer),用于有效地融合生成式面部先验与输入图像的信息[^3]。这种方法不仅能够在单次前向传播中完成人脸细节的恢复和颜色增强,还避免了传统GAN反演方法所需的图像特定优化过程[^2]。因此,在实际应用场景中,GFP-GAN表现出更高的效率和更优的效果。 #### 实验验证 大量的实验证明,GFP-GAN在处理合成数据集和真实数据集时均显著优于现有的其他方法[^1]。特别是在面对极端低质量输入的情况下,如严重模糊、噪声污染或分辨率极低的情况,GFP-GAN依然能够保持良好的修复效果,这主要得益于其强大的生成式面部先验支持[^3]。 #### 技术优势 相比传统的基于几何先验的方法,GFP-GAN无需依赖高质量参考图像即可实现高精度的脸部重建[^4]。此外,通过精心设计的身份保留损失(Identity Preservation Loss)、人脸组成损失(Face Composition Loss)以及金字塔修复指导(Pyramid Restoration Guidance),进一步提升了模型的整体表现[^2]。 ```python import torch from gfpgan import GFPGANer def restore_face(image_path): model = GFPGANer(model_path='experiments/pretrained_models/GFPGANv1.3.pth', upscale=2, arch='clean', channel_multiplier=2) _, _, output = model.enhance(img=image_path, has_aligned=False, only_center_face=False, paste_back=True) return output ``` 以上代码展示了如何使用GFPGAN库加载预训练模型并对一张图片进行人脸修复操作。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值