超分之DeSRA

news2025/4/21 14:32:23
  • 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模型在真实世界超分辨率技术的实际应用能力。

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

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

相关文章

Ubuntu用户安装cpolar内网穿透

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

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

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

【Java学习】包装类

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

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

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

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…

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在物联网中的应用 …

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…

江科大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…

忘记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 通…

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

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

利用LLMs准确预测旋转机械(如轴承)的剩余使用寿命(RUL)

研究背景 研究问题:如何准确预测旋转机械(如轴承)的剩余使用寿命(RUL),这对于设备可靠性和减少工业系统中的意外故障至关重要。研究难点:该问题的研究难点包括:训练和测试阶段数据分布不一致、长期RUL预测的泛化能力有限。相关工作:现有工作主要包括基于模型的方法、数…

记录小白使用 Cursor 开发第一个微信小程序(二):创建项目、编译、预览、发布(250308)

文章目录 记录小白使用 Cursor 开发第一个微信小程序&#xff08;二&#xff09;&#xff1a;创建项目、编译、预览、发布&#xff08;250308&#xff09;一、创建项目1.1 生成提示词1.2 生成代码 二、编译预览2.1 导入项目2.2 编译预览 三、发布3.1 在微信开发者工具进行上传3…

游戏引擎学习第146天

音高变化使得对齐读取变得不可能&#xff0c;我们可以支持循环声音了。 我们今天的目标是完成之前一段时间所做的音频代码。这个项目并不依赖任何引擎或库&#xff0c;而是一个教育项目&#xff0c;目的是展示从头到尾运行一个游戏所需要的全部代码。无论你对什么方面感兴趣&a…