基于深度学习的图像去雨算法:RESCAN(Recurrent Squeeze-and-Excitation Context Aggregation Network)
字数 1431 2025-11-02 17:11:24
基于深度学习的图像去雨算法:RESCAN(Recurrent Squeeze-and-Excitation Context Aggregation Network)
题目描述
图像去雨旨在从单幅雨图中恢复出清晰的背景场景。雨滴/雨纹在图像中呈现为半透明的条纹状噪声,其形态、大小、方向各异,且具有复杂的空间分布。RESCAN算法通过深度学习技术,特别是循环神经网络(RNN)和注意力机制,来建模雨纹的多尺度特性,并逐步从雨图中分离出干净的背景。
解题过程
-
问题分析
- 雨图的退化模型可表示为:\(O = B + R\),其中 \(O\) 是观测到的雨图,\(B\) 是清晰背景,\(R\) 是雨层。
- 难点在于雨纹的多样性和重叠性(如大雨时多条雨纹叠加),需同时处理全局结构和局部细节。
- 传统方法依赖手工特征(如稀疏编码),但难以适应复杂雨纹;深度学习端到端学习优势明显,但需设计网络以显式建模雨纹的渐进消除过程。
-
核心思想:渐进式去雨与注意力机制
- RESCAN引入多阶段循环架构,每个阶段逐步去除不同尺度的雨纹,避免一次性去雨导致的残留或过度平滑。
- 使用通道注意力机制(Squeeze-and-Excitation) 动态调整特征权重,让网络聚焦于雨纹相关的区域。
- 通过上下文聚合模块融合多尺度信息,增强对雨纹形状和位置的感知。
-
网络结构设计
- 编码器-解码器主干:采用类似U-Net的结构,编码器通过卷积下采样提取多尺度特征,解码器通过反卷积上采样恢复分辨率。
- 循环阶段(Recurrent Stages):网络包含多个重复阶段(如4个),每个阶段输入当前残差雨图,输出该阶段的去雨结果。前一阶段的输出作为下一阶段的输入,实现渐进优化。
- 注意力模块(SE Block):在每个阶段的特征图中引入SE模块:
- Squeeze:全局平均池化将特征图压缩为通道描述符。
- Excitation:全连接层学习各通道的重要性权重,并归一化到[0,1]。
- 重加权:将权重与原特征图逐通道相乘,突出雨纹相关特征。
- 上下文聚合(Context Aggregation):使用空洞卷积(Dilated Convolution)扩大感受野,在不损失分辨率的情况下捕获更大范围的雨纹上下文信息。
-
损失函数设计
- 结合多阶段监督,每个阶段均计算损失:
- 重建损失:均方误差(MSE)约束去雨结果与真实清晰图像的像素级相似性。
- 感知损失:基于VGG网络的特征图差异,保留内容一致性。
- 总损失为各阶段损失的加权和,确保渐进过程的稳定性。
- 结合多阶段监督,每个阶段均计算损失:
-
训练与优化细节
- 数据集:使用合成雨图(如Rain100L、Rain100H)和真实雨图(如SPA-Data)进行训练。
- 数据增强:随机翻转、旋转模拟不同方向的雨纹。
- 优化器:Adam优化器,初始学习率设为0.001,分段衰减策略。
-
关键创新与效果
- 循环渐进机制:显式模拟雨纹的逐步消除过程,优于单次去雨。
- 注意力引导:SE模块自适应增强雨纹特征,减少背景误删。
- 在基准测试集上,RESCAN在PSNR/SSIM指标上优于同期算法(如DID-MDN、PreNet),尤其在强雨场景下细节保留更完整。
总结
RESCAN通过循环结构和注意力机制,将复杂去雨任务分解为多阶段渐进处理,实现了对雨纹的精准建模与分离。其设计思想可推广至其他图像恢复任务(如去雾、去雪),体现了结构化先验与数据驱动学习的有效结合。