当前位置: 首页 > article >正文

超分之DeSRA

  • Desra: detect and delete the artifacts of gan-based real-world super-resolution models.
  • DeSRA:检测并消除基于GAN的真实世界超分辨率模型中的伪影
  • Xie L, Wang X, Chen X, et al.
  • arXiv preprint arXiv:2307.02457, 2023.

摘要

  1. 背景
    • GAN-SR模型虽然可以恢复图像的真实细节,但是不可避免的会产生伪影。
  2. 目前的研究方法与不足
    • 在训练阶段通过额外的损失惩罚来抑制伪影。
    • 它们只适用于训练期间生成的伪影类型,对于实际的真实测试图像,重建图像仍然会存在伪影。
  3. 提出了本文的方法—DeSRA
    • 首先测量 MSE-SR 结果和 GAN-SR 结果的相对局部方差距离,并根据上述距离和语义感知阈值定位问题区域。
    • 在检测到伪影区域后,本文开发了一个微调程序,以使用少量样本改进GAN-SR 模型。

1. 引言

  1. 目前GAN-SR模型的真实世界推理:

    • 对于GAN-SR模型产生的伪影,在训练期间LDL使用局部判别损失惩罚,但是对于真实世界图像推理时,重建图像仍然会存在伪影。
      在这里插入图片描述
  2. 本文将GAN-SR伪影出现的不同阶段分类:
    (1)GAN训练伪影:在模型训练时不稳定优化产生的伪影。(LDL惩罚损失,缓解伪影)
    (2) GAN推理伪影:在使用真实世界图像的推理过程中产生的伪影。(训练集未出现)

  • 针对GAN推理伪影:
    1. 检测伪影区域:
      1. 通过计算局部方差来测量基于 MSE 和基于 GAN 的模型生成的结果之间的纹理差异。
      2. 进一步引入语义感知调整,以放大感知伪影敏感区域(例如建筑物、海洋)的差异,同时抑制纹理区域(例如树叶、动物毛皮)的差异。
    2. 制作伪GT图像并微调GAN-SR模型:
      1. 收集少量带有伪影的基于 GAN 的结果,并根据二值化检测掩码将伪影区域替换为基于 MSE 的结果。
      2. 使用组合结果作为伪 GT 来构建训练对,以在极短的迭代周期内对模型进行微调。
  1. 总结:
    • 本文首次尝试分析在推理过程中通常出现在没有真实数据的未见测试数据上的 GAN 推理伪影。
    • 基于本文的分析,本文设计了一种方法来有效地检测具有 GAN 推理伪影的区域。
    • 本文进一步提出了一种微调策略,只需要少量的伪影图像就可以消除相同类型的伪影,这弥补了将 SR 算法应用于实际场景的差距。
    • 与以前的工作相比,本文的方法能够更准确地检测未见的伪影,并更有效地缓解 GAN-SR 模型在真实世界测试数据中产生的伪影

2. 相关工作

  1. MSE-based Super-Resolution.
    • 本质:通过最小化 SR 输出与 HR 真实值之间的像素距离( l 1 l_1 l1 l 2 l_2 l2距离)来恢复高保真结果。
    • 缺点:优化像素距离不可避免地会导致缺乏精细细节的平滑重建。
    • 代表模型:SRCNN、VDSR、EDSR、 RCAN
  2. GAN-based Super-Resolution
    • 本质: 通过GAN的生成器与判别器交替博弈,来提高 SR 结果的感知质量。
    • 缺点:GAN-SR重建的图像会产生伪影。
    • 代表模型:SRGAN、ESRGAN、 BSRGAN、Real-ESRAGN、RealBasicVSR、FastRealVSR、SPSR 、LDL

3. 方法论

