基于双阈值引导滤波的单幅图像去雨算法

2022-06-08 07:29刘亚楠曹风云
关键词:单幅光晕字典

刘亚楠,曹风云,王 璐

(1.合肥师范学院 计算机学院,安徽 合肥 230601; 2.多模态认知计算安徽省重点实验室(安徽大学),安徽 合肥 230601;3.合肥工业大学 计算机与信息学院,安徽 合肥 230009)

户外计算机视觉系统所采集到的图像易受到雨水的影响,存在模糊和细节丢失等问题.雨滴、雨纹一般会阻碍或扭曲图像背景内容或产生大气遮蔽效果,因此通过去雨操作增强各种图像算法的有效性非常重要.雨线的去除具有极大的研究意义,是近年来计算机视觉领域的一个重要研究课题.

目前,图像去雨主要分为两类:视频图像去雨[1-3]和单幅图像去雨[4].由于单幅图像去雨较视频图像去雨而言没有时间信息(先验知识)可用[5-6],使得单幅图像去雨更具挑战性.

Kang等[7]利用形态成分分析(Morphological Component,Analysis,MCA)将去雨问题看作一个图像分解问题.利用双边滤波(Bilateral Filering,BF)将雨图分解为低频和高频图像,对高频图像执行字典学习和稀疏编码得到高频无雨图像,最后将低频图像与高频无雨图像进行融合得到去雨图像,但背景易模糊,在图像恢复过程中存在纹理丢失的问题.Luo等[8]在一个具有强互斥性的学习字典上使用辨别性稀疏编码消除单幅图像中的雨痕,但去雨图像有一定的色彩失真,且残留雨痕.Li等[9]引入了基于高斯混合模型的补丁,提出一种基于高斯混合模型的层分离算法去除雨滴,该方法可以适应多个方向和尺度的雨滴.Wang等[10]利用雨雪检测与引导滤波(Guided Image Filtering,GIF)[11]相结合的方式将图像分为高频部分与低频部分,为了从高频部分提取细节,设计了一个3层的分层方案实现去雨.Gu等[12]提出了一种联合卷积分析与综合稀疏表示模型,能够有效地提取图像纹理层,而不需要过度平滑背景层.Mu等[13]引入了一种展开策略,将依赖于数据的网络体系结构纳入到建立的迭代中,是集成模型驱动和数据驱动方法来完成解除任务的有益尝试.

针对基于图像分解的单幅图像去雨算法,容易存在图像细节丢失、雨痕残留等问题,本文提出一种改进的引导滤波算法,代替双边滤波得到有雨图像的低频部分,进而改进基于图像分解的去雨算法,在去雨的同时,保留背景的纹理细节信息.

1 基于图像分解的去雨算法

1.1 基于形态成分分析的图像分解

形态成分分析的主要思想是利用数据中包含不同特征的形态多样性进行分解,并将每个形态成分关联到一个原子词典中.

(1)

其中:θk∈RMk表示对应于Ik关于字典Dk的稀疏系数;τ是正则化系数,Ek是由Dk的类型定义的能量.

Ek(Ik,θk)=

(2)

通过对Ik迭代求解式(2):

①更新稀疏系数,固定Ik,执行稀疏编码求解θk,使Ek(Ik,θk)最小;

②更新Ik,固定θk.

1.2 稀疏编码与字典学习

在一些情况下,可以采用一组可用的训练样本(类似于从需要分解的成分中提取块)ys∈Rn(s=1,2,...,P),通过下列优化问题学习字典Dk稀疏化ys:

(3)

最后,通过迭代执行MCA算法解决Ik(固定Dk),字典学习算法学习Dk(固定Ik)直到收敛,完成图像分解.

1.3 去雨算法流程

图1 基于图像分解的去雨算法流程

2 引导滤波

虽然引导滤波与双边滤波一样具有边缘保持特性,但引导滤波作为一个局部线性模型,在边缘附近具有更好的性能,可普遍应用于去噪、去雾、图像压缩等各种计算机视觉和计算机图形学应用中.

引导滤波的算法原理是假设滤波器的输出q与引导图像p之间是局部线性模型,且q是p的线性变换(在以像素k为中心的窗口ωk中),则

qi=akpi+bk,∀i∈ωk,

(4)

其中:ak、bk为ωk中的线性系数.

由于

∇q=a∇p.

(5)

这个局部线性模型确保p有边缘时,q存在边缘.

通过最小化输出图像q与滤波输入图像I间的差异来求解线性系数ak、bk,具体目标函数为:

(6)

其中:ε为正则化参数,以防止ak过大,在文献[11]中取为固定值.

