基于暗通道的沙尘图像增强算法
2021-09-22孙启隆司振惠
孙启隆, 于 萍, 司振惠, 郭 鑫, 王 岩
(1. 吉林师范大学 管理学院, 吉林 四平 136000; 2. 吉林师范大学 计算机学院, 吉林 四平 136000)
由于沙尘中含有大量灰尘和沙土等杂质, 因此导致沙尘环境下拍摄的图像质量严重下降, 主要表现为图像颜色偏黄、 噪声大和可见度低等, 很难清晰识别图像中的目标, 尤其在道路监控方面, 极易导致交通事故. 目前, 计算机视觉领域中已有很多增强沙尘图像清晰度的算法[1-6], 这些算法有的利用调优模糊算子处理沙尘图像, 有的则通过分析沙尘图像的直方图调整图像色差, 虽然这些算法都提高了沙尘图像的清晰度, 但仍存在以下局限: 1) 对于沙尘较重的图像去除色差不彻底; 2) 增强后的图像局部区域噪声被放大; 3) 处理包含天空区域的沙尘图像时, 天空区域易出现光晕现象; 4) 对沙尘图像的过度增强, 导致图像出现色彩失真和细节模糊等现象. 针对以上局限, 本文提出一种新的图像增强算法. 该算法主要分为调整图像色差和提高图像清晰度两部分, 前者主要通过在Lab色彩空间利用灰度世界算法消除色差; 消除色差后的沙尘图像与有雾图像相似, 所以后者主要以消除光晕效果的暗通道算法为基准, 并改进其对大气光的错误估计方法, 然后利用伽马校正以及图像加权融合等算法综合处理图像. 实验结果表明, 该算法有效解决了传统算法存在的不足, 提高了沙尘图像的质量和清晰度.
1 算法简介
基于暗通道的沙尘图像增强算法主要步骤如下.
1) 调整沙尘图像色差: 将输入图像转换到Lab色彩空间, 运用灰度世界算法调整色彩分量a和b的值, 进而解决沙尘图像色差问题, 在Lab色彩空间调整色差可解决图像因色差去除不彻底导致的色彩失真问题.
2) 伽马校正: 伽马校正可减少图像亮度和对比度, 避免了去雾后的图像存在过度曝光和局部区域有噪声的问题.
3) 减少光晕效果的暗通道去雾算法: 该算法通过对透射率的正确估计, 解决了图像天空区域出现光晕和失真的问题, 同时针对原算法中对大气光的错误估计方法进行了修正.
4) 亮度补偿: 减少光晕效果的暗通道算法通常会降低图像亮度, 不利于显示图像细节, 所以提高图像的亮度通道L(Lab色彩空间中用L表示亮度通道), 以提高图像的可见度.
5) 增强对比度: 暗通道去雾后的图像不仅亮度较低, 而且对比度也较低, 所以利用限制对比度自适应直方图均衡化(contrast limited adaptive histogram equalization, CLAHE)算法提高图像对比度.
6) 图像加权融合: CLAHE算法处理图像时易出现伪影和光晕等现象, 所以将其与亮度补偿后的图像进行融合, 既能消除光晕等现象, 又能提高图像的对比度. 实验结果表明, 本文算法不仅可以解决图像色差和失真等问题, 而且也提高了图像的亮度和对比度. 本文算法的流程如图1所示.
图1 基于暗通道的沙尘图像增强算法流程Fig.1 Flow chart of dust image enhancement algorithm based on dark channel
2 调整图像色差
灰度世界算法[7]通过使图像3个通道的平均值相等, 从而使图像呈灰白色, 并且不会改变原图像中物体的颜色, 该算法适用于调整各种有色差的图像. Ancuti等[8]曾用灰度世界算法处理水下图像, 去除了水下图像中多余的蓝绿色调, 使增强后的图像色彩更自然. 沙尘图像和水下图像相似, 水下图像由于蓝光的波长短, 在水中吸收衰减系数小, 所以水下图像大多呈蓝青色. 而沙尘图像由于其含有大量沙土等杂质, 在光的反射下图像色调整体偏黄, 故可用灰度世界算法处理沙尘图像.
Lab色彩空间由亮度L和相关色彩的分量a,b组成, 其中亮度分量和色彩分量是独立的, 可以单独处理并且彼此间不会产生影响, 这种优势是RGB色彩空间不具备的. 此外, 相比RGB色彩空间, Lab色彩空间不仅有更宽阔的色域, 且其能显示RGB色彩空间不能显示的颜色, 人类肉眼可见的颜色通过Lab色彩空间能全部展现, 由于RGB空间3个分量不是独立的, 因此处理图像时易出现色彩失真现象. 分别在RGB和Lab色彩空间调整色差后的增强图像对比结果如图2所示. 由图2可见: 在RGB色彩空间调整色差后得到的图像(B)整体色调仍有些偏黄, 天空区域偏蓝, 出现了颜色失真现象; 而在Lab色彩空间调整色差后的图像(C), 色差问题基本得到了解决, 沙尘图像偏暗黄的色调基本被去除, 图像的清晰度也有提高. 所以, 本文在Lab色彩空间调整沙尘图像色差. 过程如下:首先将图像从RGB色彩空间转换到Lab色彩空间, 分离出色彩分量a和b, 然后用灰度世界算法分别对其补偿, 最后再将图像从Lab色彩空间转换回RGB色彩空间.
图2 不同色彩空间的色差校正结果Fig.2 Chromatic aberration correction results of different color spaces
设A和B分别表示调整色差后的分量a和b,Ga和Gb分别表示分量a和b的平均值, 则用灰度世界算法补偿色彩分量a和b的表达式[6]为
A=a-Ga,
(1)
B=b-Gb.
(2)
3 算法设计
3.1 伽马校正
伽马校正对图像色调的调解是非线性的, 通过调整校正参数值可改变图像高/低光的局部动态范围, 进而改变图像的对比度和亮度.当校正参数值大于1时, 低光局部范围被放大, 图像色彩整体偏暗, 而图像细节将被放大; 当校正参数值小于1时, 高光局部范围被放大, 图像色彩整体明亮, 图像细节模糊.其数学表达式为
LI=Is,
(3)
其中LI表示伽马校正后的图像,I表示调整色差后的图像,s为校正参数.
减少光晕效果的暗通道算法在图像色彩方面普遍存在过度增强的问题, 从而导致图像出现失真和噪声等现象.通过调整伽马校正参数扩展图像低光局部范围可解决上述问题, 实验结果如图3所示, 其中(E)为LI经过减少光晕效果的暗通道去雾算法处理后的增强图像.由图3可见, 与图3(D)相比, 图3(E)有效避免了色彩失真现象以及噪声的出现, 图像细节更清晰. 为更好地观察图像细节, 将图3(A)中黑色框内图像局部区域放大, 细节对比结果如图4所示, 其中图4(A)~(D)分别对应图3(A),(D),(E)和(F)的细节. 由图4可见, 图4(B)出现了严重的色彩失真, 进而导致图像出现噪声; 而图4(C)的细节更清晰, 图像在色彩方面也未出现过度增强现象; 图4(D)由于提高了图像亮度, 其清晰度更高, 图像的色彩也更明亮自然.
图3 伽马校正图像前后对比结果Fig.3 Comparison results before and after gamma correction images
图4 图3中伽马校正图像的细节对比Fig.4 Detail comparison of gamma correction images in Fig.3
3.2 减少光晕效果的暗通道算法
图像去雾算法主要分为基于大气散射模型和非大气散射模型两个类型, 基于暗通道的去雾算法属于前者, 大气散射模型表达式为
I(x)=J(x)t(x)+A(1-t(x)),
(4)
其中I和J分别表示需要增强的模糊图像和清晰图像,t和A分别表示图像的透射率和全局大气光,x表示图像像素点的坐标.式(4)可视为一个线性方程, 其中已知量有且仅有一个I, 其他3项都是需要求解的未知量.使用暗通道成功解决了上述问题, 暗通道来源于I, 而t和A又可以根据暗通道求解, 所以,J也可求解.
3.2.1 暗通道
He等[9]提出了基于暗通道的去雾算法, 通过观察和统计大量户外图像发现: 图像在局部区域(除天空区域外), 某些像素在对应的颜色通道中, 至少在一个通道中的像素强度值较低, 其值接近零, 并将其称为图像的暗通道, 求解图像暗通道的表达式为
(5)
其中r,g,b分别表示输入图像J的3个颜色通道,Ω(x)表示像素点x周围邻域像素的集合区域.
3.2.2 求解大气光的改进方法
He等[9]利用暗通道求解大气光, 其过程为: 首先挑选有雾图像暗通道中最亮的0.1%像素估计大气光, 然后求其在图像三通道中的坐标并记录, 最后分别求解三通道中的最大值, 作为图像的大气光. 这种方法的缺点是易错将图像中白色物体或者高光区域对应的像素值作为大气光值, 导致去雾后图像亮度降低, 所以本文将三通道大气光值的平均值作为全局大气光, 其表达式为
A=[M;M;M],
(6)
其中M为三通道大气光值的平均值,A为图像最终的大气光.
3.2.3 透射率的求解与优化
若大气光已知, 则透射率的求解就会变得简单, 根据式(4)、 清晰图像J的暗通道值接近零以及局部最小值滤波可得到粗略透射率的表达式为
(7)
其中参数ω=0.95, 其主要作用是保留图像部分雾, 使图像视觉不失真.
对透射率的优化有两种方式: 软抠图和引导滤波[10].前者虽然效果较好, 但复杂度极高, 算法运算效率较低.而后者不仅优化速度快, 并且其保护图像边缘能力强, 所以本文对透射率的优化使用引导滤波方法, 其表达式为
Gt=GF(I,t,r,ε),
(8)
其中Gt和GF分别表示优化后的透射率和引导滤波函数, 引导图像I在本文算法中为经过调整色差和伽马校正预处理后的图像, 引导参数r和ε分别表示滤波窗口和正则化, 其取值在多数实验中分别设为32和0.01.
3.2.4 重估透射率求解清晰图像
将求解出的大气光A和优化后的透射率Gt代入式(4), 可求出清晰图像, 同时设参数t0=0.1, 防止Gt为零, 增强图像J(x)的表达式为
(9)
He算法存在对透射率的估计不准确, 导致处理包含天空区域图像时, 易出现光晕现象等缺陷, 为解决该问题, 蒋建国等[11]通过设置容差值K的方法, 最后得到增强图像的表达式为
(10)
在式(10)中, 如果|I(x)-A| 由图3可见, 经过伽马校正和减少光晕效果的暗通道去雾后的图像(E), 明显存在亮度较低的问题, 所以需要进一步提高图像亮度. 对于图像亮度的增强与调整图像色差相同, 均在Lab色彩空间进行. 对亮度通道L的补偿公式为 l=L×m1, (11) 其中:l为调整亮度后的L;m1为补偿参数, 是一个常数, 当m1>1时, 提高图像亮度, 当m1<1时, 降低图像亮度.提高亮度后的图像如图3(F)所示, 明显可见图像的细节更清晰, 色彩更贴近于原图像. 直方图均衡化算法是对图像全局对比度的增强, 通常会导致图像局部信息丢失.自适应直方图均衡化算法先将图像分成M×N大小的局部子区域, 再对每个子区域进行直方图均衡化, 以改善传统直方图均衡化的不足, 但其缺点是使图像噪声放大.为解决该问题, 人们提出了限制对比度自适应直方图均衡化算法, 其能通过对局部直方图高度的限制减少图像噪声的放大以及限制图像局部区域对比度的过度增强. 减少光晕效果的暗通道算法虽可去除图像表面的模糊特征, 但图像的对比度还有待提高, 所以对暗通道算法处理后的图像进行限制对比度自适应直方图均衡化处理, 以进一步提高图像的对比度. 图5为图像融合处理对比结果.由图5(A)可见, 在图像对比度得到提高的同时, 图像的清晰度也得到了提高, 图像色彩更明亮. 由图5(B)可见, 虽然图像的对比度得到了提高, 但在图像的远处出现了轻微的伪影现象, 并且通过实验发现, 限制对比度自适应直方图均衡化算法处理包含天空区域的沙尘图像时易出现光晕现象. 为解决该问题, 将亮度补偿后的图像与CLAHE算法处理后的图像进行加权融合, 在保障图像清晰度的同时避免图像出现伪影和光晕等现象, 实验结果如图5(D)所示. 由图5(D)可见, 融合后的图像不仅消除了图像景深处(即图像的远处)的伪影, 而且图像的亮度也得到进一步提高, 并且与亮度补偿后的图像相比, 图像的清晰度也得到了提高. 图像融合表达式为 E=λH+(1-λ)C, (12) 其中E表示融合后的图像,λ表示融合系数,H表示亮度补偿后的图像,C表示增强对比度后的图像. 图5 图像融合处理对比结果Fig.5 Comparison results of image fusion 在普通PC机上进行实验, 实验环境为: 操作系统Windows 7.0, 处理器为AMD AthlonTMⅡ X4 640 Processor 3.00 GHz, 系统内存为4 GB, 算法运行的软件为MATLAB R2016a. 经过大量实验测试, 设s=1.2,m1=1.5,λ的取值范围为0.5~0.9, 其中λ值不固定的原因为对于不同的沙尘图像, 算法并不具有相同的处理效果. 为证明算法的可行性, 将本文算法与文献[4-6]的算法进行比较, 实验中选取的图像主要来源于网络和文献[6], 图像名称分别为Build.jpg,Dusk.jpg,Lou.jpg和House.jpg, 图像的统一特点是都包含天空区域, 是为验证算法是否在天空区域出现光晕现象. 算法的评价主要从视觉效果和客观参数方面进行综合评价, 不同算法的视觉效果如图6和图7所示. 客观参数选取广泛使用的峰值信噪比(peak signal-to-noise ratio, PSNR)和结构相似度(structural similarity, SSIM). PSNR表示图像失真的程度, 其值越大, 图像失真越小. PSNR的表达式为 (13) (14) 其中m和n分别为图像的长和宽,I表示增强后的图像,P表示原图像, MSE为均方误差, MAX=255. 式(13)和式(14)是针对灰度图像的方法, 处理彩色图像时, 需将其转换到YCbCr色彩空间, 计算亮度分量Y的PSNR值即可. 图6 不同算法对Build.jpg的实验结果对比Fig.6 Experimental comparison results of Build.jpg by different algorithms 图7 不同算法对Dusk.jpg的实验结果对比Fig.7 Experimental comparison results of Dusk.jpg by different algorithms SSIM表示两幅图像在结构上的相似程度, 其值越大, 图像间的相似程度越高. SSIM主要通过对比两幅图像的亮度l、 对比度c和结构s综合评价, 其表达式为 c1=(0.01T)2,c2=(0.03T)2,c3=c2/2, (18) 其中x,y表示图像像素的坐标,I表示增强后的图像,P表示原图像,μI和μP分别为I和P的平均值,σI和σP分别表示I和P的方差,σIP为I和P的协方差,T为像素值的范围.SSIM的表达式为 (19) 沙尘图像虽存在色差问题, 但图像的结构和纹理较清晰, 所以可用其评价算法恢复图像整体结构的效果. 客观评价参数结果列于表1和表2. 表1 图6的客观评价参数值 表2 图7的客观评价参数值 由图6可见: 文献[4-6]中算法在图像天空区域均出现了不同程度的色彩失真, 文献[4]的算法由于未彻底解决沙尘图像的色差问题, 增强图像不仅出现了严重的色彩失真, 而且也降低了图像的可见度, 而文献[5]和文献[6]的算法虽然解决了沙尘图像的色差问题, 但增强后的图像局部区域存在过度曝光现象, 文献[5]算法过度曝光的结果导致图像色彩过度增强, 而文献[6]的算法则由于过度曝光问题导致图像表面有些模糊, 清晰度较低; 本文算法有效避免了天空区域出现失真现象, 并解决了图像色差问题, 并且在亮度和色彩增强方面不存在过度曝光或者低曝光等现象. 由图7可见: 文献[4]算法增强后的图像整体色调仍然偏黄, 图像的色彩过度增强, 并且图中新娘的头纱部分区域也存在细节丢失现象; 文献[5]和文献[6]的算法在图像天空区域都出现了不同程度的光晕现象, 并且图像部分区域存在噪声, 图像中摄影师脸的周围也出现了不同程度的色彩失真现象; 文献[4-6]算法增强后的图像, 无论是在色彩方面还是清晰度方面的效果都弱于本文算法. 由表1和表2可见, 本文算法PSNR和SSIM参数值均明显高于对比算法, 表明本文算法在降低图像失真和结构恢复方面效果均较好. 为证明融合算法的有效性, 以图6和图7中图像为例, 将融合前后图像的客观参数进行对比, 实验结果列于表3. 由表3可见, 融合后图像的客观参数值明显提高, 证明了融合算法的有效性. 表3 图像融合前后客观参数的对比 为进一步证明增强算法的鲁棒性, 将本文算法与文献[12-14]中的经典去雾算法进行比较, 图像评价仍选取视觉评价和客观参数评价相结合. 为客观评价, 图像统一使用调整色差后的沙尘图像, 视觉效果如图8和图9所示, 客观评价参数结果列于表4和表5. 图8 不同算法对Lou.jpg的实验对比结果Fig.8 Experimental comparison results of Lou.jpg by different algorithms 图9 不同算法对House.jpg的实验对比结果Fig.9 Experimental comparison results of House.jpg by different algorithms 表4 图8的客观评价参数值 表5 图9的客观评价参数值 由图8可见, 文献[12]的算法虽然处理的是调整色差后的沙尘图像, 但去雾后的图像仍出现了色彩失真现象, 增强后的图像整体色彩偏暗; 文献[13]和文献[14]的算法虽然未出现失真, 但在天空区域均出现了轻微的光晕现象, 并且在图像色彩方面过度增强, 导致图像细节模糊; 本文算法不仅有效避免了光晕现象, 而且对图像细节和色彩恢复方面的恢复与原图像最相似. 由图9可见: 文献[12]算法虽然增强了图像的可见度, 但图像依然存在色差问题, 导致图像中树木区域细节模糊; 文献[13]、 文献[14]和本文算法都有效解决了光晕和色差问题, 但文献[13]和文献[14]算法的图像亮度低于本文算法, 导致图像可见度降低; 本文算法有效避免了上述问题, 在有效消除色差的同时提高了图像的可见度. 由表4和图8可见, 文献[12-14]算法的PSNR和SSIM值均低于本文算法. 由表5和图9可见, 本文算法无论是在视觉效果方面, 还是在客观评价方面, 都高于其他去雾算法, 证明了本文算法的鲁棒性. 综上所述, 针对沙尘图像不同于传统的有雾图像或低照度图像, 除可见度和对比度较低外, 该类图像还普遍存在色差, 而传统图像增强算法通常会导致图像出现色彩失真和光晕现象等问题, 本文通过在Lab色彩空间用灰度世界算法调整色差有效避免了图像出现色彩失真现象, 用伽马校正函数和减少光晕效果的暗通道去雾算法避免了图像出现噪声、 色彩过度增强和光晕等现象, 最后将亮度补偿后的图像与对比度增强后的图像进行加权融合, 进一步提高了图像的可见度, 使图像细节更清晰可见. 实验结果表明, 本文算法可有效去除沙尘图像色差, 提高图像的亮度和清晰度, 减少光晕的出现, 使图像色彩更自然, 能得到较理想的图像增强效果.3.3 亮度补偿
3.4 限制对比度自适应直方图均衡化算法
3.5 图像加权融合
4 实验结果与分析