【论文阅读】Single Image Deraining: A Comprehensive Benchmark Analysis

论文发表于CVPR2019
论文链接

对于单张图像去雨问题,大规模数据集和算法标准的缺失使得衡量取得的进展以及这些模型在实际应用中的效果。该论文试图填补这个缺口,对进行了综合的学习和评估,总结了目前存在的雨图模型,提出了一个大规模的benchmark,包括一个大数据集和多个涉及不同方面的评价指标

雨图模型

rain streak

雨线图可以表示为干净背景B和稀疏的线型雨水S的线性叠加:
在这里插入图片描述

raindrop

雨点图可以视为干净背景B和分散的、小范围、局部区域的雨点带来的模糊效果的组合:
在这里插入图片描述
M是一个二元掩码,如果该像素属于雨区,则M=1,若属于背景区则M=0

rain and mist

雨图常包含雨水及其带来的雾效。这种雨图可以建模为雨线模型+大气散射霾模型(atmospheric scattering haze model):
在这里插入图片描述
S是雨线,t和A是透射图(transmission map)和大气光(atmospheric light),它们决定了雾/薄雾成分

现有模型

现有模型可以分为三类:

  • 基于多帧的模型
    早期的模型需要视频中多个帧的图像作为参考,得到雨水的平均强度。但这些方法无法用于单张图像去雨
  • 基于先验知识的模型
    许多方法利用干净的图像或雨水类型的先验知识来消除雨水。它们依赖精心设计的先验,这些先验通常都相对简单。因此,它们在场景复杂、雨水类型多变的真实雨图上往往表现得不尽如人意
  • 数据驱动的CNN模型
    近几年的模型中,CNN占主导地位。但它们的性能取决于训练集的合成数据,如果真实雨图与训练数据的域不匹配(domain mismatch),则可能会出现问题

新的Benchmark

作者提出了一个新的benchmark,从多个角度评估去雨模型。整理、生成了一份大规模数据集,包括上述三种雨图的训练集,测试集中合成和真实数据集都包含。其中包含两个人工标注object bounding box的真实雨图数据集进行针对特定任务的评估

大规模数据集MPID

现有的数据集要么规模太小,要么缺少足够的真实图像来进行多样化的评估,而且没有任何一个数据集有语义标注或者考虑去雨后的图像在下游任务上的性能。作者整理、重新合成了大规模数据集MPID(Multi-Purpose Image Deraining),整体组成如下表所示:
在这里插入图片描述

训练数据集:三个合成数据集

作者从网上收集室外白天无雨无雾多云天气、更贴近实际光照条件的图像,根据三种雨图模型合成了两个数据集(T即"training"):Rain streak (T), Rain and mist (T)。Rain drop(T) 数据集从DeRaindrop中借用

测试数据集

采用与训练集相同的方法产生了三个合成测试集(S即“synthetic testing”):Rain streak(S), Rain drop (S), Rain and mist (S);从网上收集了三个对应雨图模型的真实雨图数据集 (R即“real-world testing”):Rain streak (R ) , Raindrop (R ), and Rain and mist (R )

评价

指标比较法

作者使用了两种参照指标PSNR,SSIM和三种无参照指标NIQE, SSEQ, BLIINDSII

人为主观比较法

作者从三种雨图模型的数据集中选取不同数量的图像,请11位评价人员对其进行打分

任务驱动比较法

去雨任务被视为一些下游的视觉任务(比如目标检测)的预处理步骤。因此作者希望通过实验检验经过去雨的图像是否对下游任务起到了帮助

实验结果表明,所有参与比较的现有去雨模型生成的去雨图在目标检测上的效果都比直接使用雨图要差

