DiffBIR论文阅读笔记

在这里插入图片描述

  • 这篇是董超老师通讯作者的一篇盲图像修复的论文,目前好像没看到发表在哪个会议期刊,应该是还在投,这个是arxiv版本,代码倒是开源了。本文所指的BIR并不是一个single模型对任何未知图像degradation都能处理,而是用同一个framework解决BSR,BID和BFR等blind image restoration任务,每个任务对应一个模型参数。
  • 文章提出,BIR可以分解为两个阶段:去除 image-dependent degradation (由一个restoration module来完成)和 生成丢失的图像内容(由IRControlNet来完成,用现有的train好的text-to-image latent diffusion model)。现有利用diffusion模型来进行IR的方法,基本都是把LQ作为diffusion的condition,和xt一起送进denoising network。但是本文提出,使用有noise和artifact的图片作为condition会影响生成,导致生成结果有artifact。因此,本文先用一个restoration模型来去除degradation,再把去除了degradation的图片作为condition送进diffusion模型。
  • 文章提出一个training-free region-adaptive restoration guidance,有点类似classifer-based的方法控制diffusion生成图片类别的做法那样,在diffusion的中间加梯度来影响diffusion的方向,对图像中低频的部分要求和guidance image(即一阶段restore的结果)更接近(MSE Loss),而高频区域则受MSELoss影响小以图取更好的细节生成能力。
  • 一二阶段的训练是分开的。一阶段用的是现有的BID BSR BFR网络,用MSELoss来train。而且选的是这三个可以从HQ合成LQ的任务,用了大范围的参数来合成各种各样的LQ图片来训练。二阶段如图所示,首先把restored image用一个pretrained fixed VAE encoder提取特征cRM,然后和zt送进stable diffusion模型做reverse预测zt-1。黄色的部分则是刚刚提的guidance。

在这里插入图片描述

  • reverse用的是pretrained fixed stable diffusion model,加一个自己的controlnet,train的是control的部分,如下图所示:
    在这里插入图片描述
  • guidance是这样做的,其实没什么知识点,知道classifier-based 的diffusion model是怎么控制生成图片的类别的就知道了。首先,原来的diffusion是从 z t z_t zt预测噪声epsilon减去得出 z 0 z_0 z0,然后从 z t z_t zt z 0 z_0 z0 z t − 1 z_{t-1} zt1,这就是一个reverse的step。那么guidance就是,在 z 0 z_0 z0的基础上,计算一个损失,然后计算损失对于对于 z 0 z_0 z0的梯度,乘以一个scale,加上去,相当于对 z 0 z_0 z0做了一步梯度回传加更新,得到 z ^ 0 \hat z_0 z^0。然后以更新后的 z ^ 0 \hat z_0 z^0 z t z_t zt来推 z t − 1 z_{t-1} zt1,作为一个reverse的step。关键就是这个损失怎么算,一般guidance就是计算 z 0 z_0 z0和guidance的相似度,本文也一样,guidance image就是一阶段restored 的image,但是我们希望只有平滑区域学restored image,有纹理区域不要学,让diffusion生成,所以就在算loss的时候乘了个平滑度图。
    在这里插入图片描述
  • 如上所示, D ( z 0 ) D(z_0) D(z0)就是stable diffusion的decoder,stable diffusion不是直接对图片进行reverse step,而是对特征进行diffusion,所以需要先用decoder把特征转成图像域,再和restored image算差,差还是CHW的,还没取平均,这时候先element-wise地乘以一个权重图 W W W,这个 W W W表示的是区域的平滑度,越高则越接近1,否则越接近0。从而这个损失对有纹理细节的区域影响相对小,而对平滑区域影响相对大,所以实现了前面的目的。 W W W怎么来的,很简单,先用sobel算子对restored image算梯度的模,然后切不相交的patch,算patch内部的平均,然后用1来减。
  • 评价:guidance的loss的算法其实在很多无监督半监督的restoration方法中有用到,很常见。guidance也是标准的diffusion模型的guidance算法。加condition的方式也是现有的controlnet的方式。相比现有diffusion做restoration的方法,其实就是多了一步restoration,相当于拼起来一个restoration模型加一个diffusion模型,感觉有点臃肿。核心动机是两个,一个是改善diffusion的条件,不要拿LQ作为条件;第二个是先restore再接diffusion,并且把restore的结果作为guidance来使得整个方法把restore和generation解耦出来,diffusion专门做generation,要说diffusion的作用应该是对前面restore方法的结果的锦上添花,起添加一些细节上去的作用。因此从实验结果可以看到,经过两阶段后,确实是很多细节精细了很多。

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

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

