结合光源分割和线性图像深度估计的夜间图像去雾
2022-03-08吕建威韩昊男
吕建威,钱 锋,韩昊男,张 葆
(1. 中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033;2. 中国科学院大学,北京 100049)
1 引 言
在夜间有雾图像中,人工光源发出的光经过漂浮在空中的颗粒或水滴散射,导致光源周围产生光晕现象。夜间图像去雾就是针对人工光源产生的光晕、图像细节不清晰、色偏等问题进行处理,尽可能地提高图像的恢复质量和可视度。研究夜间图像去雾方法对夜视系统、监控录像、目标跟踪探测等方面有着重要的意义。
近些年来,许多研究者已经开发出一系列的方法来进行图像的去雾[1-3]和增强[4-5],有效提升图像的恢复质量。Narasimhan和Nayar提出的白天去雾模型将有雾场景描述为线性关系[6],其中包含直接传输和空气光,建立了雾天图像降质模型。在此基础上,许多先验方法如暗通道先验[7]、局部对比度先验[8]、图像融合[9]等被提出并大幅提高了图像的去雾效果,Meng等[10]在暗通道先验方法的基础上加入边界约束条件,显著提升了去雾图片中对于天空的处理效果。Ancuti等人[11]提出了RGB和LAB之间的颜色变换方法来进行图像去雾。这些方法对白天有雾图像可进行有效去雾,但通常对于夜间有雾图像会失效。这是因为夜间图像存在多种颜色的人工光源,通常认为大气光分布不均匀,而在白天去雾过程中大气光被认为均匀分布,其值不发生变化,利用这样的大气光值得到的去雾结果将产生颜色偏移现象。
最近,夜间图像去雾逐渐成为了图像领域研究中的热点问题。Pei等[12]提出了从RGB到LAB空间的颜色映射作为预处理,采用改进的暗通道先验和双边滤波来进行去雾。尽管此方法可以改善图像的可视性,但输出颜色看起来不切实际并且具有严重的色偏,这是由于颜色变换仅使用了数学模型而不是物理模型来校正颜色。Zhang等[13]介绍了一种夜间去雾模型,该模型结合Retinex理论和伽马校正等方法来进行颜色校正和光照补偿,虽然图像的颜色更加真实,但模型未考虑光晕因素带来的影响。Li等[14-15]提出了一种新的夜间散射模型,该模型使用图像分层方法分离光晕,然后结合暗通道先验方法去雾。虽然去雾图像包含较少的光晕,但图像的天空区域产生大量的噪点和块效应。杨爱萍等人[16]提出基于Retinex图像增强算法分离出夜间有雾反射光图像,然后利用暗原色先验对反射光图像进行去雾,并根据相机成像原理求解无雾入射光对象,进而融合反射光与入射光,最终得到夜间无雾图像。Zhang等[17]假设每个无雾图像RGB通道中的最大强度值趋近于1并将其作为光照估计值,从而提出最大反射先验方法。Yu等[18]提出了一种用于估计透射图的逐像素和系数 α值叠加的方法,其中将暗通道先验和亮通道先验估计的透射率有效地融合到一个由亮度感知权重图指导的透射图中。Yang等人[19]利用超像素分割的方法来估计大气光值,并结合图像层分解和暗通道来进行去雾。
从以上方法可以看出,许多现有的夜间图像去雾技术是基于大气散射模型和先验知识进行的,大气光和透射率的估计精度不足,还需要考虑经过雾散射后产生的光晕效应、细节模糊以及颜色失真等问题。因此,本文重点对夜间图像中光晕效应的处理和大气光及透射率的估计精度问题进行研究。
2 图像去雾的原理和模型
2.1 图像去雾模型
根据文献[6]中的描述,常用的白天去雾模型认为相机捕获的大气中的散射光包含直接传输和空气光两项,可以表示为:
其中I(x)是在像素x处观察到的图像像素值大小,J(x) 是 场景反射或没有雾时理想的恢复图像,A是在白天除雾时被认为是恒定常数的大气光值,t(x)是 到达摄像机之前场景的透射率,β是经雾中颗粒散射后的衰减因子,d(x)是相机与被称为景深的场景之间的光学厚度或距离,J(x)t(x)称为直接传输,A(1−t(x))是空气光。
2.2 夜间图像去雾模型及颜色校正方法
由于存在光晕,因此夜间场景与白天场景有所不同,图1为本文使用的夜间模型。
图1 夜间有雾图像模型Fig. 1 Image model for the scene with haze at night
由于大气光值不是恒定的常数,夜间有雾场景的光学图像模型是变化的。因此将变化的大气光表示为大气点扩散函数(Atmosphere Point Spread Function, APSF),即[14]:
其中AL(x)是 人工光源的强度,它需要与APSF进行卷积后表示光晕的模糊。因为来自不同光源的各种颜色对大气光的估计有所干扰,A(x)不再是常数,其随像素点位置的不同而改变。该模型提供了一种描述带有人工光源光晕的夜间有雾图像的有效方法。
光晕是通过使光源与勒让德多项式[11]表示的大气点扩散函数卷积而产生的,将式(3)表示的模型进行简化,即:
其中,T(x)=J(x)t(x)+A(x)(1−t(x))和G(x)=AL(x)∗APSF分别表示有雾细节图像和光晕图像。这样把消除夜间有雾图像光晕问题变成图像分层问题,需要求解图像的有雾层T(x)和 光晕层G(x)。从梯度直方图特征中可以看出,图像背景细节层符合“长尾”分布,图像光晕层的梯度直方图具有“短尾”分布的特点[15],图像光晕模糊层比背景细节层更加平滑。根据以上图像分层算法验证得到的特点,利用以下的目标函数进行描述[14]:
其中,约束条件有 0≤T(x)≤I(x),f1,2表示两个方向的一阶导数滤波器,f3表示二阶拉普拉斯滤波器,操作符“∗”表示卷积操作。 ρ (v)=min(v2,τ)表示鲁棒函数,其中 τ的值很小,在1 0−4左右,利用该函数可以在有雾细节层T(x)中尽可能保留原始图像I(x)的较大梯度。上述公式属于稀疏表示模型,而得到最好的去光晕效果就转化为L0范数最优化问题的求解,鲁棒优化函数类似于稀疏表示中的惩罚因子[20]。参数 λ用来调节光晕层图像的平滑程度,经过多次实验后发现设置为600时能得到更好的复原效果。
受灰度世界假设的启发[21],提出了一种新的RGB颜色通道变换方法以解决色偏问题。首先,取图像的R、G和B 3个颜色通道总和的平均值,由式(6)得到。然后,根据Von Kries色适应理论[22]计算RGB 3个通道的增益系数,并调整图像中每个像素的RGB分量,如式(7)~(9)所示。最后,可以得到颜色平衡后的图像,经过上述颜色校正后,可以得到颜色比较真实的夜间图像,能够减弱人工光源和夜间有雾造成的图像偏色的影响。
其中r、g、b是图像T(x)对应的RGB分量,r′、g′、b′是经过上述颜色校正后得到的RGB分量的图像结果。然后将得到的新的RGB图像利用单尺度Retinex变换[23]进行图像增强,使用引导滤波[24]进行修正,与双边滤波方法相比,使用引导滤波可以使图像的边缘更加平滑,保持边缘细节完整性,能够消除边缘产生的光晕现象,使图像更加真实。结果如图2(彩图见期刊电子版)所示。
图2 图像层分解和颜色变换过程图Fig. 2 Image layer decomposition and color transformation
3 大气光和透射率的估计
3.1 图像光源分割方法
对于夜间图像,受人工光源的影响,大气光光照分布不均匀,因此要想得到整幅图像的大气光分布,需要分别对有光源和无光源区域进行大气光估计。接下来将介绍有关夜间图像光源区域的分割方法。
在一幅夜间图像中,图像每一个像素点的RGB3个通道中,通常至少有一个像素点具有一个很高和一个很低的像素值。将每个像素点的最大和最小的颜色通道值的差异称为通道差异,在具有光源的亮区域的像素点位置通道差异较大,在暗区域的像素点位置通道差异较小。因此,可以通过这种通道差异来量化像素点的分布,为了能够明显区分像素点在亮暗处的分布,引入校正因子γ 来对通道差异进行放大,利用如下的表达式进行描述:
其中,Nth表示分割光源和非光源区域的阈值大小,LSR和 NLSR分别表示光源区域(Light Source Regions, LSR)和非光源区域(Non-Light Source Regions, NLSR),x表示像素点的位置。为了确定设置阈值Nth和校正因子 γ的大小,从数据集中选取500张夜间有雾图像利用上述方法进行图像分割处理,γ在1.0~2.0之间的通道差异越大,光源和非光源区域的分割越明显,选取其他的值并不能有效地观察到明显的光源分割边界,通过实验选取γ=2.0。然后,通过设定阈值得到二值图像,使得大量的图片可以获得明显的光源分割边界,并找出边界区域的值,经过多次实验得知获得明显光源分割边界的阈值Nth为0.07(对应的像素值为17.85)。部分图像的光源分割结果如图3(彩图见期刊电子版)所示。得到的实验图像结果显示,函数值 η(x)越大,说明像素点属于有光源区域的概率就越大,因此可以把 η(x)作为像素点属于光源区域分布的概率值。
图3 夜间有雾图像的光源分割结果Fig. 3 The results of nighttime hazy image segmentation
3.2 夜间图像的大气光估计
在白天有雾图像中,大气光主要来源于太阳光,通常被认为是全局恒定的值。然而对于夜间图像,不同种类的人工光源也会发生散射现象,造成大气光分布不均匀,大气光值随着像素点位置的变化而变化。因此,如果以局部的大气光估计值作为全局的大气光值会使估计精度出现偏差[25],无法有效地消除图像中的雾,同时会产生许多噪声。为了解决上述问题,本节提出了新的大气光估计方法,该方法分为两个方面:一是在非光源区域的大气光估计,因为非光源区域通常很暗,所以该区域可以忽略光源的作用,主要是由大气光经过散射到图像中。然而夜间图像中大气光值很小,可以考虑散射后产生的空气光近似等于大气光。二是光源区域的大气光估计,大气光经过散射后其强度随着景深的增加而呈指数式衰减。因此,图像的整体光照分布可表示为:
其中P(x) 表 示原始图像I(x)的 全局光照图,t2(x)表示光源区域的透射率,该值的求解方法将在3.3节中给出。A0(x)和A1(x)分别表示图像在非光源和光源区域的真实大气光值。为了获得全局的光照图P(x),本节将采用最大反射先验[21]方法进行估计,光照图表示为:
利用透射率t2(x) 得 到估计值后,结合A0(x)、A1(x)以 及概率分布 η(x),图像全局的大气光估计结果为:
3.3 夜间图像的透射率估计
夜间有雾图像通常具有局部亮度高、饱和度低、局部较为平滑(图像梯度小)的特性。根据文献[26−27]提出的模型,可以得到图像中雾的浓度跟图像深度有关,图像深度是由图像的亮度、饱和度和梯度3个特征决定的,然而,文献[26−27]并没有考虑到夜间有雾图像亮暗区域的差别。由于在图像亮暗区域的特征差别较大,因此,可将图像的亮暗区域分割后分别进行考虑,在亮区域中,图像的深度特征可以由亮度、饱和度、梯度进行描述,在无光源区域中可通过暗通道先验方法来得到图像的透射率,这样就可以描述整幅图像的透射率分布。
针对图像的无光源区域,由式(10)和式(11)得到的概率分布 η(x)和 大气光估计值A0(x),通过暗通道先验方法得到对应的透射率t1(x)分布:
其中, N LSR 表 示无光源区域,c表示RGB颜色通道, Ω (x) 表 示以像素x为中心的一个窗口,可以看出获取暗通道就是获取一个窗口内所有像素各个通道的最小值。
对于光源区域,本文提出了线性图像深度模型,表示如下:
其中,d(x) 表 示图像的深度信息,L(x)表示图像的亮度,S(x)表 示图像的饱和度,G(x)表示图像的梯度。ω1、ω2、ω3是 待求的线性系数,ε表示模型的误差系数。
为了解决未知的非线性系数问题,从D-HAZY数据集中[28]选取了1000张夜间有雾图像和夜间无雾图像,通过将其中的无雾图像添加随机深度合成对应的有雾图像,每组无雾图像和合成的有雾图像作为一组训练样本,训练样本如图4所示(彩图见期刊电子版)。
图4 夜间无雾图像和对应合成的夜间有雾图像Fig. 4 Nighttime haze-free images and the corresponding synthetic hazy images
首先,在无雾图像中随机合成深度为0.5~1的雾,设置大气光的向量值为A(k,k,k), 其中k的取值为0.8~1.0。结合大气散射模型得到1000张合成的有雾图像和对应的无雾图像。此外,获取了所有夜间有雾图像的亮度、饱和度以及梯度等特征,采用文献[29]里面的方法,图像深度模型表示为:
其中,i表 示第i组 训练样本,ωT=[ω1,ω2,ω3]T,Xi=[L(xi),S(xi),G(xi)],第i组训练样本的有雾图像的深度图为di(x),通过线性表示的深度图模型为d(xi),根据1000幅训练样本,利用最小化损失误差求得线性系数和线性误差,表示为:
其中n为训练样本的总数,为了简化讨论,取
这样最小化损失误差E就可以表示为:
为了解决最小化损失函数的问题,作以下求导,令该求导值为0,可以得到
其中XTX为 满秩的正则矩阵,这样可以求得ω∗为:
经过样本的训练,可以获得最终的未知参数结果为:ω1=1.0267,ω2=−0.5966,ω3=0.6735,ε=0.004135。根据获得的参数,可以得到式(15)中d(x) 的 值,进一步求得所需要的透射率t2(x)为:
以上由式(15)和式(22)分别求出了在无光源区域的透射率t1(x)和有光源区域的透射率t2(x) , 利用像素点属于光源区域的概率η (x)将这两个透射率叠加在一起,可以得到全局图像的透射率分布图t(x),叠加方法为:
得到透射率估计图以后,利用引导滤波保持边缘,减少边缘光晕现象。图5(彩图见期刊电子版)所展示的是分别使用透射率图t1(x)、t2(x)和t(x)得到的实验结果。可以看出,由于在无光源区域内可以近似认为不考虑人工光源的照度、颜色特性等影响,大气光值为常数值,使用暗通道先验方法可以处理无光源区域的雾,对于有人工光源影响的区域,利用上述的线性模型进行估计能够有效消除雾的影响,得到的最终结果在去雾、光晕的消除和图像细节的保持等方面效果显著。
图5 使用不同透射率的去雾结果Fig. 5 The dehazing results using different transmission
由于图像中通常具有较多的暗区域,透射率的下限值不能达到一个非常小的数值,因此为了更好地复原图像,这里设置一个透射率最低下限值为0.1。复原图像的结果可表示为:
4 实验结果
4.1 主观质量评价
为了验证本文所采用方法的有效性,按照算法过程利用Matlab 2019a编写了代码进行实现,得到一些有雾图像的去雾结果,并与其他广泛使用的夜间去雾方法,如Zhang方法[13],Li方法[14],Yu方法[18]进行比较。本实验所使用的设备环境为ASUS Inter Core i7-7500U 2.90 GHz, 8 GB RAM,Nvidia Geforce 930MX。实验所得到的参数为β=0.5, γ =2.0,Nth=0.07, ω1=1.0267, ω2=−0.5966,ω3=0.6735, ε =0.004135。
在图6(彩图见期刊电子版)的所有图像中,可以看出本文方法的去雾图像边缘更加平滑并保持清晰度,图像的其他部分恢复更加柔和。取第1张图像的部分特写视图(如第2幅图所示),从天空区域来看,本文算法的噪点相比于其他方法明显更少,恢复效果更好;从灯光周围的恢复效果看,本文方法跟Li方法都能有效地消除光晕,而 其他方法并不能消除光晕。
图6 本文方法与其他去雾方法效果的比较。从左到右各列分别为:原图,使用Zhang方法[13]、Li方法[14]、Yu方法[18]和本文方法获得的图像Fig. 6 Comparison of the effects of the proposed method with other methods. From left to right: original image, images obtained with Zhang’s method[13], Li’s method[14], Yu’s method[18] and proposed method
比较第1,第4和第5幅图像的暗处细节(例如黑暗处的树林位置),Zhang方法和Li方法都能明显看到图像的偏色现象,而在本文方法所得到的结果中,这部分的颜色看起来更加自然。
具体比较第1,第4和第6幅图像的天空区域,其他方法得到的去雾图有许多噪声,而在本方法的去雾结果中天空区域的噪声显著减少。另外,对于天空区域的颜色,本文方法的去雾图像看起来也更加自然。
对比所有方法中的第7和第8幅图像的白光区域,可以看出其他方法经过图像去雾或增强会产生过曝现象,掩盖了背景的许多细节,但本文的方法可以保证白光区域减少了过曝现象,而且灯光的形状能恢复完整。
4.2 客观质量评价
为了进一步验证算法去雾有效性,本节采取了客观质量评价方法,所使用的参数指标有图像盲评价参数e(Blind Assessment),图像的峰值信噪比(Peak Signal-to-Ratio, PSNR), 图像的结构 相 似 度(Image Structural Similarity, SSIM), 对比度增益(Contrast Gain, CG), 图像 可视化测量(Image Visibility Measurement, IVM),视 觉 对 比度测量(Visual Contrast Measure, VCM)等[30]。图像参数值e、CG、IVM、VCM利用原始有雾图像和去雾图像之间的对比测量得到,PSNR和SSIM是通过去雾结果和理想复原图像之间的对比来度量的。图像的质量评价对比图如图7所示。
图7 夜间去雾方法效果比较Fig. 7 Comparison of nighttime dehazing algorithms
使用该图测量的图像质量评价数据如表1所示。从表1可以看出,本文方法的参数e、CG、IVM、VCM值均比其他方法高,说明本方法在图像边缘保持、细节体现、对比度增强、可视度提高方面表现更突出。本文方法的PSNR和SSIM的数值比Yu的方法略高一些,说明本方法的去雾效果更好。综上所述,本文改进的去雾方法能够取得更优秀的去雾结果,图像复原效果更突出。
表1 图像质量评价数据表Tab. 1 The values of image quality assessment
5 结 论
目前,雾天图像复原取得了显著成果,但夜间图像成像环境比较复杂,各种不同种类光源的存在导致光照不均且色偏严重,夜间图像去雾难度较大,因此大多数方法并不适用于夜间场景。针对夜间图像存在的光晕和偏色问题,采用带有颜色校正的图像分层算法使去雾图像更加真实。针对大气光估计精度不足的问题,本文提出了带有颜色通道差异的光源阈值分割方法,将该阈值设置为像素点在光源区域的概率值,并结合最大反射先验方法分段估计大气光值。针对透射率估计问题,对于光源区域提出了结合图像深度、亮度、梯度以及饱和度的线性模型,通过训练样本求得线性系数;对于非光源区域采用暗通道先验的方法来估计,并利用上述的概率值进行叠加,从而提高了透射率的估计精度。与其他夜间去雾方法相比,本文方法不仅可以有效地消除夜间光晕和雾气,而且复原图像颜色上看起来更自然,提高了图像的细节清晰度,减少了噪声。但是本文提出的方法也有一些缺点,例如,利用阈值的光源分割方法只能大致区分光源区域和非光源区域,区分精度不足。此外,本文提出的线性深度估计模型对于透射率的估计精度虽然有提升,但提升能力有限,需要进一步寻找更合适的估计模型。在以后的工作中会着重寻找相应办法来解决这些问题。