Generative Diffusion Prior for Unified Image Restoration and Enhancement (Paper reading)

Generative Diffusion Prior for Unified Image Restoration and Enhancement

Ben Fei, Fudan University, Shanghai AI Laboratory, CVPR2023, Cited:0, Code, Paper.

在这里插入图片描述

1. 前言

现有的图像恢复方法大多利用自然图像的后验分布。然而,它们通常假设已知的退化,并且还需要监督训练,这限制了它们对复杂的实际应用的适应。在这项工作中,我们提出了生成扩散先验(GDP),以无监督采样的方式对后验分布进行有效建模。GDP利用预训练去噪扩散生成模型(DDPM)来解决线性逆、非线性或盲问题。具体而言,GDP系统地探索了一种有条件指导的协议,该协议比常用的指导方式更实用。此外,GDP在去噪过程中有利于优化退化模型的参数,实现图像的盲恢复。此外,我们设计了分层指导和基于补丁的方法,使GDP能够生成任意分辨率的图像。在实验上,我们在几个图像数据集上展示了GDP对线性问题的多功能性,如超分辨率、去模糊、修复和着色,以及非线性和盲问题,如微光增强和HDR图像恢复。在重建质量和感知质量的不同基准上,GDP优于当前领先的无监督方法。此外,对于来自ImageNet训练集分布之外的各种任务的具有任意大小的自然图像或合成图像,GDP也很好地通用。我们的贡献有以下4点:(1)据我们所知,GDP是第一个统一的问题求解器,它以无监督的方式,可以有效的利用在ImageNet上预训练的无条件DDPM,输出不同的高保真度图像恢复和增强图片;(2) GDP能够优化随机启动的未知退化参数,从而形成一个强大的框架,可以解决任何盲图像恢复问题。(3) 此外,为了实现任意大小的图像生成,我们提出了分层指导和基于补丁的方法,极大地促进了GDP对自然图像的增强。(4) 此外,与传统的引导方式不同,GDP在每一步都直接预测给定噪声图像的临时输出,这将被用来指导下一步的图像生成。

2. 整体思想

整体的想法还是Guided diffusion那套,文章很漂亮,内容很多,创新点一般。

3. 方法

