APP下载

结合相似块匹配与最小值滤波的图像去雨

2021-05-14刘培钰陈炳丰蔡瑞初

计算机工程与应用 2021年9期
关键词:亮度滤波像素

朱 鉴,刘培钰,陈炳丰,蔡瑞初

广东工业大学 计算机学院,广州510006

室外镜头拍摄的图像容易受到雨天气的影响,雨线的遮挡导致图像细节丢失或难以辨认,从而干扰室外视觉智能系统的判断力,因此从被雨破坏的图像中恢复出清晰图像至关重要。

早在2012年,Kang等[1]利用双边滤波获得图像的低频和高频成分,并通过对高频成分的字典学习及稀疏编码提取图像的结构信息,最后与低频成分结合得到去雨的图像,但该方法在复杂结构的图像上处理效果不佳。2013 年Kim 等[2]提出了一种两阶段的图像去雨方法。第一阶段通过核回归方法检测雨,第二阶段通过非局部均值滤波恢复被雨像素破坏的区域。然而,由于该方法中的雨检测仅取决于区域的梯度方向,会错误地检测到与雨方向一致的图像边界。此外,由于雨的存在,用于图像修复的非局部均值滤波可能利用并不相似的块来提供修复信息,所以通过非局部均值滤波去除雨线在视觉质量方面仍有较大的改善空间。在文献[3]中提出了与文献[2]类似的方法,但同样存在由于检测模型的不准确产生检测不足或者过检测,造成修补后的图像出现雨痕残留或图像背景被模糊等问题,这也是本文改进与完善的重点。

2015 年Luo 等[4]采用一种非线性雨模型,通过约束雨分量和无雨图像之间的稀疏表示系数的相关性达到去雨的目的,但该算法去雨不彻底且处理后的图像出现不自然伪影。2016年,Li等[5]基于图像先验提出高斯混合模型(Gaussian Mixture Model,GMM),但该方法处理后的图像由于过分平滑导致图像细节的丢失,且对于大雨图像处理并不理想。

近几年,深度学习的快速发展延伸到图像去雨领域。2017 年,Fu 等[6]引入深度检测网络,提出了一种基于图像域先验的深度网络架构,用于消除雨线。2018年,Zhang 等[7]提出了一种密度感知的多数据流稠密去雨网络(Density-aware Image De-raining method using a Multi-stream Dense Network,DID-MDN),该网络实现雨密度估算进一步达到去雨目的。2019 年,文献[8]提出了一种特征监督的生成对抗网络(Feature-Supervised Generative Adversarial Network,FS-GAN),用于单幅图像去雨。基于深度学习的去雨算法利用复杂的神经网络通常能有效修复雨像素,但经常面临神经网络训练耗时以及繁杂的手动调参等问题。

基于上述分析,本文提出一种快速高效的两步去雨算法,采用检测加修补的策略,基于最小值滤波有效去除单幅图像中的雨线,避免了非深度学习算法检测不准确或去雨不彻底问题和深度学习方法的繁琐预训练和调参问题。检测阶段充分利用雨像素和非雨像素的特性,根据雨像素的亮度和方向信息建立雨检测模型。修补阶段先利用自然图像块的自相似性在全局匹配相似块,再以相似块的位置信息为先验设计最小值滤波修补模型,最终通过修正策略进一步优化去雨效果,达到高质量去雨目的。

本文贡献点主要包括:

(1)结合雨亮度和方向信息提出雨检测模型,过滤被误检测的非雨像素,精确地标记雨像素位置。

(2)提出粗细粒度相结合的相似块匹配算法,提高匹配精度。

(3)利用相似块建立基于最小值滤波的修补模型,并提出有效的修正策略优化去雨效果。

1 本文算法

首先介绍如何利用雨的强度信息和方向信息检测标记雨线位置。然后讨论在已知雨线位置时如何利用相似块设计最小值滤波进行雨像素的修复,再通过修正策略进一步优化去雨效果,最终将去雨后的图像块重构为去雨的完整图像。

1.1 雨检测模型

雨检测的准确性影响下一步的修补模型,为尽可能准确地标记雨像素,本文利用雨的两个先验信息。首先利用雨的亮度信息得到雨的标记位图ΩI,其次利用雨的方向性信息得到标记位图ΩO,而最终的标记位图Ω=ΩI·*ΩO,其中·*代表点积运算,即取同时满足亮度条件和方向条件的像素,从而实现雨像素精确检测。

