超分辨率第十一章-SR&Diffusion_model

超分辨率第十一章-SR&Diffusion_model

Denoising Diffusion Probabilistic Models 于2020年发布。

参考文献:Denoising Diffusion Probabilistic Models

此后在超分领域出现了两篇以扩散模型为基础的文章:

参考文献:

SR3: Image Super-Resolution via Iterative Refinement (2021)

SRDiff: Single Image Super-Resolution with Diffusion Probabilistic Models (2021)

一.Diffusion_model介绍

1.应用背景

基于其它模型的缺点:

  • PSNR-oriented:导致图像过度平滑并导致高频信息丢失。

  • GAN-driven:“mode collapse(模式崩溃)“、训练时很难收敛

    • 模式崩溃是指模型未能生成数据分布的所有模式,而是只生成部分模式或重复生成相同的模式。
  • VAE: 生成后的图片较为模糊。

  • Flow-based:占用空间过大,损失函数计算负对数似然时雅可比行列式的值难以计算

2.Diffusion Models原理

扩散模型使用马尔可夫链,通过在扩散过程中逐渐添加噪声,将数据 x0(复杂分布) 转换为简单分布的潜在变量 xt,并预测每个扩散步骤中的噪声。

一般加噪过程最后会将数据变为高斯分布xT~N(0,1),即最简单的标准正态分布。

最后通过逆向的去噪从高斯分布逐步恢复原始数据 x0

①马尔科夫链

马尔科夫链是一个随机过程{X_n ,n=0,1,2,⋯},其中X_n表示在时间步n时系统所处的状态,且状态空间S是离散的。

它具有马尔科夫性质,即给定当前状态,未来的状态只取决于当前状态,而与过去的历史状态无关。

  • 马尔科夫链的三要素:

​ 1.状态空间:t0=[1,0] or t0=[0,1],初始值

​ 2.无记忆性:当前选择的概率只受上一期的选择概率的影响,与以前的无关

​ 3.转移矩阵:每一个状态都以一定的概率转化到下一个状态,这种概率可以用一个矩阵表示,即转移概率矩阵。

  • 马尔科夫链在扩散模型中的应用:

    • 正向加噪过程

      • 扩散模型通常基于马尔科夫链来构建正向扩散过程。从初始的清晰数据分布(如自然图像分布)开始,逐步向数据中添加噪声,这个过程可以看作是马尔科夫链的状态转移。每一步添加噪声的过程只依赖于当前的数据状态,符合马尔科夫性质。
      • 即给定当前时刻的数据状态 x_t,下一时刻 t+1的数据状态 x_t+1的概率分布只取决于 x_t,可以表示为q(x_t+1∣x_t)。
      • 随着时间步t的增加,数据逐渐被噪声淹没,最终达到一个纯噪声的分布。例如在图像扩散模型中,从一张清晰的图像开始,经过多次添加噪声的操作,最终图像变得完全像随机噪声。
    • 逆向去噪过程

      • 基于马尔科夫链的反向过程是从纯噪声开始,逐步去除噪声以恢复原始数据。在反向过程中,根据马尔科夫性质,给定当前的噪声状态 x_t,模型需要学习预测前一时刻的状态 x_t−1的概率分布p(x_t−1∣xt)。
      • 通过不断地从这个条件分布中采样,逐步向原始数据分布靠近,最终生成出接近真实数据的样本。从一个随机的噪声向量开始,通过一系列的马尔科夫链状态转移,逐步生成原图像。
      • 在反向过程中,马尔科夫链的转移概率通常通过神经网络来参数化。例如使用一个基于深度学习的生成器网络,以当前的噪声状态 x_t和时间步 t 作为输入,输出预测的前一时刻状态 x_t−1的概率分布或直接输出一个估计的 x_t−1样本。

      pEtuVmt.png

②前向加噪

  • 从原始数据x0出发,着时间步t从0增加到T,数据 xt逐渐被噪声淹没,最终xT服从一个纯噪声分布,通常是标准正态分布

  • 在每个时间步t逐步向数据中添加噪声。通常使用高斯噪声,在时间步t,给定 xt−1,通过以下公式得到xt:

    • 其中βt是一个与时间步t相关的噪声系数,控制着噪声添加的强度,ϵt是从标准正态分布N(0,I)中采样得到的噪声向量。
  • 过程如下面表达式所示

训练过程:$f _ { \theta } ( x , \tilde { y } , \gamma )$,该神经网络经过训练之后预测当前次迭代步t产生的噪声$ \widehat { \epsilon } _ { t }$

需要最小化该步预测噪声和该步实际的噪声的差值(会转换为求极大似然估计):

pEtltKJ.png

③反向去噪

  • 从纯噪声采样:从纯噪声分布中采样得到 xT,由于前向加噪过程的结果,xT通常服从标准正态分布
  • 学习条件分布:模型需要学习在给定xt的情况下,xt - 1的条件分布,之后逐步开始去噪,向前采样,T步之后得到超分辨率重建图片。
  • 过程如下面表达式所示:

推理过程需要添加额外的高斯噪声,避免陷入局部最优

pEtlr8O.png

二.SR3介绍

SR3架构基于DDPM架构并做了改进。

DDPM在正向加噪后,训练阶段,将加噪后的图输入U-Net预测每次迭代添加的噪声。

推理阶段,从一张标准正态分布的噪声,输入U-Net后可通过预测出的噪声逆向去噪,迭代后生成新图像。

pEtlqqs.png

SR3的改进为:SR3在每一步的输入为:concat y_t and x (将低分辨率图片用插值法到目标高分辨率再于当前时间步图片连接)

pEtKNDI.png

三.SRDiff介绍

过程:与SR3不同,它预测的是残差:

加噪:将残差xr=XH-up(xL)t步加噪迭代后转化为高斯分布的潜在xT

训练:输入xr=XH-up(xL)和经过基于RRDB编码器的XL,经过U-net结构,预测每一步迭代的噪声

去噪:采样一个高斯分布的XT,将每一步预测的噪声进行去噪,还需添加一个随机采样的噪声z引入随机性,经过T次迭代后得出残差,与低分辨率图片相加即可得到超分辨率图片:

pEt1qSO.png

优化目标为:

LR Encoder:RRDB结构,将低分图片上采样到与xt相同的维度

pEtunk8.png

-------------本文结束-------------