但该模型不能很好地表现图像的某些边缘,图像中可能会出现一些光晕,降低了最终图像的视觉质量.由于目标函数中的正则化系数是固定的,不会随图像空间位置发生变化,这可能是导致光晕的关键因素.在各种改进的引导滤波算法[14]中,对正则化参数增加边权重因子,减少光晕,更好地保留边缘.

3 双阈值引导滤波的单幅图像去雨算法

3.1 双阈值引导滤波

本文引导图像设置为输入的有雨图像,即p=I.滤波的输出q作为低频部分ILF,而高频部分IHF由I-ILF得到,于是在式(6)增加不等约束,确保得到的q(ILF)是非负的(负值对图像毫无意义),且Ii-(akpi+bk)(IHF)是非负的.于是,式(6)更新为:

(7)

构造式(7)的拉格朗日函数:

(8)

对式(8)求偏导可得:

(9)

(10)

由公式(9)和(10)可得:

(11)

(12)

(13)

根据阈值得到不同的ξ作为权重因子,权重值不再是一个固定的数值,如式(14):

(14)

方差较大的窗口,存在边的可能性较大,故设置ξ1<ξ2<1,确保ak值不要过小.于是,式(11)更新为:

(15)

由于引导滤波可能在某些边缘附近出现光晕效应,图2通过灰度条图像及其对应的直方图测试该双阈值引导滤波对光晕效应的消除效果.其中,图(a)为灰度条测试图像,图(f)为对应的直方图.图(b)-(e)依次为BF、GIF、梯度域引导滤波(Gradient Domain Guided Image Filtering,GGIF)、双阈值引导滤波(本文算法)测试结果,图(g)-(j)为4种算法对应的直方图.从图(e)、(j)中可以看出本文所提算法虽仍存在光晕,但较之其他算法光晕现象有明显改善,且灰度值分布紧凑.

图2 光晕效应

3.2 算法步骤

综上所述,将双阈值引导滤波算法与基于图像分解的去雨算法相结合,得到改进的单幅图像去雨算法,具体算法思路如下.

输入:雨图I;输出:去雨图像INon-rain.

(1)对雨图I利用双阈值引导滤波,得到低频部分ILF,进而利用I-ILF得到高频部分IHF(I=IHF+ILF);

(2)从IHF中提取图像块ys∈Rn(s=1,2,...,P),应用字典学习算法(K-SVD)解决式(3),得到字典DHF;

(3)对DHF的每个原子提取HOG特征,应用K均值算法对字典分类,将字典分为两类:雨子字典和几何子字典;

(4)通过执行OMP算法应用MCA算法解决式(2),得到稀疏系数;

4 实验结果与分析

为证明本文所提算法的有效性,选取6幅有雨图像进行实验验证,其中3幅为合成雨图,如图3(b)所示,其对应原图如图3(a)所示.另外3幅为真实雨图,如图4(a)所示.在图3和图4中选取第1行中的图像展示局部细节,利用边框标记局部区域,并在第2行显示该局部区域的细节信息.图3(b)中3幅合成雨图从上到下依次标记为雨图1、雨图2和雨图3.

雨图的大小为256×256,图像块大小为16×16,字典原子数为1 024.对比算法选择经典的图像分解算法(文献[7]即BF+MCA算法),GIF+MCA,GGIF+MCA, 去雨后的结果如图3和图4所示.从图3、图4可以看出,本文算法优于其他滤波算法与MCA结合的去雨算法,在去雨后可以保留更多的细节信息,且雨痕残留较少.

图3 合成雨图去雨结果

由于合成雨图有对应的不含雨原图,可以选择评价指标峰值信噪比(Peak Signal to Noise Ratio,PSNR)与结构相似性(Structrual Similarity Index Metric,SSIM)对去雨结果进行客观评价,PSNR与SSIM的结果如表1和表2所列.从表1和表2中可以看出,本文算法的PSNR与SSIM指标均高于其他算法,能够较好的维持图像自身的纹理信息.

表2 SSIM对比结果

5 结语

本文提出的双阈值引导滤波算法,改进了传统的基于图像分解的单幅图像去雨算法,改善了雨痕残留和背景纹理丢失等问题,在去雨的同时,较好地保留了图像的边缘细节信息.本文仅对低频部分提出改进算法,后续工作将进一步优化阈值的选取,并从高频部分改进基于图像分解的单幅图像去雨算法.

猜你喜欢
单幅光晕字典
基于改进大气散射模型的单幅图像去雾方法
基于CNN的轻量级神经网络单幅图像超分辨率研究
字典的由来
大头熊的字典
基于稀疏表示和结构自相似性的单幅图像盲解卷积算法
圣诞节的灯光
基于改进暗通道和导向滤波的单幅图像去雾算法
正版字典
凝固的光