NAFNet:Simple Baselines for Image Restoration

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

  • 包含GELU15和通道注意模块16(CA)的基线可以进一步简化:我们揭示基线中的GELU可以被视为门控线性单元10(GLU)的特例,并且由此我们经验性地证明它可以被简单的门(即,特征映射的元素式乘积)代替。
  • 此外,我们还揭示了CA与GLU在形式上的相似性,并且可以去除CA中的非线性激活函数。
  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,因为小批量可能会带来不稳定的统计数据385重新引入实例规格化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添加到我们的基线可以提高性能,但块内复杂度也在增加。这不是我们所期望的。为了解决这个问题,我们重新审视了基线中的激活函数,即GELU15

其中Φ表示标准正态分布的累积分布函数。根据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




相关推荐
zh路西法9 小时前
【CAM Grad-CAM Grad-CAM++】深度学习模型可解释性:从原理到YOLOv8部署实战
人工智能·深度学习·yolo·yolov8·grad-cam·cam
没有梦想的咸鱼185-1037-166310 小时前
AI-Python机器学习与深度学习技术:CNN/Transformer/扩散模型、SHAP可解释及Hermes智能体自动化
人工智能·python·深度学习·机器学习·chatgpt·cnn·transformer
AI探索先锋11 小时前
AMD 2nm 芯片炸裂、欧洲首家人形机器人独角兽诞生、AI Agent 互联标准打响:10 条信号看懂产业变局|今日科技 AI 机器人快讯
大数据·人工智能·深度学习·搜索引擎·机器人
卡梅德生物科技小能手11 小时前
卡美德生物科普:RSPO3(R - 脊椎蛋白 3)
经验分享·深度学习·生活
Angel Q.13 小时前
特征提取 | DINO 到 DINOv3
图像处理·python
千天夜16 小时前
让大模型“先想再答”:Chain-of-Thought Prompting 论文精读——CoT 为什么能激发多步推理?
人工智能·深度学习·llm·gpt-3·llama
橙臣程17 小时前
深度学习9——transformer之注意力机制
人工智能·深度学习·transformer
恒知学术18 小时前
SCI 文献怎么检索?英文关键词、DOI、被引量和开放获取线索整理
人工智能·深度学习·sci·文献检索·谷歌学术·doi
我登哥MVP19 小时前
Headroom 深度指南:AI Agent 上下文压缩实战
人工智能·python·深度学习·神经网络·机器学习·自然语言处理·pip
OpenApi.cc19 小时前
来了,来了,我来了,Mocode
人工智能·深度学习·神经网络·目标检测·数据挖掘