(2024,SaFaRI,双三上采样和 DFT,空间特征和频率特征)基于扩散模型的图像空间和频率感知恢复方法
Spatial-and-Frequency-aware Restoration method for Images based on Diffusion Models
公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)
目录
0. 摘要
3. 方法
3.1 修改数据保真度
3.2 理论分析
3.3 SaFaRI
4. 实验
0. 摘要
扩散模型最近成为图像恢复 (Image Restoration,IR) 的有希望的框架,这归功于其产生高质量重建的能力和与已建立方法的兼容性。现有方法解决 IR 中的噪声逆问题,考虑了逐像素的数据保真度。在本文中,我们提出了 SaFaRI,一种用于 IR 的面向 Gaussian 噪声的空间和频率感知扩散模型(Spatial-and-Frequency-aware Restoration method for Images)。我们的模型鼓励图像在空间和频率域中保持数据保真度,从而实现增强的重建质量。我们在各种噪声逆问题上全面评估了我们模型的性能,包括修复、去噪和超分辨率。我们的彻底评估表明,SaFaRI 在 ImageNet 数据集和 FFHQ 数据集上都取得了最先进的性能,在 LPIPS 和 FID 指标方面超越了现有的零样本 IR 方法。
3. 方法
现有逆问题的方法 Chung 等人 [2023],Zhu等人 [2023],Wang等人 [2022],Kawar等人 [2022a],Chung等人 [2022b] 通过最小化基于像素的数据保真度项 ||y − Ax||^2_2 引导生成过程,该过程未考虑图像的感知特征。在本文中,我们提出了一个修改后的数据保真度项,通过上采样和傅里叶变换分别结合空间和频率特征。
3.1 修改数据保真度
为了增强数据保真度项,我们用项 ∥ψ(y) − ψ(Ax_0)∥ 替换了项 ∥y − Ax_0∥,利用了变换 ψ,该变换有效捕捉图像的感知特征。
为了通过这种技术实现令人满意的结果,建议仔细控制可行解的扰动,以实现最小的干扰。幸运的是,在 ψ 是单射的条件下,以下方程的有效性是被充分证实的。
因此,在假设 ψ 具有单射性的前提下,合理地期望方程(7)的可行解将受到较少的干扰。
方程(7)的第一项是数据保真度项,它量化了测量值与生成图像的失真版本之间的像素级差异。而第二项是正则化项。随后,我们引入一个具有单射性的转换 ψ,它有效地提取感知特征。
空间特征。我们提出利用通过插值获得的上采样图像的效果,以不仅包含像素级信息,还包括图像的空间上下文。图像插值使用卷积操作计算新生成像素的值。这些值是通过与相邻像素的复杂交互确定的,有效地捕捉图像的空间上下文。
本质上,新生成像素的值可以解释为包含从周围空间图像块中获得的关键信息。通过这样做,我们旨在丰富图像的整体表示,从而提高各种图像处理任务的性能。在本文中,我们使用标准的插值方法,双三次插值(bicubic interpolation)。我们用 ψ_(s,r) 表示带有比例 r 的双三次上采样。请注意,双三次上采样 ψ_s 是单射的。
频率特征。为了增强测量与人类感知的对齐性,我们将通过 DFT 获得的图像的频域表示纳入其中。利用离散傅里叶变换(DFT)在提取频率信息方面的优势,DFT 使数据保真度项分解为其低频和高频部分,提供了数据更详细的表示。
记 F 和 F^(−1) 分别为 2D 离散傅里叶变换(DFT)及其逆变换。对于图像 f ∈ R^(M×N×C),离散傅里叶变换 F 通过具有复系数的正交基分解 f 如下:
对于(u,v)∈ R^M × R^N。我们的分析基于 DFT 的逐通道应用,为了简洁起见,以下不考虑通道维度。
我们采用理想高通滤波和理想低通滤波,分别用 H 和 L 表示,如下所示:
现在我们考虑变换
Parseval 定理暗示了 ψ_f 保持2-范数。换句话说,用 d 表示差异 y−Ax0,
成立。因此,ψ_f 将 ∥d∥^2_2分解为高频项 ∥ψH(d)∥^2_2 和低频项 ∥ψL(d)∥^2_2:
请注意,算子 ψ_f 是保范(norm-preserving)算子,因此 ψ_f 是单射的。同时,最小化∥ψH(d)∥^2_2 和 ∥ψL(d)∥^2_2 分别意味着最小化高频特征和低频特征的差异。
因此,通过对分解的保真度项进行自适应加权,我们可以选择性地增强在视觉感知中起关键作用的高频分量。
3.2 理论分析
3.3 SaFaRI
借助前述概念的协同作用,我们提出 SaFaRI:一种面向空间和频率的图像恢复方法(Spatial-and-Frequency-aware Restoration method for Images),这是一种新的方法,将数据保真度项调整到空间和频率域,从而更全面地表示图像的底层感知属性。
为了考虑空间和频率特征,我们考虑对应于
的数据保真度。由于 ψs 和 ψf 都是单射的,ψ 也是单射的。由于其单射性质,ψ 预计对方程(7)的可行解造成最小的干扰。在这种情况下,它表示如下:
为了增强算法的稳定性,在实际应用中,我们固定 τ 并将 ψs 设置为同分布,用于前 T − τ 次迭代,其中 T 是总迭代次数。此外,为了优化其性能,我们仔细调整了三个数据保真度项的权重:空间感知项 ρ^s_t、高频项 ρ^H_t 和低频项 ρ^L_t。 SaFaRI 的详细算法制定在 Algorithm 1 中呈现。运算符和超参数的选择在附录中。有关 SaFaRI 的视觉表示,请参考图 2。
4. 实验
相关文章:

(2024,SaFaRI,双三上采样和 DFT,空间特征和频率特征)基于扩散模型的图像空间和频率感知恢复方法
Spatial-and-Frequency-aware Restoration method for Images based on Diffusion Models 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 3. 方法 3.1 修改数据保真度 3.2 …...

【Linux】环境基础开发工具的使用之gcc详解(二)
前言:上一篇文章中我们讲解了Linux下的vim和yum的工具的使用,今天我们将在上一次的基础上进一步的讲解开放工具的时候。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:Linux的深度刨析 👈 Ὂ…...

go语言-用channel控制goroutine的退出
用channel控制goroutine的退出 本文简要介绍了,如何用channel控制goroutine的退出的基本方法 for-range主动停止goruitine package mainimport ("fmt""sync""time" )/* Go并发编程模型:主动停止goroutine 方法一&#…...

强大的虚拟机Parallels Desktop 19 mac中文激活
Parallels Desktop是一款功能全面、易于使用的虚拟机软件,它为用户提供了在Mac电脑上同时运行多个操作系统的便利。 软件下载:Parallels Desktop 19 mac中文激活版下载 Parallels Desktop 19 mac具有快速启动和关闭虚拟机的能力,让用户能够迅…...

单元测试框架深入(一):单元测试框架深入
一、一个简单的例子 1、引入Maven依赖:JUnit框架和Surefire插件 2.在src/test/java目录下新建名字以“Test”结尾的测试类,并用Test注释测试方法 3.运行单元测试用例 或用mvn命令运行单元测试: 二、单元测试基础之单元测试框架:J…...

苏门X学士常识学习
前言 苏轼(1037年—1101年)是北宋的文坛领袖,很喜欢奖掖后进。其门下最有名的是“苏门四学士”,另外还有“苏门六学士”和“苏门后四学士”之说。 一、苏门四学士 苏轼在《与李昭玘书》中说: 轼蒙庇粗遣࿰…...

MD5算法:高效安全的数据完整性保障
摘要:在数字世界中,确保数据完整性和安全性至关重要。消息摘要算法就是一种用于实现这一目标的常用技术。其中,Message Digest Algorithm 5(MD5)算法因其高效性和安全性而受到广泛关注。本文将详细介绍MD5算法的优缺点…...

JavaScript基础五对象 内置对象 Math.random()
内置对象-生成任意范围随机数 Math.random() 随机数函数, 返回一个0 - 1之间,并且包括0不包括1的随机小数 [0, 1) 如何生成0-10的随机数呢? Math.floor(Math.random() * (10 1)) 放大11倍再向下取整 如何生成5-10的随机数&…...

curl之网络接口
Curl_cftype 连接接口定义 struct Curl_cftype {const char *name; /* name of the filter type */int flags; /* flags of filter type */int log_level; /* log level for such filters */Cu…...

