NAFNet:Simple Baselines for Image Restoration

news/2025/3/15 18:41:28/

Abstract

近年来,图像复原技术取得了长足的进步,但现有的图像复原方法(SOTA)系统复杂度也在不断增加,不利于对各种方法的分析和比较。在本文中,我们提出了一种简单的基线,它超越了SOTA方法,并且计算效率很高。为了进一步简化基线,我们揭示了非线性激活函数,例如Sigmoid、ReLU、GELU、Softmax等不是必需的:它们可以被乘法替换或去除。因此,我们从基线推导出一个非线性无激活网络,即NAFNet。SOTA结果在各种具有挑战性的基准测试中实现,例如,GoPro上的33.69 dB PSNR(用于图像去模糊),超过了之前的SOTA 0.38 dB,而计算成本仅为其8.4%; SIDD上的40.30 dB PSNR(用于图像去噪),超过了之前的SOTA 0.28 dB,而计算成本不到其一半。
在这里插入图片描述

Introduction

  • 包含GELU[15]和通道注意模块[16](CA)的基线可以进一步简化:我们揭示基线中的GELU可以被视为门控线性单元[10](GLU)的特例,并且由此我们经验性地证明它可以被简单的门(即,特征映射的元素式乘积)代替。
  • 此外,我们还揭示了CA与GLU在形式上的相似性,并且可以去除CA中的非线性激活函数。

Related Works

  1. 大多数方法可以被视为经典解决方案UNet的变体,这些变体带来了性能增益以及系统复杂度,并且我们将复杂度大致分类为块间复杂度和块内复杂度
  2. 与[30]不同的是,我们在GLU中去除了非线性激活函数,而不会降低性能。此外,基于非线性无激活GLU本身包含非线性的事实(因为两个线性变换的乘积提高了非线性),我们的基线可以通过用两个特征图的乘积代替非线性激活函数
  3. 据我们所知,它是第一个在没有非线性激活函数的情况下实现SOTA性能的计算机视觉模型。
    在这里插入图片描述
    (a)多级架构[5,37]串联堆叠UNet架构。(b)多尺度融合架构[25,7]融合了不同尺度的特征。(c)UNet架构,一些SOTA方法采用该架构[39,36]。

Baseline

一个普通的块开始图(b)即卷积操作称为PlainNet

在这里插入图片描述
为什么使用CNN而不是Transformer

  1. 首先,虽然变压器在计算机视觉中表现出良好的性能,但一些作品[13,23]声称它们可能不是实现SOTA结果所必需的。
  2. 第二,深度卷积比自我注意机制更简单[34]。
  3. 第三,本文不打算讨论transformers和卷积神经网络的优缺点,而只是提供一个简单的基线。

Normalization

虽然[26]放弃了批量规格化[18],因为小批量可能会带来不稳定的统计数据[38],[5]重新引入实例规格化[33]并避免了小批量问题。随后,在Transformer发展下,层归一化[3]被越来越多的方法使用,包括SOTA方法[32,39,36,23,22]。基于这些事实,我们推测层规范化可能对SOTA恢复器至关重要,因此我们将层规范化添加到上述普通块中。总而言之,我们将层规范化添加到普通块中,因为它可以稳定训练过程。

Activation

在普通块中用GELU代替ReLU,因为它保持了图像去噪的性能,同时为图像去模糊带来了非平凡的增益。

Attention

  • vanilla自注意机制[34]是由[12,4]采用的,通过所有特征的线性组合来生成目标特征,这些特征通过它们之间的相似性来加权。因此,每个特征都包含全局信息,但其计算复杂度与特征图的大小成二次关系。一些图像恢复任务以高分辨率处理数据,这使得该自注意不实际。
  • [22,21,36]仅在固定大小的局部窗口中应用自注意,以减轻增加的计算的问题。而它缺乏全局信息。我们不采用基于窗口的注意力,因为在平面块中通过深度卷积[13,23]可以很好地捕获局部信息。
  • [39]将空间注意力修改为通道注意力,避免了计算问题,同时保持了每个特征中的全局信息。另外,通道注意的有效性已经在图像恢复任务[37,8]中得到验证,因此我们将通道注意添加到了平坦块中。

到目前为止,我们从头开始构建了一个简单的基线,如表1所示。它可以超越SIDD和GoPro数据集上的SOTA结果,而计算成本只有一小部分。
在这里插入图片描述

Nonlinear Activation Free Network

上面描述的基线是简单和有竞争力的,但是在确保简单性的同时,是否有可能进一步提高性能?它能更简单而不损失性能吗?我们试图通过从一些SOTA方法中寻找共性来回答这些问题[32,39,20,17]。我们发现,在这些方法中,采用了门控线性单元[10](GLU)。这意味着GLU可能是有前途的。我们接下来会讨论它。

Gated Linear Units