3.1 GAN-SR
  • 现有的GAN-SR方法,都是使用三种损失的加权和进行训练:
    ![[Pasted image 20250306183613.png|500]]

  • 为了解决GAN训练的不稳定性,首先仅使用 l r e c o n s l_recons lrecons进行预训练,生成MSE-SR模型;然后使用$l_GAN对MSE-SR模型进行微调,来得到最终的GAN-SR模型

  • 通过下图可以看到,含有伪影的GAN-SR结果的视觉质量甚至比MSE-SR结果更差。并且GAN-SR伪影类型复杂,特征各异,且随图像内容不同而不同。
    ![[Pasted image 20250306183818.png]]

因此本文的目的就是检测出GAN-SR生成图像的伪影区域,并使用MSE-SR生成图像来替换此伪影区域。

3.2 检测伪影区域

本文主要解决的GAN-SR推理伪影:
(1)伪影不会出现在预训练的MSE-SR模型:在模型训练时不稳定优化产生的伪影。(确保伪影是由于GAN引起)
(2)伪影明显, 面积较大。

  1. 计算局部纹理的复杂性 : (局部区域 P 内像素强度的标准差)
    ![[Pasted image 20250306184351.png|400]]

  2. 计算MSE-SR与GAN-SR块之间的局部纹理差异:
    ![[Pasted image 20250306184443.png|200]]

![[Pasted image 20250306184622.png|300]]

  • 从上图可以看到
    • 对于相似语义块;d越大,GAN伪影越明显
    • 对于不同语义块:d不能直接反应GAN伪影现象
  1. 因此要改进纹理差异为相对值:
    ![[Pasted image 20250306184527.png|200]]||500

  2. 纹理差异归一化:
    ![[Pasted image 20250306184836.png|300]]

  3. 分母优化:
    ![[Pasted image 20250306184900.png|200]]

![[Pasted image 20250310160028.png|300]]

经过上述操作后,可以看到图中最后一列已经能够分辨出GAN-SR相较于MSE-SR产生的伪影,但是任然存在细微的差异,因此进行进一步的优化。
6. SegFormer分割不同区域:
![[Pasted image 20250310160326.png|300]]

  1. 分区域区分伪影: (threshold=0.7):
    ![[Pasted image 20250310160400.png|300]]

![[Pasted image 20250310160430.png|300]]

经过更细致的优化,可以从图中的最右侧看出,已经完全区分了GAN-SR相较于MSE-SR产生的伪影,并且也不会对MSE-SR的相应区域进行细微的惩罚。

3.3 改进GAN-SR模型

通过上述3.2检测的伪影区域,本文得到了一个结论:

  • 没有伪影的弱恢复甚至比带有伪影的强恢复更好
    因此使用MSE-SR替换GAN-SR中伪影的区域:
    ![[Pasted image 20250310161219.png|300]]

![[Pasted image 20250310161237.png|300]]

3.4 小结
  1. 将推理的真实世界图像通过MSE-SR模型生成伪GT图像;
  2. 使用低分辨率LR图像与伪GT图像进行微调训练,重建出伪影较少的超分辨率SR图像。

4. 实验

4.1可视化分析

![[Pasted image 20250310161440.png|500]]在这里插入图片描述

4.2 用户调研分析

在这里插入图片描述

  1. 相较于GAN-SR模型,验证DeSRA模型是否减少伪影
    • 20组随机打乱的图像对,15人参与调研,选择认为伪影较少的图像。
  2. 相较于MSE-SR模型,验证DeSRA模型是否重建更多的纹理细节
    • 20组随机打乱的图像对,15人参与调研,选择认为更多细节的图像。

5. 结论

  1. 分析GAN-SR伪影,并提出了检测和删除伪影的DeSRA模型:

    • 首先测量MSE-SR 和 GAN-SR重建图像的相对局部方差,然后根据距离图和语义区域定位伪影区域。在检测到有伪影的区域后,我们使用基于 MSE 的结果作为伪GT图像来微调模型。
  2. SOTA:

    • 实验表明,DeSRA能够有效的检测和删除伪影,并且显著提高了GAN-SR模型在真实世界超分辨率技术的实际应用能力。