相关文章

数据结构(十)图

文章目录 图的简介图的定义图的结构图的分类无向图有向图带权图(Wighted Graph) 图的存储邻接矩阵(Adjacency Matrix)邻接表代码实现 图的遍历深度优先搜索(DFS,Depth Fisrt Search)遍历抖索过程…

【搜索方法推荐】高效信息检索方法和实用网站推荐

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

同时执行多个python脚本扫描,报如下错误,原因为文件越大读取到内存占用内存越多。

killed nohup python $file unable to fork process cannot allocate memory ls: error while loading shared libraries: libdl.so.2 failed to map segment from shared object cannot allocate memory python进程被系统或者某个用户通过 kill 命令强制终止了

Springboot 实战运用

一&#xff0c;基本配置 1&#xff0c;pom文件配置介绍 1.1继承 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.2</version><relativePath/> <…

ubuntu下载离线软件包及依赖

目录 一、前言 二、正文 1.准备环境 2.开始下载 3.后续工作 三、总结 一、前言 由于给客户提供的设备机不允许上网&#xff0c;那么所有待安装的软件包及依赖库都需要提前下载好&#xff0c;然后通过局域网传过去再安装。 另外&#xff0c;软件包可能还依赖其他的库&…

Mac安装tomcat

代码 brew install tomcat 运行结果如下&#xff1a; 如果要启动输入&#xff1a; brew services start tomcat

新书推荐—华为HCIA路由交换技术实战

新书推荐—华为HCIA路由交换技术实战 由HCIE认证讲师、技术能手、ICT大赛优秀指导教师、教学名师、国家规划教材作者联袂编撰&#xff0c;让学习不再是“硬”茬&#xff0c;而是“嗨”起来&#xff01; 《华为HCIA路由交换技术实战》 作者黄君羡组编正月十六工作室书号978-7-12…

半个月获邀请函|在读博士公派新加坡南洋理工大学联合培养

J同学计划先申报CSC联培博士&#xff0c;如若获批&#xff0c;再走本校的联培资助项目。我们仅用半个月时间&#xff0c;就为其申请到新加坡南洋理工大学&#xff0c;因导师接收名额有限制&#xff0c;其又热心推荐了另一位指导导师&#xff0c;最终J同学如愿获得学校资助出国联…

职校老师的工资待遇怎么样

工资水平一直是教师们关注的焦点&#xff0c;毕竟&#xff0c;工资不仅关系到个人的生活品质&#xff0c;还影响着教师的职业满意度和工作动力。职校教师的工资待遇究竟是怎样的呢&#xff1f; 职校教师的工资水平受多种因素影响&#xff0c;包括地区、学校类型、个人资历和教学…

备份服务器的安全风险以及如何通过TDE透明加密提升安全性

备份服务器的潜在安全风险主要包括以下几个方面&#xff1a; 1. 数据泄露风险&#xff1a; 备份数据可能包含敏感信息&#xff0c;如用户个人信息、商业机密等。如果备份数据未经适当保护&#xff0c;例如存储在不安全的位置或未加密&#xff0c;黑客或未授权的人员可能会获取…

AppInventor2 表格布局的外面的黑框怎么去掉?

