一种基于图像分割的透射率补偿去雾算法*
2022-08-26李思莉李一菲
李思莉 李一菲
(成都理工大学工程技术学院电子信息与计算机工程系 乐山 614000)
1 引言
计算机视觉系统受到雾霾等天气的影响,使捕捉到的图像严重降质,如何提升雾霾图像的质量,成为当前各类学者研究的热点[1]。目前的单幅图像去雾算法有很多,大致可以分为基于图像复原和基于图像增强[2]。前者充分考虑图像产生退化的原因,从数学模型出发,对有雾图像进行建模,并对其中参数进行假设或借助已知信息得到一些先验知识,进而解出模型,实验图像去雾[3]。后者通过对图像对比度、饱和度等方面进行拉升提高,达到大幅提升视觉效果的目的[4]。
He 等[5]通过对大量清晰无雾的户外图像进行统计观察,提出暗通道先验理论,基于该理论,提出一种简单估计透射率的方法,以此复原出清晰的无雾图像,但该方法在天空区域算法失效。Zhang等[6]对有雾图像进行滤波操作后,估计出包含图像深度信息,并且带有暗通道优先的有雾层,进而复原出具有较高对比度的无雾图像,但该方法复原的图像在景物边缘处存在明显光晕。Wang 等[7]通过处理相同场景下的多幅图像,并对其进进行统计后计算出图像的场景深度,进而复原出无雾图像,但该方法十分耗时,因而具有一定的应用局限。
为了消除暗通道先验算法在天空区域出现的颜色失真现象,进一步提升复原的无雾图像质量,故在图像分割的理论基础上,本文提出了一种透射率补偿去雾算法。该算法首先在Canny 算子和FCM聚类方法的基础上,融合出一种新的天空区域分割算法;接着,分割出天空区域后,再对该区域的透射率进行自适应的逐像素补偿,得到天空区域透射率的精确估计;最后根据暗通道先验理论,结合白平衡知识,利用图像融合方法得到估计准确且边缘平滑的透射率。实验结果表明,所提算法去雾效果好,复原图像清晰,色彩自然。
2 背景
2.1 暗通道先验理论
在图像去雾领域图像退化的过程通常用Mc-Cartney提出的雾天退化模型[8],表达如下:
式中,I为有雾图像,J为无雾图像,A为大气光,t为透射率。Land将式(1)表述为[9]
式中,ρ表示场景反照率。He 等发现图像中最少存在一个灰度级非常低(几乎趋近于0)的颜色通道,将这现象描述为暗通道,并提出暗通道操作:
式中,Jc(c∈{r,g,b})表示在某个颜色通道上的分量,Ω 是以x为中心的滤波窗口,Jdark表示暗通道图。假设大气光A在局部区域为常量,结合以上结论可知透射率为
式(4)中,取ω=0.95,因此复原图像的数学表达式为
式(5)中,t0=0.1。
2.2 暗通道先验理论局限
由大气散射模型可知,图像复原质量的优劣一定程度上取决于透射率估计的准确性[10]。但是由于天空区域很少或者几乎不含有暗像素,故对天空区域使用暗通道先验理论处理,会使得该区域的透射率估计过小,直接导致复原图像在大面积天空区域处出现伪彩色,如图1 所示。将复原图像与左图的原始图像相比,复原图像存在严重的色彩失真,同时在天空区域的噪声也被增强。
图1 包含天空区域图像文献[5]去雾结果
3 本文算法
3.1 天空区域分割
在图像分割领域中,常常使用FCM 聚类算法和基于Canny 算子的边缘检测方法,分别将这两种方法作用于有雾图像的天空区域,实验结果如图2(b)、图2(c)所示。
在图2(b)中,FCM 聚类分割出的天空区域存在一定误差,部分楼房由于和天空区域相近而被误分入天空区域。这是由于FCM 算法对于满足正态分布的数据聚类效果会更好,但是对真实分界线两侧颜色特征接近的部分效果不太理想。在图2(c)中,使用基于Canny 算子的边缘检测方法分割,虽较为准确地分割出了天空区域,但对于浓雾区域的景深突变处,远处楼房和天空区域由于浓雾环境下清晰度的大幅下降,导致景深突变区域的边界检测不准确。通过对上面两种方法分析对比可知,基于Canny 算子的边缘检测方法虽然在天空区域与非天空区域的分界线处的划分较为准确,但是在某些区域会出现漏检的情况。而FCM 聚类分割方法虽然对边缘的分割不够准确,却可以有效地弥补Canny算子的漏检区域。基于上述分析,提出一种新的分割方法,具体步骤如下:
1)将有雾图像做灰度化处理,分别使用Canny算子和FCM聚类分割方法进行天空区域分割;
2)将上述两种方法的结果,进行矩阵点乘操作,结果如图2(d)所示。
图2 不同算法分割结果
3.2 天空区域透射率修正
为了进一步修正透射率,对2.1 小节所分得天空区域的透射率取最大值max 和最小值min,并将两者进行相减后得到差值Diff,接着按式(6)对该区域透射率进行补偿:
式(6)、(7)中,t′sky表示修正后的天空区域透射率;t sky表示͂中的天空区域部分;t s表示天空透射率阈值,经过大量实验,取ts=0.3 时能取得较好复原效果。为了消除透射率估计不足带来的Halo 效应,采用引导滤波[11]对经过天空区域修正的透射率进行处理,得到透射率t1。
3.3 透射率优化
由式(4)得到的透射率在大面积灰度值较高(接近于255)的交替区域出现了突变,严重影响后续对图像的复原,故利用白平衡和交叉双边滤波进行优化。本文大气光值与文献[5]选取一致。
3.3.1 白平衡优化透射率
对式(2)进行变换:
由于有雾图像中雾最浓区域的像素值可能大于A,为防止其溢出,提出式(9)进行约束:
将式(2)简化为
对上式两边取最小,得到:
式中,I′表示取I′中RGB 的最小值,由式(9)可得:
根据Retinex 理论,透射率t的模糊估计值t2为
式中,⊗是卷积操作;F(x)表示高斯函数,标准差为0.5,卷积窗口由文献[4]可知:
式中,floor(.)表示向下取整,t2范围是[0,1],式(13)最终表示为
3.3.2 透射率融合
透射率t1是从图像复原角度对透射率进行估计,透射率t2是从图像增强角度对透射率进行估计,因此,可以使用图像融合方法对两个透射率进行互补,即将t1和t2按一定比例融合,本文采用像素级的加权平均算法对两个透射率进行融合处理,所得数学表达式如下:
式中,a、b均为加权系数,且a+b=1。
本文根据前述章节的实验结果,透射率t1在前景处取得了较好的复原效果,透射率t2在景深处取得了良好的复原效果,经过大量实验对比,两个系数分别设置为0.55和0.45。
3.3.3 透射率的精确估计
由于经过图像分割和图像融合后的透射率图,在物体边缘处、景深交替处、天空区域和非天空区域的边界处会显得模糊,且边缘细节丢失严重。为了消除这一现象,本文采用交叉双边滤波对透射率进行优化处理,实验效果如图3所示。
图3 透射率对比图
4 实验结果对比
本文实验参数设置如下:最小值滤波的窗口值Ω=7,t0=0.1,引导滤波的滤波半径r=48,调整系数ε=0.001,其余参数已在文中给出。为了证明本文方法的有效性和实时性,选取不同场景下的有雾图像进行实验,并选用文献[5]和文献[13]两种算法作对比,实验结果如图4~图6。
图4 景深变化平缓去雾效果对比
4.1 主观对比
在图4(a)的场景下,文献[5]和文献[13]复原图像过暗,景深处出现残雾。本文算法复原图像在前景处细节较多,远景处色彩自然,在整体饱和度上具有一定优势,同时去雾效果较为明显,体现出了图像的深度信息。在图5(a)场景下,文献[5]和文献[13]对于非天空区域的复原都得到了丰富细节,但在天空区域都出现了偏色。而本文算法对于天空区域的处理,取得了良好的色彩保真度,并在景深交替处过渡自然,取得了良好的复原效果。图6(a)是景深变化剧烈下的复原图像,文献[5]和文献[13]复原图像在前景细节丢失严重,且复原图像整体偏暗,本文算法在前景处细节丰富,景深处也复原出了一定的天空细节,并且图像整体色彩自然逼真。
图5 天空区域去雾效果对比
图6 景深变化剧烈去雾效果对比
4.2 客观评价
本文客观评价的参数选用平均梯度r、饱和像素点个数δ、结构相似度(mssim)以及运行时间作为复原图像的评价指标[14]。其中,r和mssim 的值越大越好,饱和点个数δ[15]越小越好,运行时间越短越好。由表1 可知,本文算法在运行指标上,取得了良好的实验结果,指标值都明显优于其他算法。
表1 客观评价
5 结语
本文提出一种分割精确的天空区域分割方法;接着,对使用该方法分割出的天空区域进行自适应逐像素处理,对该部分的像素点进行补偿,以达到修正透射率率的目的;最后,在图像融合的理论基础上,使用暗通道先验、白平衡方法对透射率进一步优化,最后得到色彩自然,细节丰富的复原图像。