相关文章:

超分之DeSRA

Desra: detect and delete the artifacts of gan-based real-world super-resolution models.DeSRA:检测并消除基于GAN的真实世界超分辨率模型中的伪影Xie L, Wang X, Chen X, et al.arXiv preprint arXiv:2307.02457, 2023. 摘要 背景: GAN-SR模型虽然…...

Ubuntu用户安装cpolar内网穿透

前言 Cpolar作为一款体积小巧却功能强大的内网穿透软件,不仅能够在多种环境和应用场景中发挥巨大作用,还能适应多种操作系统,应用最为广泛的Windows、Mac OS系统自不必多说,稍显小众的Linux、树莓派、群辉等也在起支持之列&#…...

小程序事件系统 —— 33 事件传参 - data-*自定义数据

事件传参:在触发事件时,将一些数据作为参数传递给事件处理函数的过程,就是事件传参; 在微信小程序中,我们经常会在组件上添加一些自定义数据,然后在事件处理函数中获取这些自定义数据,从而完成…...

【Java学习】包装类

面向对象系列九 包装类变量 一、装箱 1.实例化包装对象 2.静态缓存池 3.写法 二、拆箱 包装类变量 每个基本数据类型都有对应的基本类型的包装类变量,将基本数据类型通过对应的包装类对象载入着进入到类与对象面向对象体系 一、装箱 Integer.valueOf(int) —…...

中国自动化领域零部件研究报告

一、引言 1.1 研究背景与目的 随着科技的飞速发展,自动化技术已成为推动各行业转型升级的关键力量。中国自动化领域零部件行业在近年来取得了显著进展,市场规模持续扩大,技术水平不断提升。在政策支持与市场需求的双重驱动下,中…...

Neo4j 数据库备份

将包括系统数据库在内的所有数据库的最近备份存储在一个安全的位置是非常重要的。这确保了在发生数据丢失或损坏时,能够迅速恢复数据库到最近的状态,减少可能的业务影响。对于不同的数据库环境(开发、测试或生产),根据…...

【每日学点HarmonyOS Next知识】span问题、组件标识属性、属性动画回调、图文混排、相对布局问题

1、HarmonyOS 如果有两个span 第一个span放的是中文 第二个span超长 这时候 Ellipsis会展示异常? 如果有两个span 第一个span放的是中文 第二个span超长 这时候 Ellipsis会展示异常 设置断行规则.wordBreak(WordBreak.BREAK_ALL)即可。 参考连接:http…...

MySQL数据集成:高效数据同步与监控

MySQL数据集成案例分享:user-钉钉部门树-名称刷新 在企业信息系统中,数据的高效流动和准确同步是确保业务连续性和决策支持的重要环节。本文将聚焦于一个具体的系统对接集成案例——将MySQL中的数据集成到另一个MySQL数据库中,方案名称为“u…...

时序数据库TimescaleDB基本操作示例

好的&#xff01;以下是使用 TimescaleDB 的 Java 示例&#xff08;基于 JDBC&#xff0c;因为 TimescaleDB 是 PostgreSQL 的扩展&#xff0c;官方未提供独立的 Java SDK&#xff09;&#xff1a; 1. 添加依赖&#xff08;Maven&#xff09; <dependency><groupId&g…...

【VBA】WPS/PPT设置标题字体

通过VBA&#xff0c;配合左上角的快速访问工具栏&#xff0c;实现自动化调整 选中文本框的 字体位置、大小、颜色。 配合quicker更加便捷 Sub DisableAutoWrapAndFormat()Dim shp As Shape 检查是否选中了一个形状&#xff08;文本框&#xff09;If ActiveWindow.Selection.Typ…...

Python Flask 和数据库系统交互

Python Flask 和数据库系统交互 Python Flask 和数据库系统交互 Python Flask 和数据库系统交互 全栈网页应用程序需要结构化数据的持久性&#xff0c;因此使用数据库的知识和经验是网页开发的先决条件。Python 和Flask 可以与大多数SQL或无SQL数据库系统集成。Python本身附带…...