Pytest中doctests的测试方法应用
在 Python 的测试生态中,Pytest 提供了多种灵活且强大的测试工具。其中,doctests 是一种独特而直观的测试方法,通过直接从文档注释中提取和执行测试用例,确保代码示例的正确性。本文将深入介绍 Pytest 中 doctests 的测试方法,包括基本用法和实际案例,以帮助你更好地利用…...

Android 8.1 铃声音量通话音量同步调节
Android 8.1 铃声音量通话音量同步调节 最近收到客户反馈,想要实现铃声音量通话音量同步调节,具体修改参照如下: /frameworks/base/core/java/android/preference/SeekBarVolumizer.java if (defaultUri null) {if (mStreamType AudioMan…...

C++——字符串string
C——字符串string C语言中对字符串的表示通常用指针,新手会面临内存泄漏或者段错误等众多问题。 在 C 中, string 类是标准库的一部分,用于表示和操作字符串。它是对传统的 C 风格字符串(以空 字符 ‘\0’ 结尾的字符数组&…...

HBuilder使用[微信小程序开发者工具] 显示 × initialize报错
解决办法 我们先要单独打开 微信开发者工具 点击设置里面的安全,把服务器端口打开 然后再回到我们的HBuilder使用重新打开打开 成功打开...

洛谷P8599 [蓝桥杯 2013 省 B] 带分数
[蓝桥杯 2013 省 B] 带分数 题目描述 100 100 100 可以表示为带分数的形式: 100 3 69258 714 100 3 \frac{69258}{714} 100371469258。 还可以表示为: 100 82 3546 197 100 82 \frac{3546}{197} 100821973546。 注意特征:带分…...

grafana安装DevOpsProdigy KubeGraf 1.5.2
安装DevOpsProdigy KubeGraf需要安装kube-state-metrics 官方地址:https://github.com/kubernetes/kube-state-metrics/tree/release-2.10/examples/standard 查看k8s版本和kube-state-metrics对应版本: [rootmaster1 kube-state-metrics]# ll 总用量 …...

大数据 - Hadoop系列《三》- MapReduce(分布式计算引擎)概述
上一篇文章: 大数据 - Hadoop系列《三》- HDFS(分布式文件系统)概述-CSDN博客 目录 12.1 针对MapReduce的设计构思 1. 如何对付大数据处理场景 2. 构建抽象编程模型 3. 统一架构、隐藏底层细节 12.2 分布式计算概念 12.3 MapReduce定义…...

了解Ansible自动化运维工具及模块的使用
一、Ansible的相关知识 1.1 Ansible工具的了解 Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。Ansible…...

sql指南之null值用法
注明:参考文章: SQL避坑指南之NULL值知多少?_select null as-CSDN博客文章浏览阅读2.9k次,点赞7次,收藏21次。0 引言 SQL NULL(UNKNOW)是用来代表缺失值的术语,在表中的NULL值是显示…...

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结
目录 前言 1、常见消息队列 1.ActiveMQ 2.RabbitMQ 3.RocketMQ 4.Kafka 2、区别 1.消息传递模型 2.消息持久化 3.消息顺序性 4.可靠性 5.生态系统和社区支持 6.表格对比 前言 消息队列可以实现应用程序之间的异步通信,能够实现异步消息的发送和接收&am…...

火柴人大逃亡
欢迎来到程序小院 火柴人大逃亡 玩法:左右两边火柴人,点击左边左边火柴人跳跃,点击右边右边跳跃, 上下快速移动道路,躲过障碍物,看你能坚持多久,快去火柴人大逃亡吧^^。开始游戏https://www.or…...

AI革命新篇章:法国天才团队挑战ChatGPT霸主地位
Mistral AI: Guillaume Lample, Arthur Mensch et Timothe Lacroix. ChatGPT 的霸主地位已被三位来自法国的天才所颠覆!如上图这三个人,其中一位曾在 DeepMind 工作,另外两位来自 Meta,他们联手为 AI 领域带来了革命性的变革 我…...

数据双向绑定v-modal
v-model v-model就实现了双向数据绑定,实际上它就是通过Vue提供的事件机制。即在子组件通过$emit()触发一个事件,在父组件使用v-on来监听对应的事件并修改相应的数据。 input的v-model就是通过<input :value"value" input"input"…...

Docker 容器jar 运行报错 at sun.awt.FontConfiguration.getVersion 解决方法
docker jar 运行报错 at sun.awt.FontConfiguration.getVersion 初步判断是在运行 Docker 容器中的 JAR 文件时遇到了与字体配置相关的问题。这个问题可能是由于容器内缺少字体配置或字体文件而引起的。 要解决这个问题,你可以尝试以下方法: 1.安装字…...

光学3D表面轮廓仪服务超精密抛光技术发展
随着技术的不断进步,精密制造领域对材料表面的处理要求越来越高,超精密抛光技术作为当下表面处理的尖端技术,对各种高精密产品的生产起到了至关重要的作用,已广泛应用于集成电路制造、医疗器械、航空航天、3C电子、汽车、精密模具…...

详解C++中auto关键字
auto关键字 auto关键字(C11)类型别名思考auto简介auto的使用细则auto与指针和引用结合起来使用在同一行定义多个变量 auto不能推导的场景1.auto不能作为函数的参数2.auto不能直接用来声明数组 auto关键字(C11) 类型别名思考 随着程序越来越复杂,程序中用到的类型也…...

24.云原生ArgoCD高级之数据加密seale sealed
云原生专栏大纲 文章目录 数据加密之seale sealedBitnami Sealed Secrets介绍Bitnami Sealed Secrets工作流程安装sealed-secrets和kubeseal安装sealed-secrets-controller安装kubeseal通过kubeseal将sealed-secrets公钥拿出来通过kubeseal加密secrets替换kustomize下secret为…...

线性代数:线性方程组
目录 一、线性方程组概念 二、消元法求线性方程组 三、系数阵的秩与线性方程组的解 无解 唯一解 无数解 相关定理 一、线性方程组概念 二、消元法求线性方程组 三、系数阵的秩与线性方程组的解 无解 唯一解 无数解 相关定理...

标准的排序组合-算法
题目 有若干个字母,要求计算出长度为4的所有可能得组合 解题 排序组合最适用的就是回溯了,建议大家本地debug一层一层的看能好理解点 private static void getResult(List<String> source, Stack<String> temp, int curLength, int maxL…...

2402C++,C++递归取各种节点名字
参考 explicit FindNamedClassVisitor(ASTContext *Context) : Context(Context) {}元<类 T>极 动作(T&e){串 ae->getQualifiedNameAsString();d.加(a);中 真;} bool VisitCXXRecordDecl(CXXRecordDecl *e) {中 动作(e);} bool VisitFunctionDecl(FunctionDecl*e…...

Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(三)
1.QSet: toList 中的toList 函数已不存在,遇到xx->toList改成直接用,如下: 2.开源QWT 图形库中QwtDial中的 setPenWidth 变成 setPenWidthF函数。 3.QDateTime 中无setTime_t 改为了setSecsSinceEpoch函数。 4.QRegExp 类已不存在 可以用Q…...