NAFNet (Simple Baselines for Image Restoration) 阅读笔记 - 教程

news/2025/9/30 9:18:58/文章来源:https://www.cnblogs.com/slgkaifa/p/19119970

NAFNet (Simple Baselines for Image Restoration) 阅读笔记 - 教程

## 旷视,2204

摘要

图像恢复SOTA方法的系统复杂性在增加,这可能会阻碍方法的便捷分析和比较。本文提出了一种简单的基线,其性能超过了SOTA,并且在计算上效率高。为了进一步简化基线,我们揭示必要的:它们可以被乘法替代或删除就是非线性激活函数不。因此,我们从基线推导出了一个无非线性激活的网络,即NAFNet。在各类挑战基准测试中,我们实现了SOTA结果,例如在GoPro(用于图像去模糊)上获得33.69 dB的PSNR,超过了之前的SOTA 0.38 dB,仅以8.4%的计算成本;在SIDD(用于图像去噪)上获得40.30 dB的PSNR,超过了之前的SOTA 0.28 dB,计算成本不到其一半。

前言

本文将系统复杂性分为两种:块间和块内

块间:

块内:这篇文章举的例子是Restormer、SwinTransformer和Half Instance Norm Block(HINBlock)。这篇文章倒没有说它们不好,只是说逐一评估这些设计选择很难

本文想同时降低这两种复杂性,并仍取得SOTA。为此,本文采用U-Net,并聚焦于降低块内设计。从最简单的组件出发:Conv、ReLU、shortcut,本文逐步加入/替换SOTA方法里的组件,验证它们带来的性能提升量。经过一大堆消融实验,本文提出了一个简单的基线,它超越了SOTA并且计算高效,如下图

图中的CA就是SE。基线还可以进一步简化:本文表明GELU可以被视作Gated Linear Unit(GLU)的特例,因此能够被替换;CA和GLU也很像,因此CA里的非线性激活函数也可以被移除。总之,这样简化完后,网络就没有非线性激活函数了!(但不是没有非线性了,只是转移到GLU上了)(你可能知道原始的GLU里是有非线性激活的,但本文把它删了!看下面的相关工作)本文将该网络记作NAFNet(Nonlinera Activation Free)

相关工作(提一下GLU)

GLU【Language modeling with gated convolutional networks,2017】是两个线性层的逐元素乘积,其中一个线性层用非线性激活函数激活。GLU及其变体在NLP中被广泛应用,在CV中也有趋势。本文修改了GLU,把里面的非线性激活删除,这不会造成性能下降。(两个线性层的输出逐元素相乘是会产生非线性性的:Ax × Bx + Ay × By != A(x+y) × B(x+y),Akx × Bkx != k Ax × Bx,更简便点,标量ax × bx = ab x^2,就已经非线性了)

### 前情提要:下面的每一个层的添加/修改,都带来了性能提升,所以就不每次都说了

方法——Baseline

Architecture——UNet

层的排列——Transformer

本文模型的Block里的层排列设计参照了Transformer,先是一个“注意力”子块,然后是一个FFN。本文在构造简单基线,因此没有用self-attention

Normalization——LayerNorm

由于小batchsize会造成不稳定,BN被抛弃了。InstanceNorm避免了这个困难,但HIN Block又说IN的加入不一定总能提升性能,需要手动调优。LayerNorm在Transformer兴盛的大背景下被广泛使用,因此本文认为它很关键,实验表明LN使训练更丝滑,即使把学习率调大10倍。此外,大的学习率带来了显著的性能提升

Attention——Restormer与CA(SE)

自注意力属于一种空间注意力,计算上存在随图像尺寸平方增长的复杂度的问题。Restormer用Transposed的手段将此种空间注意力变为了通道注意力。通道注意力天然地聚合了全局信息(但精度上限应该比不上自注意力)。因此,本文加入了SE,将全局信息注入特征图

综上,baseline完成了。这个baseline能打败一众SOTA(图就不放了)

方法——NAFNet

还想继续简化,同时保持性能?看看一些SOTA方式的共性:GLU的使用。(这里列举了一些SOTA方法,基本上都是Transfomer变体,比如Restormer)

GLU的通用形式:,其中f和g是线性层,σ是非线性激活函数,⊙是逐元素乘积

