CVPR 2024最新图像去雨算法NeRD-Rain:原理与实践指南
CVPR 2024最新图像去雨算法NeRD-Rain:原理与实践指南
在计算机视觉领域,图像去雨是一项重要的图像增强任务。CVPR 2024最新研究成果NeRD-Rain提出了一种基于多尺度Transformer的图像去雨算法,通过引入隐式神经表示(INR)和双向信息传播机制,实现了更高质量的图像恢复效果。本文将详细介绍该算法的核心原理、实验结果,并提供完整的代码实践指南。
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,在合成和真实世界的基准数据集上的表现都优于最先进的方法。
核心创新点
多尺度Transformer:与现有方法依赖单一尺度不同,NeRD-Rain采用多尺度Transformer来捕捉不同尺度的特征。
隐式神经表示(INR):通过将基于像素坐标的尺度内隐神经表示与退化输入结合,形成闭环框架,以更好地探索多尺度信息。
双向信息传播:通过由粗到细和由细到粗的信息沟通,增强不同尺度特征之间的相互作用。
实验结果
NeRD-Rain在多个基准数据集上取得了显著的性能提升,特别是在真实世界数据集SPA-Data上,比现有最佳方法高出1.04 dB。
结论
NeRD-Rain提出了一种有效的多尺度Transformer网络用于单幅图像去雨。通过融合基于坐标的隐式神经表示,使得学习到的特征能够更好地促进雨去除,并提高模型在复杂场景下的鲁棒性。通过双向反馈传播操作增强了不同尺度特征之间的相互作用。实验结果表明,该方法在合成和真实世界数据集上都优于现有最佳方法。
实践指南
环境配置
# 下载代码
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 ..
数据集和预训练模型
数据集:
Rain200L:Baidu Netdisk (s2yx)
Rain200H:Baidu Netdisk (z9br)
DID-Data:Baidu Netdisk (5luo)
DDN-Data:Baidu Netdisk (ldzo)
SPA-Data:Baidu Netdisk (yjow)
预训练模型:
Rain200L:Google Drive / Baidu Netdisk (thga)
Rain200H:Google Drive / Baidu Netdisk (twg1)
DID-Data:Google Drive / Baidu Netdisk (bljv)
DDN-Data:Google Drive / Baidu Netdisk (10ut)
SPA-Data:Google Drive / Baidu Netdisk (p7h9)
训练
下载相应的数据集,并将它们放入datasets/
文件夹中。按照下面的说明开始训练模型。
bash train.sh
测试
测试模型:
python test.py
结果保存在文件夹results/
。
常见问题
ModuleNotFoundError: No module named 'natsort'
pip install natsort -i https://pypi.tuna.tsinghua.edu.cn/simple
ModuleNotFoundError: No module named 'einops'
pip install einops -i https://pypi.tuna.tsinghua.edu.cn/simple