关于雨像素的一个常见假设是雨图像由雨层和干净背景层叠加组成[9-10],因此雨像素的亮度值通常大于其邻居像素的亮度值。在本文中,首先将RGB 三通道转化为YCBCR 的Y 通道检测(即luma 通道),分别定义5 个大小为7×7 的窗口Wk(k=1,2,3,4,5) 用于卷积计算,使得被检测像素(i,j) 分别位于窗口的中心、左上角、右上角、左下角、右下角位置。若被测像素的亮度值I( i,j )大于预定义的任意3 个窗口覆盖的邻域像素的平均值,则将其标记为雨像素候选者,对应标记位图的值为1。根据雨的亮度信息得到的雨标记位图ΩI定义如下:

亮度信息几乎能检测到所有的雨像素,但亮度与雨像素接近的背景像素可能会被误标记为雨像素,因此会产生过度检测的现象。如图1(b)中箭头所示,一些背景像素被误检测标记为雨像素,若多余的背景像素被当作雨像素处理,处理后的结果因为过度去雨而导致细节模糊并降低客观度量值。因此,第二步检测利用雨线的方向信息过滤第一步误检测的非雨像素,进一步提高修补的精度。

对于大多数的静止雨图,雨线的分布并非杂乱无章,通常存在明显的方向性,因此在雨像素处沿雨方向的梯度应为零或接近零[11-13]。受Luo 等[13]的启发,本文通过计算图像中每个像素点沿雨方向的梯度提升雨检测精度。对于每个像素(i,j),沿水平和垂直方向应用一维滤波器进行卷积计算,得到其方向梯度值[dy,dx] 。每个像素的梯度方向θi,j定义为arctan(dy dx),而整幅图雨线的主方向θ则由图像中所有像素局部方向的θi,j平均值决定。定义雨线方向差分算子∇θ如下:

图1 雨检测模型的中间结果

利用上述差分算子,计算图像沿雨线方向梯度:

其中*表示卷积运算。基于上述分析,雨像素处沿雨方向的梯度值应该为零或接近为零。因此,本文设定以下判断条件:若像素(i,j)处e|gθ(i,j)|小于给定阈值β,即雨线方向梯度足够小,则该像素被选为候选雨像素。根据雨线的方向信息得到的雨标记位图ΩO定义为:

其中·*为点积运算。Ω表示只有当亮度条件和方向条件均满足时,该像素才被视为雨像素。图1(b)为仅利用亮度先验检测出的雨标记位图,可以看出部分非雨的背景轮廓被误标记为雨像素。经过方向信息的过滤后,图1(c)中许多误检测的像素被重新设置为非雨像素(见图中用箭头标记的位置)。图1(d)则展示了ΩI和最终检测标记矩阵Ω之间的差异。显然,亮度和方向结合的两步检测方案保证了雨线检测的准确性。

1.2 雨修补模型

本文雨修补模型分为相似块匹配和最小值滤波处理两部分。该修补模型基于以下事实:自然图像大部分是相似的,划分为重叠的图像块后通常存在许多自相似块,对任一图像块pi来说,利用精确的相似块匹配算法可以在全局搜索得到最佳相似块集合B。匹配得到的相似块处于图像中不同位置,因此对于图像块pi中被雨线遮挡的像素点,存在其相似块中对应像素点不含雨线或受雨影响较弱的情况,因而雨像素可用相似块中对应位置的像素近似替换。

如图2 所示,图像块pi匹配后对应的相似块集为Bi(i=1,2,…,m)。假设p1,1是被雨线影响的像素点,则其对应的每个相似块Bi中对应像素点b1,1极有可能没有被雨线影响或影响较弱,影响越弱其亮度值相对越低。因此,可采用最小值滤波的方法对雨像素值进行修复,即将当前图像块pi中检测到的雨像素点p1,1的值用这m个对应像素点b1,1中的最小值代替。对特殊情况(见1.2.2 小节分析),本文将进一步提出修正策略优化去雨结果,得到最终的干净图像块。最后,将去雨后的图像块重构为完整的去雨图像。算法1 总结了整个修补过程。

图2 修补模型示意图

算法1基于相似块匹配与最小值滤波的去雨修补算法

1.2.1 相似块匹配

匹配相似图像块是运动估计、跟踪和视频压缩等视频处理技术中的重要问题。目前相似块匹配算法已有大量研究工作[14-16]。相似块匹配的精准度影响下一步最小值滤波修补方法的效果,因此本文致力于建立精确的相似块匹配算法。

对雨图像而言,雨线的存在会大大影响相似块匹配算法的精确度,因此将相似块匹配算法直接应用于雨图像数据是不合适的[17]。本文先采用以下预处理操作:利用高斯滤波处理后的结果替换被标记的雨像素,同时确保非雨像素保持不变。

