【论文精读】DifFace: Blind Face Restoration with Diffused Error Contraction

文章目录

0.前言

这篇文章是被 2024 TPAMI接收的关于人脸修复(face restoration)方向的论文,作者是南洋理工大学Chen Change Loy 课题组的。这个课题组很经典,在图像Low Level 方向发表了多篇经典论文,例如视频超分辨率的BasicVSR++,人脸修复的CodeFormer。

实际上,这篇文章并不算很新,早在2022年就被挂在了 arXiv,但是并没有激起像同任务中的CodeFormer一样大的水花,可能是恢复效果并不是很惊艳的原因吧。整体思想我觉得还是挺有趣的,设计中间转移过程,将低质量图像LQ转到中间态,然后利用预训练扩散模型的反向过程恢复到清晰的图像。

以下是论文链接和代码链接[paper] [code]

更多关于face restoration方向的论文可以查看这个仓库[Face_Restoration_Ref],整理了挺多经典论文。

1.当前问题

文章指出当前face restoration 两个局限性:

1、当遇到训练数据外的复杂退化,恢复效果会劣化。
2、有许多loss要设计、要平衡,例如保真、感知、对抗损失,这需要大量的人力成本去调这些超参。

2.怎么解决问题

这个文章的做法就是建立LQ到HQ的后验分布,就是设计一个中间过渡分布状态。

LQ->中间态->HQ ,中间态到HQ是采用预先训练的扩散模型(充分利用扩散模型的能力)。这样的优势在于:

1、LQ->中间态的监督只需要使用L1损失函数,省掉了大量的人力成本
2、中间的过渡分布可以收缩恢复模型的偏差,让整个算法更加鲁棒(遇到复杂退化也不怕)。

3.具体做法(Method)

明确优化目标,给定LQ图像恢复到HQ图像即 y 0 y_{0} y0 -> x 0 x_{0} x0 ,所以整体的目标是设计 p ( x 0 ∣ y 0 ) {p(x_{0}|y_{0})} p(x0∣y0)的合理后验分布。

3.1 受什么的启发?(Motivation)

考虑一个具有 T 个离散步骤的扩散模型,它提供了从 x t x_t xt 到 x t − 1 x_{t-1} xt−1 的转换函数。借助这种转变,可以构造后验分布 p ( x 0 ∣ y 0 ) {p(x_{0}|y_{0})} p(x0∣y0) 如下:
p ( x 0 ∣ y 0 ) = ∫ p ( x N ∣ y 0 ) ∏ t = 1 N p θ ( x t − 1 ∣ x t ) d ⁡ x 1 : N {p(x_{0}|y_{0})}=\int p(\mathbf{\mathit{x}}{N}|\mathbf{\mathit{y}}{0})\prod_{t=1}^{N}p_{\theta}(\mathbf{\mathit{x}}{t-1}|\mathbf{\mathit{x}}{t}){\operatorname{d}}x_{1:N} p(x0∣y0)=∫p(xN∣y0)t=1∏Npθ(xt−1∣xt)dx1:N

N在1和T之间,就是中间状态,从N到x0的步骤可以使用预训练的扩散模型来获得,整个算法的设计目标就变成了设计 p ( x N ∣ y 0 ) {p(x_{N}|y_{0})} p(xN∣y0)。

作者发现到如果将 p ( x N ∣ y 0 ) {p(x_{N}|y_{0})} p(xN∣y0)替换成 q ( x N ∣ x 0 ) {q(x_{N}|x_{0})} q(xN∣x0) ,那么整个求解目标就变成的扩散+重建过程。
x N ∼ q ( x N ∣ x 0 ) ⏟ D i f f u s i o n , x t − 1 ∣ x t ∼ p θ ( x t − 1 ∣ x t ) ⏟ R e c o n s t u c i i o \underbrace{x_{N}\sim q(x_{N}|x_{0})}{\mathrm{Diffusion}},\quad\underbrace{x{t-1}|x_{t}\sim p_{\theta}(x_{t-1}|x_{t})}_{\mathrm{Reconstuciio}} Diffusion xN∼q(xN∣x0),Reconstuciio xt−1∣xt∼pθ(xt−1∣xt)

因此这个N的取值就很有意思了,如果N取的太大,扩散的太严重,相当于是从噪声恢复回来,那就会失真,所以N需要取小一点,文中提出需要<500,才能恢复比较正确的人脸。

N的取值和恢复效果示意图可以见下图:

所以整个的目标就又进一步明确了,需要设计一种方法,让 p ( x N ∣ y 0 ) {p(x_{N}|y_{0})} p(xN∣y0)进一步的贴近 q ( x N ∣ x 0 ) {q(x_{N}|x_{0})} q(xN∣x0),这样就可以更好利用扩散模型的能力了!

