摘" 要: 针对传统暗通道先验去雾算法在处理户外含雾图像时,出现天空区域颜色失真和处理速度慢的问题,提出一种可自适应识别天空区域的快速去雾算法。在天空分割方面,选用图像中细节特点明显的亮度分量为研究对象,结合最大类间方差法(OTSU)和动态参数建立自适应识别天空区域算法模型,得到最佳分割阈值,分割出有雾图像的天空区域和非天空区域,并根据天空区域计算出大气光值。在提高处理速度方面,在使用引导滤波优化透射率过程中引入图像下采样算法,保证复原后图像质量的同时减少算法耗时。最后经过与多种经典算法对比,文中算法在视觉效果上细节更加自然,SSIM、PSNR和MSE的综合指标均超过其他算法,并且处理速度较快。主观和客观评价结果均表明,文中算法在视觉效果和时间效率方面都优于其他几种算法,具有一定的实用价值。
关键词: 图像去雾; 暗通道; 天空分割; 大气光值; 引导滤波; 透射率优化
中图分类号: TN911.73⁃34; TP391.4" " " " " " " " "文献标识码: A" " " " " " " " " 文章编号: 1004⁃373X(2024)23⁃0008⁃07
Research on fast dehazing algorithm based on sky region segmentation
LI Qinjun, XIAO Dechao, HAN Liuyu, ZHANG Guoyu, YANG Ping
(School of Electronic Information and Artificial Intelligence, Shaanxi University of Science and Technology, Xi’an 710021, China)
Abstract: In view of the color distortion and slow processing speed in the region of sky when the traditional dark channel prior (DCP) dehazing algorithm is used to process outdoor foggy images, a fast dehazing algorithm which can identify the region of sky adaptively is proposed. In terms of sky region segmentation, the luminance components with prominent details in the image are chosen as the subject of study. In combination with the OTSU algorithm and the dynamic parameters, an algorithm model is established to identify the region of sky adaptively, and the optimal segmentation threshold value is obtained. The regions of sky and non⁃sky in the foggy images are segmented, and the atmospheric light value is computed according to the region of sky. In terms of increasing the processing speed, the image downsampling algorithm is introduced in the process of optimizing the transmittance by guided filtering, which reduces the time consumption of the algorithm while ensuring image quality after restoration. In comparison with various classical algorithms, the proposed algorithm offers more natural visual details. Its SSIM (structure similarity index measure), PSNR (peak signal⁃to⁃noise ratio) and MSE (mean squared error) surpass those of the other algorithms, and its processing speed is faster. Both subjective and objective evaluation results show that the proposed algorithm is superior to the other algorithms in visual effect and time efficiency. To sum up, it has a certain practical value.
Keywords: image dehazing; dark channel; sky segmentation; atmospheric light value; guided filtering; transmission rate optimization
0" 引" 言
在视觉应用领域中,图像是获取和利用外部信息的重要手段和方法,是周围环境的客观表现也是视觉的基础,图像质量对计算机视觉的分类和识别有着重要影响。然而雾霾等复杂天气会降低能见度并且影响照片成像质量,会出现颜色缺失、饱和度低以及细节模糊等问题。这对智能交通监控系统、智能驾驶、森林巡防和资源勘测等领域的实际应用产生巨大的影响[1⁃4],因此快速而有效地复原有雾图像具有重要的实际意义,如图1所示。
图像去雾技术发展到现阶段主要分为两类,即基于图像增强的去雾方法和基于图像复原的去雾方法。基于图像增强的方法主要通过提高对比度来达到去雾的效果。文献[5]引入了一个来自RGB颜色空间的物理散射模型。该方法通过计算有雾场景的不同颜色簇数据,可以从多种有雾图像中恢复无雾图像。文献[6]提出一种基于HSV(Hue, Saturation, Value)颜色空间的重叠子块同态滤波算法,该方法先将有雾图像的色彩空间转换为HSV颜色空间后,再对亮度分量[V]使用重叠子块同态滤波处理,恢复无雾图像。
除上述方法外还有直方图均衡化[7]、同态滤波[8]以及小波变换[9]等算法。基于图像复原的方法是利用大气散射模型,解算大气光照值和透射率图来恢复无雾图像。基于中值滤波的去雾算法先对有雾图像进行白平衡处理,然后使用中值滤波计算大气光值,但是会因为无法保存边缘信息而导致光晕效应[10]。文献[11]提出一种基于暗通道先验(Dark Channel Prior, DCP)的图像去雾算法,该方法通过观察到的无雾图像暗通道图像素值接近于零的先验知识,根据大气散射数学模型求解出无雾图像。之后为了减少计算耗时,文献[12]提出了引导滤波加快计算,此类方法去雾效果较好,但无法处理含有天空区域的有雾图像。后来许多研究者在文献[12]的基础上进行改进,如文献[13⁃14]提出的算法,这些算法为了解决天空区域失真的问题,提出了先分割出天空区域和非天空区域再单独对两部分进行处理的解决方法。通过该方法处理后的图像去雾效果得到了一定的提升,但是在处理街景道路、森林等不同场景下的有雾图像时,其天空区域分割的效果较差,影响有雾图像的复原效果,同时随着视觉领域的不断发展,对图像处理实时性的要求也在增加,上述几种方法难以满足。因此,本文为了解决传统算法在不同场景下天空区域分割适应性差和计算耗时长的问题,提出基于自适应天空区域识别的高效图像去雾算法。首先,在有雾图像HSV颜色空间的[V]分量上,使用改进的大津法得到天空分割的最优阈值,提高天空分割阈值的适应性,使其能够满足不同户外场景下天空区域的分割需求;其次,引入图像的下采样技术提高引导滤波优化透射率的速度,在保证复原图像质量的基础上,进一步降低处理时间。
1" 暗通道先验去雾原理
1.1" 大气散射模型
大气散射模型公式如下:
[Ix=Jxtx+1-txA] (1)
式中:[Ix]为采集设备采集到的有雾图像;[tx]为图像的透射率图;[A]表示全局大气光值;[Jx]为所要求取的无雾图像。估算出[A]和[tx]后可以复原无雾图像。
1.2" 暗通道先验算法
根据暗通道先验原理,图像中非天空区域的像素在RGB通道中至少有一个颜色通道的值极低,接近于0,其表达式为:
[Jdark=miny∈Ωxminc∈r,g,bJcy] (2)
式中:[Jdark]表示无雾图像[J]的暗通道;[Jc]表示彩色图像的某一个通道,[c∈r,g,b];[Ωx]表示以像素[x]为中心的一个窗口。
根据公式暗通道求解的需要求出每个像素点RGB颜色分量中的最小值,再对这幅图像进行最小值滤波,其中滤波半径由窗口大小决定。暗通道先验(DCP)理论指出非天空区域的暗通道值接近于0。
[Jdarkx=miny∈ΩxmincJcy→0] (3)
公式(1)两边除以大气光值,并且假设透射率[tx]为常数,大气光值[A]给定,将等式两边进行两次最小值运算,变形结果如下:
[miny∈ΩxmincIcyAc=txminy∈ΩxmincJcyAc+1] (4)
式中[J]为要求的无雾图像,根据暗通道先验理论,将式(3)代入到式(4)可得到透射率[tx]的值,同时为了保证去雾后的视觉效果,需要保留一定程度的雾,因此这里引入一个补偿因数[ω],经过实验验证[ω]=0.95。[tx]的表达式如下:
[tx=1-ωminy∈ΩxmincIcyAc] (5)
以上推论都是将全局大气光值[A]当作已知量求得,在实验中通常根据有雾图像求取[A]值,步骤如下。首先从暗通道图中按照亮度的大小取前0.1%的像素;再根据暗通道图中像素点的位置找到原图所对应的像素点,取像素点RGB通道中的最大值点作为大气光值[A],经过上述步骤求得透射率[tx]和大气光值[A];接下来对无雾图像[J]进行恢复。当透射率[tx]的值较小时,会导致[J]的值偏大,从而使得图像整体发白,因此设置下限阈值[t0],当[tx]值小于[t0]时,令[tx=t0],[t0]取值为0.1,最终求解无雾图像。[Jx]的表达式如下:
[Jx=Ix-Amaxtx,t0+A] (6)
在实际应用中,有雾图像含有大面积天空区域时,由于天空区域和非天空区域透射率相差比较大,处理过后会有大面积的失真,影响观感。当有雾图像含有过多白色或者高亮物体时会导致全局大气光值[A]求解不准确,从而影响去雾效果。
2" 可自适应识别天空区域的快速去雾算法
经典的暗通道去雾算法存在处理含有天空区域的有雾图像效果差、计算量大、耗时长等方面的缺陷。针对这些问题,本文提出了一种自适应天空分割的快速去雾算法。首先,使用自适应阈值分割方法分割含雾图像的天空区域和非天空区域,并根据天空区域计算大气光值[A];其次,基于图像中两部分的分割结果,将天空区域透射率设置为定值,非天空区域保留当前计算值;然后,在引导滤波中引入图像下采样算法对透射率重新映射;最后,基于大气散射模型复原图像,同时进行亮度调整。算法的整体框架如图2所示。
2.1" 自适应的天空区域分割算法
通常情况下,户外的雾天图像中天空区域颜色单一,亮度和平滑度高。同时,HSV[15]颜色空间与人的视觉特性相似,与RGB颜色空间相比能够体现出颜色和亮度的差别,其亮度分量和图像的色彩分析无关。图3展示了部分有雾图像在HSV不同颜色空间下的表现,图3b)和图3c)分别为色调分量[H]和饱和度分量[S],图3d)为亮度分量[V]。通过观察图3的三个色彩空间分量得出,有雾图像的亮度分量相较于其他两个分量,目标物轮廓更清晰,天空区域和非天空区域的边界更明显,更适合图像分割。因此,本文选择在有雾图像的HSV颜色空间上进行去雾处理。
为了使天空分割算法能够适应道路监控、街景、森林等多种不同场景下的分割需求,本文选用OTSU算法[16]在有雾图像的亮度空间上求出阈值[T0]。OTSU算法是一种自适应阈值确定算法,具有计算简单且效率高的优点,其将像素中类间方差最大的阈值作为最佳阈值,并将图像划分为背景区域[Isky]和目标区域[Insky]。
OTSU算法计算公式如下:
[Ix=Isky," " " " pi≥T0Insky," " " "pilt;T0] (7)
式中:[pi]为HSV色彩空间中的V亮度空间的像素值;[T0]表示OTSU算法的最佳阈值。在实际测试过程中该算法能够有效地分割出天空区域和非天空区域,对于某些背景区域和目标区域的像素值相差较小的有雾图像来说,使用OTSU算法会将部分背景区域误判为前景区域。如图4b)第2张图片,一些远处的高楼被误判为天空区域,其产生原因是有雾图像中的天空区域占比和雾气浓度影响了OTSU算法得出的阈值。
经研究发现,有雾图像的暗通道最大亮度均值[L]和有雾图像中天空区域占比及雾气浓度是线性变化的关系,其随着图像中天空占比和雾气浓度的增加而增加。根据暗通道最大亮度均值的这个特点,本文结合文献[17]设计了一个自适应分割算法模型,用来解决天空区域分割中目标区域误判的问题。算法模型中将暗通道的最大亮度均值作为一个动态修正参数,与OTSU预分割亮度阈值[T0]进行加权处理,重新计算出最优的分割阈值[T],公式如下:
[T=T0+KLL1+KL] (8)
式中:[L]为输入图像暗通道图中最亮1%的平均像素值;[KL]为阈值的校正度,[KL]越大,[L]所占的权重越大,对阈值[T0]校正越深,经实验测试,取[KL]的值为2;[T]为优化后的阈值。
同时,为了保持图像边缘信息和消除噪声的影响,使用形态学滤波对分割后图像进行精细化操作。改进后的天空区域分割效果如图4c)所示,与图4b)相比,能够明显观察到优化后的分割图像消除了高亮噪声的影响,也将之前误判为天空区域的目标区域复原。
2.2" 大气光值求解
大气光值一般为无穷远处的大气光照参数,可根据2.1节中分割出的天空区域计算大气光值。首先提取出天空区域像素,然后将像素值按大小排序,最后取像素前1%最大亮度平均值为大气光值[A]。[A]的计算公式如下:
[A=maxmeanmax0.01Rx, At] (9)
式中:[Rx]为图像的天空区域;[At]为上限阈值。当图像中高亮物体过多时,会导致大气光值偏大,使复原后图像的亮度变低,所以为了防止大气光值过大带来的影响,设置上限阈值[At],当[A]gt;[At]时,令[A]=[At]作为最终大气光值,经过实验测试[At]取值为0.996。
2.3" 透射率优化
在计算得出大气光值[A]后,结合有雾图像天空区域的分割结果和暗通道先验原理,使用式(5)可以估算出透射率[tx]。经典的暗通道去雾算法求解得到的透射率图,其天空区域的值偏小且不均匀。本文为了保证天空区域的平滑性,将天空区域的透射率设置为定值[tsky]。在图像的非天空区域保留当前的计算值,得到有雾图像的粗透射率图,处理后的透射率公式如下:
[tx=tsky," " " " " Isky=1tx," " " Isky=0] (10)
经过上述操作可以有效解决天空区域失真的问题,如图5d)中的天空区域处理后图像效果更加真实。由于使用最小值滤波来求解暗通道图,导致粗透射率图模糊,缺少目标物体细节信息,如图5c)所示,间接导致了复原后图像出现“halo”效应块,如图5d)中的方框所示。
为了解决上述问题,需要对透射率进行优化以显示出目标物体的细节。目前主流的透射率细化算法有加权最小二乘滤波、双边滤波和引导滤波。但是前两种滤波算法计算复杂度高、运算耗时长,不符合本文快速性的需求,故选择计算速度比较快的引导滤波[11]进行透射率的优化。引导滤波通过引导图对输入的图像进行处理,使输出图像的纹理细节与引导图像相似。其中引导图可以是其他图像也可以是输入图像本身,当选用输入图像为引导图时,能够有效地保持图像中的边缘信息,公式如下:
[Oi=akGi+bk," " i∈wk] (11)
式中:[wk]是以[r]为半径的滤波窗口;[ak]和[bk]为窗口内的恒定系数。引导滤波算法使输出图像和引导图像[Gi]的边缘相匹配,消除了图像中的噪声突变,平滑了图像。本文使用粗透射率图作为引导滤波的输入图,为了获得更好的边缘效果,以原图的亮度分量图为引导图。经过引导滤波后,输出透射率图的边缘清晰度明显提高,并且天空区域和非天空区域的衔接变得更加自然。
为了进一步提高透射率优化的速度,首先用平均滤波器对原始图像和引导图像进行下采样处理,采样大小为原来的[14],再根据采样图求解出引导参数[ak]和[bk],最后使用双线性插值的图像上采样方法将透射图恢复至原尺寸。结果如图6所示,第一行为粗透射率图,第二行为经过优化后的透射率图。通过对比上下两行图像,能看出优化后的透射率有了明显的提高。
如图6a)~图6c)所示,在第一行的粗透射率图中远处的楼房模糊,细节缺失严重,第二行图像经过滤波处理后,远处楼房的细节更加清晰。综上所述,引入图像下采样的引导滤波保证了物体的边缘清晰度,同时提高了算法的处理速度。
3" 实验结果分析
本节搭建实验平台验证本文算法效果并与暗通道先验算法[12]、Retinex算法[18]和Tarel算法[9]进行对比实验。实验平台的处理器CPU为Gen Intel[Ⓡ] CoreTM i7⁃12650H,内存为12 GB,测试软件为Matlab 2022a。测试数据集为OTS数据集和自建的在自然条件下拍摄图像的合集,其中包含了城市街景、自然风景等。关于对比实验的结果,从主观评价、客观评价和处理速度三个方面进行。
不同算法去雾效果对比如图7所示,图7a)~图7d)分别为原始图像和利用DCP算法、Retinex算法、Tarel算法、本文算法的处理结果。前两行为数据集OTS的照片,后两行为拍摄的自然照片。
3.1" 主观评价
根据图7可以看出,以上各种方法均有一定的去雾效果。DCP算法天空区域出现了明显的颜色失真问题,产生的原因是天空区域和非天空区域透视率值不同,如图7b)所示。Retinex算法处理后图像的对比度明显升高,整体画面的亮度较高,但是色彩和色调发生了显著的变化,视觉效果较差,如图7c)所示。Tarel算法处理后,天空区域光滑,非天空区域细节明显,但是在两者交界处有不同程度的光晕产生,如图7d)第一张图和第四张图。
本文方案首先将天空区域和非天空区域进行分割,并使用融合的方法对透射率进行细节优化,去雾后的图像对比度较高,并且天空区域和非天空区域的过渡比较自然,图像处理效果较好,如图7e)所示。
3.2" 客观评价
主观评价在一定程度上会有片面性,所以使用客观评价的方法进一步衡量不同方法的处理效果。本文使用三个客观指标[19]来进行评定,这三个指标分别为均方差(Mean Squared Error, MSE)、峰值信噪比(Peak Signal⁃to⁃Noise Ratio, PSNR)和结构相似性(Structure Similarity Index Measure, SSIM)。在这三个指标中MSE越小、PSNR和SSIM越大表示图像恢复的效果越好。客观评价指标数值如表1所示。
由表1中的数据可以看出,本文所用算法的MSE和PSNR指标大部分都超过了DCP算法、Retinex算法和Tarel算法。因此本文提出的去雾算法达到了比较好的去雾效果。
3.3" 运算速度
为了验证本文算法在处理速度上的表现,将使用不同分辨率的图像进行实验,实验结果如表2所示。
由表2可知,本文方法处理速度更快。
4" 结" 语
有雾图像的快速去雾是视频研究的一个热点。本文提出的自适应天空区域识别的快速图像去雾算法是基于暗通道先验去雾算法进行改进的。改进后的算法能够改善原先算法在天空区域失真和图像处理速度慢的不足,有效地完成了多种不同场景下户外有雾图像的去雾任务,最后在细化透射率过程中引入了图像下采样技术,显著地减少了计算所用的时间。通过对比实验结果表明,本文所提算法处理后的去雾图像对比度高,细节信息保留完好,在保证视觉观感的同时,处理速度快于其他算法。本文算法在后续工作中可以部署到小型嵌入式设备中,提高雾天条件下无人机和车载设备的视频捕获质量。
注:本文通讯作者为杨萍。
参考文献
[1] 付春豹.低照度彩色图像增强算法的研究[D].长春:长春工业大学,2023.
[2] KIM S, PARK S, CHOI K. A system architecture for real time traffic monitoring in foggy video [C]// 2015 21st Korea⁃Japan Joint Workshop on Frontiers of Computer Vision (FCV). New York: IEEE, 2015: 221⁃224.
[3] SHAO Y J, LI L, REN W Q, et al. Domain adaptation for image dehazing [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2020: 2805⁃2814.
[4] GUO J X, REN H Z, ZHENG Y T, et al. Identify urban area from remote sensing image using deep learning method [C]// 2019 IEEE International Geoscience and Remote Sensing Symposium. New York: IEEE, 2019: 7407⁃7410.
[5] BERMAN D, TREIBITZ T, AVIDAN S. Single image dehazing using haze⁃lines [J]. IEEE transactions on pattern analysis and machine intelligence, 2018, 42(3): 720⁃734.
[6] YU L, LIU X B, LIU G Z. A new dehazing algorithm based on overlapped sub⁃block homomorphic filtering [C]// Eighth International Conference on Machine Vision. [S.l.]: SPIE, 2015: 987502.
[7] 马群,赵美蓉,郑叶龙,等.基于自适应条件直方图均衡的红外图像细节增强算法[J].红外技术,2024,46(1):52⁃60.
[8] 张珂,廖育荣,罗亚伦,等.基于改进同态滤波的红外图像增强算法[J].激光与光电子学进展,2023,60(10):63⁃69.
[9] 张振华,陆金桂.基于小波变换和改进的Retinex雾天图像增强[J].计算机应用与软件,2021,38(1):227⁃231.
[10] ZHENG M Y, QI G Q, ZHU Z Q, et al. Image dehazing by an artificial image fusion method based on adaptive structure decomposition [J]. IEEE sensors journal, 2020, 20(14): 8062⁃8072.
[11] HE K M, SUN J, TANG X O. Single image haze removal using dark channel prior [J]. IEEE transactions on pattern analysis and machine intelligence, 2011, 33(12): 2341⁃2353.
[12] HE K M, SUN J, TANG X O. Guided image filtering [J]. IEEE transactions on pattern analysis and machine intelligence, 2012, 35(6): 1397⁃1409.
[13] SALAZAR⁃COLORES S, MOYA⁃SANCHEZ E U, RAMOS⁃ARREGUIN J M, et al. Fast single image defogging with robust sky detection [J]. IEEE access, 2020, 8: 149176⁃149189.
[14] ANAN S, KHAN M I, KOWSAR M M S, et al. Image defogging framework using segmentation and the dark channel prior [J]. Entropy, 2021, 23(3): 285.
[15] 王娇,韩加蓬,马骏,等.一种改进的基于暗通道先验的快速去雾算法[J].现代电子技术,2019,42(22):63⁃68.
[16] 梁肇峻,钟俊.基于Otsu算法与直方图分析的自适应Canny算法的改进[J].现代电子技术,2019,42(11):54⁃58.
[17] XU S F, FU Y W, SUN X Y. Single image defogging algorithm based on sky region segmentation [C]// Journal of physics: Conference series, 2021, 1971(1): 012068.
[18] 王宇勃,甄荣.基于改进多尺度Retinex理论的海上图像去雾算法[J].中国航海,2024,47(1):155⁃161.
[19] LIANG W, LONG J, LI K C, et al. A fast defogging image recognition algorithm based on bilateral hybrid filtering [J]. ACM transactions on multimedia computing, communications, and applications, 2021, 17(2): 1⁃16.
作者简介:李秦君(1977—),男,陕西宝鸡人,硕士研究生,副教授,硕士生导师,主要从事人工智能与机器学习、物联网体系研究和嵌入式系统开发方面的研究。
肖德超(1999—),男,山东潍坊人,硕士研究生,主要从事嵌入式系统开发、数字图像处理方面的研究。
韩刘彧(1998—),男,陕西西安人,硕士研究生,主要从事人工智能图像分割领域的研究。
张国钰(1999—),男,河南三门峡人,硕士研究生,主要从事人工智能图像识别领域的研究。
杨" 萍(1979—),女,陕西西安人,硕士研究生,副教授,硕士生导师,主要从事人工智能与机器学习以及物联网体系领域的研究。