问&#xff1a;表格布局的外面的黑框怎么去掉啊&#xff1f; 答&#xff1a;这个黑框是界面设计的布局位置示意&#xff0c;实际 App 测试时并没有框。 来源&#xff1a;AppInventor2 表格布局的外面的黑框怎么去掉&#xff1f; - App应用开发 - 清泛IT社区&#xff0c;为创新…

ELT 同步 MySQL 到 Doris

如何基于 Flink CDC 快速构建 MySQL 到 Doris 的 Streaming ELT 作业&#xff0c;包含整库同步、表结构变更同步和分库分表同步的功能。 本教程的演示都将在 Flink CDC CLI 中进行&#xff0c;无需一行 Java/Scala 代码&#xff0c;也无需安装 IDE。 准备阶段 # 准备一台已经…

vscode中更改 git托管的项目里的文件 不显示在 修改项 changes里面

目录 一、问题 二、原因及解决方法 三、总结 tiips:如嫌繁琐&#xff0c;直接移步总结即可&#xff01; 一、问题 1.在vscode中修改 从 git拉取下来的代码&#xff0c;本地不显示被修改的文件&#xff1b;文件夹只有最外层显示红色修改图标;但是里面的被修改的文件也没有被…

IO系列(十) -TCP 滑动窗口原理解析

一、摘要 之前在知乎上分享网络编程知识文章的时候&#xff0c;有个网友私信给我留言了一条“能不能写一篇关于 TCP 滑动窗口原理的文章”。 当时没有立即回复&#xff0c;经过查询多方资料&#xff0c;发现这个 TCP 真的非常非常的复杂&#xff0c;就像一个清澈的小沟&#…

怎么将3D模型转换立面图---模大狮模型网

在建筑设计、室内设计以及产品建模等领域&#xff0c;经常需要将3D模型转换为立面图以进行展示、分析或交流。立面图能够清晰地呈现物体的外观和结构&#xff0c;是设计和施工中不可或缺的一部分。 一、导出3D模型 首先&#xff0c;需要将3D模型导出为CAD软件能够识别的格式。…

第十九节:带你梳理Vue2: 父组件向子组件传参(props传参)

1. 组件嵌套 1.1 组件的嵌套使用 之前有说过,Vue组件跟Vue实例是一样的,因此在Vue中一个组件中也可以定义并使用自己的局部组件,这就是组件的嵌套使用 例如:示例代码如下: <div id"app"><!-- 3. 使用组件 --><my-component></my-component&…

29-ESP32-S3-WIFI_Driver-00 STA模式扫描全部 AP

ESP32-S3 WIFI_Driver 引言 ESP32-S3是一款集成了Wi-Fi和蓝牙功能的芯片。关于WIFI的部分&#xff0c;其实内容比我想象的要多得多。所以通常来说&#xff0c;如果你想要编写自己的Wi-Fi应用程序&#xff0c;最快捷的方法就是先找一个类似的示例应用&#xff0c;然后将它的相…

VSCODE常用插件记录

重点提名&#xff1a; back & ForthBookmarksC/ChighlightSSH FS //SSH插件

JVM之垃圾判断的详细解析

垃圾判断 垃圾介绍 垃圾&#xff1a;如果一个或多个对象没有任何的引用指向它了&#xff0c;那么这个对象现在就是垃圾 作用&#xff1a;释放没用的对象&#xff0c;清除内存里的记录碎片&#xff0c;碎片整理将所占用的堆内存移到堆的一端&#xff0c;以便 JVM 将整理出的内…

第3章 数据链路层

王道学习 考纲内容 &#xff08;一&#xff09;数据链路层的功能 &#xff08;二&#xff09;组帧 &#xff08;三&#xff09;差错控制 检错编码&#xff1b;纠错编码 &#xff08;四&#xff09;流量控制与可靠传输机制 流量控制、可靠传输与滑动窗口…