图片类型的修复工具其实很多了,收费的Magnific前面文章介绍过,有点小贵,后续会陆续介绍一些开源的图片修复工具。
今天介绍的这款是CodeFormer,基于 Transformer 的预测网络,专门用于人脸恢复。
报告地址:https://arxiv.org/pdf/2206.11253.pdf
演示页地址:https://shangchenzhou.com/projects/CodeFormer/
code地址:https://github.com/sczhou/CodeFormer
一、CodeFormer的技术方法和技术细节
CodeFormer是一种盲人脸恢复方法,它通过学习一个离散的代码本来减少恢复映射的不确定性,并提供丰富的视觉原子以生成高质量的人脸。
1、代码本学习(Codebook Learning):
使用自编码器通过自重建学习来获得一个离散代码本和相应的解码器。
高质量(HQ)人脸图像首先被编码器压缩为特征向量,然后通过向量化自编码器学习来获得离散代码本。
通过最小化图像级重建损失(L1损失、感知损失和对抗损失)以及代码级损失来训练自编码器。
2、代码本查找Transformer学习(Codebook Lookup Transformer Learning):
在固定的代码本和解码器的基础上,引入Transformer模块来预测代码序列。
Transformer模块包含多个自注意力块,用于捕捉低质量(LQ)人脸图像的全局组成和上下文。
Transformer模块的输出是一个概率分布,表示每个代码项被选择的概率,然后根据这个概率分布从代码本中检索相应的代码项。
在这一阶段,只使用代码级损失,包括交叉熵损失和L2损失,以便于代码预测的学习。
3、可控特征转换模块(Controllable Feature Transformation Module):
为了在恢复质量和忠实度之间实现灵活的权衡,提出了一个可控特征转换模块。
该模块通过可调系数来控制从LQ编码器到解码器的信息流。
在轻微退化的情况下,可以减少系数以提高输出质量;在严重退化的情况下,可以增加系数以提高忠实度。
4、训练过程:
方法的训练分为三个阶段:代码本学习、代码本查找Transformer学习、可控特征转换模块学习。
在每个阶段,都有特定的训练目标和损失函数,以确保模型能够有效地学习到所需的特性。
二、CodeFormer的功能、作用及局限性
主要集中在盲人脸恢复领域,具体包括:
1、盲人脸恢复:
CodeFormer的主要功能是恢复严重退化的人脸图像,如压缩、模糊和噪声等。
通过学习一个离散的代码本,它能够将低质量的输入图像映射到高质量的输出图像。
2、代码预测:
使用Transformer网络来预测代码序列,这些序列代表了在代码本空间中的人脸表示。
这种预测能力使得模型能够生成与目标人脸接近的自然人脸图像,即使输入图像质量很差。
3、质量与忠实度的平衡:
提供了一个可控特征转换模块(CFT),允许在图像质量与忠实度之间进行权衡。
在输入图像严重退化时,可以减少对输入图像的依赖,从而提高输出图像的质量。
4、鲁棒性:
CodeFormer通过离散的代码本和全局建模,提高了对各种图像退化的鲁棒性。
即使在输入图像质量极低的情况下,也能保持较好的恢复效果。
5、适应性:
模型能够适应不同程度的图像退化,通过调整CFT模块中的系数来适应不同的退化情况。
6、扩展性:
CodeFormer的方法可以扩展到其他图像处理任务,如人脸颜色增强、人脸修复、老照片修复等。
这表明模型具有较强的泛化能力和应用潜力。
7、性能提升:
在实验中,CodeFormer在质量和忠实度方面都优于现有的盲人脸恢复方法。
8、局限性:
尽管CodeFormer在大多数情况下表现良好,但在处理侧脸或训练数据中不常见的图像时,可能无法达到最佳性能。
总的来说,CodeFormer通过其独特的代码本学习和Transformer网络,提供了一种有效的方法来恢复和增强人脸图像,特别是在图像质量严重退化的情况下。它的设计允许在保持图像质量的同时,尽可能地恢复图像的细节和特征。