RDDM论文阅读笔记

news2024/10/5 18:22:24

在这里插入图片描述

  • CVPR2024的残差去噪模型。把diffusion 模型的加噪过程分解为残差diffusion和noise diffusion,其中残差diffusion模拟从target image到degraded image的过程,而noise diffusion则是原来的diffusion过程,即从图片到高斯噪声的加噪过程。前者可以看作是对应restoration,后者对应generation。通过这一设计,仅用一个Unet,bs为1,用L1 Loss即可train一个sota的restoration模型。

  • 现有的diffusion image restoration模型通常是把LQ作为diffusion的condition,而diffusion仍然是从噪声开始的,作者认为这是没有必要的,可以直接从LQ开始而没必要从噪声开始。

  • 把DDPM中diffusion的终点 I T = ϵ I_T=\epsilon IT=ϵ 改成 I T = ϵ + I i n I_T=\epsilon+I_{in} IT=ϵ+Iin,把forward的过程中加的0均值高斯噪声改成以scale后的残差为均值的高斯噪声,残差即input image - target image,具体如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 通过调整beta 和 alpha的大小,可以控制generation的力度和restoration的力度。

  • 那么reverse的过程,用一个 I r e s θ ( I t , t , I i n ) I^\theta_{res}(I_t, t, I_{in}) Iresθ(It,t,Iin) 网络和一个 I ϵ θ ( I t , t , I i n ) I^\theta_{\epsilon}(I_t, t, I_{in}) Iϵθ(It,t,Iin) 网络分别预测残差 I r e s θ I^\theta_{res} Iresθ和噪声 ϵ θ \epsilon^\theta ϵθ,可以从上面的公式7推出对 I 0 I_0 I0的预测:
    在这里插入图片描述
    则reverse的过程是:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 最终推导出的损失函数倒是很简单,采样 ϵ \epsilon ϵ t t t计算 I t I_t It,再送进网络对预测的残差和噪声算L2损失即可:
    在这里插入图片描述

  • 方法差不多就到这里,接下来的内容基本是对一些超参数作用的探究,包括这里的两个lambda,以及alpha 和 beta的设定上。lambda没什么好说其实,就是消融证明了其中一个lambda为0都不能顾全fid和psnr,只有两个都不为零才能有好结果,并且可以设计一个自动算法来设定这些值。其中一个为0时表示对应的网络不生效,也就是说,当 λ ϵ \lambda_\epsilon λϵ为0时,reverse过程不用网络来预测 ϵ \epsilon ϵ,直接用下面的公式推就行,反之亦然:
    在这里插入图片描述

  • alpha 和 beta的设定,即可以按DDIM的alpha来计算(意思是,如果是用下面这个表达式,并且残差为0,那么本模型其实和DDIM是等价的),也可以另外设计schedules:
    在这里插入图片描述

在这里插入图片描述

  • 实验证明,随着t降低alpha增加beta是最好的,解释是这样的,当t很大的时候,图像噪声严重,因此beta应该大一点,去噪嘛,而alpha应该小一点,因为对residual估计不准确,当t比较小的时候,噪声已经去得差不多了,beta就应该小一点,alpha则可以估计得准确了,应该大一点,加快restoration的速度。
  • 文章同时还涉及了一个Partially Path-independent Generation Process。这个的意思是这样的,原先DDPM和DDIM,如果在某个alpha的schedule上train,就固定只能用这个schedule测试,如果用其它的schedule就会失败。但是文章想要改变generation process使得schedule可以改。怎么改,首先把DDIM的schedule改成上面的等价的等式17,也就是加了个beta进来。此时和DDIM还是等价的。然后把alpha的schedule从原先的linear改成P曲线,如下所示
    在这里插入图片描述
    在这里插入图片描述
  • 这样改之后,alpha和beta分别表示denoise的强度和restoration的强度,还需要再改一步,就是把alpha和beta作为网络的输入,这样网络才能根据输入的alpha和beta,自适应地进行denoise和restoration,如下:
    在这里插入图片描述
  • 文章其实还提了一点,说是用两个网络分别来预测残差和噪声,但我想这不是必然的吗,一般不会想用同一个网络来预测两个东西吧。。。反正这样改了之后网络就可以使用不同的schedule了,不过我也不知道这样有什么用,为什么不老实使用训练时候的schedule呢。。
  • 文章还做了其它的探究实验,比如先remove residual再remove noise,会导致前面remove residual不准确从而图像语义发生变化,先remove noise再remove residual导致过渡平滑失去细节,有点平均预测的现象,体现在人脸任务上对不同的人脸都预测了平均脸。

