当前位置:   article > 正文

Simple Baselines for Image Restoration

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(用于图像去噪)上,PSNR为40.30 dB,超过了以前的SOTA 0.28 dB,而计算成本不到原来的一半。代码和经过训练的模型可以在github.com/megvii-research/NAFNet上发布。

1 Introduction

随着深度学习技术的发展,图像恢复方法的性能有了明显的提高。基于深度学习的方法[5,37,39,36,6,7,32,8,25]取得了巨大的成功。例如,[39]和[8]在SIDD[1]/GoPro[26]上的PSNR分别达到40.02/33.31 dB,用于图像去噪/去模糊。

尽管这些方法具有良好的性能,但它们存在较高的系统复杂性。为了便于讨论,我们将系统复杂度分解为两个部分:块间复杂度和块内复杂度。首先是块间复杂度,如图2所示。[7,25]引入不同大小的特征图之间的联系;[5,37]是多阶段网络,后期对前一阶段的结果进行细化。二是块内复杂性,即块内的各种设计选择。例如[39]中的Multi-Dconv Head Transposed Attention Module和Gated Dconv前馈网络(如图3a所示),[22]中的Swin Transformer Block,[5]中的HINBlock,等等。逐一评估设计选择是不现实的。

基于上述事实,一个自然的问题出现了:低块间复杂度和低块内复杂度的网络是否可能实现SOTA性能?为了实现第一个条件(块间复杂度低),本文采用单级UNet作为体系结构(遵循了一些SOTA方法[39,36]),重点关注第二个条件。为此,我们从一个简单的块开始,其中包含最常见的组件,即卷积、ReLU和快捷方式[14]。从普通块开始,我们添加/替换SOTA方法的组件,并验证这些组件能带来多少性能增益。通过广泛的消融研究,我们提出了一个简单的基线,如图3c所示,它超过了SOTA方法,并且计算效率很高。它有可能激发新的想法,并使它们的验证更容易。由GELU[15]和通道注意模块[16](CA)组成的基线可以进一步简化:我们发现基线中的GELU可以被视为门控线性单元[10](GLU)的一个特例,并由此经验地证明它可以被一个简单的门取代,即特征映射的元素级积。此外,我们还揭示了CA与GLU在形式上的相似性,并且可以去除CA中的非线性激活函数。总之,简单的基线可以进一步简化为非线性无激活网络,即NAFNet。我们主要对SIDD[1]进行图像去噪,对GoPro[26]进行图像去模糊实验,如下[5,39,37]。主要结果如图1所示,我们提出的基线和NAFNet在实现SOTA结果的同时具有计算效率:在GoPro上33.40/33.69 dB,分别超过了之前的SOTA[8] 0.09/0.38 dB,计算成本为8.4%;超过[39].;28 dB,计算成本不到其一半。我们进行了大量的数量和质量实验,以说明我们提出的基线的有效性。

本文的主要贡献如下:

  1. 通过对SOTA方法进行分解并提取其基本组件,我们形成了一个系统复杂度较低的基线(见图3c),它可以超过之前的SOTA方法,并且具有较低的计算成本,如图1所示。它可以帮助研究人员激发新的想法,并方便地评估它们。

  1. 通过揭示GELU、Channel Attention to Gated Linear Unit之间的联系,我们通过删除或替换非线性激活函数(如Sigmoid、ReLU和GELU),进一步简化了基线,并提出了一个非线性激活自由网络,即NAFNet。虽然简化了,但它可以匹配或超过基线。据我们所知,这是首次证明非线性激活函数在SOTA计算机视觉方法中可能不需要。这项工作可能有潜力扩展SOTA计算机视觉方法的设计空间。

2 Related Works

2.1 Image Restoration

图像恢复任务的目的是将退化的图像(如噪声,模糊)恢复为一个干净的图像。最近,基于深度学习的方法[5,37,39,36,6,7,32,8,25]在这些任务上实现了SOTA结果,大多数方法可以被视为经典解UNet[29]的变体。它堆叠块到一个u形结构与跳跃连接。这些变体带来了性能的提高,以及系统的复杂性,我们将复杂性大致分为块间复杂度和块内复杂度。

块间复杂度[37,5]为多级网络,即后期对前一阶段的结果进行细化,每一阶段为u形结构。本设计基于将困难的图像恢复任务分解为多个子任务有助于提高性能的假设。不同的是,[7,25]采用了单阶段设计并获得了竞争性的结果,但它们引入了各种大小的特征图之间的复杂连接。有些方法同时采用了上述策略,如[32]。其他的SOTA方法,如[39,36]保持了单级UNet的简单结构,但它们引入了块内复杂性,我们将在下面讨论。

块内复杂性有很多不同的块内设计方案,我们在这里举几个例子。[39]通过通道注意图而不是空间注意图降低了自我注意[34]的记忆复杂度和时间复杂度。前馈网络采用门控线性单元[10]和深度卷积。[36]引入了基于windows的多头自我注意,类似于[22]。此外,在其块中引入局部增强前馈网络,在前馈网络中加入深度卷积,增强局部信息捕获能力。不同的是,我们揭示了增加系统复杂性并不是提高性能的唯一方法:SOTA性能可以通过一个简单的基线实现。

2.2 Gated Linear Units

门控线性单元[10](GLU)可以通过两个线性变换层的逐元生成来解释,其中一个线性变换层被非线性激活。GLU或其变体已经在NLP中验证了其有效性[30,10,9],并且在计算机视觉中有很好的发展趋势[32,39,17,20]。在本文中,我们揭示了GLU带来的非平凡的改进。与[30]不同的是,我们在不降低GLU性能的情况下,去掉了GLU中的非线性激活函数。此外,基于非线性激活自由GLU本身包含非线性(由于两次线性变换的乘积会产生非线性)的事实,我们的基线可以通过用两个特征映射的乘法替换非线性激活函数来简化。据我们所知,这是第一个在没有非线性激活函数的情况下实现SOTA性能的计算机视觉模型。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/817215
推荐阅读
相关标签
  

闽ICP备14008679号