SMGARN(图像去雪)学习

@

SMGARN(图像去雪)

Snow Mask Guided Adaptive Residual Network for Image Snow Removal

参考 https://doi.org/10.1016/j.cviu.2023.103819

论文

方法

如图所示,SMGARN 由三个部分组成:Mask-Net、引导融合网络( Guidance-Fusion Network)和重构网络(Reconstruct-Net)。

Mask-Net


掩码网络(M)以雪图像(I𝑠𝑛𝑜𝑤)作为输入,并输出雪掩码(𝑚)(图2中掩码网络的绿色输出线)和掩码特征图(𝑓𝑚𝑎𝑠𝑘)(图中掩码网络的红色输出线)

  • 𝑓𝑚𝑎𝑠𝑘 ∈ 𝐻×𝑊×𝐶
  • 𝑚 ∈ 𝐻×𝑊×3


掩码网络的主干由一个SnowMaskBlock和两个卷积层组成。在SnowMaskBlock中,设计了像素注意力单元,即自像素注意力(SA)单元和交叉像素注意力(CA)单元。

在此处使用的像素注意力旨在增强图像中被雪覆盖区域的激活值,以帮助模型更好地提取雪的特征。此外,我们在SnowMaskBlock中添加了残差连接,以促进特征表达。

其中,SA用于增强重要特征的表示并抑制不重要特征在图像中的影响。CA则采用两种不同的编码函数,以提高网络的适应性。CA和SA的操作可以定义为:

  • ⊙ represents the Hadamard product operation.(哈达玛积操作)
  • 哈达玛积是矩阵的一类运算,若A=(aij)和B=(bij)是两个同阶矩阵,若cij=aij×bij,则称矩阵C=(cij)为A和B的哈达玛积,或称基本积

为了充分提取深层信息,我们在方程中将编码函数替换为卷积层

  • SA首先对特征矩阵中的每个元素进行平方运算,以突出高激活值的区域(即有雪的区域),并抑制低激活值的区域(即没有雪的区域)。
  • 为了进一步增强特征的表示能力,CA通过两个并行卷积单元对特征矩阵进行操作,然后使用哈达玛积将两个特征进行交集

GF-Net


为了更好地保留雪掩码的特征,我们使用雪掩码特征图作为输入,而不是雪掩码本身。

对于RU(ResUnit):

GF-net采用了一种多级残差方法来融合浅层和深层的残差信息,以进一步改善除雪效果。GF-Net中的自适应残差块有两级,第i级的残差可以表示为:

Reconstruct-Net

  • 如图所示,Reconstruct-Net由三个多尺度聚合残差块(MARBs)和一个卷积层组成。
  • 在Reconstruct-Net中,三个MARB堆叠后会执行一个全局残差连接,以增强特征表示。

MARB是用来利用不同的感受域捕捉多尺度特征。由遮蔽效应引起的雾霾效应和前面网络部分去除的残留雪在图像中的分布是不均匀的。使用MARB的多尺度感受域可以很好地去除和修复这些区域的污染。

具体来说,MARB由1×1、3×3和5×5的并行卷积层组成,所有这些层都会分别通过一个3×3的卷积层。然后,3×3卷积核大小的分支将与1×1和5×5卷积核大小的分支连接,形成两个新的分支。在对这两个新分支执行3×3卷积层后,它们也将连接成一个新的分支,并再次执行3×3卷积层。最后,将MARB的输入与输出特征相加,以增强信息流。

损失函数

在整个训练过程中,我们使用𝐿1损失作为损失函数

  • 在Mask-Net中,应用了一个掩码损失 L(mask):

其中,M(⋅)表示掩码网络,M(Isnowy) 表示预测的雪掩码,Imask 是对应的真实雪掩码。这里, ||·|| 1表示 L1 范数,也就是预测值与真实值之间绝对差值的和。

  • 在Reconstruct-Net中,应用了一个掩码损失 𝐿(𝑟𝑒𝑐𝑜𝑛𝑠𝑡𝑟𝑢𝑐𝑡):

  • 因此,重构损失𝐿(𝑟𝑒𝑐𝑜𝑛𝑠𝑡𝑟𝑢𝑐𝑡)和掩模损失𝐿(𝑚𝑎𝑠𝑘)构成了完整的掩模辅助损失𝐿(𝑚𝑎𝑠):

  • 其中,𝜆是控制掩模损失组成的超参数。为了确保𝑟𝑒𝑐𝑜𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝐿和𝑚𝑎𝑠𝑘𝐿受到同等的关注,本文中将𝜆设置为1。

实验

评价指标

  • PSNR(峰值信噪比)Peak Signal-to-Noise Ratio
    • 基于像素差异,简单易计算,但可能不完全反映人眼的感知。
  • SSIM(结构相似性指数)Structural Similarity Index Measure
    • 考虑了结构信息,更贴近人类视觉系统的感知,通常在评估图像质量时更为有效。
  • 所以,本文同时使用这两个指标来全面评估图像质量。

定量比较

在不同的数据集(Snow100K,CSD,SRRS,SnowCityScapes,SnowKITTI)上的测试结果



视觉比较

根据上图,可以清楚地观察到,SMGARN能够重建出非常接近真实(GT,Ground Truth”,即“真实值”或“真实数据)的高质量无雪图像。与当前最先进的方法进行了视觉比较,从图中可以看出,两者在视觉上非常接近,甚至在某些区域,SMGARN重建的图像有更少的雪残留。

在上图中展示了SMGARN在真实场景中的去雪能力,以验证所提方法的泛化能力(请放大查看细节)。从图中可以明显看到,SMGARN能够很好地去除大雪颗粒和密集雪花。这得益于所提出的掩码网络,能够预测雪的准确位置和形状。在预测的雪掩码的帮助下,SMGARN重建的图像几乎没有雪,且纹理细节得到了更好的保留。

模型大小和性能比较

SMGARN与其他经典去雪方法在参数数量和性能上的权衡分析。其中,JSTASR也使用了雪掩码的信息进行去雪,但其参数数量是我们的SMGARN的10倍。同时,我们的方法在PSNR和SSIM上的表现分别提高了1.98 dB和0.06,与JSTASR相比。与HDCWNet相比,我们的方法在去雪性能上提高了超过1 dB,且参数更少。与TransWeather和SnowFormer相比,我们的SMGARN在参数和性能方面实现了更好的平衡。

研究

  • 验证Mask-Net中SA和CA效果

  • 验证Mask-Net效果

  • 验证GF-Net效果

  • Reconstruct-Net中不同数量MARBs的效果

代码实现

数据集

这里我们使用的是CSD(Comprehensive Snow Dataset)来进行训练和测试。

目录按照以下格式:

  • EDGE文件夹存放的是Snow Mask图像
  • HR文件夹存放的是没有雪的清晰图像
  • LR文件夹存放的是原始图像

运行

这里我们是在kaggle上运行,上传对应的代码和数据集(也可以加上之前的model继续训练)

  • csd-test:数据集
  • smgarn-code:代码
  • smgarn-exp:之前运行的结果,内容可参考下面的结果图
  • 以上三个文件包可以在kaggle的dataset中搜索到

对应的代码notebook:https://www.kaggle.com/code/taifeng/smgarn-1

运行对应代码得到最后结果:

  • model文件夹中有model_latest.pt和model_best.pt
  • result中有测试输出的十张清晰图片

结果

我训练了几次,每一次差不多十个epoch

以下是图片迭代过程

posted @ 2024-11-12 19:23  dax_cy  阅读(315)  评论(0)    收藏  举报