预处理后,对于任意图像块pi首先构造基于直方图的粗粒度块匹配算法,利用余弦相似度初步选出一定数量的相似块候选集合。在相似块候选集中,再构造基于距离的细粒度像素匹配算法,进一步选出最佳相似块集合。具体地,粗细粒度结合的匹配算法包含以下步骤:

假设输入的雨图像为J ,预处理后将其划分为步长为s 的重叠的n×n 图像块。对于待比较的两个图像块pi和pj,第一步基于直方图初步获取相似块候选集。首先,分别获得图像块pi和pj各自归一化的直方图分布,将直方图划分为64个区,其中每个区为连续的4 个灰度等级。然后对每个区的4 个灰度值求和,将得到的64 个数据定义为pi和pj对应的指纹向量X 和Y。其次,二者的相似度可利用指纹向量的余弦相似度计算:

其中,Xi和Yi分别代表向量X 和Y 的各分量。计算的余弦值越接近1,表明两个向量的夹角越接近0°,即二者方向越一致,图像块在粗粒度上越相似。根据式(7)和预设的阈值λ,满足cos θ >λ 的图像块pi和pj被视同互为相似块。

第二步,利用基于距离的细粒度像素匹配算法,获取最佳相似块样本集合。首先,定义图像块pi和pj之间的距离:

1.2.2 最小值滤波处理

其中,Ωpi表示pi对应的雨像素索引集,pi,j和qi,j分别代表pi和qi中第j 个像素。

处理6、龙粳40,株行距为10cm*30cm。水整地时施入二胺6公斤、50%硫酸钾3公斤、尿素2公斤。插秧时无侧深施肥时加入。

图3列出了8幅合成雨图像和4幅真实雨图像的测试原图,相应的去雨结果分别在图4 和图5 展示。如处理图4(d)和图5(d)所示,对所有图像块依照算法A 处理后,可取得较好去雨效果。然而,考虑到极端情况下,雨像素pi,j与其代替像素的值相等(即相似矩阵对应行最小值为pi,j本身),造成该雨像素并未被处理,因此会有残留雨痕。基于此问题,提出针对算法A的修正策略(此处用算法A+代指):沿着雨线的垂直方向设置高斯滤波器,将未处理的零星雨像素用该滤波器模糊后的值代替,得到最终的去雨图像块qfinal。具体实现中,通过判断雨像素本身的值与其代替像素值是否相等得到未处理雨像素的索引集,然后仅对该索引集中的雨像素进行上述修正处理,最终得到优化后的去雨图像块。

图3 部分实验数据

图4 图3中8幅合成雨图的去雨结果对比

图5 图3中4幅真实雨图的去雨结果对比

经上述处理,通过修正残留的零星点状雨像素(如图4(d)第一行中椭圆标记的点状雨像素),能够获得更优的去雨效果(如图4(e)第一行),同时也可提升部分客观度量指标值。

1.2.3 重构去雨图像块

完成所有图像块的去雨操作后,最后将得到的去雨图像块重构为去雨后的整幅干净图像。本文采用的重构方法,与大多数基于图像块处理的方法类似[18-19],每个像素的强度值由所有覆盖的像素块的平均值决定。

2 实验

本章介绍算法中涉及到的参数设置,并在合成雨图和真实雨图上测试本文的方法,分别与非深度学习的传统经典算法包括Li等[5]的高斯混合模型(GMM)方法和Luo 等[4]的判别性稀疏编码(Discriminative Sparse Coding,DSC)方法,以及基于深度学习的多数据流稠密去雨网络(DID-MDN)方法[7]对比。

2.1 参数设置

实验中图像块大小n=10,取样步长s=3 像素。λ取值介于0 和1 之间,λ值越大对相似性块的判断要求越高,越小则要求越低。本文考虑粗粒度条件下尽量保留较多候选相似块以便细粒度筛选出最佳相似块集,实验中取值λ=0.65。此外,由于修补模型基于最佳相似块集因此尽可能选取最相似的图像块,取值m=12。

值得一提的是部分参数的取值依赖于具体待处理的图像,并非取固定值。如公式(5)中的β,较大的β值适用于大雨图像,此时会有较多的像素检测为雨像素。反之,较小的β值则适用于小雨或细雨图像,此时仅有少量被检测为雨像素。采用固定的β值处理所有图像并不合适,因此文中定义了根据图像特征自适应取值。经实验结果验证,固定参数与自适应参数结合的方案能够取得良好的去雨效果,并保持算法稳定。

