来源:Research status and prospect of single image rain removal algorithm Chen Shuman,Chen Wei ,Yin Zhong ( School of Optical-Electrical & Computer Engineering,University of Shanghai for Science & Technology,Shanghai 200093,China)
图像去雨算法通过对有雨图像进行分析和处理从而去除雨水条纹,恢复干净的背景场景,有助于提升计算机视觉任务识别精度,因此成为当下的研究热点。为系统地了解该领域的研究现状和发展趋势,首先介绍了典型的雨水合成模型,其次从基于模型驱动和基于数据驱动两个方面重点分析了典型图像去雨算法模型和方 法; 之后比较了去雨图像质量评价指标及雨水数据集; 最后,对单幅图像去雨算法未来发展趋势进行了展望。
关键词: 图像去雨; 图像复原; 深度学习; 卷积神经网络
目录
1、算法分类
据目前调查,我们将图像去雨算法归纳为两类:
1)基于模型的算法
(model-driven);
2)基于数据学习的算法(data-driven)。
通常基于模型的算法是以各种雨模型为基础,将雨图分散成背景层和雨层的复合叠加问题,此类研究着重于如何对雨条纹层与背景层进行分离;而基于数据学习的算法往往借助深度网络的建立抽取出实际雨图像中的特征点和层级关系,通过多次的层级映射、约束框架和强化学习等方式,来实
现原始雨图像和原图的映射关系。
a) 基于模型驱动的图像去雨算法。该类方法利用图像的 先验知识,如雨条纹的方向、密度和尺寸等约束去雨问题及去 雨模型,再通过设计优化算法进行求解,从而获得干净无雨的 图像。具体的算法有基于图像分解的算法[1]、判别性稀疏编 码算法[3]、联合双层优化算法[4]、定向全局稀疏模型[5]、高斯 混合模型[6]等
b) 基于数据驱动的图像去雨算法。以深度学习为代表, 通过构建神经网络,利用成对的雨条纹标签和干净无雨图像来 学习有雨到无雨的非线性映射。具体的算法有 JORDER[7]、 DetailNet [8,9]、 Scale-Aware [10]、 RESCAN[11]、 DID-MDN[12]、 PyramidDerain [13]、UMRL [14]等。但其全监督的训练方式依赖于 成对的带标签的数据集,而真实成对的有雨/无雨图像则难以获 取,人工合成的降雨图像与实际降雨图像之间的差别会导致模 型去雨 效 果 不 理 想,因此引入了生成对抗网络[15],如 基 于 AttGAN[16]、CGAN[17]、HeavyRainRestorer [18]模型,以及一些半监 督/无监督的方法,如 semi-supervised CNN[19]、UD-GAN[20] 等。 在这类算法的基础上出现了众多的基于深度学习的改进算法。
2、 雨水合成模型
要从雨水图像中恢复干净的背景场景,首先需要对雨水图 像进行建模。基于雨滴[21]及雨条纹的物理模型,大多数雨水 合成模型假设雨条纹叠加在背景图像上。随着研究不断深入, 雨水聚集、大气光值、场景深度等条件被纳入考量范围,涌现出 许多雨水合成模型。
3、 单幅图像去雨算法框架
3. 1 基于模型驱动的单幅图像去雨算法
基于模型驱动的方法通常只考虑了雨水条纹而忽略了雨 水聚集的存在。
3. 2 稀疏表示
稀疏编码[25]将输入向量表示为基向量的稀疏线性组合, 这些基向量的集合被称为字典,用于重建特定类型的信号,如 去雨问题中的雨条纹和背景信号。
3.3高斯混合模型
2016 年,Li 等人[6]针对字典学习、稀疏编码的方法中存在 的背景图像过于平滑或雨条纹残留等问题,提出使用两种不同 的高斯混合模型( Gaussian mixture model,GMM) 分别对雨条纹 层和背景层进行建模,从而分离并去除雨条纹。该方法利用最 大后验概率( maximum a posteriori,MAP) 最大化背景层和雨条 纹层的联合概率,等价于最小化问题
4 基于数据驱动的图像去雨
近年来,随着深度学习[34]理论和技术的发展,基于数据驱 动的单幅图像去雨方法越来越流行,这些方法利用深度网络自 动提取层次特征,能够模拟从有雨图像到干净背景图像的更复 杂的映射。
2013 年,Eigen 等人[35]通过最小化预测有雨图像块 和无雨图像块之间的均方差来训练一种特殊的 CNN,首次使 用深度学习的方法去除图像上附着的雨滴; 2017 年,Yang 等 人[7]构建了一个雨水检测和去除的联合网络( joint rain detection and removal,JORDER) ,首次将深度学习用于单幅雨水图 像去雨条纹。通常,一些与降雨相关的约束条件如降雨遮 罩[7]、背景特征[36]等会被注入到网络中,从而更有效地学习特 征。在架构方面,一些方法利用循环网络[7]或递归网络[37]逐步 去除雨水条纹和雨水聚集,另一些方法则关注深层特征的层次 信息[38]。为解决缺少真实成对有雨/无雨图像进行全监督学习 的问题,引入了一些半监督[19] /无监督[20]的图像去雨方法。
4. 1 deep CNN
深度卷积神经网络( deep convolutional neural networks) 是 一种特殊类型的神经网络,使用卷积层模拟人类视觉神经。该 网络及其衍生网络模型直接将图像数据作为输入,通过使用多 个非线性特征提取阶段从数据中自动学习分层表征,从而拥有 较强的学习能力,因此被广泛应用于图像处理领域。
4. 2 条件生成对抗网络
条件生成对抗网络( conditional generative adversarial nets, CGAN) [40]在生成器 G 和判别器 D 中引入条件变量 y 对生成 器数据进行指导,是将无监督的 GAN 模型变成有监督模型的 一种改进。在去雨算法中,一般使用有雨图像对应的无雨图像 作为条件 y
4. 3 半监督/无监督方法
成对真实有雨/无雨图像难以获得,合成无雨图像与真实 降雨图像存在差别,因此在图像去雨时考虑引入半监督/无监 督的方法。半监督学习( semi-supervised learning) 同时使用未 标记数 据 和 标 记 数 据 进 行 学 习; 无 监 督 学 习 ( unsupervised learning) 不依赖带标记的数据,直接对输入数据进行建模。
1) semi-supervised CNN 文献[19]首次将半监督模型应 用于图像去雨领域,为在图像修复任务中同时利用有监督和无 监督样本提供了方法,其结构如图 8 所示。该模型通过有监督 学习合成的雨来适应真实无监督学习中雨的多样性,通过这种 处理减少真实和合成数据间的差异性,提高泛化能力。使用高 斯混合模型来描述雨水,采用 KL 散度约束真实雨水条纹和合 成雨水条纹分布之间的差异
2) UD-GAN 文献[20]提出了一种无监督的生成对抗网 络( UD-GAN) 用于去雨,该网络包括两个相互协作的模块——— 雨指导模块( RGM) 和背景指导模块( BGM) 。其中,RGM 用于 区分真实的雨天图像和基于 BGM 生成器输出的假雨天图像, BGM 利用一个层次结构的高斯模糊梯度误差,以确保背景一 致性之间的雨图输入和去雨输出,
5 其他基于数据驱动方法及其发展
2018 年,He 等人[12]提出一种密度感知多路稠密链接神经 网络算法( DID-MDN) 来学习雨量密度标签从而去除雨条纹, 该方法容易造成背景细节模糊。
Pan 等人[41]提出一种双卷积 神经网络( dual-CNN) ,使用浅层子网络估计低频背景层,深层 子网络估计高频细节层,根据图像分解合成公式来约束学习过 程。
2019 年,Wang 等人[42]从真实有雨视频的连续帧中生成无 雨清晰图像,构建了一个覆盖更广泛自然降雨场景的数据集, 并提出一种新的空间注意力网络( SPANet) 从局部到全局地消 除雨滴。
2020 年,Yang 等人[43]在文献[7]的基础上进行改进, 提出了 JORDER-E 模型,该模型在处理雨水遮蔽效果的同时加 入图像亮度修复,并提出了一个新的由粗到细的多尺度损失函 数,在 Rain100L/H、Rain800 数据集上该模型 PSNR 指标都比原先 JORDER 模型提高了 1 dB 左右。
王美华等人[44]在雨水 模型中加入雨线修正系数,利用选择卷积网络构建自适应卷积 残差修正网络( SKRF) ,从而能够自适应地调整感受野大小、增 强网络的表达能力、提升去雨效果。
Shi 等人[45]针对夜间低照 度的特点设计了新的雨水合成模型,提出了基于 DecomNet 图 像分解方法的联合深度神经网络的夜间图像去雨方法。
2021 年,张焱等人[46]提出一种基于通道注意力和门控循环单元的 去雨算法( RMUN) ,在循环网络中通过门控循环单元块实现不 同循环阶段的参数共享,从而更好地保留了去雨图像的纹理和 背景信息。
除此之外,一系列基于生成对抗网络的改进模型[47 ~ 50]被 提出。文献[47]采用三向多尺度加权融合模块增强特征提 取,通过改进的空间注意模块生成注意图,准确定位雨带的位 置,采用 GAN 准确识别雨带位置并去除雨水条纹。
文献[48] 提出了一种旋转细节感知生成对抗网络( SDP-GAN) ,在生成 网络 G 中关注雨水图像的高频细节层映射,从判别网络 D 中 提取高级特征修正感知损失,并引入基于自旋转的训练方式。
针对现有算法通常将去雨问题看做信号去除问题导致去雨后 图像过于平滑的问题,文献[49]从特征分离的角度提出了一种 异步交互式生成对抗网络( AI-GAN) ,通过一个双分支结构,在 特征层上逐步将雨点图像分解为背景和雨点空间。
文献[50]针 对目前去雨算法实时性不高的问题,提出了一种快速密集剩余 生成对抗网络( FDRN) ,其生成网络由长短时记忆网络和密集 残差网络( DRN) 组成,使每帧的去雨时间缩短到 0.02 s。
6 度量方法
在进行图像重构后通常要对图像质量进行评价。人是图像的最终接受者,因此主观质量评价是最为可靠的图像质量 评价方法。通常使用 MOS( mean opinion score) 进行主观评 价,该方法对所有观察者给出的分数进行加权平均。但主观 质量评价费时费力且容易受到个人主观因素影响,因此通常 使用客观质量评价体系对重构图像进行评价。以下将介绍 图像去雨方法中常用的传统全参考图像质量度量和非参考图像质量度量
通过计算失真图像与参考图像的相似程度对失真图像的质量 进行评价,相似度越高表示模型生成效果越好。在图像去雨领 域,最常使用结构相似度( SSIM) 以及峰值信噪比( PSNR) 对去 雨图像进行评价。
7 数据集
数据集对于基于学习的图像去雨方法来说十分重要,而实际中难以获取大量真实成对的有雨/无雨图像,因此图像去雨 算法大多数依赖于合成的成对有雨/无雨图像进行学习。
总的来说,目前图像去雨数据集仍以合成图像为主,但规 模更大,包含的雨条纹更多样,同时在合成图像的过程中考虑 更为复杂的实际情况,加入雨滴、雨雾等,从而使合成数据集更 加接近实际情况,提升模型泛化能力。除此之外,还出现了一 些针对特定应用场景的去雨数据集出现,如 MPID 中针对视频 监控和自动驾驶的数据集。
8 讨论与展望
雨天拍摄的图像出现的质量退化现象制约了户外计算机 视觉系统与算法的应用,如自动驾驶、视频监控、赛事转播等。 因此雨天降质图像的去雨处理是计算机视觉领域中的重要问 题与研究热点。从视频去雨到单幅图像去雨,从基于模型驱动 到基于数据驱动,图像去雨算法取得了极大的发展。
一般来说,基于模型驱动的单幅图像去雨算法利用多种方法提取有雨/无雨图像先验知识以提高去雨性能,对成对数据 集的依赖性较小,无须预处理过程,适用于任何类型的有雨图 像,但合适的先验知识较难获取,且该类方法一般未考虑雨雾 等因素的影响。基于数据驱动的去雨方法通过构建深度学习 网络结构,直接学习有雨图像到无雨图像的映射,更有效地利 用了图像的深层特征,通过注入降雨相关的先验知识,该类方 法可以同时处理雨水条纹、雨水聚集等雨天图像问题,从而获 得更好的去雨效果,但该类方法对数据集的依赖程度较高。 尽管近年来单幅图像去雨研究领域取得了极大的进步,但 由于去雨问题自身的特殊性,无论是基于模型驱动还是数据驱 动的方法都容易出现背景过于平滑或雨条纹残留问题。
在未来的研究中,以下几点仍有可能是今后图像去雨领域的研究重点和难点:
a) 更加精确的雨水模型。
现有的雨水模型只能覆盖有限 尺度、形状、方向的雨条纹,而在实际中,环境、距离、风向等因 素对雨条纹都将产生影响,因此实际中雨条纹的出现是多样 的。在训练过程中,当雨条纹与雨水模型不一致时,去雨算法 往往不能很好地去除雨水条纹。
b) 更加真实的雨天图像数据集。
与基于模型驱动的去雨 算法相比,基于数据驱动的算法能够取得更好的效果,但由于在实际应用中很难拍摄到一组相同背景的有雨图像和无雨图 像,目前许多基于深度学习的方法都依赖于人工合成的降雨图 像来训练网络,虽然合成图像在一定程度上能够拟合自然环境,但仍存在差异。
c) 减少数据依赖性。
目前单幅图像去雨算法大多数依赖于监督学习,极大程度上依赖于训练数据,但成对的真实有雨/ 无雨图像难以获得,合成雨天图像与真实降雨图像存在差别。 因此未来单幅图像去雨算法应减少对数据集的依赖,更多利用 半监督或无监督学习来增强算法的泛化能力。
d) 更加准确的度量方法。
现有的图像质量评价方法还不 能捕捉到人类的真实视觉感受,去雨算法的客观评价方法仍需 要进一步建立和完善。对于人类视觉而言,应该设计度量方法 来模拟降雨图像与去雨图像之间的差异,并描述人类对于不同 去雨结果的偏好; 对于机器视觉而言,应该考虑在雨天条件下 高级视觉任务的性能。
e) 更加简便、鲁棒性更强的算法框架。
目前,图像去雨各 类算法运行时间大多数不足以满足实时处理( 30 fps) 的要求, 如何加速现有方法也是一大挑战。目前去雨算法利用合成雨 水图像,忽略了训练样本与测试样本之间的偏差,从而只对白 天图像上存在的均匀分布的雨条纹有较好的去雨效果,真实世 界中雨条纹可能分布不均,或为夜间降雨图像,因此找到一种 适用范围更广的去雨算法将是一个具有挑战性的课题。