实验结果

  • 文章声称仅用一个UNet,并且没有过度调参就达到了SOTA:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1689259.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python批发模块的调试之旅:从新手到专家的蜕变

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、调试技巧的重要性 二、批发模块调试的实战演练 1. 设置断点 2. 逐行执行代码 3. 观察…

XSS---DOM破坏

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.什么是DOM破坏 DOM破坏总结为一句话就是&#xff1a;利用HTML元素来响应JS代码的执行结果。 举个例子&#xff1a; <body> <img id"x"> <img name"y"…

网络模型-PoE技术

一、PoE简介 以太网供电PoE(Powerover Ethernet)是指通过以太网网络进行供电&#xff0c;也被称为基于局域网的供电系统PoL(PoweroverLAN)或有源以太网(Active Ethernet)。 1、PoE的优势: 可靠: 电源集中供电&#xff0c;备份方便。连接简捷: 网络终端不需外接电源&#xf…

《web应用设计》第八次作业

我的小组长是姚若希&#xff0c;我们组课程设计的题目是&#xff1a;学生管理系统 &#xff0c;我认领的功能模块是&#xff1a;课程管理 2.查询并分页

这所211专硕22408复试线310分,学硕收调剂!辽宁大学计算机考研考情分析!

辽宁大学信息学院下设计算机科学与技术、电子信息科学与技术、通信工程、信息管理与信息系统、软件工程5个本科专业&#xff0c;有计算机软件与理论、计算机应用技术2个硕士学位授权点&#xff0c;软件工程和计算机技术两个专业硕士学位点&#xff0c;1个计算机应用研究所、1个…

信息化项目交付验收流程管理办法

项目交付验收流程制度 管理办法 (执行版) (文件编号: ) 编制: 审核: 批准: 版本: 生效日期: 管理办法概述 制定目的为了保证公司在建项目交付验收工作事项的顺利开展,保证交付验收进度及…

力扣652. 寻找重复的子树

Problem: 652. 寻找重复的子树 文章目录 题目描述思路复杂度Code 题目描述 思路 1.利用二叉树的后序遍历将原始的二叉树序列化&#xff08;之所以利用后序遍历是因为其在归的过程中是会携带左右子树的节点信息,而这些节点信息正是该解法要利用的东西&#xff09;&#xff1b; 2…

【EXCEL_VBA_基础知识】15 使用ADO操作外部数据

课程来源&#xff1a;王佩丰老师的《王佩丰学VBA视频教程》&#xff0c;如有侵权&#xff0c;请联系删除&#xff01; 目录 1. 使用ADO链接外部数据源 2. 常用SQL语句&#xff08;Execute(SQL语句)&#xff09; 2.1 查询数据、查询某几个字段、带条件查询、合并两表数据、插…

【撸源码】【ThreadPoolExecutor】线程池的工作原理深度解析——上篇

1. 前言 线程池这块&#xff0c;作为高频面试题&#xff0c;并且实际使用场景巨多&#xff0c;所以出了这篇文章&#xff0c;一块来研究一下线程池的实现原理&#xff0c;运行机制&#xff0c;从底层深挖&#xff0c;不再局限于面试题。 2. 线程池概览 2.1. 构造器 线程池总…

DSPF网络类型实验1

对R6配置 对R1配置 对R2 对R3 对R4 对R5 对R1R2R3R4R5加用户 环回处理 然后开始配置缺省 R1有两个下一跳 3&#xff0c;4&#xff0c;5同R2 然后对R1 dynamic动态 对R2 手写 把注册加上 register R3同R2处理