在超高清图像去雨(Ultra-High-Definition Image Deraining)领域,研究主要集中在开发能够有效去除雨痕同时保留图像细节的算法。近年来,随着深度学习的发展,特别是卷积神经网络(CNN)和生成对抗网络(GAN)的应用,该领域的性能得到了显著提升。 ### 图像去雨的基准数据集 为了评估不同去雨方法的有效性,研究者们构建了一些基准数据集。其中较为常用的包括: - **Rain100H**:包含100对真实有雨和无雨图像,适用于评估单幅图像去雨算法[^1]。 - **Rain100L**:与Rain100H类似,但合成的是轻度降雨效果,用于测试算法在不同降雨强度下的表现[^1]。 - **DID-MDN**:该数据集包含了多种降雨模式下的图像,并提供了多尺度的雨层分解[^1]。 - **PReNet++**:作为PReNet的扩展版本,PReNet++引入了递归残差结构来进一步提高去雨效果。 这些数据集不仅为算法提供了训练样本,也为定量评估去雨效果提供了标准。 ### 高效去雨方法 在高效去雨方法方面,近年来的研究趋势是结合注意力机制、多尺度特征融合以及轻量化模型设计。以下是一些具有代表性的方法: #### 1. PReNet (Progressive Recurrent Network) PReNet采用了一个循环神经网络结构,通过逐步细化的方式去除雨滴。它利用了前馈与反馈连接相结合的设计,使得网络能够在多个阶段中不断优化去雨结果。实验表明,PReNet在多个基准数据集上均取得了优异的表现[^1]。 #### 2. SPANet (Spatial Attentive Network) SPANet引入了空间注意力机制,专注于识别并增强图像中的关键区域,从而更好地恢复被雨水遮挡的内容。这种方法尤其适合处理局部密集型的雨痕问题[^1]。 #### 3. DMPHN (Dual Multi-Patch Hierarchical Network) DMPHN通过多尺度补丁层次化处理来捕捉不同级别的雨痕信息。其双分支结构分别处理低频和高频成分,最终将两者融合以获得更清晰的结果。这种设计有助于提升去雨后的纹理细节质量。 #### 4. AECRNet (Attention-Enhanced Contextual Refinement Network) AECRNet结合了上下文感知模块和注意力机制,旨在从复杂的背景中提取出更加准确的语义信息。此外,它还采用了级联式架构,使每一步都能基于前面步骤的结果进行改进。 #### 5. MPRNet (Multi-Stage Progressive Image Restoration Network) MPRNet是一个多阶段渐进式的图像修复网络,专为解决包括去雨在内的多种图像退化问题而设计。每一阶段都专注于解决特定类型的噪声或模糊现象,整体流程类似于流水线操作,可以逐层剥离各种干扰因素[^1]。 ### 示例代码片段 下面是一个简化的PReNet模型定义示例,使用PyTorch框架实现: ```python import torch import torch.nn as nn class ResidualBlock(nn.Module): def __init__(self, channels): super(ResidualBlock, self).__init__() self.conv1 = nn.Conv2d(channels, channels, kernel_size=3, padding=1) self.relu = nn.ReLU() self.conv2 = nn.Conv2d(channels, channels, kernel_size=3, padding=1) def forward(self, x): residual = x x = self.conv1(x) x = self.relu(x) x = self.conv2(x) x += residual return x class PReNet(nn.Module): def __init__(self, num_res_blocks=5): super(PReNet, self).__init__() self.num_res_blocks = num_res_blocks # Encoder self.encoder = nn.Sequential( nn.Conv2d(3, 64, kernel_size=3, padding=1), nn.ReLU(), *[ResidualBlock(64) for _ in range(num_res_blocks)] ) # Decoder self.decoder = nn.Sequential( nn.Conv2d(64, 3, kernel_size=3, padding=1), nn.Sigmoid() # 输出范围[0,1] ) def forward(self, x): out = self.encoder(x) out = self.decoder(out) return out ``` 以上代码仅展示了PReNet的基本结构,实际应用时还需要考虑更多的细节如损失函数的选择、训练策略等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值