2.2 合成图实验

本实验测试的合成图数据选自Li 等[5]和Yang 等[20]的提供的数据集。实验结果由2 个常用的图像指标评估:峰值信噪比[21](Peak Signal to Noise Ratio,PSNR)和结构相似性指标[22](Structrual Similarity Index Metric,SSIM)。其中,PSNR衡量图像整体相似性指标,重点评估图像颜色和平滑区域的失真,其值越大,代表去雨后的图像失真越小;SSIM 则用于评价两幅图像的结构和细节相似度,其范围是[0,1],值越接近1,则表示去雨前后的图像在结构和细节上相似度越高。表1、表2 分别列出了各对比算法应用在图3中8幅合成雨图像后对应的PSNR 和SSIM 指标值,各算法运行结果的最优值以加粗黑体突出显示,且最后一行展示了对应列指标值的平均值。

相比其他方法,本文方法和GMM 方法的PSNR 值显然占优,且本文方法的整体平均PSNR 值最高(见表1 最后一行)。前4 幅合成图选自GMM 方法提供的数据集,GMM 方法的PSNR 值比本文方法略高,后四幅图本文算法的PSNR 值更占优势。由于去雨结果中出现伪影和变暗现象,DSC 方法和DID-MDN 方法的PSNR 值通常最低。从表2 看出,多数情况下本文方法在SSIM 指标上表现最优,且整体平均值也是最优的,主要原因是本文方法在检测雨阶段能够筛选保留更多背景图像的轮廓结构细节。DSC 方法在SSIM 指标上表现适中,DID-MND 方法由于整体图像的变暗而表现得最不理想。

图4 展示了8 幅合成雨图去雨后的效果,并突显部分区域以进行详细比较(参见每张图右下角)。针对前4幅来自文献[5]的合成雨图,GMM方法的整体去雨效果与本文方法不相上下,但部分区域仍有残留雨痕,而本文算法能表现出良好的效果。针对后4 幅来自Yang等[20]数据集的雨图,明显可以看出GMM方法表现欠佳,不少明显的雨线并未去除,而本文算法的去雨效果良好。此外,DSC 方法会出现一些不自然的伪影,且在某些区域雨痕残留明显。尽管DID-MDN 表现出一定的去雨效果,但去雨后整体图像色调变暗。综上所述,与相关方法对比本文方法的去雨效果更有竞争力。

表1 各算法在合成图的PSNR值对比 dB

表2 各算法在合成图的SSIM值对比

2.3 真实雨图实验

本文也采用了真实雨图进行评估,图5 展示了图3中的4幅真实雨图的去雨效果。如图,右下角突出放大区域以便更好观察(第一幅图因特殊取样位置,将放大区域放在左下角)。对于较亮较明显的雨线,四种方法均有一定的去雨效果,但在GMM的结果中很容易发现一些残留雨线,DSC由于过度去雨而导致结果中存在明显的伪影,DID-MDN消除了大部分雨线,但如合成图中一样,整体图像显然变暗。对于雨线细小且颜色深的地方,本文方法的去雨效果相比其他三种方法表现更佳(参看蓝框区域)。综合对比,本文方法能在消除雨线的同时保持图像细节,在主观视觉效果和客观度量指标上均展现出一定的优势。

3 结束语

本文提出了一种新颖的两阶段模型用于单幅图像去雨。在雨检测阶段,先结合雨线的亮度和方向信息检测雨线的位置,获取精确的雨标记位图。在修复阶段,利用精确的相似块匹配算法在全局搜索得到最佳相似块集合,再建立起相似块矩阵,并通过最小值滤波将雨像素用相似块中对应位置的最小值代替,从而达到去雨的目的。最后,针对少部分散点雨像素,利用高斯滤波修补策略,进一步优化去雨效果。本方法解决了当前非深度学习算法检测不准确或去雨不彻底问题,避免了深度学习方法的大量预训练和调参耗时问题。

本文在相似块匹配算法中,为提高匹配精度选择全局范围匹配,因此耗时较高。未来将致力于优化处理模型,提升计算效率。此外,算法对大雨如暴雨等情况下的雨图处理效果不太理想,原因在于暴雨天气获取的图像需要额外考虑雾的存在,未来将进一步改进以适用于此类图像。

猜你喜欢

亮度滤波像素
像素前线之“幻影”2000
“像素”仙人掌
亮度调色多面手
ÉVOLUTIONDIGAE Style de vie tactile
亮度一样吗?
基于斩波调制的LED亮度控制
人生的亮度
高像素不是全部
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波