DREAMCLEAN: RESTORING CLEAN IMAGE USING DEEP DIFFUSION PRIOR

2024-03-17 15:20

本文主要是介绍DREAMCLEAN: RESTORING CLEAN IMAGE USING DEEP DIFFUSION PRIOR,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DREAMCLEAN: RESTORING CLEAN IMAGE USING DEEP DIFFUSION PRIOR (Paper reading)

Jie Xiao, USTC, ICLR24 poster, Paper, Code

1. 前言

目前的研究主要依赖于恢复类型的先验知识,要么是通过规则明确地定义(DDRM中Liner的假设),要么是通过可用的退化-清晰图像对(End2End)隐含地定义恢复过程,并且需要大量的工作来收集各种退化类型的图像对。本文介绍了DreamClean,这是一种无需训练的方法,无需退化先验知识,但能产生高保真度和普适性,适用于各种图像退化类型。DreamClean将退化图像嵌入到预先训练的扩散模型的潜在空间中,并通过精心设计的扩散过程对其重新采样,模拟生成清晰图像的过程。由于扩散模型中丰富的图像先验知识以及我们的新颖的方差保持采样(VPS)技术,DreamClean能够同时处理各种不同的退化类型,并且达到比以前的竞争对手更满意的最终质量。DreamClean依赖于优雅的理论支持,以确保当VPS具有适当的参数时,它会收敛到清晰图像,并且在没有退化先验知识的情况下,DreamClean在各种具有挑战性的任务上表现出卓越的实验性能,这对以前的方法来说可能是不可逾越的。

2. 整体思想

在这里插入图片描述
当我看到图1的时候,就感觉这篇更像是在做生成,一致性很难保证,但是low-level任务在降质不是非常严重的情况下,需要保证细节的一致性,虽然图1乍一看挺好,然而仔细看好多细节被篡改了。后面实验结果,也可以看到图像被过度平滑了。本文数学较多,整体思想建议看第3节高亮。

3. 方法

在这里插入图片描述

为了释放扩散模型的生成力量,摆脱沉重的退化先验,我们提出了一种新颖的无需训练和无监督框架,称为DreamClean,用于通用的图像恢复问题。DreamClean绕过了成对数据集的要求,可以在没有关于特定退化模型的显式或隐式假设的情况下生成样本,从而对各种退化类型具有强大的鲁棒性。正如图2所示,DreamClean可以处理各种类型的退化,包括典型的线性退化(图像着色、超分辨率、去模糊)、有噪线性退化(泊松噪声、带有高斯和泊松噪声的超分辨率)、非线性退化(多个非对齐JPEG伪影校正)、复杂的恶劣天气退化(雨、雪、雨滴)。DreamClean的工作方式类似于经验丰富的人类,纯粹基于输入的退化观察“想象”潜在的清晰图像。

DreamClean的关键思想是在干净图像分布中进行搜索,该分布由扩散先验表示,以找到清晰图像,同时保持对输入的退化图像的忠实。因此,我们框架的第一个核心要素是预训练的扩散模型。我们将这样的扩散模型视为极端图像恢复问题的解决方案(也就是变成生成模型了):即使有关清晰图像的所有信息都丢失了,它也能生成清晰图像。另一个需要解决的关键问题是确保对退化图像的忠实度。我们借助扩散模型的ODE采样算法(例如,DDIM(Song等,2021a))的反演来实现这一目标。如图3所示,通过重建退化图像,DDIM反演算法可以生成一系列保留有关输入图像信息的潜变量。由于从扩散模型中采样通常会产生清晰图像而不是退化图像,因此这些潜变量位于低概率区域。虽然这些潜变量不能直接恢复清晰图像,但它们可以继承输入图像的信息,为后续采样提供良好的初始化。受此启发,我们提出了方差保持采样(VPS)来引导这些受损的低概率潜变量朝向附近的高概率区域,从而可以生成清晰样本。这样,VPS作为一种通用解决方案,即使不知道具体的退化模型,也可以确保忠实度。值得注意的是:i)DreamClean不假设底层退化模型的特定形式。因此,它可以与在像素空间和VAE编码空间中预先训练的扩散模型集成。如图1所示,当应用于Stable Diffusion XL的编码空间时,DreamClean仍然可以完成具有挑战性的多个非对齐JPEG伪影校正任务;ii)DreamClean与先前利用退化模型从后验分布中采样的工作是正交的。DreamClean也可以利用退化模型产生更加忠实的结果。我们的方法在收敛性方面具有优雅的理论保证,并在许多具有挑战性的场景中表现出卓越的性能。

在这里插入图片描述

