Abstract
图像去雾是低层视觉中的一个活跃话题,随着深度学习的快速发展,许多图像去雾网络被提出。尽管这些网络的管道运行良好,但提高图像去雾性能的关键机制仍不清楚。出于这个原因,我们不打算提出一个带有花哨模块的去雾网络;相反,我们对流行的U-Net进行了最小的修改,以获得紧凑的去屏蔽网络。具体而言,我们将U-Net中的卷积块替换为带有门禁机制的剩余块,使用选择性内核融合主路径和跳过连接的特征图,并调用生成的U-Net变体gUNet。因此,gUNet在显著减少开销的情况下,在多个图像去哈希数据集上优于最先进的方法。最后,我们通过广泛的消融研究验证了这些关键设计对图像去屏蔽网络的性能增益。
![](https://i-blog.csdnimg.cn/blog_migrate/511ef9ffb789fb5df2a7187818a08c58.png)
Introduction
我们试图创建一个最小的实现,根据上面提到的观察结果结合这些关键设计。具体而言,我们首先使用具有局部残差[17]和全局残差[59]的经典U-Net[32]作为基础架构来提取多尺度信息。然后,我们使用深度方向可分离卷积层[21,45]来有效地聚集空间信息和变换特征。此外,我们基于SK模块[26]将全局信息的提取分配给该模块,该模块动态地融合来自不同路径的特征图。最后,我们在卷积块中引入了门控单元,这些门控单元充当像素关注模块和非线性激活函数。因此,提出了两个关键模块,即具有门控机制的残差块(称为gConv块)和具有信道关注机制的融合模块(称为SK融合层)。这里我们将我们的模型命名为gUNet,因为它是一个带有门控的简单U-Net变体。
我们评估了gUNet在四个图像去雾数据集上的性能,并且针对每个数据集,我们训练了四个不同深度的变体。实验结果表明,gUNet可以以显著更低的开销显著优于同期方法。图1显示了在最常用的SOTS室内设备上,gUNet与其他图像去阴影方法的比较。可以看出,gUNet的四个变体位于图表的左上角,这意味着它们以较低的计算成本优于所有图像去哈希方法。具体而言,微型模型gUNet-T依靠10%的计算成本和32%的参数,优于DehazeFormerB,而小型模型gUNet-S仅使用5.6%的计算成本,7.4%的参数,胜过PMNet。更重要的是,我们对所有四个数据集进行了广泛的消融研究,以验证这些关键设计。实验结果表明,我们提出的模块可以在图像去雾方面获得一致的性能增益。
Method
图2显示了gUNet的总体架构。我们的模型gUNet可以看作是一个7阶段U-Net变体,其每个阶段都由一堆提议的gConv块组成。此外,gUNet没有采用U-Net所采用的在卷积层之后使用级联来融合跳过连接和主路径的策略。相反,我们建议使用SK融合模块来动态融合来自不同路径的特征图。
![](https://i-blog.csdnimg.cn/blog_migrate/86effae4d21aac55a2f61b4cad9e0c8c.png)
Motivation
我们首先描述了gUNet的动机,它基于以前作品中的关键设计。首先是多尺度信息的提取,我们使用经典的U-Net[32]作为基础架构,它生成不同大小的特征图,从而提取多尺度特征。然后,我们将局部残差[17]添加到卷积块,将全局残差[59]添加到网络。为了在不显著增加参数数量和计算成本的情况下使网络更深,我们使用深度方向可分离卷积[21,45]来有效地聚集信息和变换特征。现在网络设计的关键是如何利用注意力机制来提高网络的表达能力。我们回顾方程(1),发现大气光A是共享的全局变量,而t(x)是位置相关的局部变量。在FFA-Net中,频道关注模块是唯一能够有效提取全局信息的模块。我们认为,通道注意机制有效地提取了编码A所需的信息,这是FFA网络工作的原因之一。然而,尽管信道关注模块的计算成本很小,但它引入的参数数量和延迟是不可忽略的。我们认为估计A应该是一项简单的任务,因为有许多方法[4,16,43,58]将大部分计算资源分配给估计t(x),但使用轻量级模块来估计A。因此,我们仅将此任务分配给基于SK模块[26]的融合模块,该模块动态融合来自不同路径的特征图。相应地,像素关注模块旨在使网络更加关注信息特征。我们发现GLU[7,46]中的门机制起着类似的作用。为此,我们在卷积块中引入了门控机制,并使其充当像素关注模块和非线性激活函数。
gConv Block
我们的gConv主要基于gMLP[27]和GLU[7,46]。设x为特征图,我们首先使用BatchNorm[23]通过via(x)=BatchNorm(x)对其进行归一化。为了进行推断,BatchNorm使用列车集合上跟踪的统计数据的指数移动平均值。它可以与相邻的线性层合并,更符合轻量级网络的要求。此外,BatchNorm没有LayerNorm[2]的缺点,该缺点打破了DehazeFormer[47]中提到的空间相关性。
![](https://i-blog.csdnimg.cn/blog_migrate/92364b74c699b3604f30ac6820e90085.png)
其中PWConv表示逐点卷积层,DWConv表示深度卷积层。然后,我们使用x1作为x2的选通信号,然后使用另一个PWConv对其进行投影,并且将输出与身份快捷方式x相加,其可以公式化为:
![](https://i-blog.csdnimg.cn/blog_migrate/50c3767f54423d512ca005ea140a9108.png)
在其他图像恢复任务中,使用门控机制来提高网络的表达能力并不是一个新想法[6,48,56]。与我们最相似的工作是NAFNet[6],考虑到我们两人都不使用传统的非线性激活函数,如ReLU和GELU,而是仅依赖门控机制来实现非线性。相比之下,NAFNet使用GLU的双线性变体(即,没有任何非线性激活函数),我们使用GLU原始版本(即,使用S形作为门控函数)。
SK Fusion
SK融合层是SK模块的简单修改[26]。类似的想法可以在MIRNet[55,57]和DehazeFormer中找到。设两个特征图为x1和x2,其中x1是来自跳过连接的特征图,x2是来自主路径的特征图。我们首先使用PWConv层f(·)将x1投影到⑪x1=f(x1),这在图2中未示出。我们使用全局平均池GAP(·)、MLP(PWConv-ReLU-PWConv)Fmlp(·),softmax函数和分裂运算来获得融合权重:
![](https://i-blog.csdnimg.cn/blog_migrate/ffb748c6e2feee3aaef39e9032676273.png)
最后,我们通过y=a1x1+a2x2来融合⑪x1,x2。为了减少参数的数量,MLP的两个PWConv层是降维层和增维层,这与传统的通道注意机制一致[22]。
Mixed Precision Training
混合精度训练允许在训练期间在某些层上进行低精度训练,以减少计算成本和内存使用,而不会降低模型的性能。即使在一些高级视觉任务中,混合精度训练也可以略微提高模型的准确性[18]。我们支持混合精度训练,以减少训练时间并增加小批量大小。
Implementation Details
为了简单起见,我们将每个级的gConv块数设置为{M,M,M、2M、M、M、M},将信道数设置为{N,2N,4N,8N,4N,2N、N},其中M是基本块数,N是基本信道数。为了验证gUNet的可伸缩性,我们提出了四种gUNet变体(分别表示微小、小、基本和深度的-T、-S、-B和-D)。我们将所有变体的DWConv的宽度和内核大小k设置为相同,具体来说,N=24和k=5。这四种变体的区别只是深度不同,我们将它们的基块编号M设置为{2,4,8,16}。
我们使用4卡RTX-3090来训练我们的模型。训练时,图像被随机裁剪为256×256个面片。考虑到不同的数据集具有不同的样本数,我们将每个历元的样本数设置为16384,历元的总数设置为1000,其中前50个历元用于预热,后200个历元为FrozenBN。通过这种方式,我们可以排除训练迭代的影响,并更好地分析不同数据集上消融研究的差异。由于GPU内存的限制,我们将{-T、-S、B、-D}的小批量大小分别设置为{128、128、64、32}。对于gUNet-D,其归一化批大小小于16,因此我们启用SyncBN。基于线性缩放规则[14],我们将{-T,-S,-B,-D}的初始学习率设置为{16,16,8,4}×10−4。我们使用AdamW优化器[34](β1=0.9,β2=0.999)和余弦退火策略[33]来训练模型,其中学习率从初始学习率逐渐降低到{16,16,8,4}×10−6。
![](https://i-blog.csdnimg.cn/blog_migrate/06d41bd9a7fa1552409e98f0808e15cb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a1d0633fc8e8b1a2cf3e312bdf374c90.png)
Conclusion
本文探讨了图像去噪网络的关键设计,以实现性能增益。除了常用的多尺度结构和剩余学习之外,有效利用注意力机制是提高绩效的关键。具体而言,本文提出了gUNet,它利用特征融合模块中的通道注意机制来提取全局信息,并利用门机制来代替像素注意和非线性激活函数来建模空间变化的传输图。我们评估了gUNet在四个图像去哈希数据集上的性能,结果表明,gUNet与现有技术的方法相当,甚至更好,开销更小。更重要的是,我们进行了大规模消融研究,并表明图像去哈希网络的性能增益主要来自注意力机制、非线性激活函数、全局信息提取、归一化层和训练时间段的数量。