3.2具体的模型设计(Design)

上面提到了整体的目标变成了设计一种方案,让 p ( x N ∣ y 0 ) {p(x_{N}|y_{0})} p(xN∣y0)贴近 q ( x N ∣ x 0 ) {q(x_{N}|x_{0})} q(xN∣x0)的分布,然而,我们知道的是 q ( x N ∣ x 0 ) {q(x_{N}|x_{0})} q(xN∣x0)是正向扩散过程,也就是不断叠加高斯噪声的过程,是可以被知道的分布。因此,整体的分布就可以近似为下式:
p ( x N ∣ y 0 ) = N ( x N ; α N f ( y 0 ; w ) , ( 1 − α N ) I ) p(x_{N}|y_{0})=\mathcal{N}\left(x_{N};\sqrt{\alpha_{N}}f(y_{0};w),(1-\alpha_{N})I\right) p(xN∣y0)=N(xN;αN f(y0;w),(1−αN)I)

也就是通过一个神经网络 f ( ⋅ ; w ) f(\cdot;w) f(⋅;w),来预测从 x 0 x_0 x0到 x N x_N xN的噪声参数,所以对作者来说,这只能称为一个扩散的预测器(diffused estimator)。

至于损失函数,就是 p ( x N ∣ y 0 ) {p(x_{N}|y_{0})} p(xN∣y0)和 q ( x N ∣ x 0 ) {q(x_{N}|x_{0})} q(xN∣x0)之间的KL散度了。
D KL ⁡ [ p ( x N ∣ y 0 ) ∥ q ( x N ∣ x 0 ) ] = 1 2 κ N ∥ e ∥ 2 2 D_{\operatorname{KL}}\left[p(x_{N}|y_{0})\|q(x_{N}|x_{0})\right]=\frac{1}{2}\kappa_{N}\|e\|_{2}^{2} DKL[p(xN∣y0)∥q(xN∣x0)]=21κN∥e∥22

3.3 整体算法

通过上述的近似计算,加上扩散的逆过程,就可以实现完整LQ-HQ的重建过程,整体流程图如下:

1、首先输入LQ图像和时间步N,

2、利用扩散预测器(SwinIR)预测当前步骤的噪声参数

3、从N反向扩散直至到清晰图像X0

整体算法和其他deep learning的方式的差别就是引入了中间状态,如下图所示:

作者提醒到,从N-1到0的反向扩散过程中随机性太强,会引入和HQ有偏差的信息,因此在计算 p θ ( x t − 1 ∣ x t ) p_{\theta}(x_{t-1}|x_{t}) pθ(xt−1∣xt) 采样时利用配置 η = 0.5 的 DDIM 采样器,该策略在一定程度上有效地消除了采样过程中固有的随机性,提高了重构HQ图像的保真度,同时做了相关的消融实验证明η设置的依据。

4.实验效果

模拟退化数据CelebA-Test数据和真实场景数据LFW, WebPhoto, and WIDER 上效果都不错,挑出来的图效果都很好。

4.1 Synthetic(CelebA-Test)

4.2 Real World (LFW, WebPhoto, and WIDER)

如果有帮助到你,帮忙点个赞呗

相关推荐
浊酒南街1 分钟前
TensorFlow中数据集的创建
人工智能·tensorflow
2301_787552871 小时前
console-chat-gpt开源程序是用于 AI Chat API 的 Python CLI
人工智能·python·gpt·开源·自动化
layneyao2 小时前
AI与自然语言处理(NLP):从BERT到GPT的演进
人工智能·自然语言处理·bert
jndingxin3 小时前
OpenCV 的 CUDA 模块中用于将多个单通道的 GpuMat 图像合并成一个多通道的图像 函数cv::cuda::merge
人工智能·opencv·计算机视觉
格林威3 小时前
Baumer工业相机堡盟工业相机的工业视觉中为什么偏爱“黑白相机”
开发语言·c++·人工智能·数码相机·计算机视觉
灬0灬灬0灬3 小时前
深度学习---常用优化器
人工智能·深度学习
_Itachi__4 小时前
Model.eval() 与 torch.no_grad() PyTorch 中的区别与应用
人工智能·pytorch·python
白光白光4 小时前
大语言模型训练的两个阶段
人工智能·机器学习·语言模型
巷9554 小时前
OpenCV图像金字塔详解:原理、实现与应用
人工智能·opencv·计算机视觉
科技小E4 小时前
WebRTC实时音视频通话技术EasyRTC嵌入式音视频通信SDK,助力智慧物流打造实时高效的物流管理体系
人工智能·音视频