ODE采样算法近似可逆,也就是说,对于给定的图像,可以找到一系列潜变量,其中任何一个都可以沿着ODE采样轨迹重现输入图像(如图3所示)。这一属性意味着这些反向潜变量应该包含关于输入图像的理想信息。另一方面,当我们从预训练的扩散模型中采样时,会生成高质量的图像,这意味着这些潜变量位于低概率区域。受此启发,如图3所示,我们提出利用反向潜变量作为初始化,并设计一个校正算法来引导这些潜变量朝向附近的高概率区域。在本工作中,我们选择DDIM作为默认的ODE采样算法。假设退化图像是 y y y,则可以通过DDIM反演找到一个潜变量 y τ y_τ yτ y τ = D D I M − 1 ( y ) y_τ=DDIM^{-1}(y) yτ=DDIM1(y)

得到信息丰富的潜变量 y τ y_τ yτ之后,我们可以校正低概率的潜变量,并逐渐去噪以获得清晰的图像。我们在每个时间步 t ∈ [ τ , 0 ) t∈[τ,0) t[τ,0)执行以下两个步骤:

  1. y t m = y t m − 1 + η l ∇ l o g p t ( y t m − 1 ) + η g ϵ g m , m = 1 , . . , M , y t 0 = y t y^m_t=y^{m-1}_t+\eta_l \nabla logp_t(y^{m-1}_t)+\eta_g\epsilon_g^m,\quad m=1,..,M, \quad y^0_t=y_t ytm=ytm1+ηllogpt(ytm1)+ηgϵgm,m=1,..,M,yt0=yt
  2. y t − 1 = D D I M ( y t M ) y_t-1 = DDIM(y_t^M) yt1=DDIM(ytM)

在这里插入图片描述

其中, η l \eta_l ηl η g \eta_g ηg需要满足 η l = γ ( 1 − α ˉ t ) \eta_l = \gamma(1-\bar \alpha_t) ηl=γ(1αˉt) η g = γ ( 2 − γ ) 1 − α ˉ t \eta_g = \sqrt{\gamma(2-\gamma)}\sqrt{1-\bar \alpha_t} ηg=γ(2γ) 1αˉt 。0 < γ < 1是一个标量,确定步长的大小。这样设置对于恢复清晰图像至关重要,我们将在后面的定理2.2中讨论。直观地,如图4所示,给定位于低概率区域的初始潜变量,VPS将引导潜变量向其附近的高概率区域移动。高概率区域符合扩散模型的正常采样公式。因此,通过逐渐校正潜变量,VPS可以产生高质量的图像。在实践中, ∇ l o g p t ( y t m − 1 ) \nabla logp_t(y^{m-1}_t) logpt(ytm1)可以通过预训练的扩散模型计算。具体来说,梯度项与预训练的扩散模型预测的噪声有关。

在这里插入图片描述
看到这里你一定很蒙,我按我的理解来重新说一遍:限制 η l η_l ηl η g η_g ηg是为了保证VPS校正的收敛性,使得迭代过程最终能够到达目标高概率集合,而不会发散。如果不加以约束,可能会使潜变量的更新步长过大或过小,导致无法正确收敛到目标集合。结合定理2.2,如果 M → ∞ M \to \infty M,相当于无限执行公式9后面两个部分。这对于采用初期来说,等同于无限执行后面两项,而后面两项。这意味着,你的 x t x_t xt无限逼近真实分布,也就是收敛于高概率集合。更直白的话就是,输入是降质图像,我们利用VPS将其拉到清晰图像的先验空间中。为什么有效呢?DDIM Inversion提供了一个很好的起点,但是你降质图像的起点是有很大误差的,而这种误差在 T T T较大时是较小的, ∇ l o g p t ( y t m − 1 ) \nabla logp_t(y^{m-1}_t) logpt(ytm1)这一项是在误差较小时的一次采样,而这个采用的是完全基于 ϵ θ \epsilon_\theta ϵθ的真实先验。这个采样结果一定程度弥补了降质起点的误差,且采用作为DDIM下次采样的起点。因此,降质图像中的很多噪声或者其他可以被忽略,但是致命问题是VPS无法控制方向,换句话说,他只可能给你拉到高概率集合中,但是无法精确找到是哪个子集。所以他图像复原的结果,大体看着还行,具体细节改变了很多。

在这里插入图片描述

4. 实验

4.1 MOVING TO HIGHER PROBABILITY

在这里插入图片描述

