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

CVPR2023 | 提升图像去噪网络的泛化性,港科大上海AILab提出 MaskedDenoising,已开源!

作者 | 顾津锦
首发 | AIWalker
链接 | https://mp.weixin.qq.com/s/o4D4mNM3jL6sYuhUC6VgoQ

当前深度去噪网络存在泛化能力差的情况,例如,当训练集噪声类型和测试集噪声类型不一致时,模型的性能会大打折扣。作者认为其原因在于网络倾向于过度拟合训练噪声,而没有学习图像自身的内在结构。为了解决这个问题,作者提出了一种遮盖图像训练的策略(masked image training)。其核心思想是在训练过程中对输入图像进行大比例的随机遮盖,迫使网络学习重构被遮盖的内容,增强对图像本身分布的建模能力,从而对未见过的噪声类型也有好的去噪效果。

  • 论文链接:https://arxiv.org/abs/2303.13132
  • 代码链接:https://github.com/haoyuc/MaskedDenoising

图像去噪中的泛化性问题

但是,现有的深度学习去噪方法存在一个关键问题——泛化能力差。大多数方法都是在高斯噪声上训练和测试的。当遇到训练过程中未见过的噪声时,这些方法的效果会急剧下降。因为深度网络很容易过拟合训练数据,普通的学习方式使得网络仅仅学会如何去除高斯噪声,未学会图像的内在结构。

文章 Figure 1 主要说明了当前深度学习去噪模型的泛化问题:
当我们使用高斯噪声(σ=15)训练SwinIR模型,在同样的高斯噪声(σ=15)测试时,SwinIR可以很好去除噪声,效果优秀。
但当测试噪声为复杂的mixture noise时,SwinIR的去噪效果大幅下降,基本失效。
而作者提出的遮挡训练方法即使也是在高斯噪声(σ=15)上训练,但对mixture noise去噪效果仍然可以,泛化能力明显更强。

传统的训练方式是在过拟合训练集噪声

作者做了一个实验来直观地反映当前深度学习去噪模型的工作原理。他们使用免疫组化学图像训练了一个SwinIR模型,这类图像与自然图像非常不同。但加入的是相同的高斯噪声。模型通过拟合图像+噪声的数据集学会了去噪。然后他们测试这个模型在普通自然图像上的去噪效果,结果仍旧有高效的去噪能力。这说明模型是靠识别噪声本身来起去噪作用的,而不是真正理解图像内容。只要是训练过程中见过的噪声类型,不管图像是什么,模型都可以去除。这样就解释了为什么这类模型泛化能力较差,测试噪声一变模型就失效了。

而作者提出的遮挡训练方法可以让模型学会理解和重构图像内容,不仅依赖噪声特征,从而获得更好的泛化能力。这个实验简单直观地反映了现有模型的工作机制和局限性,也支持了遮挡训练可能带来的优势。

作者的分析认为,现有方法之所以泛化能力差,是因为模型仅仅过拟合了训练噪声,而没有真正学习图像的内在结构。所以需要通过改进训练策略,让模型学习重构图像内容,而不是仅仅识别并移除噪声模式。

因此,这篇论文要解决的核心问题是:
如何提高深度学习去噪模型的泛化能力,使其不仅能去除训练使用的噪声类型,还能够很好地处理其他未知的噪声,适应更广泛的场景。

Masked Training

整体网络架构基于了Swin Transformer。
作者提出了一种 masked training 的方法来提高模型的泛化能力。
主要包含两个方面:

  • Input Mask

在特征提取之后, 会对输入图像进行随机大比例遮盖(input mask),比如遮盖75%~85%的像素。这将构造一个非常具有挑战性的图像修复问题,迫使模型学习重构被遮盖的图像内容,而不能简单依靠检测并移除噪声模式。

  • Attention Mask

在self-attention层也进行类似的随机遮盖。这是为了减轻训练和测试的不一致性。由于 input mask 只在训练使用, 测试时的输入是完整的图像。因此我们使用attention mask 可以平衡这一差异。

