有雾图像和沙尘图像增强算法
2022-05-30孙启隆司振惠
孙启隆, 郭 鑫, 司振惠, 于 萍
(1. 吉林师范大学 管理学院, 吉林 四平 136000; 2. 吉林师范大学 计算机学院, 吉林 四平 136000;3. 四平市教育技术装备中心, 吉林 四平 136000)
图像增强的目的是使降质图像(如沙尘图像和有雾图像)恢复其清晰原貌, 进而有效观察并提取图像中的重要信息. 对于有雾图像的增强算法一般可分为两类: 一是利用暗通道和大气散射模型恢复无雾图像; 二是通过提高图像的对比度提高图像的清晰度. 两类算法各有优缺点, 文献[1-9]属于第一类算法, 其中文献[1]提出了暗通道的概念进而估计大气光值和透射率, 利用大气散射模型求出无雾图像, 但由于对透射率和大气光的估计不准确, 导致图像在明亮区域易出现光晕效应, 文献[2-9]则针对暗通道算法的缺陷提出了各种改进算法, 虽然解决了部分问题, 但去雾后的图像在色彩和对比度恢复方面仍有待提高. 第二类算法主要包括直方图均衡算法(histogram equalization, HE)及基于其改进的自适应直方图均衡算法(adaptive histogram equalization, AHE)、 限制对比度自适应直方图均衡化算法(limited contrast adaptive histogram equalization, CLAHE)和基于Retinex的各种算法等, 这类算法虽然可以恢复图像的色彩和对比度, 但常由于过度增强导致图像出现颜色失真现象. 沙尘图像与有雾图像不同, 沙尘图像有色差问题, 因为其成像过程中有大量的沙土参与, 所以其整体色调偏黄棕色, 降低了图像色彩饱和度. 利用传统的去雾算法处理沙尘图像时, 通常会忽略调整图像色差. 因此, 沙尘图像增强算法[10-17]主要包含调整色差和提高图像清晰度两部分, 但算法在图像色彩和清晰度恢复方面都有待提高.
为解决上述问题, 本文提出一种新的图像增强算法, 将有雾图像和调整色差后的沙尘图像转换到HSV颜色空间, 分别调整饱和度和明亮度, 前者用于恢复图像色彩, 后者则利用CLAHE算法提高图像对比度, 考虑到图像的模糊程度不同, 因此对于模糊程度较高的图像, 进一步利用基于加权最小二乘(WLS)滤波去除模糊, 提高图像的清晰度, 同时WLS滤波也可以平滑图像噪声.
1 调整沙尘图像色差
沙尘图像与有雾图像不同, 在提高对比度和恢复图像色彩前需先解决图像色差问题. 沙尘图像在成像过程中由于有大量风沙灰尘等杂质加入, 导致图像整体色调偏黄棕色, 降低了图像的饱和度和可见度. 调整色差方法一般选取自动白平衡算法, 该算法可解决色彩还原等问题, 自动白平衡算法主要包括灰度世界法(gray world, GW)、 动态阈值法(dynamic threshold, DT)和完美反射法(perfect reflector model, PRM). GW算法基于RGB颜色空间, 并基于假设: 图像三通道的平均值相等时图像呈灰色. DT算法基于YCbCr颜色空间, 主要分为: 寻找白色参考点和利用参考点实现图像的白平衡两部分. PRM算法主要通过提取图像中纯白色区域并获得光源信息, 然后按一定比例调整图像三通道的值到最大化(纯白色), 进而实现调整图像色差, 该算法可基于RGB颜色空间或YCbCr颜色空间. 其中GW算法应用最广泛. 图1为不同算法调整色差的对比结果.
图1 不同算法调整色差的对比结果Fig.1 Comparison results of different algorithms for adjusting chromatic aberration
由图1可见, GW算法实验效果更好, DT和PRM算法由于都是利用图像中局部白色参考区域实现图像整体的白平衡, 所以导致图像白平衡出现两极化, 参考区域内白平衡过度, 而参考区域外依然存在色差问题. 实验表明, 由于RGB颜色空间中三通道是互相关联的, 用GW算法白平衡后的图像易出现颜色失真和亮度降低等问题, 结果如图1(B)所示. 为解决该问题, 文献[16]将调整色差工作转换到Lab颜色空间进行, 只对色彩分量a和b应用灰度世界算法, 可有效解决上述问题, 结果如图1(E)所示.
在Lab颜色空间调整色差的公式可表示为
(1)
其中GA和GB分别表示调整色差后的色彩分量a和b的值, mean表示求平均值的函数.
2 在HSV颜色空间增强有雾图像和沙尘图像
2.1 图像饱和度的增强
HSV颜色空间由色调(H)、 饱和度(S)和明度(V)构成, 与RGB颜色空间不同, 它是根据人类视觉系统的特征而提出的颜色空间, 所以在该颜色空间增强图像, 增强结果会更符合人类对色彩的感知. 日常生活中的各种颜色是指色调, 如蓝色和紫色等; 饱和度表示色彩的纯度, 其值越高, 图像色彩越鲜明; 明度则表示色彩的明暗, 其值越大, 图像色彩越明亮. 有雾图像和沙尘图像由于存在雾和沙尘, 导致图像色彩的饱和度降低, 进而影响了图像的清晰度, 所以增强有雾图像和沙尘图像的色彩饱和度十分必要. 过程如下: 首先将有雾图像或沙尘图像从RGB颜色空间转换到HSV颜色空间[18], 转换公式为
V1=max{R,G,B},V2=min{R,G,B},
(2)
(3)
(4)
其中:R,G,B分别为降质图像的三通道; max和min表示求最大值和最小值的函数. 然后对饱和度S进行增强, 公式表示为
S=bS, 1≤b≤3,
(5)
其中b为增强系数, 其值并不固定, 可根据图像模糊程度手动调节.通常图像模糊程度越高, 图像饱和度中消色成分(灰色)所占比例越大, 图像色彩越暗淡, 增强系数的值也越高, 二者之间成正比, 但增强系数也有最高限制, 如果其值过高, 则图像颜色容易过度饱和进而失真, 且与原图像颜色差异值会越来越大.
2.2 图像对比度的增强
直方图均衡是用于提高图像全局对比度的增强算法, 对图像局部对比度的提高效果不理想.通过观察得知, 人眼习惯从图像的局部上下文区域评估其内容[19], 因此, 提出了其改进算法自适应直方图均衡, 该算法将图像分成多个不重叠的局部区域分别进行直方图均衡化, 虽然图像的局部可见度得到了提高, 但图像中的噪声也被放大.限制对比度自适应直方图均衡化算法通过对局部图像直方图高度的限制有效解决了该问题.
步骤1) 将图像分成大小为X×Y的不重叠块区域, 实验结果表明其取值为8时, 图像处理效果最好.
步骤2)求解每个块的直方图, 并设置限制值Cliplimit, 该值与图像对比度成正比关系, 其作用是防止对比度过度放大. 直方图裁剪以及重分配过程如图2所示. 首先将直方图中高于Cliplimit的数值设置成Cliplimit, 并将高于Cliplimit的部分进行求和均分给每个灰度等级, 然后观察重分配后的直方图是否仍高于Cliplimit, 如果是, 则继续迭代上述过程, 直到直方图高度不超过Cliplimit.
图2 直方图裁剪以及重分配图Fig.2 Histogram cropping and redistribution map
步骤3) 为消除块之间的效应, 利用双线性插值算法实现各块的链接, 如图3所示. 由图3可见: 对于区域1内的灰度值, 只需用对应块的累积分布函数映射成新的灰度值即可: 对于区域2内的灰度值, 需要邻近两个子块的累积分布函数映射成新的灰度值, 然后对两个新的灰度值做线性插值; 对于区域3内的灰度值, 则需要对其周围邻近的4个子块映射的灰度值做双线性插值. 以区域3内的点P(x,y)为例,A,B,C,D为其4个邻近点,P对应的新灰度值P1的双线性插值表达式为
P1=(1-y)[(1-x)g(a)+xg(b)]+y[(1-x)g(c)+xg(d)],
(6)
其中g(a),g(b),g(c),g(d)为4个邻近点映射后的灰度值,x和y分别为点P的横、 纵坐标值, 由于是邻近点, 所以相邻两点之间的距离为1.
图3 线性插值的不同区域Fig.3 Different areas of linear interpolation
对比度是指图像亮暗区域中最大值与最小值之间的差异, 其差异值越大, 对比度越大.在HSV颜色空间中,V表示图像色彩的明暗度, 也可以近似用于表示图像的明暗度, 所以利用限制对比度自适应直方图均衡化算法处理V, 可有效提高图像的对比度, 同时也可避免CLAHE算法在RGB颜色空间处理图像时出现的失真现象.
3 滤波增强
3.1 Laplace算子模糊检测
对于低模糊程度的图像在经过饱和度和对比度增强后, 如果仍继续增强图像, 会导致图像局部区域因过度增强使图像细节模糊, 为避免这种情况, 本文利用Laplace算子对图像进行模糊检测, 过程如下: 首先利用Laplace算子检测图像的边缘, 求解边缘检测图的方差, 对于模糊程度较低的图像, 可见边缘信息更多, 所对应的方差也越大, 而模糊程度较高的图像对应的方差则会很小, 如果图像边缘检测图的方差低于设定的阈值, 则认为该图像模糊程度较高, 需进一步增强处理. 实验表明, 阈值的结果设为0.02时图像效果较好.
3.2 基于WLS滤波的增强算法
滤波在图像增强领域广泛应用, 其具有平滑图像、 减少噪声及保护图像边缘的功能, 避免图像丢失边缘信息, 常用的滤波器主要有高斯滤波、 双边滤波及基于加权最小二乘滤波[20], 其中基于加权最小二乘滤波可以基于任何尺度提取图像细节层, 并可以很好地保留图像的边缘减少伪影的存在.
滤波的保持边缘平滑功能就是要平滑输入图像的同时也能很好地保留其边缘信息, 如果用g表示输入图像, 用u表示输出图像, 则u在很大程度上与g是相似的, 两者之间的关系可表示为
(7)
其中p表示像素点的坐标.第一项(up-gp)2的作用是最小化u和g之间的差异, 第二项则实现平滑图像, 主要通过最小化u的偏导数完成.平滑度取决于g的平滑度权重ax和ay在空间上的变化,λ的主要作用是平滑两个数据项, 其值越大, 图像u越平滑.式(7)也可以用矩阵的形式表示为
(8)
其中Ax和Ay分别表示ax和ay的对角矩阵,Dx和Dy则为离散微分算子.u是使式(8)取最小值被确定的唯一线性系统解, 其数学表达式为
(I+λLg)u=g,
(9)
(10)
其中:L为输入图像g的亮度通道; 参数β决定了对g的梯度;ε为一个非常小的值(取值为0.000 1), 防止在梯度为零的区域内g是恒定的.
文献[20]基于WLS框架提出了一种新的保持边缘的多尺度图像分解算法, 同时也证明了WLS框架在色调映射、 细节增强及图像抽象等应用方面的有效性, 证明了其具有很好的健壮性和通用性. 在上述研究的基础上, 本文将WLS框架应用于处理有雾图像和沙尘图像的增强. 实验表明, 如果利用多尺度提取图像细节的增强算法处理有雾图像和沙尘图像, 会导致图像噪声被放大和失真, 所以本文提出一种基于WLS框架的单尺度提取图像模糊特征的滤波增强算法, 减少了算法复杂度.
步骤1) 利用WLS滤波平滑输入图像获取图像的基础层: 文献[20]中处理的是清晰图像, 所以其输入图像为其亮度通道, 考虑到有雾图像和沙尘图像的清晰度较低, 本文通过改变滤波参数值对输入图像本身进行平滑进而提取其表面模糊层, 即输入图像的基础层. 利用式(10)平滑图像的数学表达式为
uc∈{R,G,B}=wlsFilter(gc∈{R,G,B},r,s,log(gc∈{R,G,B})),
(11)
其中:u表示滤波后的图像, 即基础层; wlsFilter表示WLS滤波算子;g表示输入图像;R,G,B表示g的3个颜色通道;r和s为滤波参数,r值越大, 图像越趋于平滑,s表示对梯度的非线性缩放,s值越大, 保留的图像边缘越清晰; log表示对数函数.
步骤2) 获取图像的细节层: 细节层等于输入图像减去基础层, 本文算法由于处理的是模糊图像, 如果增强细节会放大图像噪声进而导致图像失真, 所以不对细节层进行增强.
步骤3) 获取增强图像: 通常利用滤波增强细节获得的增强图像, 等于细节层和基础层的加和, 但通过实验观察发现, 基础层图像经过WLS滤波平滑后, 图像的清晰度会低于平滑前的图像, 所以本文最后的增强图像E是细节层和输入图像的融合结果, 其数学表达式为
E=(g-u)+g.
(12)
本文算法流程如图4所示.
智慧课堂最本质的目的是促成学生的智慧生成,其充分利用信息技术带来的教学模式上的转变,对教师来说是一个严峻的挑战,对成人学生来说又是一个全新的体验。“让智慧回归教育,让智慧唤醒课堂,让智慧引领教师专业成长。它是时代的呼唤,是教师专业成长的需要,是课堂教学焕发生机与活力的契机,是新时期教育教学改革的重大使命。”[1]
图4 本文算法流程Fig.4 Flow chart of proposed algorithm
4 实验结果与讨论
实验在Windows7环境中进行, 处理器为Intel®CoreTMi7-6700 CPU @3.40 GHz, 运行软件为MATLAB R2016a, 实验中的图像来源于网络, 名字分别为Florence_input.png, Beijing3.png, 1.jpg和2.jpg. 算法的评价主要采用主观视觉感受和客观参数相结合, 主观视觉感受主要指图像的整体视觉效果, 客观参数选取峰值信噪比(peak signal-to-noise ratio, PSNR)、 均方误差(mean-square error, MSE)和方差(variance, Var), 其中PSNR用于表示原图像与增强图像之间的相似性, 可用于判断增强图像是否存在失真, 其值越大, 表明增强图像质量越好, 但不适用于评价对比度较低的图像, 因为其值越高, 证明增强算法恢复图像的可见度较低. MSE表示原图像与增强图像之间的均方误差, 其值越小, 表明图像质量越好. 方差可用于表示图像的对比度, 其值越高, 表明图像可见边缘越多, 图像的清晰度也越高. PSNR,MSE,Var的数学表达式分别为
(13)
(14)
(15)
其中,M和N分别表示图像的长和宽,I表示处理后的图像,P表示原图像, MAXI=255,Im表示图像I的平均值.处理RGB图像时, 只需计算亮度分量Y(YCbCr颜色空间)的PSNR值即可.
4.1 有雾图像
为证明本文算法去雾的有效性, 将本文算法与文献[6-9]的去雾算法进行比较, 给出原图像以及各算法处理图像对应的边缘检测效果. 对于图像可见边缘的检测, 主要利用Canny算子实现, 其不仅可以平滑噪声减少干扰, 还可以检测更细的边缘, 图像可见边缘越多, 证明图像的清晰度越高. 图像整体视觉实验结果如图5和图6所示, 边缘检测效果如图7和图8所示, 客观参数结果列于表1和表2.
图5 Florence_input.png实验结果Fig.5 Experimental results of Florence_input.png
图6 Beijing3.png实验结果Fig.6 Experimental results of Beijing3.png
图7 Florence_input.png边缘检测结果Fig.7 Edge detection results of Florence_input.png
图8 Beijing3.png边缘检测结果Fig.8 Edge detection results of Beijing3.png
由图7可见, 对于原图像的可见边缘, 尤其是对原图像黑色框内树木边缘的显示, 文献[6-9]算法均存在不同程度的缺失, 文献[8]算法由于在天空区域出现了较严重的色彩失真, 导致在图像天空区域检测到了部分边缘, 本文算法在保证原有边缘都完整保留的前提下, 又增加了由于有雾而不易显示的边缘, 证明了本文算法在提高清晰度方面的有效性. 由图8可见, 文献[6]和文献[7]对原图像远处恢复的可见边缘数相对于本文算法较少, 表明其在图像远处去除模糊不彻底, 文献[6-9]算法恢复可见边缘的总体数目明显低于本文算法, 尤其是原图像黑色矩形区域对应的可见边缘数, 使图像丢失了很多原有的细节.
由表1和表2可见, 本文算法处理的两张图像客观参数值都远高于其他算法, 证明了本文算法在提高图像清晰度方面表现更好, 图像质量更高. 实验结果表明, 本文算法对降质图像的增强效果较好.
表1 Florence_input.png实验参数
表2 Beijing3.png实验参数
4.2 沙尘图像
由于沙尘图像有色差问题, 所以对沙尘图像算法的评价主要包括两部分: 一是色差问题是否得到彻底解决; 二是是否提高了图像清晰度. 为证明本文算法在这两方面的能力, 将本文算法与文献[10,14,16-17]的算法进行比较, 依然从视觉效果和客观参数两方面综合评价算法性能, 视觉实验效果如图9和图10所示, 客观参数实验结果列于表3和表4. 客观参数除PSNR和MSE外, 还用到了结构相似度(structural similarity, SSIM), SSIM从亮度l、 对比度c和结构s三方面评价图像的质量, 其值越高, 表明图像质量越高, 数学表达式为
其中:x,y表示图像像素点的坐标;I表示增强后的图像;P表示原图像;μI和μP分别为I和P的平均值;σI和σP分别表示I和P的方差;σIP为I和P的协方差;c1=(0.01T)2,c2=(0.03T)2,c3=c2/2,T为像素值的范围.
图9 1.jpg实验结果Fig.9 Experimental results of 1.jpg
由图9可见: 所有算法在调整色差方面效果都很好; 但文献[10]算法降低了图像色彩的亮度, 图像整体色彩暗淡, 从而降低了图像的可见度; 文献[14]算法在恢复图像色彩方面存在过度饱和问题, 导致图像在色彩暗区域色彩逐渐变深, 在色彩明亮区域色彩逐渐变亮, 如图中天空区域逐渐白化, 模糊了远处的图像细节; 文献[16]算法在色彩恢复方面效果较好, 但图像整体清晰度较低; 文献[17]算法虽然提高了图像的亮度, 但却导致图像噪声被放大, 存在局部失真现象; 本文算法在恢复图像色彩饱和度方面处理较好, 既恢复了与原图像相接近的色彩, 又不会导致色彩失真, 同时利用CLAHE算法和WLS滤波提高了图像的整体清晰度.
由图10可见: 文献[10]算法虽然提高了图像的清晰度, 但图像整体亮度偏低, 色彩暗淡, 导致图像细节丢失; 文献[14]算法在色彩恢复方面效果较好, 但图像色差问题未得到解决; 文献[16]算法在清晰度恢复方面明显低于其他算法; 文献[17]算法处理的图像存在过度曝光和噪声被放大的问题, 过度曝光直接导致图像色彩饱和度降低, 噪声被放大导致图像失真, 图像整体清晰度下降. 除文献[14]算法在去除色差方面不彻底外, 其他算法都取得了很好的成效, 但在图像色彩恢复和清晰度提高方面, 与其他算法相比, 本文算法处理效果更好.
图10 2.jpg实验结果Fig.10 Experimental results of 2.jpg
表3 1.jpg实验参数
表4 2.jpg实验参数
由表3和表4可见, 本文算法的PSNR和MSE值均高于其他算法, 证明了本文算法的有效性, 虽然文献[16]算法的SSIM值略高于本文算法, 但其图像视觉效果较差, 综合图9和图10可见, 本文算法在保证与原图像色彩接近的同时提高了图像的清晰度, 使图像整体视觉效果更好, 避免了图像出现色彩失真等现象.
综上所述, 本文针对雾和沙尘的存在使图像的对比度和饱和度严重降低, 进而影响图像的清晰度, 对提取图像中的信息产生困扰的问题, 提出了一种改进的图像增强算法. 该算法提高了图像的色彩饱和度, 使其在接近原图像色彩的同时又不失真; 在清晰度方面, 则利用限制对比度自适应直方图均衡化算法提高图像对比度, 如果处理模糊程度较高的图像, 则利用基于WLS框架的单尺度提取图像模糊特征的滤波增强算法, 进一步提高图像的可见度. 本文算法简单, 且具有一定的健壮性, 可以处理不同模糊程度的图像. 实验结果表明, 无论是色彩恢复还是清晰度提高方面, 本文算法都具有很好的视觉效果.