邮件群发效果提升攻略:揭秘影响因素与解决方案

邮件群发在现代营销中扮演着重要角色&#xff0c;但要确保邮件成功送达收件人的收件箱&#xff0c;需要注意多个因素。从发件人、互联网客户服务器邮件过滤到收件人反馈&#xff0c;每个环节都可能对最终效果产生重要影响。本文针对这些影响因素的详细分析&#xff0c;以及U-Ma…

zabbix“专家坐诊”第239期问答

问题一 Q&#xff1a;snmptrap配置触发器后&#xff0c;接口告警触发时候&#xff0c;一个接口告警恢复了&#xff0c;其他接口告警也被误恢复&#xff0c;这个有啥方法规避吗&#xff1f; A&#xff1a;可以参考一下这个&#xff0c;根据自动发现的名称来识别。 Q&#xff1a…

【pyspark速成专家】3_Spark之RDD编程1

目录 ​编辑 一&#xff0c;创建RDD 二&#xff0c;常用Action操作 三&#xff0c;常用Transformation操作 一&#xff0c;创建RDD 创建RDD主要有两种方式&#xff0c;一个是textFile加载本地或者集群文件系统中的数据&#xff0c; 第二个是用parallelize方法将Driver中的…

UWB论文:Introduction to Impulse Radio UWB Seamless Access Systems(2):脉冲;超宽带;测距;定位

3) 测距/接收器 像全球定位系统&#xff08;GPS&#xff09;这样的系统依赖于单向测距One Way Ranging&#xff08;OWR&#xff09;&#xff0c;其中多个卫星&#xff08;代表固定节点&#xff0c;称为锚点anchors&#xff09;定期传输同步的无线电数据包集合&#xff0c;这允许…

C++ 写的_string类,兼容std::string, MFC CString和 C# 的string

代码例子&#xff1a; using namespace lf; int main() { CString s1 _t("http://www.csdn.net"); _string s2 s1; CString s3 s2; _pcn(s1); _pcn(s2); _pcn(s3); return 0; } 输出&#xff1a; _Str.h /***************************************…

一个开源的工具类轮子是怎么造出来的

心路历程 为什么要做 在22年9月的某一天&#xff0c;在公司开需求评审时&#xff0c;接到了一个给PDF、图片添加水印的需求。做为一个刚工作的CURD程序员&#xff0c;在遇到这些问题时&#xff0c;第一反应是去github上找找有没有类似的开源框架。但是&#xff0c;出乎我意料…

JUnit5标记测试用例

使用场景&#xff1a; 通过Tag对用例分组&#xff1a; 环境分组&#xff1a;测试环境、预发布环境阶段分组&#xff1a;冒烟用例版本分组&#xff1a;V1.1、V1.2 Tag标记用例&#xff1a; 设置标签根据标签执行 结合Maven执行结合测试套件执行 设置标签&#xff1a; 通过T…

小皮面板中访问不了本地的sqli网站---解决方法

今天想在sqli-labs中做题&#xff0c;却发现自己访问不了网站 1、具体的错误原因如下 2、查了一下&#xff0c;可能是因为自己访问的域名不对 3、修改了域名为&#xff1a;http://sqli-labs:81/Less-2/便可以访问了 4、然后接下来我有遇到一个错误&#xff0c;这个问题是php版…

Python3 笔记:sort() 和 sorted() 的区别

1、sort() 可以对列表中的元素进行排序&#xff0c;会改变原列表&#xff0c;之前的顺序不复存在。 list.sort&#xff08;key&#xff0c; reverse None&#xff09; key&#xff1a;默认值是None&#xff0c;可指定项目进行排序&#xff0c;此参数可省略。 reverse&#…

Java中transient关键字

transient介绍 在Java中&#xff0c;transient是一个关键字&#xff0c;用于声明一个字段在序列化过程中应该被忽略。当一个对象被序列化时&#xff0c;它的状态&#xff08;即其字段的值&#xff09;通常会被保存到字节流中&#xff0c;以便稍后可以反序列化恢复对象的状态。…