训练过程中,模型需要在大量信息被移除的情况下,依靠图像的内在结构去重构内容。这样可以减少模型对训练噪声的过拟合,增强对图像本身分布的建模能力。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Figure 3 展示了我们提议的 mask-and-complete 的训练策略。每一组图片左侧是 mask 后的效果,右侧是重建后的效果。可以看到,即使有大量的像素被遮罩,模型仍然可以在一定程度上重建输入。

实验结果

视觉效果

Figure 8 展示了不同去噪算法在各种未出现在训练中的噪声下的视觉效果。
测试噪声类型包括Spatially correlated Gaussian、Speckle noise和Salt-and-pepper noise,都不属于训练使用的高斯噪声。
对比算法包括DnCNN、RIDNet、RNAN、SwinIR、Restormer等当前主流算法。

结果显示这些对比算法完全失效,无法有效去除测试噪声,图像效果很差。
而作者提出的遮挡训练方法在所有的测试噪声下都获得了很好的去噪视觉效果。
这直观地反映了作者方法相比其他算法在泛化性上的明显提高。
尤其是在其他方法完全失败的情况下,遮挡训练仍能有效去噪,突出了方法的优势。
这验证了遮挡训练可以减少对训练噪声的依赖,提高模型对复杂未知噪声的适应性。

性能指标

图 11 是性能数值对比,作者测试了 4 种不同的噪声类型,并且每一种噪声都测试了不同的噪声 level 。深蓝色的是使用 masked training 的方法。

可以看到,使用 masked training 的方法在训练集外的噪声类别上的性能要远优于其他方法,并且随着噪声 level 的增加,性能优势也更加明显。
说明这样的方法在训练集和测试机噪声区别越大的情况下,会有更大的优势。

Mask 比例的权衡

当然,由于使用了 mask,这无疑会对训练集噪声上的性能造成影响。因此,在训练集上的性能和在未见过的测试机噪声上的性能是一种权衡。

图 7 展示了在不同的 input mask 比例时,模型在训练集噪声(高斯 15)和训练集外的噪声(Speckle, Mixture noise)上的性能。
可以看到,在掩码比率为75%之前,训练噪声的性能下降并不明显。而在 mask 比例为 50%左右时,就已经体现出较高的性能。
而在训练集之外的噪声上的性能提升大于在训练集上的性能损失。

较小的比率不足以使网络学习到图像的分布,因为更多的噪声模式被保留下来。较大的比率提高了模型的泛化能力,因为模型更加关注重构。但与此同时,一些图像细节可能会丢失。

分析

训练曲线

图13展示了遮挡训练模型和基准模型的训练曲线,用来分析训练过程。
每一行对应了一种噪声类别;第一列和第二列分别是 PSNR 和 SSIM 指标。
而每一个子图中 x 轴对应了训练的 iteration(K)。

  • baseline 模型(没有使用 Masked training)的性能在训练一开始就达到了峰值,然后随着训练越久会逐渐下降,说明在峰值之后,模型就已经在过拟合训练集噪声,从而导致在其他噪声类别上的泛化能力越来越差。
  • Masked training 模型在三种噪声上的性能曲线都是缓慢上升的,且最终效果优于基准模型,说明泛化能力更强,没有过拟合。

不同噪声的特征分布

我们在不同噪声类型下可视化了深度特征的分布,如图15所示。我们可以看到:

  • baseline 模型中,不同噪声类型下的特征分布明显偏离彼此。
  • 而对于经过 masked training 的模型,不同噪声类型下的深度特征分布彼此接近。

这从侧面印证了 masked training 的模型的泛化能力以及有效的原因。

局限性和未来方向

正如文章中所提到的,能够让这个方法发挥出优势需要找到合适的场景,因此训练集和测试集的选择比较重要。
具体来说,

  • 训练集和测试集的区别越大,就越能体现优势
  • 训练集的退化分布越有限,也越能体现优势