Qt:事件

目录 处理事件 鼠标事件 键盘事件 定时器事件 窗口事件 虽然 Qt 是跨平台的 C 开发框架&#xff0c;Qt 的很多能力其实是操作系统提供的 只不过 Qt 封装了系统的 API 事件 前面学习过信号槽&#xff1a; 用户进行的各种操作&#xff0c;就可能会产生出信号&#xff0c;可以…...

3个 Vue Scoped 的核心原理

大家好&#xff0c;我是大澈&#xff01;一个喜欢结交朋友、喜欢编程技术和科技前沿的老程序员&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff0c;关注我&#xff0c;科技未来或许我能帮到你&#xff01; 先用一句话概括 Vue Scoped 的核心原理&#xff1a;Vue 的 scoped…...

物联网IoT系列之MQTT协议基础知识

文章目录 物联网IoT系列之MQTT协议基础知识物联网IoT是什么&#xff1f;什么是MQTT&#xff1f;为什么说MQTT是适用于物联网的协议&#xff1f;MQTT工作原理核心组件核心机制 MQTT工作流程1. 建立连接2. 发布和订阅3. 消息确认4. 断开连接 MQTT工作流程图MQTT在物联网中的应用 …...

工程化与框架系列(26)--前端可视化开发

前端可视化开发 &#x1f4ca; 引言 前端可视化是现代Web应用中不可或缺的一部分&#xff0c;它能够以直观的方式展示复杂的数据和信息。本文将深入探讨前端可视化开发的关键技术和最佳实践&#xff0c;包括图表绘制、数据处理、动画效果等方面。 可视化技术概述 前端可视化…...

ubuntu 20.04 C++ 源码编译 cuda版本 opencv4.5.0

前提条件是安装好了cuda和cudnn 点击下载&#xff1a; opencv_contrib4.5.0 opencv 4.5.0 解压重命名后 进入opencv目录&#xff0c;创建build目录 “CUDA_ARCH_BIN ?” 这里要根据显卡查询一下,我的cuda是11&#xff0c;显卡1650&#xff0c;所以是7.5 查询方法1&#xff1…...

2025-03-07 学习记录--C/C++-PTA 习题8-5 使用函数实现字符串部分复制

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 二、代码&#xff08;C语言&#xff09;⭐️ #include <stdio.h> #define MAXN 20void strmcpy( char…...

【星云 Orbit•STM32F4】13. 探索定时器:基本定时器

【星云 Orbit•STM32F4】13. 探索定时器&#xff1a;基本定时器 七律 定时器 芯片之心精巧藏&#xff0c; 定时精准度量长。 初学莫畏千般难&#xff0c; 动手方知妙用强。 为读者提供完整代码&#xff0c;但不提供代码文件&#xff0c;也别做“三键”工程师。唯有自己动手&…...

江科大51单片机笔记【10】蜂鸣器(上)

一、蜂鸣器 1.原理 蜂鸣器是一种将电信号转换为声音信号的器件&#xff0c;常同来产生设备的按键音、报警音等提示信号蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器&#xff08;外观基本一样&#xff09;有源蜂鸣器&#xff1a;内部自带振荡源&#xff0c;将正负极接上直流…...

最新版本WebContext构造函数-避坑

import org.thymeleaf.context.IWebContext; import org.thymeleaf.context.WebContext; 当你想把页面信息全部获取出来存到redis缓存中使用时&#xff0c;SpringWebContext在Spring5中报错 SpringWebContext ctx new SpringWebContext(request, response,request.getServlet…...

Java基础系列:深入解析Object类与面向对象编程核心机制

目录 一、Object类&#xff1a;万物之源的方法解析 1. 核心方法全景图 2. 关键方法深度剖析 2.1 equals与hashCode的契约关系 2.2 clone方法的三重陷阱 2.3 finalize方法的死亡警告 二、面向对象三大支柱解析 1. 封装&#xff08;Encapsulation&#xff09;安全防线 2…...