对于潜变量 x t x_t xt,我们通过预训练的扩散模型评估其在概率下 l o g p θ ( x t ) log p_θ (x_t) logpθ(xt)。给定 x 0 x_0 x0,我们可以通过备用得分 l o g q t ( x t ∣ x 0 ) log q_t (x_t|x_0) logqt(xtx0) 来近似它。我们使用嘈杂的 SR 作为默认的 IR 任务,并记录 CelebA 1K 上的平均分数和标准差。图5显示,与清晰图像相比,退化图像的潜变量位于低概率区域,而 VPS 逐渐提高了它们的概率。我们还在图6中提供了具有不同时间步长的潜变量的更直观的可视化。我们可以发现,在 VPS 的驱动下,具有意外工件的潜变量被转换为具有类似高斯噪声的干净图像外观,这符合扩散模型的采样动态(方程 (2)).

4.2 QUANTITATIVE EXPERIMENTS

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

这篇关于DREAMCLEAN: RESTORING CLEAN IMAGE USING DEEP DIFFUSION PRIOR的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819326

相关文章

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

使用亚马逊Bedrock的Stable Diffusion XL模型实现文本到图像生成:探索AI的无限创意

引言 什么是Amazon Bedrock? Amazon Bedrock是亚马逊云服务(AWS)推出的一项旗舰服务,旨在推动生成式人工智能(AI)在各行业的广泛应用。它的核心功能是提供由顶尖AI公司(如AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI以及亚马逊自身)开发的多种基础模型(Foundation Models,简称FMs)。

Differential Diffusion,赋予每个像素它应有的力量,以及在comfyui中的测试效果

🥽原论文要点 首先是原论文地址:https://differential-diffusion.github.io/paper.pdf 其次是git介绍地址:GitHub - exx8/differential-diffusion 感兴趣的朋友们可以自行阅读。 首先,论文开篇就给了一个例子: 我们的方法根据给定的图片和文本提示,以不同的程度改变图像的不同区域。这种可控性允许我们再现

Deep Ocr

1.圈出内容,文本那里要有内容.然后你保存,并'导出数据集'. 2.找出deep_ocr_recognition_training_workflow.hdev 文件.修改“DatasetFilename := 'Test.hdict'” 310行 write_deep_ocr (DeepOcrHandle, BestModelDeepOCRFilename) 3.推理test.hdev

diffusion model 合集

diffusion model 整理 DDPM: 前向一步到位,从数据集里的图片加噪声,根据随机到的 t t t 决定混合的比例,反向要慢慢迭代,DDPM是用了1000步迭代。模型的输入是带噪声图和 t,t 先生成embedding后,用通道和的方式加到每一层中间去: 训练过程是对每个样本分配一个随机的t,采样一个高斯噪声 ϵ \epsilon ϵ,然后根据 t 对图片和噪声进行混合,将加噪

IMAGE LIST

   CImageList就是一个容器,用来存储图片资源,方便这些资源被CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl,CListCtrl等使用。      要使用CImgeList首先要使用它的create函数:      一般用的比较多的是这一个函数,当然,它还有很多重载,自己可以去翻阅msdn.       BOOL

【vscode】vscode paste image插件设置

本文首发于 ❄️慕雪的寒舍 vscode编辑md文件的时候,如果想插入图片,自带的粘贴只会粘贴到当前目录下,也没有文件重命名,很不友好。 在扩展商店里面有mushan的Paste Image插件,相比自带的,更加友好一点。但是它的配置把我弄糊涂了,简单测试了一下才明白处理的逻辑。 注意,本文编写的是对mushan的Paste Image插件的教程。 首先是安装这个插件,这个不多说

pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二)

pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二) pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二)DatasetInputs to modelCaption LengthsData pipelineEncoderAttentionDecoder代码数据集初始化 create_input_files.py训练 tr

Show,Attend and Tell: Neural Image Caption Generation with Visual Attention

简单的翻译阅读了一下 Abstract 受机器翻译和对象检测领域最新工作的启发,我们引入了一种基于注意力的模型,该模型可以自动学习描述图像的内容。我们描述了如何使用标准的反向传播技术,以确定性的方式训练模型,并通过最大化变分下界随机地训练模型。我们还通过可视化展示了模型如何能够自动学习将注视固定在显着对象上,同时在输出序列中生成相应的单词。我们通过三个基准数据集(Flickr9k,Flickr

Docker Image 命令

文章目录 目录 文章目录 1 . Docker镜像是什么? 2 . 镜像命令详解 docker images docker tag docker pull docker rmi  docker save 总结 1 . Docker镜像是什么? Docker image 本质上是一个 read-only 只读文件, 这个文件包含了文件系统、 源码、库文件、依赖、工具等一些