因此,如何将这样的训练方法能够在更多更广泛的场景下同样发挥出优势,是一个非常有意义的未来研究方向。

相关文章:

CVPR2023 | 提升图像去噪网络的泛化性,港科大上海AILab提出 MaskedDenoising,已开源!

作者 | 顾津锦 首发 | AIWalker 链接 | https://mp.weixin.qq.com/s/o4D4mNM3jL6sYuhUC6VgoQ 当前深度去噪网络存在泛化能力差的情况,例如,当训练集噪声类型和测试集噪声类型不一致时,模型的性能会大打折扣。作者认为其原因在于网络倾向于过度…...

[python] dict类型变量写在文件中

在Python中,如果你想要将一个字典变量以具有可读性的格式写入文件,并且指定缩进为2个空格,你可以使用json模块来实现。json模块提供了一种很方便的方法来进行序列化和反序列化Python对象。下面是一个具体的示例: 字典变量以具有可…...

设计循环队列

文章目录 一、循环队列的构建二、判断是否为空三、判断队列是否满了四、队列插入五、队列的删除六、队列取头尾 设计循环队列 下面是队列提供的接口函数 typedef struct {int* a;int k;int front;int rear; } MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {…...

linux文件解压和压缩命令

linux文件解压和压缩命令 1.格式.zip 解压:unzip filename.zip 压缩:zip filename.zip directoryName 2.格式.rar 解压: #解压方式1(会在当前解压目录内产生一个以压缩包名字命名的目录,目录内是解压内容) …...

飞链云:让AI创造价值,让人类享受收益

我梦想有天,每个有能力的人都可以做自己喜欢的事情,都应该去做自己喜欢的事情,并且可以获得应有的收益。 有的人可以称之为“人”,有的人你得称他为鬼,有的人不如畜生。 如今社会,每个人都为了“生活”日…...

[NSSCTF 2nd]MyJs

做一题ejs原型链污染 首先是登录界面 源码里面提示了源码的路由 js不熟先审计一下 const express require(express); #导入Express框架,用于构建Web应用程序的服务器和路由 const bodyParser require(body-parser); #导入body-parser中间件,用于解析…...

NLP-词向量、Word2vec

Word2vec Skip-gram算法的核心部分 我们做什么来计算一个词在中心词的上下文中出现的概率? 似然函数 词已知,它的上下文单词的概率 相乘。 然后所有中心词的这个相乘数 再全部相乘,希望得到最大。 目标函数(代价函数&#xff0…...

Java学习--学生管理系统(残破版)

代码 Main.java import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {ArrayList<Student> list new ArrayList<>();loop:while (true) {System.out.println("-----欢迎来到阿宝院校学生管理系…...

柯西矩阵介绍

经典定义 柯西矩阵&#xff08;Cauchy Matrix&#xff09;&#xff0c;是一种特殊类型的矩阵&#xff0c;它在数学中的多个领域&#xff0c;包括线性代数、数值分析和插值理论中都有重要应用。柯西矩阵以19世纪法国数学家奥古斯丁-路易柯西的名字命名。 柯西矩阵是一个方阵&am…...

PureFlash v1.9.1特性介绍

PureFlashv1.9.1版本特性主要有4个&#xff1a; 1. 支持RDMA网络 使用RDMA协议可以大大减少对CPU的消耗&#xff0c;性能提升30%以上。 PureFlash的网络配置分为存储节点间网络&#xff08;存储后端网&#xff09;和客户端网络&#xff08;前端网&#xff09;。都支持使用RD…...

XXE 漏洞简单研究

近期在做个基础的 web 常见漏洞的 ppt&#xff0c;主要参考 OWASP TOP 10 2017RC2&#xff0c;此版本中增加了 XXE 攻击&#xff0c;所以自己简单的研究下 XXE 攻击。XXE&#xff08;XML External Entity&#xff09;XML 外部实体&#xff0c;当前端和后端通信数据采用 xml&…...

web漏洞与规避

文章目录 一、XSS 跨站脚本攻击1.1 XSS攻击的主要类型反射型XSS存储型XSSDOM型XSS 1.2 前端开发如何应对XSS 二、CSRF 跨站请求伪造2.1 CSRF例子2.2 前端开发如何应对CSRF 三、SQL 注入3.1 前端如何防御SQL注入 四、前端如何使用CSP 一、XSS 跨站脚本攻击 攻击者通过在受害者的…...

#FPGA(基础知识)

1.IDE:Quartus II 2.设备&#xff1a;Cyclone II EP2C8Q208C8N 3.实验&#xff1a;正点原子-verilog基础知识 4.时序图&#xff1a; 5.步骤 6.代码&#xff1a;...

LockBit病毒入侵揭秘:如何防范与应对

在数字时代&#xff0c;随着科技的飞速发展&#xff0c;网络安全问题愈发凸显。恶意软件和勒索软件等网络威胁正不断演变&#xff0c;其中一款备受关注的勒索软件就是LockBit。本文将深入介绍LockBit的特征、攻击手段、演进历程以及对网络安全的威胁。 01 主要特征 LockBit是…...

vue-router4 (六) 路由嵌套

应用场景&#xff1a; ①比如京东页面的首页、购物车、我的按钮&#xff0c;可以点击切换到对应的页面&#xff1b; ② 比如 Ant Design左侧这些按钮点击就会切到对应的页面&#xff0c;此时可以把左侧按钮放在父路由中&#xff0c;右侧的子路由 1.路由配置&#xff0c;子路由…...

【NR 定位】3GPP NR Positioning 5G定位标准解读(一)

目录 前言 1. 3GPP规划下的5G技术演进 2. 5G NR定位技术的发展 2.1 Rel-16首次对基于5G的定位技术进行标准化 2.2 Rel-17进一步提升5G定位技术的性能 3. Rel-18 关于5G定位技术的新方向、新进展 3.1 Sidelink高精度定位功能 3.2 针对上述不同用例&#xff0c;3GPP考虑按…...

【AI绘画】免费GPU Tesla A100 32G算力部署Stable Diffusion

免责声明 在阅读和实践本文提供的内容之前&#xff0c;请注意以下免责声明&#xff1a; 侵权问题: 本文提供的信息仅供学习参考&#xff0c;不用做任何商业用途&#xff0c;如造成侵权&#xff0c;请私信我&#xff0c;我会立即删除&#xff0c;作者不对读者因使用本文所述方法…...

JVM(2)

JVM类加载 指的是java进程运行时,需要把.class文件从硬盘加载到内存,并进行一系列校验解析的过程. 核心: .class文件>类对象; 硬盘>内存. 类加载过程 在整个JVM的执行流程中,和程序员关系最密切的就是类加载的过程了,所以我们来看一下类加载的执行流程. 对于一个类…...

青少年CTF擂台挑战赛 2024 #Round 1 Web方向题解 WP 全

EasyMD5 题目描述&#xff1a;php没有难题 考点总结&#xff1a;脑洞题目&#xff0c;不如我出&#xff08;狗头 只允许两个都上传pdf文件。 文件还不能太大了。burp多次发包发现要求两个pdf内容不一样 不一样时候&#xff0c;提示我们MD5碰撞。 科学计数法绕过 PHP的后门 …...

一文认识蓝牙(验证基于Aduino IDE的ESP32)

1、简介 蓝牙技术是一种无线通信的方式&#xff0c;利用特定频率的波段&#xff08;2.4GHz-2.485GHz左右&#xff09;&#xff0c;进行电磁波传输&#xff0c;总共有83.5MHz的带宽资源。 1.1、背景 蓝牙&#xff08;Bluetooth&#xff09;一词取自于十世纪丹麦国王哈拉尔Haral…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...