基于深度学习的图像去雨算法:RESCAN(Recurrent Squeeze-and-Excitation Context Aggregation Network)
字数 1371 2025-11-03 18:00:43
基于深度学习的图像去雨算法:RESCAN(Recurrent Squeeze-and-Excitation Context Aggregation Network)
题目描述
图像去雨是计算机视觉中一个重要的底层任务,旨在从被雨滴或雨纹污染的图像中恢复出清晰的背景场景。雨滴在图像中通常表现为密集的半透明条纹或遮挡物,会降低图像质量,影响后续任务(如目标检测、分割等)的性能。RESCAN算法通过结合递归神经网络和注意力机制,逐步去除雨纹,同时保留图像细节。其核心思想是模拟雨纹的累积过程,并反向执行多阶段去雨操作。
解题过程
-
问题分析:
- 雨纹具有多尺度特性(如远近雨滴大小不同)和空间分布不规则性,传统滤波方法(如高斯滤波)容易模糊图像细节。
- 深度学习方法需解决两个关键问题:
(1)如何建模雨纹的复杂模式;
(2)如何避免去雨过程中背景信息的损失。 - RESCAN将去雨视为一个渐进式恢复任务,通过递归结构逐步细化结果。
-
网络结构设计:
RESCAN由多个递归阶段(Stage)组成,每个阶段包含以下模块:- 上下文聚合模块(Context Aggregation Module, CAM):
- 使用扩张卷积(Dilated Convolution)扩大感受野,捕获多尺度雨纹特征(如细密雨丝和大型雨滴)。
- 例如,通过不同扩张率的卷积(如1、2、4)并行提取特征,再融合结果。
- 通道注意力模块(Squeeze-and-Excitation Block):
- 对CAM输出的特征图进行通道权重重标定。具体步骤:
(1)全局平均池化(Squeeze)得到每个通道的全局特征;
(2)全连接层+ReLU(Excitation)计算通道间依赖关系;
(3)Sigmoid激活生成权重,加权到原特征上,增强与雨纹相关通道的响应。
- 对CAM输出的特征图进行通道权重重标定。具体步骤:
- 递归连接:
- 前一阶段的输出作为当前阶段的输入,实现渐进式去雨。每个阶段预测一个残差雨层,从输入中减去该残差,逐步逼近清晰图像。
- 上下文聚合模块(Context Aggregation Module, CAM):
-
损失函数设计:
- 使用多阶段监督损失,每个递归阶段均计算损失:
- 重建损失:L1距离衡量去雨结果与真实清晰图像的差异(比L2对边缘更友好):
\(L_{rec} = \frac{1}{N} \sum_{i=1}^{N} \| I_{clean} - I_{derained} \|_1\) - 感知损失:通过预训练VGG网络保证语义一致性,避免过度平滑。
- 总损失为各阶段损失的加权和,确保中间结果也逼近目标。
- 重建损失:L1距离衡量去雨结果与真实清晰图像的差异(比L2对边缘更友好):
- 使用多阶段监督损失,每个递归阶段均计算损失:
-
训练与优化:
- 数据集:使用合成雨图(如Rain100L)和真实雨图(如Rain800)进行训练。
- 训练技巧:
- 渐进式训练策略,先训练浅层阶段,再逐步加深网络。
- 数据增强:随机翻转、旋转雨图,模拟不同方向的雨纹。
- 优化器:Adam优化器,动态调整学习率。
-
算法优势:
- 递归结构有效处理雨纹的叠加效应,注意力机制精准定位雨区。
- 在多尺度雨纹数据集上,PSNR/SSIM指标优于传统非深度方法(如稀疏编码)和早期深度学习模型(如DDN)。
-
局限性:
- 对极端密集雨纹或动态场景的去雨效果有限,需结合时序信息(如视频去雨)。
- 计算成本较高,因多阶段递归需多次前向传播。
通过上述设计,RESCAN实现了从单张图像中高效去除雨纹,为后续高级视觉任务提供清晰的输入。