直接用通用GLU实际上还是增加了复杂度,咋办?看一下GELU:,Φ(x)是标准正态分布的累积分布函数(CDF)。显然,GELU是GLU的特例。因此,本文认为GLU是一种通用型非线性激活函数,许可替代GELU。但这还不够,GLU里的σ就是非线性激活函数,能删掉吗?可以的!这样的GLU还是非线性的。但这还不够,线性变换要不少计算量,也删了!直接X ⊙ X。诶,这样的GLU还有足够的非线性性吗?(另一方面,这样的GLU还有Gate的作用吗?)本文换了一种设计:沿着通道维度把输入特征图对半分,然后把这两半逐点相乘(这样两半就互相作为对方的Gate)。本文将这种GLU叫做SimpleGate

看着GLU,有没有觉得和SE很像?对的,回顾一下SE:GLU的一个特例了。好,让大家简化一下:删去ReLU和sigmoid,以及合并两个线性层,得到:就是,把后面那一大块抽象一下,形式上就【这里不能直接替换为SimpleGate,因为CA的两个关键特性是:全局信息聚合(通过pool)、通道信息交互(通过W)】

实验

在未特意提及的情况下,遵循HIN-Net的设置,包括gradient clip等。Adam with β=(0.9, 0.9) and weight_decay=0,200K迭代,lr=1e-3 -> 1e-6,cosineAnnealing,256 x 256。测试时采用TLC【Improving image restoration by revisiting global information aggregation,2112,也是旷视的文章】策略,弥补“当图像修复网络中存在全局信息操作时,用patch训练,用全图测试”导致的性能损失。此外,采用skip-init【由Batch normalization biases residual blocks towards the identity function in deep networks提出,但这篇文章说following ConvNeXt】来稳定训练

从PlainNet到Baseline

通过用lr=1e-3开始练出现了不稳定,遂调低至1e-4。加入LN后,能够用1e-3,并且训练更稳,性能更强【从表里看,LN和大学习率带来的提升比其它的改动要大得多

从Baseline到NAFNet

没什么可说的,性能和计算效率提升就完事了

块数

主要考虑720 x 1280的图像,由于这是GoPro资料集的全图分辨率。从9 -> 36,性能增长明显,速度下降较少(本文是用latency衡量的,只增加了约14.5%),再往上就不值得了

GLU里的非线性激活函数

没必要,在GoPro上PSNR和SSIM甚至还降了

附录

其它细节
  • 特征融合:对于U-Net中的跳跃连接,本文简单地将两个特征进行逐元素求和
  • 下采样与上采样:下采样用k=2、s=2的卷积【受arxiv.org/pdf/2010.02178启发】,上采样用1x1卷积将通道数翻倍 + PixelShuffle

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

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

相关文章

有关网站建设的文章京东电子商务网站建设

原理 最小二乘法由勒让德(A.M.Legendre)于1805年在其著作《计算彗星轨道的新方法》中提出,主要思想是最小化误差二次方和寻找数据的最佳匹配函数,利用最小二乘法求解未知参数,使得理论值与观测值之差(即误差,或称为残差)的二次方和达到最小,即: E = ∑ i = 1 n ϵ …

海口的网站建设公司创新的盐城网站开发

引言:编写批处理程序,实现批量删除当前目录及子目录下的空文件夹。 一、新建Windows批处理文件 参考博客: CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件,点击【编辑…

解决OpenWrt系统上出现“git: remote-https is not a git command...”的问题

在OpenWrt上安装git软件包后,执行git clone命令时,出现了下面的报错: git: remote-https is not a git command. See git --help. fatal: remote helper https aborted session 通过AI工具进行,发现原来是没有安装…

密码技术概论

View Post密码技术概论密码技术概论 一、 时代背景:从信息化到智能化技术发展路径:信息化 → 数字化 → 网络化 → 智能化。 核心驱动力:万物互联(IoT)的开启,将一切连接入网。 数字时代特征:数字化:将物理世界…

临猗商城网站建设平台wordpress vantage

shell,perl,python的区别 2012-03-18 10:48:42| 分类: 默认分类 | 标签: |字号大中小 订阅 shellsedawk三者中功能最弱,没有调试程序,大多数操作必须通过运行其他程序才能执行,所以需要更多时间、内存并在进程表中…

国内搜索引擎网站wordpress类似于知更鸟的中文主题

