文章目录
- 0.前言
- 1.摘要
- 2. 问题描述
- 3.方法method
- 3.1 网络结构
- 3.2 损失函数(文本重点)
- 4.实验结果

0.前言
文章属于low level中的Reference-guided face restoration类别,被2025 WACV
所接收,文章主要目的就是充分利用参考人脸的高清细节,将其复制到低质图像LQ中,实现真实且ID一致的人脸修复。
以下是论文链接和代码链接[paper] [code]
更多关于face restoration方向的论文可以查看这个仓库[Face_Restoration_Ref],覆盖从2018至今的SOTA论文。
1.摘要
文章提出基于参考引导的人脸恢复比基于非参考的方法具有更好的身份保存能力,但是存在两个问题
1、容易产生伪影(artifacts),这可以是因为低效的人脸先验 。
2、不能很好的保持那些对人脸id很关键的细节,例如雀斑、纹身和疤痕。
所以,文中提出方法解决这两个问题,
1、结合强的人脸先验,即生成式的人脸先验(generative facial prior),
2、指出传统的loss不能够很好的做好这个任务,会阻止网络从参考图像中复制面部特征,所以提出了新的loss函数,即spatial minimum loss 和cycle consistency loss
2. 问题描述
1、无条件的人脸修复算法(GFPGAN等),在人脸细节依稀可见的时候效果很好,但是如果本身人脸遭受严重退化,即使能够恢复清晰高质量人脸,但是人脸身份却不能保持。
2、传统的基于参考人脸先验的方法例如GWAInet、GFRNet,虽然可以借鉴参考人脸的身份信息,但不能够恢复很好的细节,
因此这个文章的话准备将这两者结合,即让算法能够又恢复高质量的人脸,又可以保持很好的身份一致性。
那么怎么做呢?
3.方法method
总体目标:给定一个退化未知的输入人脸图像和一个参考图像,我们的目标是通过从参考中复制特征和身份来恢复人脸图像。
3.1 网络结构
为了解决生成细节不足的问题,借鉴无条件的人脸修复算法(GFPGAN等,使用了预训练的StyleGAN2作为decoder来提供生成式的人脸先验。
总体上,模型结构如上所示,输入是三项,分别是低质量图像xd,经过warp后的参考图像yw,以及经过identity embedding之后的I(y)。 x ^ = G ( x d , y w , I ( y ) ) \hat{x}=\mathcal{G}(x_{d},y_{w},I(y)) x^=G(xd,yw,I(y))
整体结构和GPEN类似,但是两个重大的结构区别,首先本文有使用一个额外的identity embedding
作为额外输入,这个模块可以理解为将参考图像的id作为输入,让模型知道这个人的身份信息,第二个区别是encoder的特征和decoder的特征是使用简单插值而不是concat。
3.2 损失函数(文本重点)
文中指出一个基于参考人脸的人脸修复算法的一个问题,如果GT和参考图像存在差异,那么模型在推理的时候就会犹豫,到底应该忠于LQ图像进行人脸修复,还是复制参考图像的细节进行修复。
以前的损失函数都是直接以GT作为目标值,作者发现这不太对,因为当参考图像y和GT存在差异,那y虽然是高质量图像,也起不到任何作用,因为模型总想着靠近GT的细节,就会忽略y。
基于这个现象,作者提出了Spatial Minimum Loss
,这个损失函数的作用是啥?看图
作用就是在某个人脸位置,他会选择是基于y的损失比较小还是基于GT的损失比较小,这样做的目的就是,让LQ经过模型之后的output细节有靠近y的趋势(直接复制y的特征)。
但是这又出现了新的问题,直接复制y的特征是最简单的优化方式,很容易让模型直接输入y,而不忠实于GT,所以作者提出了第二个损失函数Cycle consistency loss
,这个损失函数是做什么的?还是看图
这个损失函数会在模型输出基础上加上原有GT->LQ的退化,目的就是让deg(output) = LQ,约束了模型output的范围。
同时作者还使用了GAN loss 和 ID loss, 总的使用4个loss,这 4 个损失确保 1) 恢复的人脸保留了退化人脸和参考人脸的细节; 2) 输出的人脸id和退化人脸是相同的; 3) 人脸看起来是自然的
4.实验结果
感觉整体细节和真实性确实挺高,唯一缺陷就是代码还没开源,我尝试复现,但是没有达到作者的效果,可能和loss权重有关。