原图 | 去雨效果 |
|
|
|
|
目录
一 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 数据集和预训练模型
- 数据集
Datasets | Download Link |
---|---|
Rain200L | Baidu Netdisk (s2yx) |
Rain200H | Baidu Netdisk (z9br) |
DID-Data | Baidu Netdisk (5luo) |
DDN-Data | Baidu Netdisk (ldzo) |
SPA-Data | Baidu Netdisk (yjow) |
- 预训练模型
Models | NeRD-Rain-S | NeRD-Rain |
---|---|---|
Rain200L | Google Drive / Baidu Netdisk (thga) | Google Drive / Baidu Netdisk (ub1n) |
Rain200H | Google Drive / Baidu Netdisk (twg1) | Google Drive / Baidu Netdisk (x45q) |
DID-Data | Google Drive / Baidu Netdisk (bljv) | Google Drive / Baidu Netdisk (n37f) |
DDN-Data | Google Drive / Baidu Netdisk (10ut) | Google Drive / Baidu Netdisk (01m0) |
SPA-Data | Google 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
至此,本文 分享的内容就结束啦。