1.我们先创建一个空的大文件夹 2.打开该文件夹的终端 输入npm init -y 2.1.打开该文件夹的终端 2.2在该终端运行 npm init -y 3.安装webpack 3.1打开webpack网址 点击“中文文档” 3.2点击“指南”在点击“起步” 3.3复制基本安装图片画线的代码 4.在一开始的文件夹下在创建一…

合肥建设局网站官网四川全美网络科技有限公司

什么是Istio? 在现代软件开发中,微服务架构已经成为构建可扩展、灵活系统的首选方法。然而,随着微服务数量的增加,服务间的通信、监控和管理变得越来越复杂。为了解决这些问题,服务网格(Service Mesh&…

麒麟网站建设wordpress打开文章很慢

游戏开发基础part3--Paint 画笔 Paint画笔是绘图的辅助类,一般它是作为画布的参数来实现相应的效果,Paint类中包含文字与位图的样式、颜色等属性信息。Paint的常用方法如下: 1.setAntiAlias(boolean aa) 作用:设置画笔是否无锯齿 …

网站建设厃金手指花总十一网络营销策划方案的目的

文章目录 1、 新建应用时选择与自己真机匹配的sdk版本2、 根据报错提示连接打开处理方案3、查询真机版本对应的**compileSdkVersion** 和 **compatibleSdkVersion** 提示3.1版本之后和3.1版本之前的不同命令(此处为3.0版本)4、根据查询修改参数5、连接成…

wap网站开发价钱外包开发一个app多少钱

PLC作为下位机,接收上位机的执行命令,并将执行结果反馈给上位机。工具/原料电脑、PLC、USB转RS232数据线和RS232转RS485模块(或者USB转RS485)方法/步骤PLC与电脑线路连接,根据电脑的串口情况,1.电脑自带RS232串口,那么…

IntelliJ IDEA 中 Shared Build Process Heap Size 的重要性与配置

IntelliJ IDEA 中 Shared Build Process Heap Size 的重要性与配置Posted on 2025-09-30 08:45 且行且思 阅读(0) 评论(0) 收藏 举报共享构建进程堆大小(Shared Build Process Heap Size)是IntelliJ IDEA中用于…

专业网站设计怎么做做古代风格头像的网站

转载自 你真的了解Java中的三目运算符吗三目运算符是我们经常在代码中使用的,a (bnull?0:1);这样一行代码可以代替一个if-else,可以使代码变得清爽易读。但是,三目运算符也是有一定的语言规范的。在运用不恰当的时候会导致意想不到的问题。本文就介绍一…

建设一个商城网站要多少钱seo综合查询怎么关闭

文章目录 2. docker常用命令2.1 参数说明(tomcat案例)2.2 基本命令2.3 高级命令2.4 其他 2. docker常用命令 2.1 参数说明(tomcat案例) 注意如果分成多行,\后面不能有空格 # 拉取运行 docker run \ -d \ -p 8080:8080 \ --privilegedtrue \ --restartalways \ -m…

衡阳电商网站建设手机网站的内容模块

一:引言: 图像和视频理解是计算机视觉应用中的基本问题,旨在使机器能够像人类一样解释和理解视觉数据。这些问题涉及识别图像和视频中的对象、人物、动作、事件和场景。如图1.1-(a)所示的图像识别任务包括对象检测[1]…

企业数字化转型战略规划:从愿景到落地的完整路径

企业数字化转型战略规划:从愿景到落地的完整路径 在数字经济浪潮席卷全球的今天,数字化转型已不再是企业的“选择题”,而是关乎生存与发展的“必答题”。然而,现实却颇为严峻:据麦肯锡等咨询公司的调查显示,超过…

贝叶斯学习笔记 - 详解

贝叶斯学习笔记 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

设计模式-结构性设计模式(针对类与对象的组织结构) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

自学网站建设多久深圳网站建设推广方案

文章目录 CentOS7配置静态IP一、前言1.场景2.环境 二、正文1)确定网络接口名称2)配置固定IP和DNS3)重启网络服务4)验证配置 CentOS7配置静态IP 一、前言 1.场景 在 CentOS7上设置静态 IP 和 DNS。 2.环境 CentOS Linux 版本&…

凯利公式在期货交易中的应用

首先,我们需要理解凯利公式的目的:在重复的博弈中,找到一个最优的投注比例,以使你的长期资产增长率最大化,并避免破产风险。 一、 标准的凯利公式 最基础的凯利公式(用于两种结果,赢或输)如下: • f* = (应…