在这里插入图片描述
其中,X表示特征图,f和g是线性变换器,σ是非线性激活函数,例如Sigmoid,并且σ表示逐元素乘法。如上所述,将GLU添加到我们的基线可以提高性能,但块内复杂度也在增加。这不是我们所期望的。为了解决这个问题,我们重新审视了基线中的激活函数,即GELU[15]:
在这里插入图片描述
其中Φ表示标准正态分布的累积分布函数。根据[15],GELU可以近似并实现为:
在这里插入图片描述
由方程1和方程2,可以注意到GELU是GLU的一个特例,即f,g是单位函数,取σ为Φ。通过这种相似性,我们从另一个角度推测,GLU可以看作是激活函数的推广,有可能取代非线性激活函数。此外,我们注意到GLU本身包含非线性,并且不依赖于σ:即使σ被移除,Gate(X)= f(X)⊙ g(X)也包含非线性。

在此基础上,我们提出了一个简单的GLU变体:在通道维度上直接将特征图分为两部分,然后将它们相乘,如图4c所示,标记为SimpleGate。与等式3中的GELU的复杂实现相比,我们的SimpleGate可以通过元素乘法来实现,仅此而已:
在这里插入图片描述
X、Y是相同大小的特征图

结果表明,SimpleGate可以替代GELU,替代后网络中只剩下通道注意力中存在激活函数。作者同样进行了优化和替代。

Simplified Channel Attention

在这里插入图片描述
我们将通道注意力[16]引入到我们的块中,因为它捕获全局信息并且计算效率高。如图4a所示:它首先将空间信息压缩到通道中,然后将多层感知应用于它以计算通道注意力,这将用于对特征图进行加权。它可以表示为:
在这里插入图片描述
其中X表示特征图,pool表示将空间信息聚合到通道中的全局平均池化操作。σ是一个非线性激活函数Sigmoid,W1,W2是全连接层,两个全连接层之间采用ReLU。如果我们将通道注意力计算视为一个函数,5可以改写为:
在这里插入图片描述
可以注意到,Eqn.6与Eqn.1非常相似。这启发我们将通道注意力视为GLU的一种特殊情况,它可以像前一小节中的GLU一样简化。通过保留渠道注意力的两个最重要的角色,即聚合全局信息和渠道信息交互,我们提出了简化的渠道注意力:

在这里插入图片描述
简化的通道注意力(方程式7)比原来的简单Eqn.5),如图4a和图4b所示。虽然它更简单,但性能没有损失:SIDD为+0.03 dB(39.93 dB至39.96 dB),GoPro为+0.09 dB(32.76 dB至32.85 dB)。

Experiments

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/1579374.html

相关文章

数据库MySQL原理(相关程序)

前言: MySQL数据库在存储数据、读取数据有着优秀的数据结构和算法。 接下来就来深入学习MySQL相关的操作和内部原理。 注:接下来对于mysql的相关操作都是在Linux环境下进行操作!! MySQL常用程序: 众所周知mysql是客户…

Apache Hudi 性能测试报告

一、测试背景 数据湖作为一个集中化的数据存储仓库,支持结构化、半结构化以及非结构化等多种数据格式,数据来源包含数据库数据、增量数据、日志数据以及数仓上的存量数据等。数据湖能够将这些不同来源、不同格式的数据集中存储和管理在高性价比的分布式存储系统中,对外提供…

思维链医疗编程方法论框架(Discuss V1版)

思维链医疗编程方法论框架 1. 方法论核心定义 思维链医疗编程方法论是一种结合结构化思维链(Chain of Thought)与医疗领域需求的系统化编程实践框架,旨在通过分步逻辑推理、知识整合与动态反馈,提升医疗软件/算法的开发效率、准确性与可解释性。该方法论的关键在于通过清晰…

基础知识《Redis解析》

Redis 详细解析与介绍 Redis(Remote Dictionary Server)是一个开源的高性能键值对(Key-Value)数据库,支持多种数据结构(如字符串、哈希、列表、集合等),广泛应用于缓存、消息队列、…

【学习笔记】《逆向工程核心原理》03.abex‘crackme-2、函数的调用约定、视频讲座-Tut.ReverseMe1

文章目录 abexcrackme-21. Visual Basic文件的特征1.1. VB专用引擎1.2. 本地代码与伪代码1.3. 事件处理程序1.4. 未文档化的结构体 2. 开始调试2.1. 间接调用2.2. RT_MainStruct结构体2.3. ThunRTMain()函数 3. 分析crackme3.1. 检索字符串3.2. 查找字符串地址3.3. 生成Serial的…

DeepSeek模型本地化部署方案及Python实现

DeepSeek实在是太火了,虽然经过扩容和调整,但反应依旧不稳定,甚至小圆圈转半天最后却提示“服务器繁忙,请稍后再试。” 故此,本文通过讲解在本地部署 DeepSeek并配合python代码实现,让你零成本搭建自己的AI…

Stable Diffusion教程|快速入门SD绘画原理与安装

什么是Stable Diffusion,什么是炼丹师?根据市场研究机构预测,到2025年全球AI绘画市场规模将达到100亿美元,其中Stable Diffusion(简称SD)作为一种先进的图像生成技术之一,市场份额也在不断增长&…

【资料分享】标准规范汇总(2025.3.13更新)

引言 学习标准规范不仅是测试人员的基本职责,也是确保测试质量、提升产品竞争力和降低风险的关键。通过掌握和应用标准规范,测试工作可以更加规范、高效和权威,为产品和项目的成功提供有力保障。本文分享交换机路由器测试中涉及到标准规范。…