ICCV2021:Structure-Preserving Deraining with Residue Channel Prior Guidance

news/2024/7/21 5:26:40 标签: 计算机视觉, 图像处理

摘要

论文
代码

这个题目有点像CVPR2020的论文名称:《Structure-Preserving Super Resolution With Gradient Guidance》

要解决的问题是:虽然现有的CNN-based方法可以去除部分雨纹,但它们很难适应真实场景,并恢复出清晰准确的结构、高质量的无雨图像。本文为了解决这一问题,提出了一个Structure- Preserving Deraining Network (SPDNet) with RCP guidance。SPDNet在RCP的指导下直接生成结构清晰准确的高质量无雨图像,不依赖任何雨合成假设。

具体而言,我们发现,图像的RCP比雨图像包含更准确的结构信息。因此,我们将其引入到我们的去雨网络中,以保护无雨图像的结构信息。同时,提出了一种基于小波的多级模块(WMLM)作为雨天图像背景信息学习的主干网络,并设计了一种交互式融合模块(IFM)以充分利用RCP信息。此外,还提出了一种迭代指导策略,以逐步提高RCP的精度,在渐进路径中细化结果。实验结果在真实场景和合成数据集上都达到了SOTA。

方法

网络结构

在这里插入图片描述
SPDNet使用基于小波的特征提取主干作为主要结构,并引入了残差通道先验(RCP)指导机制来保持结构。在SPDNet中,基于小波的特征提取主干用于背景信息的学习,它由一系列基于小波的多级模块(WMLM)组成。然而,仅使用基于小波的特征提取主干很难保持重建图像的清晰结构。因此,在模型中引入RCP以提供额外的辅助信息,从而保留重建图像的结构信息。

Wavelet-based Feature Extraction Backbone

由于雨线的大小和密度是任意的,因此雨线图像中物体的遮挡区域和遮挡程度是未知的。multi-level strategy 可以很好地学习不同尺度的特征。直接采用下采样会造成信息损失,因此采用小波变换,而且小波变换可以捕捉频域和位置信息,有助于结果重建。具体结构图里画的很清楚。细节:
  • SE-ResBlock就是做超分的RCAN里面的RCAB,SRiR就是RCAN里面的Residual Group
  • 因为小波变换后的通道数发生变化,后面要+的时候用卷积进行通道变换。

RCP Guided Structure-Preserving Deraining

Figure2是文中提到的Residue Channel Prior的可视化,可以看到,雨图的RCP展现的却是背景信息,妙!这个有助于结果的重建。这个RCP计算起来呢也非常简单:which is the residual result of the maximum channel value and minimum channel value of the rainy image.也就是雨图(注意是雨图而不是特征图)的通道值得极差。 上图是原文里面关于RCP的理论依据来源。雨图的RCP计算出来以后,经过卷积变换,交给IFM模块。这个模块融合两部分的信息。

Interactive Fusion Module

结构如图5所示。文中所讲上下特征经过conv_3*3变换以后相乘,得到一个similarity map ,这里的相乘是element-wise的,然后经过sigmoid激活后再分别和自身特征相乘与相加。(作者可以把符号这些东西也标到图中,会更明了一些)
Iterative Guidance Strategy
从网络结构可以看到,中途会产生过程图像,继而产生新的RCP,如此的迭代指导有助于结果的重建。此外还发现,在每次计算RCP的时候会将之前阶段的特征也cat起来,也就是图中的skip-connection,在文中被称为ensemble learning,在消融实验中做了和其他方法的对比。Figure 6展示的是RCP随着图像质量的提升,也逐渐清晰。
loss

L2,多阶段都使用。

实验

和SOTA对比

在合成的以及真实数据集上效果都很好。速度也还不错。

Ablation Study

Table 3和4展示的是IFM结构设计和ensemble 以及小波变换模块个数的实验。

Table 5展示的是RCP指导的影响。Figure10是可视化的结果。

同时,文章还做了在目标检测上的实验。


http://www.niftyadmin.cn/n/1328817.html

相关文章

CVPR2021:Towards Real-World Blind Face Restoration with Generative Facial Prior

单位:腾讯PCG 论文 代码 Xintao Wang大佬(ESRGAN、EDVR作者)的力作,这篇论文和他们另一篇CVPR2021论文《GLEAN: Generative Latent Bank for Large-Factor Image Super-Resolution》想法相近,但是做的是两个不同的恢复…

ICCV2021:Focal Frequency Loss for Image Reconstruction and Synthesis

Focal Frequency Loss for Image Reconstruction and Synthesis 代码 摘要 由于生成模型的发展,图像重建和合成技术取得了显著的进步。尽管如此,生成图像和真实世界图像之间仍可能存在差距,特别是在频域。在这项研究中,我们发现…

ICCV2021:AdaAttN: Revisit Attention Mechanism in Arbitrary Neural Style Transfer

论文 代码 摘要 快速、任意的风格转换引起了学术界、工业界和艺术界的广泛关注,因为它支持各种应用的灵活性。现有的解决方案要么专注于不考虑特征分布地将风格特征融入到深层内容特征,或根据风格特征自适应地规范化深层内容特征使得他们的全局统计量是…

ICCV2021:Spatially-Adaptive Image Restoration using Distortion-Guided Networks

论文 代码(应该还没放出来) 摘要 我们提出了一种基于学习的通用解决方案,用于恢复遭受空间变化的退化图像。先前的方法通常是特定于退化的,并且在不同的图像和图像中的不同像素上采用相同的处理。然而,我们假设这样的…

torch.bmm()验证

官网的说明 torch.bmm(input, mat2, outNone) → Tensorbmm的输入必须是3维的。其他维度会出错: import torch a torch.Tensor(4,2,2,3) b torch.Tensor(4,2,3,5) c torch.bmm(a,b)Traceback (most recent call last):File "/Users/XXX/Desktop/MyCode/xxx.py",…

Leetcode237 删除链表中的节点

题目连接 请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。 题目数据保证需要删除的节点 不是末尾节点 。 代码 class Solution:def deleteNode(sel…

Leetcode496 下一个更大元素 I

题目链接 给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。 请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。 nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在&#x…

Leetcode575 分糖果

题目链接 给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。 示例 1: 输入: candies [1,1,2,2,3,3] 输出: 3 解析: 一共有三…