近年来,基于深度学习的图像降噪/去模糊的算法,在图像恢复领域取得了显著的进展。但与此同时,这些方法的系统复杂度相应的也在上升,如图1. 所示。
由此自然产生了一个问题,简单的模型是否也有可能达到最先进的性能?本文尝试回答这个问题,并给出肯定的答复。在本文中,我们先展示如何从零开始搭建一个简单同时性能优秀的基线模型,然后进一步简化该模型:我们发现甚至连传统的激活函数(如ReLU,GELU,Sigmoid等)都不是必须的:它们可以被去除或者被简单的乘法替代。
图1. 当前一些图像恢复方法
如何从零搭建简单基线
深度学习模型通常是由一些基础操作(比如卷积/激活函数等)组合而成的模块(block)堆叠在一起构成的。我们先讨论堆叠模块的方式,然后再考虑模块内部的基础元素应该怎样选择。
图2. UNet结构示意图
在各种深度学习方法蓬勃发展的当下,堆叠模块的方式也有许多不同方案,比如MPRNet[1]/HINet[2]等网络采用了多阶段的设计,将简单的结构串联起来;MIMO-UNet[3]等方法则考虑将各个不同空间大小的特征连接在一起。
而另一方面,我们发现简单的结构:UNet(如图2.)还是有一战之力的:当前一些性能优秀的方法[4],[5]是基于UNet或其变种。基于以上观察,我们认为UNet结构仍然是构造简单基线的不二之选。
在选定了堆叠方式之后,还有一个容易被忽略的地方,就是堆叠模块的数量。为了确定此选项,我们通过模块的数量这一条线,回顾近年来图像恢复模型的发展。DeepDeblur[6] 发现将Normalization去除之后性能更优,而后续的一些方法如NBNet[7]等也使用了这样的设置,其包含9个模块。我们猜测可能是因为去除了Normalization从而使得图像恢复模型在深度增加时难以稳定训练。
去年5月份,HINet[2]则重新引入了Instance Normalization从而支持18个模块的训练。另一方面, transformer在高层视觉领域的流行也影响到了底层视觉领域,如UFormer[4](包含 18个模块), Restormer[5](进一步将模块数增加到了44个)。有证据表明,深度(或者说模块数)的增加是近期图像恢复模型性能提升的重要原因,所以我们选择了36个模块作为模型的默认配置。
图3.
左箭头:简化Restormer[5]从而获得初始结构。
右箭头:初始结构增加必要内容构成简单基线。
接下来我们考虑模块的内部结构 – 我们从Restormer[5]的模块出发, 将其简化只保留最基础的部分从而获得一个初始模块结构,如图3. 左侧箭头所示。
这个初始结构会遇到训练不稳定的问题,提醒我们需要引入Normalization。所以我们参考一些transformer的做法引入了Layer Normalization(以及GELU),并且均发现它们能有效提升图像恢复模型性能。
此外,对于注意力机制, 我们并不想引来特别多额外的计算量且希望模型结构尽可能简单,所以选择了通道注意力机制(CA),从而构造出了一个简单的基线,如图3. 右侧箭头所示。我们惊喜的发现, 此基线已经取得非常优秀的性能,见图4.。
图4. 简单基线和其他方法的性能比较
进一步简化基线
图5. Restormer[5]中的乘法
通过拆解一些领先方法如Restormer[5],我们意外的发现其中“乘法” (图5.)对性能的提升有着至关重要的作用,这提醒我们重新审视这一个操作。它可以被形式化为门线性单元,简称Gate:
其中X 表示特征,f,g为线性映射,σ为非线性函数。在形式上,我们发现Gate和激活函数有相似性(如果将f,g看成恒等映射),可以说GELU是Gate的一种特殊形式:
换一个角度,我们猜测Gate也可以被看成是一种激活函数,并且我们发现“非线性”并不依赖于σ:乘法本身可以提供非线性。基于此我们设计了一种简单的激活函数:把特征沿通道维度一分为二然后直接相乘,如图6.(c) 所示。
图6. 各模块示意图
此外, 通道注意力机制(CA,见图6.(a))从形式上和Gate也有相似之处。我们保留其中最重要的部分:全局信息聚合以及通道信息交互,从而获得简化版本的通道注意力(SCA),如图6.(b) 所示。
至此,我们得到了基线模型的简化版本,并且不包含任何传统激活函数(如ReLU,GELU,Sigmoid等),我们称之为Nonlinear Activation Free Network,简称为NAFNet。在简化的基础上,NAFNet的性能有进一步提升:
图7. NAFNet和其他方法的性能比较
实验结果
图8. NAFNet降噪/去模糊效果图
图8. 展示了NAFNet的可视化结果,更多实验结果见论文。此外在图像超分任务上,基于NAFNet的工作NAFSSR[8]取得了NTIRE22的双目超分辨率冠军,说明NAFNet在超分任务上具有一些潜力。NAFNet代码已开源,欢迎试用。
点击“阅读原文”,直达GitHub链接。
参考文献
[1] Zamir, Syed Waqas, et al. "Multi-stage progressive image restoration." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2021.
[2] Chen, Liangyu, et al. "HINet: Half instance normalization network for image restoration." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021.
[3] Cho, Sung-Jin, et al. "Rethinking coarse-to-fine approach in single image deblurring." Proceedings of the IEEE/CVF international conference on computer vision. 2021.
[4] Wang, Zhendong, et al. "Uformer: A general u-shaped transformer for image restoration." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.
[5] Zamir, Syed Waqas, et al. "Restormer: Efficient transformer for high-resolution image restoration." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.
[6] Nah, Seungjun, Tae Hyun Kim, and Kyoung Mu Lee. "Deep multi-scale convolutional neural network for dynamic scene deblurring." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.
[7] Cheng, Shen, et al. "Nbnet: Noise basis learning for image denoising with subspace projection." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021.
[8] Chu, Xiaojie, Liangyu Chen, and Wenqing Yu. "NAFSSR: Stereo Image Super-Resolution Using NAFNet." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.