Spring Boot API 项目中 HAProxy 与 Nginx 的选择与实践

在开发 Spring Boot 构建的 RESTful API 项目时&#xff0c;负载均衡和反向代理是提升性能与可用性的关键环节。HAProxy 和 Nginx 作为两种流行的工具&#xff0c;经常被用于流量分发&#xff0c;但它们各有侧重。究竟哪一个更适合你的 Spring Boot API 项目&#xff1f;本文将…...

C++ 数据结构详解及学习规划

C++数据结构详解及学习规划 一、C++常用数据结构详解与示例 以下是C++中核心数据结构的分类及具体实现示例: 1. 线性数据结构 a. 数组(Array) • 定义:存储固定大小、同类型元素的连续内存结构。 • 特点:快速随机访问(O(1)),但插入/删除效率低(O(n))。 • 应用场…...

Spring Boot启动流程及源码实现深度解析

Spring Boot启动流程及源码实现深度解析 一、启动流程概述 Spring Boot的启动流程围绕SpringApplication类展开&#xff0c;核心流程可分为以下几个阶段&#xff1a; 初始化阶段&#xff1a;推断应用类型&#xff0c;加载ApplicationContextInitializer和ApplicationListene…...

2025 开发AI软件的应用场景和优势

在人工智能技术持续突破的今天&#xff0c;AI软件开发已从实验室走向千行百业的核心战场。本文深入剖析医疗影像诊断、智能制造预测性维护、金融风控决策链等六大落地场景&#xff0c;揭示AI如何通过算法重构业务流程——某三甲医院通过病理AI系统将诊断效率提升4倍&#xff0c…...

忘记dedecms后台超级管理员账号和密码的解决方案

解决方案&#xff1a; 方案一、数据库修改&#xff1a; 1、前提是您能登录到数据库后台&#xff0c;登录MySQL数据库管理工具&#xff08;如phpMyAdmin&#xff09; 2、打开数据库中的 dede_admin 表&#xff0c;找到管理员记录&#xff0c;将 pwd 字段的值改成 f297a57a5a7…...

Kubernetes中的 iptables 规则介绍

#作者&#xff1a;邓伟 文章目录 一、Kubernetes 网络模型概述二、iptables 基础知识三、Kubernetes 中的 iptables 应用四、查看和调试 iptables 规则五、总结 在 Kubernetes 集群中&#xff0c;iptables 是一个核心组件&#xff0c; 用于实现服务发现和网络策略。iptables 通…...

标量、向量、矩阵与张量:从维度理解数据结构的层次

在数学和计算机科学中,维度描述了数据结构的复杂性,而标量、向量、矩阵、张量则是不同维度的数据表示形式。它们的关系可以理解为从简单到复杂的扩展,以下是详细解析: 1. 标量(Scalar):0维数据 定义:单个数值,没有方向,只有大小。 维度:0维(无索引)。 示例: 温度…...

OpenCV 颜色空间:原理与操作指南

颜色空间原理 RGB 颜色空间 RGB&#xff08;Red, Green, Blue&#xff09;是最常见的颜色空间&#xff0c;它通过红、绿、蓝三种颜色通道的不同强度组合来表示颜色。在 OpenCV 中&#xff0c;RGB 图像的每个像素由三个 8 位无符号整数&#xff08;0 - 255&#xff09;分别表示…...

Windows 11下Git Bash执行cURL脚本400问题、CMD/PowerShell不能执行多行文本等问题记录及解决方案

问题 在Postman里可成功执行的POST请求&#xff1a; 找到Postman的Code 因为cURL基本上算是行业标准&#xff0c;所以Postman默认选中cURL&#xff0c;支持切换不同的开发语言&#xff1a; 点击上图右上角的复制按钮&#xff0c;得到cURL脚本。 Windows 11家庭版&#xff…...