当前位置: 首页 > article >正文

【CVPR 2024】最新图像增强算法 | 图像去雨 | Deraining

原图去雨效果

目录

一 NeRD-Rain

二 实践

1 Setup

2 数据集和预训练模型

3 训练

4 测试

三 报错


一 NeRD-Rain

论文题目:Bidirectional Multi-Scale Implicit Neural Representations for Image Deraining

官方论文地址:https://arxiv.org/pdf/2404.01547

官方代码地址:https://github.com/cschenxiang/NeRD-Rain

【摘要】

如何有效地探索雨线的多尺度表示对图像去雨具有重要意义。与现有的基于Transformer的方法大多依赖于单一尺度的降雨外观不同,我们开发了一个端到端的多尺度Transformer,利用不同尺度下的潜在有用特征来促进高质量的图像重建。为了更好地从空间变化的雨线中探索常见的退化表示,我们将基于像素坐标的尺度内隐神经表示INR与退化输入结合在一个闭环设计中,使学习到的特征便于去除雨水,并提高模型在复杂场景中的鲁棒性为了从不同尺度上保证更丰富的协同表示,我们通过执行由粗到细和由细到粗的信息沟通,将简单而有效的尺度间双向反馈操作嵌入到我们的多尺度Transformer中。大量的实验表明,我们的方法,称为NeRD-Rain,在合成和真实世界的基准数据集上的表现都优于最先进的方法。

图1。所提出的方法和目前存在的多尺度解决方案的说明。

( a )由粗到精方案[ 22、63 ];

( b )多块方案[ 61 ];

( c )我们的方法。与之前的方法相比,方法一将隐式神经表示( INR )集成到我们的双向多尺度模型中,形成了一个闭环框架,可以更好地探索多尺度信息,并对复杂的雨线进行建模

图2。所提出的具有隐式神经表示的双向多尺度Transformer ( NeRD- Rain )的整体架构由尺度内流(即INR支路和不等Transformer 支路)和尺度间流(即,由粗到细和由细到粗的双向分支)组成。所提出的INR分支由两个具有粗细特征网格的基于协调的MLP组成。我们在Transformer分支和INR分支中构建了一个尺度内共享编码器,其中两种类型的表示(也就是说,尺度特殊的和常见的雨)能够相互补充。我们制定了所有的分支,以形成闭环网络架构。

表1。在五个常用的基准数据集上对所提出的方法与最先进的方法进行了定量评估。我们的NeRD - Rain取得了更高的定量结果,特别是在真实的基准数据集SPA - Data上将最先进的水平提高了1.04 dB。

【实验结果】

图3。在Rain200H数据集上取得了较好的结果[ 59 ]。与( c ) - ( k )中的去雨结果相比,我们的方法恢复出了细节更加清晰的高质量图像。在图形中放大可以更好地观察去雨能力。

图4。在SPA - Data [ 51 ]数据集上取得了较好的结果。与( c ) - ( f )中的去雨结果相比,我们的方法恢复出了更清晰的图像

图5。从[ 9 ]中得到了关于真实世界雨天图像的结果。与( b ) - ( f )中的去雨结果相比,我们的方法去除了大部分的雨线,并恢复出了更清晰的图像。在图形中放大可以更好地观察去雨能力。

图6。对一幅真实世界的雨天图像进行消融定性比较。在我们的方法中,SE '表示一个共享编码器。

【结论】

我们提出了一种有效的多尺度Transformer网络用于单幅图像去雨。为了更好地探索常见的雨天退化特征,我们在相邻尺度之间融合了基于协调的隐式神经表示,使得学习到的特征能够更好地促进雨去除,并提高模型在复杂场景下的鲁棒性。为了以协作的方式增强不同尺度特征之间的相互作用,我们还通过执行由粗到细和由细到粗的信息沟通,在我们的多尺度Transformer中引入了一种简单而有效的双向反馈传播操作。通过将所提出的方法构建成一个端到端的可训练模型,我们表明它在两个合成上都表现出了对最先进方法的良好性能

二 实践

1 Setup

# 下载代码

git clone https://github.com/cschenxiang/NeRD-Rain.git

# 或者DownLoad ZIP,下载成功后解压。

cd NeRD-Rain-main

pip install -r requirements.txt
​
# 安装warmup scheduler

cd pytorch-gradual-warmup-lr; python setup.py install; cd ..

2 数据集和预训练模型

  • 数据集
DatasetsDownload Link
Rain200LBaidu Netdisk (s2yx)
Rain200HBaidu Netdisk (z9br)
DID-DataBaidu Netdisk (5luo)
DDN-DataBaidu Netdisk (ldzo)
SPA-DataBaidu Netdisk (yjow)
  • 预训练模型
ModelsNeRD-Rain-SNeRD-Rain
Rain200LGoogle Drive / Baidu Netdisk (thga)Google Drive / Baidu Netdisk (ub1n)
Rain200HGoogle Drive / Baidu Netdisk (twg1)Google Drive / Baidu Netdisk (x45q)
DID-DataGoogle Drive / Baidu Netdisk (bljv)Google Drive / Baidu Netdisk (n37f)
DDN-DataGoogle Drive / Baidu Netdisk (10ut)Google Drive / Baidu Netdisk (01m0)
SPA-DataGoogle Drive / Baidu Netdisk (p7h9)Google Drive / Baidu Netdisk (mhkn)

3 训练

下载相应的数据集,并将它们放入datasets /文件夹中。

按照下面的说明开始训练模型。

bash train.sh

4 测试

测试模型:

python test.py

结果保存在文件夹results/

三 报错

1 ModuleNotFoundError: No module named 'natsort'

# ModuleNotFoundError: No module named 'natsort'
pip install natsort  -i https://pypi.tuna.tsinghua.edu.cn/simple

 

2 ModuleNotFoundError: No module named 'einops'

# ModuleNotFoundError: No module named 'einops'
pip install einops -i https://pypi.tuna.tsinghua.edu.cn/simple

至此,本文 分享的内容就结束啦。


http://www.kler.cn/news/359426.html

相关文章:

  • 详解Java之异常
  • linux下建立软链接
  • windows 上验证请求接口是否有延迟
  • LeetCode Hot100 | Day6 | 从前序和中序数组构建二叉树
  • 使用短效IP池的优势是什么?
  • Axure显示与隐藏——元件动作一
  • 面对AI算力需求激增,如何守护数据中心机房安全?
  • Linux系统:tac命令
  • 红日靶机(五)笔记
  • ES2017 新特性 (Async和await)
  • 【从零开始的LeetCode-算法】3099. 哈沙德数
  • Lua环境安装
  • 人工智能:塑造未来生活与工作的力量
  • 链表的基本操作(FreeRTOS基础)
  • SpringBoot智能推荐:健康生活新选择
  • 大话哈希冲突
  • 【Flutter】基础入门:Widgets
  • 免费开源AI助手,颠覆你的数字生活体验
  • 从苏宁电器到卡巴斯基(第二部)第37篇:我当高校教师的这几年 XIII
  • 快速排序入门