在这项研究中,我们的目标是利用训练有素的DDPM作为统一图像恢复和增强的有效先验,特别是处理各种退化图像。给定一张清晰图像 x x x,和降质模型 D D D,可以获得降质图像 y = D ( x ) y=D(x) y=D(x)。我们使用存储在 x x x先验中的的统计数据,并在 x x x的空间中搜索与 y y y最匹配的最优 x x x,将 y y y视为 x x x的损坏观测值。DDPM的反向去噪过程可以以退化图像 y y y为条件:
l o g p θ ( x t − 1 ∣ x t , y ) = l o g p θ ( x t − 1 ∣ x t ) p ( y ∣ x t ) log p_\theta(x_{t-1}|x_t, y) = log p_\theta(x_{t-1}|x_t)p(y|x_t) logpθ(xt1xt,y)=logpθ(xt1xt)p(yxt)
p ( y ∣ x t ) p(y|x_t) p(yxt)可以被视为 x t x_t xt将被去噪为与 y y y一致的高质量图像的概率,这句话我很难赞同, y y y明明就是低质量的图片啊。本文提出了它的启发式近似:
p ( y ∣ x t ) = 1 Z e x p ( − [ s L ( D ( ( x t ) , y ) + λ Q ( x t ) ] ) p(y|x_t)=\frac{1}{Z}exp(-[sL(D((x_t), y)+\lambda Q(x_t)]) p(yxt)=Z1exp([sL(D((xt),y)+λQ(xt)])
其中 L L L是某些图像距离度量, Z Z Z是归一化因子, s s s是控制引导幅度的缩放因子。直观地,这个定义鼓励 x t x_t xt与损坏的图像 y y y一致,以获得 p ( y ∣ x t ) p(y|x_t) p(yxt)的高概率。 Q Q Q是可选的质量增强损失,用于增强GDP的灵活性,可用于控制某些性质(如亮度)或提高去噪图像的质量。 λ λ λ是用于调整图像质量的比例因子。其梯度计算如下:
∇ x t l o g p ( y ∣ x t ) = − s ∇ x t L ( D ( ( x t ) , y ) − λ ∇ x t Q ( x t ) \nabla_{x_t} logp(y|x_t) = -s \nabla_{x_t}L(D((x_t), y) - \lambda \nabla_{x_t}Q(x_t) xtlogp(yxt)=sxtL(D((xt),y)λxtQ(xt)
这样,条件转移 p θ ( x t − 1 ∣ x t , y ) p_θ(x_{t−1}|x_t,y) pθ(xt1xty),通过将无条件分布 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t−1}|x_t) pθ(xt1xt)的平均值移动 − ( s ∑ ∇ x t L ( D ( x t ) , y ) + λ ∑ ∇ x t Q ( x t ) ) −(s∑ \nabla_{x_t}L(D(x_t), y)+λ∑\nabla_{x_t}Q(x_t)) sxtL(D(xt),y)+λxtQ(xt)),来近似地获得。然而,我们发现添加引导的方式和添加方差 ∑ ∑ 对重建图像产生负面影响。

3.1 Single Image 引导

超分辨率、impainting、着色、去模糊和增亮任务使用单图像引导。首先介绍降质模型,分为可知和未知的,也就是分别对应着模拟和真实。已知你们都懂,未知降质模型如何获得呢?在现实世界中,许多图像经历了复杂的退化,其中退化模型或退化模型的参数是未知的。在这种情况下,应该同时估计退化模型的参数和原始图像。例如,在我们的工作中,微光图像增强和HDR恢复可以被视为具有未知退化模型的任务。在这里,我们设计了一个模拟复杂降解的简单但有效的降解模型: y = f x + M y=fx+M y=fx+M。其中,亮度因子 f f f是一个标量,亮度掩模是一个与 x x x大小一样的向量。 f f f M M M是降质模型的未知参数。我们使用这种简单的退化模型的原因是,只要它们具有相同的大小,任何一对损坏的图像和相应的高质量图像之间的变换都可以由 f f f M M M捕获。如果它们没有相同的大小,我们可以首先将 x x x的大小调整为与 y y y相同的大小,然后应用此变换。值得注意的是,这种退化模型通常是非线性的,因为 f f f M M M取决于 x x x y y y。我们需要为每个单独的损坏图像估计 f f f M M M。我们通过随机初始化它们并在DDPM的反向过程中同步优化它们来实现这一点。

  1. 引导中方差的影响:我们发现在我们的实验中,方差 ∑ ∑ 可能会对生成的图像的质量产生负面影响。因此,我们在引导去噪过程中去除方差,以提高我们的性能。在不存在 ∑ ∑ 和固定引导尺度 s s s的情况下,引导去噪过程可以由可变尺度 s ^ \hat s s^引导。
  2. x t x_t xt上引导:大部分Guided diffusion models都在 x t x_t xt上加入引导条件,如下图所示,我们把这种方法称为 G D P − x t GDP-x_t GDPxt。然而,这种在 x t x_t xt上应用引导的变体仍然可能产生不太令人满意的质量图像。直觉是 x t x_t xt是具有特定噪声大小的有噪声图像,但 y y y通常是没有噪声或不同大小的噪声的损坏图像。我们缺乏可靠的方法来定义 x t x_t xt y y y之间的距离。Naive的MSE损失或感知损失将使 x t x_t xt偏离其原始噪声强度,并导致低质量的图像生成。
    在这里插入图片描述
  3. 为了解决上述问题,我们系统地研究了应用于 x ~ 0 \tilde x_0 x~0上的条件信号。详细地说,在采样过程中,预训练的DDPM通常首先通过估计 x t x_t xt中的噪声来从有噪声的图像 x t x_t xt中预测干净的图像 x 0 x_0 x0。然后,将预测的 x 0 x_0 x0 x t x_t xt一起用于对下一步潜在的 x t − 1 x_{t−1} xt1进行采样。我们可以在这个中间变量 x 0 x_0 x0上添加引导来控制DDPM的生成过程。有个问题,刚开始是纯噪声,你更新参数会有什么用?而且随机初始化的参数真的有用?
    在这里插入图片描述

实验

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43800752/article/details/130115646