基于图像增强的去雾算法。基于图像增强的去雾算法出发点是尽量去除图像噪声,提高图像对比度,从而恢复出无雾清晰图像。代表性方法有:直方图均衡化(HLE)、自适应直方图均衡化(AHE)、限制对比度自适应直方图均衡化(CLAHE) 、Retinex算法、小波变换、同态滤波等等。
基于图像复原的去雾算法。这一系列方法基本是基于大气退化模型,进行响应的去雾处理。代表性算法有:来自何凯明博士的暗通道去雾算法(CVPR 2009最佳论文)、基于导向滤波的暗通道去雾算法、Fattal的单幅图像去雾算法(Single image dehazing) 、Tan的单一图像去雾算法(Visibility in bad weather from a single image) 、Tarel的快速图像恢复算法(Fast visibility restoration from a single color or gray level image) 、贝叶斯去雾算法(Single image defogging by multiscale depth fusion),基于大气退化模型的去雾效果普遍好于基于图像增强的去雾算法,后面挑选的传统去雾算法例子也大多是基于图像复原的去雾算法。
基于深度学习的去雾算法。由于CNN近年在一些任务上取得了较大的进展,去雾算法自然也有大量基于CNN的相关工作。这类方法是主要可以分为两类,第一类仍然是于大气退化模型,利用神经网络对模型中的参数进行估计,早期的方法大多数是基于这种思想。第二类则是利用输入的有雾图像,直接输出得到去雾后的图像,也即是深度学习中常说的end2end
A Survey on Rain Removal from Video and Single Image
在过去的几年里,更多的降雨条纹的内在属性已经在算法设计中被探索和制定,用于从静态/动态场景的视频中去除降雨。这些算法主要可以分为四类:基于时域的算法、基于频域的算法、基于低秩和稀疏性的算法和基于深度学习的算法。前三个类别遵循手工制作的管道来建模雨环境,因此应该被视为模型驱动的方法,而后一个类别遵循datadriven方式,从预先收集的训练数据(rainy/clean frame对)自动学习特征。
Time domain based methods:
加戈和纳亚尔[34]首先提出了一个综合分析视觉效果的下雨下雨一个成像系统,然后开发了一种检测和去除视频的算法,它利用时空相关性模型来捕获雨和基于物理的动力学运动模糊模型来解释雨的光度测定。在这里,作者假设当雨滴以一定的速度落下时,它们只会影响一个帧。因此,雨水条纹可以通过利用连续帧之间的差异[35]来去除。
为了进一步提高雨的检测精度,Zhang等人[9]结合了雨的时间和颜色特性,利用K-means聚类对视频中的背景和雨条纹进行识别。这个想法在处理轻雨和大雨,以及雨中的焦距和焦距时都很有效。然而,由于背景的时间平均,该方法往往会导致图像模糊。为了缓解这一问题,Park等[36]进一步提出了通过估计像素的强度,然后用Kalman滤波递归去雨的方法,该方法在背景平稳的视频中表现良好。
后来,通过引入雨条纹的光学和物理特性,Brewer等人[37]提出先识别出现短时间强度峰值的雨影响区域,然后用连续帧中的平均值替换雨影响像素。自然,该方法能够区分由雨引起的强度变化和由场景运动引起的强度变化。然而,它不是很适合检测暴雨,其中多个雨条纹重叠和形成不希望的形状。
Zhao等[38]利用雨条纹的时间和空间特性设计了一种用于雨检测和去除的直方图模型,该模型嵌入了一种简洁的低复杂度的K-means聚类算法[9]。为了处理动态背景和摄像机运动,Bossu等人[31]使用高斯混合模型(GMM)和几何矩来估计雨线的方向直方图。
受贝叶斯理论的启发,Tripathi等[28]基于降雨的时间特性,建立了去除降雨条纹的概率模型。由于受雨影响像素和无雨像素的强度变化因波形的对称性不同而存在差异,本文采用两种统计特征(强度波动范围和扩散不对称性)来区分有雨和无雨运动物体。由于对雨滴的形状和大小没有任何假设,因此该方法对降雨条件具有较强的鲁棒性。为了进一步减少连续帧的使用,作者采用了时空过程[35],它的检测精度比[28]低,但感知质量好。
Frequency domain based methods:
巴纳姆等。[39],[40]证明了基于时空频率的方法,在全局范围内检测雨雪物理和统计模型,作者使用模糊高斯模型来近似雨滴产生的模糊效应,并使用频域滤波器来降低雨滴/雪的能见度。这个想法仍然适用于场景和摄像机运动的视频,可以有效地分析反复出现的降雨模式。然而,模糊高斯模型不能总是覆盖不够锐利的雨条纹。此外,当降雨的频率分量与[28]不一致时,基于频率的检测方法往往会产生误差。
Low rank and sparsity based methods:
近十年来,视频中去除雨雪的低阶性和稀疏性被广泛研究。Chen等人[41]首先考虑了雨纹的相似性和可重复性,并将低秩模型从矩阵结构推广到张量结构,以捕获时空相关的雨纹。处理高度动态场景[28],[34],[36],[38],陈等人进一步设计一个算法基于运动分割的动态场景[42],首次利用光度和色度约束下雨检测,然后应用雨移除过滤器在像素,这样他们的动态特性以及运动阻塞的线索。该方法自适应地利用了雨像元恢复过程中的时空信息,但仍不能很好地拟合相机抖动[43]。
随后,Kim等人[44]提出将当前帧减去时间弯曲的帧,得到初始雨图,然后通过SVM将其分解为两种基向量(雨条纹和离群值)。接下来,通过寻找雨线图来排除异常值并执行低秩矩阵补全,可以去除雨条纹。显然,该方法需要额外的监督样本来训练SVM。
Ren等[43]考虑到暴雨和动态场景,将雨条纹划分为稀疏层和稠密层,将运动物体和稀疏雨条纹的检测制定为多标签马尔可夫随机场(MRF),稠密雨条纹的检测制定为高斯分布。
Jiang et al.[45],[46]通过充分分析雨条纹和干净视频的鉴别内在特征,提出了一种新的基于张量的视频雨条纹去除方法。其中,沿雨滴方向的雨条纹稀疏而平滑,干净的视频在雨垂直方向上具有平滑性,在时间方向上具有全局相关性和局部相关性。
与以往的消雨方法不同,Wei等[17]首先将雨层编码为基于patch的高斯混合(P-MoG)。结合运动物体的时空平滑结构和背景场景的低秩结构,提出了一种简洁的雨纹去除P-MoG模型。这种随机方式使模型能够适应更大范围的降雨变化。
受[47]工作的启发,Li等人[18]考虑了视频中雨条纹的两个内在特征,即稀疏地分布在视频不同位置的重复局部图案,以及由于它们出现在距离摄像机不同距离的位置而产生的多尺度配置。作者明确地将这种理解表述为多尺度卷积稀疏编码模型(MS-CSC)。与[17]相似,分别使用L1和全变分(TV)规则化特征图的稀疏性和运动物体层的平滑性。这种编码方式使模型能够从雨天视频中正确提取出自然的降雨条纹。
Deep learning based methods:
最近,基于深度学习的方法也被用于视频雨去除任务的研究。例如,Chen等人[48]提出了一种卷积神经网络(CNN)去除视频雨条纹的框架,可以处理带有不透明条纹遮挡的暴雨。本研究利用超像素作为高度复杂动态场景视频的内容对齐和遮挡去除的基本处理单元。
Liu et al.[19]通过探索视频中时间冗余的丰富性,建立了混合雨模型,将雨条纹和遮挡描述为:
其中t和N表示当前时间步长和视频中帧的总数。Ot ∈ Rh×w、Bt ∈ Rh×w和Rt ∈ Rh×w分别为雨天图像、背景帧和雨纹帧。At是雨依赖图,和小镜头t是一个alpha matting地图。在模型(4)的基础上,利用深度循环卷积网络(RNN)设计了融合雨水退化分类、基于雨水去除的空间纹理呈现和基于时间相干性的背景细节重建的联合循环去雨重建网络(J4R-Net)。摘要为了解决视频上下文动态检测的去雨问题,本文选择了并行的技术路线,进一步开发了动态路由残差递归网络(D3R-Net)以及用于视频去雨[20]的时空残差学习模块。