赵 波,李洪平,金汝宁,唐万松,刘相宜
(1.四川大学 机械工程学院,四川 成都 610065;2.四川省智能农机装备创新中心,四川 德阳 618000)
户外视频图像采集广泛用于交通安防和无人驾驶等多个领域,但由于雾霾等天气因素的影响,所采集的图像往往会出现模糊、色彩偏移等问题[1]。近年来,针对昼间图像去雾的研究得到了广泛的发展并趋于成熟,但在夜间人工光源条件下,昼间去雾算法存在不能有效复原夜间雾天图像等局限性[2]。以无人驾驶为例,若在夜间有雾场景下不能实现图像的快速去雾,将会严重影响视觉感知模块的性能,从而危及其行驶安全[3]。因此,研究夜间雾天图像复原,弥补现有去雾算法在夜间场景下的不足,对于算法的场景普适性和可靠性具有重要学术意义,同时对于夜间条件无人驾驶和视频安防等设备的正常工作具有重要的工程应用价值。
目前,图像去雾算法研究主要分为3类,即图像增强、深度学习和图像复原技术。基于图像增强的研究主要基于图像自身信息,通过局部直方图均衡化算法[4]、Retinex算法[5]等提升图像的对比度和色彩纹理信息,但忽略了雾天图像的形成机理,去雾效果有限。程鸿等[6]针对夜间有雾图像光照不均匀问题,利用同态滤波校正图像光照,并使用Retinex算法实现了光源附近的光晕去除,得到了视觉效果较好的夜间无雾图像。得益于计算机计算能力的提升,基于深度学习[7-11]的图像去雾算法不断被衍生出来,但由于不同场景数据库的相对缺乏,限制了算法的普适性和可靠性。Liao等[12]提出一种夜间雾浓度预测网络HDP-Net,并通过预测结果与原图像相减,得到色彩清晰的无雾图像。针对夜间多光源场景,Kuanar等[13]引入了一个基于深度学习的DeGlow-DeHaze迭代模型,该模型同时考虑了不同的颜色和光源,有效地解决了复原图像中的光晕现象。图像复原技术主要利用大气光学模型,在各种先验假设[14-16]基础上,基于雾霾的形成机理逆向推导无雾图像。然而,对于夜间雾天图像,由于多个光源的存在,往往会引起图像照度不均、色彩偏差严重、大气光分布不均匀等问题。因此,在夜间雾天场景下,基于恒定大气光的假设先验有一定的局限性。部分学者尝试将图像增强技术和图像复原技术相融合来实现复原图像的优化[17-19],但算法复杂度也随之增大。Ancuti等[20]提出一种基于多尺度融合的夜间去雾算法,通过在局部图像块上估计图像大气光,避免了光照不均的影响,但图像复原后会引起色彩失真。Li等[21]引入一种新的夜间雾霾模型,通过分析不同光源及其光晕,并在去雾前消除光晕的影响,但该模型在复原后景深处会引起边缘伪影。Yu等[22]首先利用通道差分图作为引导图,对原图像进行引导滤波以得到环境大气光的分布图,并提出亮通道先验矫正亮区域的透射率,最后采用加权融合的方法得到透射率图,但亮、暗通道透射率的不准确融合会引起复原图像中暗区域的纹理消失。Zhang等[23]基于日间室外图像统计,提出最大反射率先验估计环境大气光。随后,Zhang等[24]在此基础上,提出基于最佳尺寸最大反射率先验,有效解决了最大反射率先验在单色区域的失效问题,不足之处是复原后的图像偏暗。本文受Yu等[22]提出的亮、暗通道先验融合思想的启发,提出一种自适应大气光求取方法,主要思想是:基于饱和度和亮度联合求取大气光,同时对亮、暗通道透射率融合方法进行优化;在透射率融合阶段,对亮度分量进行分段伽马矫正得到亮通道透射率融合权值,实现亮、暗通道投射率的可靠融合,并采用加权聚合引导滤波细化初始透射率;为解决暗通道先验引起的复原图像偏暗问题,将复原图像转化到HSV(Hue-Saturation-Value)色彩空间,对亮度分量V(Value)进行均衡化;最后,对均衡化前后的图像进行线性融合,得到最终的复原图像。实验结果表明,所提算法在有效复原图像的同时,去雾彻底,色彩自然,纹理清晰。
图1为基于自适应大气光和加权聚合引导滤波的夜间图像去雾算法的整体架构,共分为3部分。1)大气光模块:基于亮度和饱和度分量联合求取信道图,并将信道图作为引导图,采用引导滤波对原始图像进行引导得到大气光分布图。2)透射率模块:基于亮通道先验和暗通道先验求取对应的透射率,对亮、暗通道透射率进行线性加权以得到初始透射率,其中,亮通道透射率权值通过对亮度分量进行分段伽马矫正得出;为解决引导滤波容易引起弱纹理模糊等问题,引入加权聚合引导滤波,在引导滤波的聚合阶段基于相似度为不同的窗口分配权值,实现初始透射率的细化。3)亮度矫正模块:为解决复原后图像偏暗的问题,将复原后的图像J1转换到HSV空间,对V分量进行均衡化后得到J2,最后将J1和J2进行线性聚合,得到最终的复原图像J。
图1 基于自适应大气光和加权聚合引导滤波的夜间图像去雾算法框架Fig.1 Framework of night image dehazing algorithm based on the adaptive atmospheric light and the weighted aggregation guided filter
Narasimhan等[25]提出的大气散射简化模型广泛应用于图像去雾领域,其物理模型为:
式中,I为雾天原始图像矩阵,J为去雾后的图像矩阵,t为透射率矩阵,A为大气光值,O为元素都为1的矩阵。由式(1)可知,A和t未知,求解J是一个病态问题,对于式(1)的求解需要强有力的先验。但由于在夜间图像场景下,光线主要由人工光源提供,局部大气光分布不均匀,恒定的大气光值不能有效满足去雾需求,Yu等[22]提出一种适用于夜间去雾的大气光学模型,采用大气光分布图A代替恒定大气光值A,即:
为了解决夜间场景下大气光求解问题,本文提出一种自适应大气光分布图求取方法。首先,联合图像亮度分量和饱和度分量求取大气光信道图L,如式(3)所示;然后,基于引导滤波求取夜间雾天图像的大气光分布图A,如式(4)所示。
式中,V为图像亮度分量,S为图像饱和度分量,Guild-Filter(L,I)为L在I的引导下进行滤波操作。
图2中的两行分别为两张夜间有雾图像的大气光分布图。由图2(b)和(c)可知,本文所提算法求得的大气光分布结果与Yu等[22]算法一致,说明所提大气光分布图求取算法可以有效求取图像的大气光分布情况,具有一定的鲁棒性。
图2 大气光对比Fig.2 Comparison of atmospheric light
He等[15]提出的暗通道先验是解决式(1)病态问题最具代表性的假设和先验。该先验表明,在一幅彩色图像的R、G、B 3个通道中,总有1个通道或其邻域内的像素色彩通道强度值很小,近似为0,数学表达式如下:
式中:Jdark为像素暗通道矩阵;min_D(I)为求解矩阵I的像素暗通道函数,对矩阵I中每一个像素,该函数首先分别计算其邻域像素的R、G、B通道取值的最小值作为每一个邻域像素通道暗值,再计算该像素所有邻域像素通道暗值的最小值,作为该像素的像素暗通道值;本文邻域大小取为15×15。对式(2)两边求取局部最小值,并将式(5)代入式(2),得到暗通道透射率tdcp的表达式:
为避免恢复出的图像不协调,引入透射率修正参数ω[15],ω = 0.95,如式(7)所示:
图3为所提算法对夜间雾天图像的复原过程。由图3(a)和(b)可知,红框区域存在着多个光源,此处的透射率应相对较大,而暗通道先验求取的透射率却很小,表明暗通道先验在亮区域处出现失效。
图3 基于亮、暗通道先验的透射率求取图Fig.3 Transmittance calculation diagrams based on light and dark channel priors
为解决夜间亮区域暗通道失效问题,Yu等[22]对500幅夜间有雾图像进行统计发现,在夜间光源等亮区域,95%以上的像素点的亮通道值为0.9 ~ 1.0,即亮通道先验。该先验表明在夜间有雾图像亮区域处,R、G、B 3个通道中总有一个的像素强度值很高,如下所示:
式中,Jbcp为 图像亮通道矩阵,m ax_B(I)为求解矩阵I的像素亮通道函数。将式(8)代入式(2)得到图像的亮通道透射率tbcp:
亮通道透射率如图3(c)所示,亮通道先验在光源等亮区域的透射率估计准确,如红框区域;同时观察图3(c)蓝框中的天空区域,发现亮通道透射率还适用于夜间天空等微光区域的透射率矫正。
由以上分析可知,亮通道先验更加适用图像中的亮区域;而在非亮区域,暗通道先验更加适用。为同时兼顾两者优点,采用线性加权的方法对亮、暗通道透射率加以融合:
式中,μ为亮通道透射率权值矩阵。为了解决Yu等[22]在亮、暗通道透射率融合不准确引起复原图像中暗区域纹理消失的问题,本文提出一种基于亮度分量的分段伽马矫正权值计算方法,使用图像的亮度值表征图像的亮通道透射率权值。图像亮度图V与图像R、G、B 3通道的像素值的关系如式(11)所示:
式中,max_C(I)为求图像I的R、G、B 3通道最大值操作。在夜间场景下,图像成像的主要光源来自人工光源或月光。对于图像中光源处或光源周边的亮区域,其3通道值一般较高;对于图像中距离光源较远的暗区域,其成像的光主要来自月光或微弱的人工光线,其3通道的值一般较低。当图像中某区域的亮度值较大时,3通道值也就越大,说明该区域受光源的影响越大,亮区域的概率就越大,亮通道透射率权值也就越大;反之,暗通道先验应越占优,亮通道透射率也就越小。综合上述分析可得到亮通道透射率权值矩阵 μ表达式为:
式中,vl j为V的元素,l、j为矩阵元素下标,T为亮、暗分割阈值。当图像被分割成亮区域时,其亮区域的透射率权值应越高。为了准确地确定分割阈值,实现图像中亮暗区域的准确分割,选取不同阈值T对图像亮暗区域进行分割并进行权值计算,分割后的亮区域透射率权值图如图4所示。综合分析可知,随着T增大,图4中亮区域的占比逐渐减小。当T为0.3时,图4中的部分非亮区域被分割为亮区域,如图4(b)第2行中的红色区域所示。当T为0.5时,图4(d)中的亮区域被误分割为了暗区域,如图4(d)第1行中蓝色区域所示。当T为0.6时,误分割的情况进一步加重。当T为0.4时,图像中亮区域分割准确,可实现图像亮、暗区域的有效辨识。因此本文取亮、暗区域分割阈值为0.4。
图4 不同亮区域分割阈值下的亮区域透射率权值图Fig.4 Weight diagram of bright region transmittance under different bright region segmentation threshold
图3(a)的亮区域透射率权值分布情况如图3(d)所示,融合后得到的初始透射率如图3(e)所示。由图3(e)可知,所提权值计算方法对亮区域响应敏感,融合后的透射率在亮、暗区域分布准确。
为细化透射率,保持复原图像的纹理信息,He等[15]提出引导滤波。但引导滤波在聚合阶段不能考虑全局信息,会导致细小纹理被弱化,出现Halo效应[26-27]。为清晰地保留图像边缘的弱纹理信息,陈彬等[27]在引导滤波的聚合阶段为不同的窗口分配权值,邻域像素k与中心像素i相似度越高,权值越大,像素i的加权聚合引导滤波值qi的数学表达式为:
式(14)~(15)中:ωk为以像素k为中心的邻域局部窗口,k为中心像素;n为邻域局部窗口 ωk的邻域像素,n∈ωk;|ωk|为 局部窗口 ωk内邻域像素的个数;pn为输入的透射率图t中像素n的取值;ek为 ωk中像素n的灰度值gn与 透射率pn的 均方误差;η为一个很小的常数,本文取0.03。基于加权聚合引导滤波细化的透射率图如图3(f)所示。
将大气光分布图A和加权聚合引导滤波细化后的透射率t代入式(2),透射率下限值t0设定为0.1,如下所示:
式中,max_t(t,t0) 为求解t中元素取值和t0的较大值的函数。当t中元素大于t0时 ,元素值不变;当t中元素小于t0时 ,用t0替换该元素。
复原图像J1如图3(g)所示。由图3(g)可知,基于加权聚合引导滤波细化后的透射率弱纹理保持完整,复原后无Halo效应。
为解决图像去雾后整体偏暗的问题,将复原图像转化到HSV空间,对亮度进行均衡化,并对矫正前后的图像进行线性聚合,如下所示:
式中,J为最终复原的图像,J1为均衡化前的图像,J2为均衡化后的图像,κ为亮度校正聚合权值。由于引入了亮通道先验,暗通道先验导致的图像偏暗问题已得到了一定的改善。为保证复原结果更接近真实复原效果,κ应为一个相对较大的值。
为更加综合评价去雾效果,本文选择峰值信噪比、信息熵、平均梯度、复原图像的方差和Fade指标[28]作为客观评价指标,并通过运行时间评价算法的运行效率。峰值信噪比反映了复原图像和原始有雾图像在相同位置的颜色差异情况,其值越大,图像的失真就越小,图像复原效果越好;信息熵反映图像所含信息量的多少,其值越高,说明图像包含的纹理信息越多;平均梯度反映图像对微小细节反差的表达能力,平均梯度越大,说明复原后的图像纹理越清晰;方差可反映图像的灰度分布程度,方差越大,图像对比度越高,去雾的效果越好;Fade指标反映图像含雾量大小,其值越小,图像去雾越彻底。
为得到最佳的亮度校正权值系数,本文在0.7 ~1.0之间,以0.05为步长选取κ ,不同 κ对亮度校正后的复原结果(图3(g))的影响如图5所示。
图5 不同聚合权值κ下复原结果的客观指标对比Fig.5 Comparison of objective indicators of recovery results at κ different aggregate weights
由图5可知:当聚合权值增大时,峰值信噪比增加,而信息熵、平均梯度和方差降低;Fade值先减小后增加,且在κ=0.85时,Fade有最小值。为了兼顾复原结果的客观指标全局最优,选取亮度校正聚合权值为0.85。由最终的复原结果(图3(h))可知,亮度校正后的图像亮度适中,色彩自然,纹理清晰,去雾彻底。
仿真实验环境如下:CPU型号为Intel Core i7-8750H CPU@2.20 GHz,操作平台为64位 Windows 10。仿真软件环境为MATLAB R2019a。求取大气光分布A所采用引导滤波的直径为64像素;细化透射率阶段,采用加权聚合引导滤波,滤波直径32像素。
本文选取了5幅不同夜间场景下的雾天图像,分别记为IMG 1~5,并将本文所提算法与He算法[15]、Li算法[21]、Yu算法[22]、Zhang算法[24]等经典算法对比,结果如图6所示。结果表明:He算法[15]可以去雾图像中大部分雾,但复原后图像整体偏暗,且在光源处产生光晕现象,表明了暗通道先验在夜间场景下去雾的局限性,如图6(b)所示。Li算法[21]可有效去除近景处的雾,且复原后的图像亮度适中,但会在景深的纹理边缘处出现伪影,同时在天空区域出现失真,如图6(c)所示。Yu算法[22]去雾后色彩自然,但会引起暗区域图像纹理的消失,如图6(d)所示。Zhang算法[24]可有效去除近景处的雾,但对远景处的去雾一般,且去雾后会出现一定的色偏,如图6(e)所示。由图6第1、2行可知,本文所提算法去雾彻底,有效地解决了暗通道先验在亮区域的失效问题,去雾后在天空等微光区域色彩无失真。由图6的第3行可知,所提算法能够有效去除图像中远景处的雾,纹理过渡自然,无伪影产生。由图6的4、5行可知,所提算法在多光源的雾天场景下,复原图像无色偏,纹理清晰,具有较强的鲁棒性。
图6 复原结果对比Fig.6 Comparison of restoration results
各算法对5幅图像复原效果的客观评价结果如图7所示。由图7(a)~(e)可知:所提算法的峰值信噪比略低于Zhang算法,优于其他对比算法,说明复原结果相对于原始有雾图像的色彩保真度高,去雾后图像原有特征信息保持较好,在IMG1中峰值信噪比相对于Li算法有最大提升,为49.4%;所提算法的信息熵整体优于对比算法,说明复原图像具有更丰富的细节,去雾更彻底,在IMG2中信息熵相对于He算法提升幅度最大,为18.3%;对比梯度和方差可知,所提算法复原图像的平均梯度和方差优于He算法、Yu算法和Zhang算法,略低于Li算法,在IMG1中,平均梯度相对于He算法的提升幅度最大,为172.3%;在IMG5中,方差相对于Zhang算法提升幅度最大,为115.0%,说明复原图像灰度分布更均匀,轮廓更清晰;对比Fade指标可知,复原图像的Fade值均处于相对低值,说明含雾量较少,所提算法复原结果去雾彻底。算法运行时间见表1,由于在引导滤波时引入了加权聚合模块,因此执行效率低于He算法、Yu算法和Zhang算法,但显著优于Li算法。
表1 算法执行时间对比表Tab.1 Comparison of algorithm execution efficiency
图7 客观评价指标对比Fig.7 Comparison of objective evaluation indexes
综合对比客观指标和运行时间发现,本文算法去雾效果明显,去雾后图像纹理清晰、色彩自然,整体优于对比算法。
为了更加综合地评价算法在不同雾浓度下的图像复原性能,选用相同场景下的不同雾浓度夜间有雾图像进行复原。由于现实生活中同一场景下不同雾浓度的夜间有雾图像较难采集,因此本文采用合成数据集进行研究。Zhang等[24]通过统计大量的夜间有雾图像,得到了在真实夜间光源下有雾图像的色彩分布规律,同时通过设定不同的雾浓度系数,合成了少雾、中雾和浓雾3种不同雾浓度的夜间有雾图像。本文选取其合成数据集中的夜间有雾图像进行复原,复原效果如图8所示,图8的第1行为相同场景下不同雾浓度的夜间有雾图像,第2行为对应的复原结果。由图8可知,在不同雾浓度下,所提算法去雾彻底,亮暗区域的透射率值计算准确,复原结果纹理清晰、色彩自然。
图8 相同场景下不同雾浓度的夜间有雾图像复原结果Fig.8 Restoration results of night fog images with different fog concentrations in the same scene
表2为不同雾浓度下复原图像信息熵的提升幅度对照。在不同雾浓度下,所提算法复原的图像信息熵均能得到有效的提升,说明复原后图像纹理细节等信息能增大,可实现夜间相同场景下不同雾浓度有雾图像的有效复原。
表2 不同雾浓度下复原图像信息熵提升幅度Tab.2 Amplitude of the increase in the entropy of the restored image under different haze concentrations
为解决暗通道先验在夜间场景下的失效问题,本文提出一种基于自适应大气光和加权引导滤波的夜间图像去雾算法。首先,基于图像亮度和饱和度得到信道图,并采用引导滤波自适应得到大气光分布图;然后,建立一种新颖的亮暗通道透射率融合方法,实现了初始透射率的准确求取;在透射率细化阶段,采用加权聚合引导滤波细化透射率,解决了引导滤波引起的边缘模糊问题;最后,将复原图像进行亮度矫正得到最终结果。实验结果表明,所提算法大气光估值合理,亮区域透射率计算准确,去雾彻底,复原结果无Halo效应,具有较强的可靠性,且能对相同场景下的不同雾浓度图像实现有效复原。与经典算法结果对比表明,提出算法的综合指标优于对比算法,峰值信噪比、信息熵、平均梯度和方差的最大提升幅度分别为49.4%、18.3%、172.3%和115.0%。后续工作将针对如何提高本算法的执行效率,实现夜间场景下的实时去雾展开进一步研究。