基于暗原色先验的图像去雾质量评价与优化研究
2022-10-13孙兵
孙 兵
(安徽文达信息工程学院 计算机工程学院,安徽 合肥 231201)
图像去雾处理技术是一项年轻的技术。对该项技术的研究涉及的领域广阔,包括数学知识、物理学知识、大气学知识,其应用前景也十分广阔,包括日常照片处理、实时视频的清晰化、水下拍摄和空中拍摄等[1]。目前图像去雾的方法实现主要有两种,基于图像增强的方法和基于物理模型的方法[2]。基于图像增强的去雾方法是基于人体视觉系统的色彩处理,采用增强对比度、突出图片的部分特征并抑制不需要的特征的手段来实现清晰化,实现全局化图像增强的方法和局部图像增强的方法,主要包括基于直方图均衡化[3-4]的去雾算法、基于Retinex理论[5]的去雾算法和基于小波变换[6]的去雾算法。这种方法的使用较为广泛,但是着重于增强视觉效果而非将图片完全还原,也没有分析图像不清晰的实际原因,往往会造成图片部分信息的缺失。基于物理模型的方法搭建了有雾图像的退化模型并辅以数学工具进行研究和还原,主要有基于偏微分方程、基于先验信息和基于深度关系的方法。近些年,基于先验信息的去雾方法取得了较好的进展,下面是比较典型的三种:Fattal[7]假设了传输和物体表面的明暗在区域上是不相关的,借助数理统计和建立模型得到清晰图像。但是在图片的特定区域信息获取失效时,这种方法也会随之失效。Tan[8]的方法基于两条观察成果:去雾图像应当比有雾图像有更高的对比度,大气光值的大小是基于物体到观察者的距离而且变化是趋于平滑的。Tan的方法目的在于通过提高对比度来改善输出图像的视觉效果,而并没有专注于完全地还原图像的无雾形态,因此这种方法常常会使图片的颜色失真。He[9]提出了一种基于户外无雾图像统计的暗原色先验法,结合大气散射模型从有雾图像中直接估计传输和大气光等信息进而还原出无雾图像。这种方法的输出图像比较自然,但是存在时间复杂度较高、对天空区域较大的图像算法失效等问题。本文针对传统的暗原色先验去雾法的不足进行了三个方面的改进工作,分别为大气光值的优化、透射率的优化和输出图像的亮度补偿。在原算法中将暗通道图中的亮度最高部分作为最不透雾的部分,虽然在大多数情况下有效,但是在有干扰光源的情况下经常计算错误,本文通过优化增强了大气光值计算方法的鲁棒性。
1 基于暗原色先验的图像去雾理论概述
1.1 暗原色先验算法[9]
在有雾的条件下,图像退化模型[10]描述如式(1)所示。
I(x)=J(x)t(x)+A(1-t(x))
(1)
式(1)中,I(x)为有雾图像,J(x)为无雾图像,t(x)为透射率,A为大气光强。图像去雾的工作就是在有雾图像I(x)中求取透射率t(x)和大气光强A,然后还原出无雾图像J(x),算法流程如图1(a)所示。而暗原色先验改进算法则在原来的基础上对大气光度值和透射率进行优化,同时进行亮度补偿提高图像的分辨率,如图1(b)所示。
(a)暗原色先验法流程图
1.1.1 透射率
从有雾图像恢复无雾图像的指标——t透射率,把式(1)变形得到式(2)。
(2)
对(2)式两边同时求取暗通道,得到公式(3)。
(3)
(4)
在人类的视觉感知中,图像中的不同层次的雾气是认知景物深度的重要信息。因此,引入常数ω来保留图像中一部分覆盖远景的雾气,不至于使图像中全部雾气移除后使图像丢失深度感,式(4)改写如式(5)所示。
(5)
其中,ω取0.95[9]。由以上步骤计算的透射率较为粗糙,在去雾图像中经常存在光晕和伪影等现象。
1.1.2 大气光
在暗通道图中,选取亮度为前0.1%的像素,再取这些像素中的最大值作为大气光值。He特别指出[9],这种方法所求得的大气光值并不一定是原图中最亮像素的亮度。在实际的室外有雾图片中,虽然处于雾霾天气下但光源有时并非只有大气光,而是通常由大气光和太阳光两部分组成。那么,有雾图像又可以描述如式(6)所示。
J(x)=R(x)(S+A)
(6)
其中,S为太阳光值,R为场景反射。这种方法选取的区域通常为最不透雾的区域,因此这部分区域的太阳光的影响可以忽略,即有S→0,所求得的最大值可以近似视为大气光。
1.1.3 还原无雾图像
由公式(1)变形得到式(7)。
(7)
其中,t0取0.1,最大值操作为分母不能取0。将原图片和以上求取的透射率t(x)、大气光值A代入,就能还原出无雾图像J(x)。
1.2 基于暗原色先验图像去雾的改进
1.2.1 大气光值估计的改进
1.2.2 引导滤波法优化
在引导滤波法中,输出图像q与引导图像I之间的线性关系描述如式(8)所示。
qi=akIi+bk,∀i∈ωk
(8)
式(8)中,ωk是以像素K为中心的窗口,ak和bk为窗口中的线性系数,在固定的窗口中表现为常数。在这种方法中,将输入图像与输出图像进行比较,然后计算并选择最优的ak和bk使得窗口代价最小。窗口代价函数描述如式(9)所示。
(9)
式(9)中,ε为常系数,这里取10-3。对整幅图像取窗口操作时,一个像素点可能会被包含在不同的窗口中,对处于不同窗口中的系数取均值操作,最终得到输出图像的表达式如式(10)所示。
(10)
式(10)中,ak取值如式(11)所示。
(11)
1.2.3 天空区域的透射率
《头号玩家》中有不少高能时刻,其中最燃的当属大东化身元祖高达RX-78-2,和机械哥斯拉决一死战的桥段。
(12)
在天空区域中式(12)的分母会偏高,即原算法的透射率会比实际值偏低,需要将其适当放大。采用设定阈值的方法在图像特定的区域进行透射率的重新计算,阈值的分割即为天空区域和非天空区域的分割。对于|I(x)-A|>K的区域,即非天空区域,保留式(4)和式(7)中的透射率算法,如式(13)所示。
(13)
对于|I(x)-A| (14) 规定修正后的透射率不能大于1,将式(11)改写为式(15)。 t(x)=min(t′(x),1) (15) 1.2.4 亮度补偿 在算法中将输出图像的整体亮度进行适当提高。大气的散射效应会使得有雾图像的亮度高于无雾图像[10],He的估算大气光方法表现为全局估计,而实际上在图像的不同深度区域大气光值应该是不同的,式(7)中的A值在部分区域偏高使得输出的J(x)偏低。在实验中发现对于总体亮度不同的输入图像,补偿的大小也应该是不同的,原图像越暗补偿也会稍大。从大气光值的定义和在对室外有雾图像的实验总结中,选择把大气光值来作为补偿大小的参考条件。在实验中也发现,对于原图像如果亮度够高,不进行补偿也不会在成太大的失真,而且能够保持良好的对比度。补偿方案描述如式(16)所示。 Jcd=J(x)+min(max((ζ-A),0)×0.8,40) (16) 本文使用6个客观评测指标对去雾质量进行评价,分别为信息熵、平均梯度、均方误差、结构相似度、峰值信噪比和色调还原程度。 1.3.1 信息熵 计算信息熵评价值的大小就是求图像灰度值的总期望。图像的细节信息的多少可以由信息熵的评价结果来表征,如果图像包含的信息越多,那么信息熵的值也会越大。其计算公式如式(17)所示。 (17) 式(17)中i为某像素的灰度值,j为以该像素为中心的小区域的灰度的平均值,这个二元组出现的次数就是f(i,j)。M与N分别表示图像的长与宽。 1.3.2 平均梯度 平均梯度能够反映图片的清晰度,以及它对微小细节的表达能力。图像的边界附近的灰度值会变化较大,平均梯度就是来衡量这种变化的剧烈程度。计算公式表达如式(18)所示。 (18) 其中,M和N分别表示图像的长与宽,f(i,j)表示图像在(i,j)处的像素的值。平均梯度的值越大,则表示图像的层次多,图像的清晰度也就越高。 1.3.3 均方误差(MSE) 均方误差是反映估计量与被估计量之间差异程度的一种度量,在去雾质量客观评价指标中,表达为去雾图像与原图像在各个像素点处的误差的平均值,其计算公式如式(19)所示。 (19) 其中,M和N分别表示图像的长与宽,F(x,y)为去雾图像,f(x,y)为有雾图像。一般认为,均方误差越小则表示与原图像的差异越小,去雾图像就越逼真。 1.3.4 结构相似程度(SSIM) 给定两个图像x和y,其结构相似程度可以由式(20)来计算。 SSIM(x,y) (20) 1.3.5 峰值信噪比(PSNR) 峰值信噪比(PSNR)的计算公式如式(21)所示。 (21) 其中,fmax表示图像灰度的最大值,一般来说,图像的去雾质量效果越好,信噪比的数值就会越高。 1.3.6 色调还原程度 图像去雾之后的色调偏移程度不能过高。去雾前后的图像直方图的相似程度用相关系数来dcorrel评价,如式(22)所示。 (22) 实验环境:本文实验过程均在CPU为Intel(R) Core(TM)2 Duo T6570@2.1GHz,内存为4GB的PC机上运行所得,操作系统为Win7家庭版,开发平台为MALAB 2015b。 数据来源:测试数据图片来源于Li[11]等人研究,图像去雾基准测试集,包含4张图像,分别为赶集、商场、郊区、清洁工。 (a)输入图像(b)暗原色先验算法的输出图像(c)本文优化后算法的输出图像 如图2所示,为测试图像去雾前后效果图。从图2可以知,暗原色先验算法[9]的输出图像具有较好的去雾效果,但输出结果图像画质偏黑;而本文优化后算法的输出图像效果良好,不仅能够达到去雾效果,还补充图像的亮度,增强图像中物体和人物的轮廓边缘细节。 将测试图片集输入评测程序,得到的数据结果如表1所示。 表1 客观评测指标的输出结果 从表1可以明显地看出,本文使用的引导滤波算法的去雾运算速度快于He算法,速度提高一个数量级以上。同时,在表1中的数据可以非常明显地看出本文算法的输出图像的客观评测指标(信息熵、平均梯度、结构相似度、峰值信噪比和色调还原程度)要优于He算法的指标,说明本文算法处理后的图像细节信息量更多、清晰度更高、失真程度更低和还原程度更高。而本文算法的均方误差的指标值比暗原色先验算法算法小,说明去雾图像更逼真。综上所述,本文算法在图像去雾处理中具有良好的效果。 暗原色先验法不仅可以应对室外获取的图像受越来越频发的雾霾天气导致的质量降低的问题,甚至可以在航空航天、卫星遥感、医疗卫生、工业生产等众多领域获得广泛应用。本文从暗原色先验原理入手进行了研究,针对传统的暗原色先验去雾算法存在问题,并从中逐步形成新的改进算法,得到结论如下。 (1)通过大气光值的优化、透射率的优化和输出图像的亮度补偿能提高去雾图像的效果。 (2)改进后的暗原色先验算法在处理速度上有显著提升,提高一个数量级。 (3)透射率的改进细化方法仍然不可避免地使输出图片带有少量的光晕效应。因此,需要进一步地进行完善:①将去雾质量客观评价的方法加以研究与改善。目前的很多评测指标虽然有一定的参考意义,但是有时并不能真正地代表去雾质量的好坏,研究和应用其他更加有效的评价方法,或者自行开发新型的去雾质量评测指标。②研究有雾图像的划分。在有雾图像中寻找计算大气光值的最佳区域并在算法上能将其划分而出,从而做到大气光值的更精确计算。③透射率的优化,天空区域和景深突变处的透射率进行更好地优化,以完全消除失真和光晕效应。1.3 去雾质量客观评价指标
2 结果与分析
2.1 实验环境与数据来源
2.2 去雾前后效果图
2.3 图像去雾质量评价
3 结论