基于多尺度Retinex和暗通道的自适应图像去雾算法 下载: 889次
1 引言
雾霾天气的空气中,大量的水分子和PM2.5颗粒等杂质会影响光线的直线传播,导致获得的图像存在模糊不清和对比度下降等问题,这不仅影响人们对图像的视觉感知,还严重影响计算机视觉系统的识别和特征提取[1]。图像作为获取信息最直观的媒介之一,如何将低质量图像处理成可以获取更多有效信息的图像具有十分重要的意义[2]。
随着去雾技术的不断发展,图像去雾的方法可以分为图像复原和图像增强两类[3]。图像增强算法主要是以直方图均衡算法、Retinex算法以及基于Retinex的相关算法为代表[4-6]。图像复原算法中由He等[7]提出的基于暗通道先验的图像复原算法最具创造性,使用大气散射模型可以有效复原出无雾图像,但是该算法具有局限性,当一幅图像含有大片天空区域或高亮光源时,这会导致大气光值估计不准确,采用最小值滤波和软抠图的方法会造成复原图像出现光晕效应,而且算法的时效性差。Yu等[8]提出了一种单图像的去雾算法,采用由块到像素的插值方法对暗通道进行优化,但在复原图像的边缘区域出现光晕效应且天空区域的色彩恢复较差。Zhu等[9]提出了颜色衰减先验,在此条件下可以有效地恢复天空区域且较好地保护细节信息,但是复原图像中含有薄雾。孙伟等[10]提出了一种局部大气光值估计算法,该算法可以解决暗通道先验算法对全局大气光值估计不准确而导致的一系列复原问题。Meng等[11]通过对透射率进行限制并采用正则化方法对图像进行处理,复原结果出现偏色的现象。Cai等[12]使用了神经网络设计一种端对端的深度学习去雾算法可以复原出无雾图像,说明该算法对天空区域有着很好的恢复效果。赵春丽等[13]对有雾图像采用暗通道先验算法进行处理,再将处理后的图像转至HSV(Hue, Saturation, Value)空间中并根据Retinex理论对V分量进行优化。马文君等[14]为了保护图像边缘信息以及保持图像色彩,将有雾图像转换至Lab色彩空间中,其中L表示亮度,a表示绿色到红色的分量,b表示蓝色到黄色的分量,根据Retinex理论对L分量(亮度)进行处理。
由于大气环境、地形的复杂多变或者设备成像效果较差等因素,造成图像的对比度较低,可视化效果差。现阶段常用校正和增强对比度的方法主要有Retinex理论图像增强、 直方图均衡化和形态学滤波等。Retinex理论图像增强法依据色彩恒常性来去除光照分量以保证物体的反射属性,但这类方法处理图像后在边缘突变的区域出现光晕现象[15]。直方图均衡化法具有算法简单和时效性强等优点,但是对光照不均匀图像中不同亮度区域的自适应情况较差[16]。形态学滤波法可以增强图像的可视性,但物体的自然特征会因此改变[17]。
针对暗通道先验算法对天空或高光区域复原后存在失真、边缘区域出现明显的光晕效应,复原图像整体偏暗和对比度较低的问题,提出一种具有边缘保护、消除光晕效应和增强对比度的图像去雾算法。该算法首先将多尺度Retinex(MSR)算法和Canny边缘检测算子结合,将RGB(Red, Green, Blue)图像转换至Lab颜色空间中并进行保边处理;其次采用交叉双边滤波算法优化图像的透射率,然后使用大气散射模型得到无雾图像;最后将无雾图像转换至HSV颜色空间中,使用二维伽马函数对亮度分量进行调整以增强对比度,最终获得细节信息保护良好、色彩自然和层次分明的无雾图像。
2 算法基础
2.1 Retinex理论
根据Retinex理论,一幅给定的图像S(x,y)可以分解为反射图像R(x,y)和入射图像L(x,y)[18],其中(x,y)为图像中点的坐标,S(x,y)可表示为
L(x,y)决定图像的动态范围,R(x,y)决定图像的内在性质。通常使用高斯滤波函数F(x,y)处理S(x,y),可以得到
式中:*为卷积符号。为了得到R(x,y),将图像转到对数域中进行求解,表达式为
将(2)式代入(3)式,可以得到
2.2 大气散射模型
Nayer和Narasimhan改进了大气散射模型,该模型以雾天图像降质为基础来描述图像退化的原因[19],数理表达式为
式中:I(x)为获得的有雾图像;J(x)为清晰的无雾图像;A为大气光值;t(x)为透射率,取值范围为(0,1),其表示光线在传播过程中受到外界因素的作用而产生损耗,除去损耗部分后最终到达成像设备的光线;d(x)为场景光线的景深;β为大气散射系数。各通道的t(x)可表示为
式中:c为RGB颜色通道。
2.3 暗通道先验理论
在户外无雾图像(非天空区域)中的大部分局部区域,存在一些像素点在至少一个颜色通道中具有非常低小的值,往往趋近于0,因此该通道被命名为暗通道。He等[7]通过对5000多幅无雾图像的暗通道图进行统计和观察,发现约有75%的像素值为0,有90%的像素点具有非常小的值且集中在[0,16]。图像的暗通道表达式为
式中:Jdark为无雾图像的最小通道图;Ω(x)为最小值滤波的窗口大小。
根据(5)式和(8)式,在A值为常数的情况下,可以得到估计透射率
式中:Idark(x)为有雾图像的最小通道图;ω为雾气保留系数,取值范围为[0,1]。最终得到恢复后的图像为
式中:t0为透射率的下界,值为0.1。
3 所提算法
本课题组提出一种图像去雾复原算法,该算法可以很好地解决某些光照不均的有雾图像出现的光晕效应、雾感、整体图像偏暗,图像明暗区域亮度差异过大而导致细节信息无法体现的问题。
将RGB图像转换至Lab空间中,利用Canny算子对L分量进行边缘检测,根据MSR理论对非边缘区域进行高斯滤波以除去L分量;使用交叉双边滤波对由暗通道先验理论获得粗略估计的透射率进行优化,可以获得较为准确的透射率。大气光值的选取采用改进的四叉树子空间搜索法,该方法可以避免全局大气光值的取值过大;使用大气散射模型可以复原出去雾图像。为了进一步优化图像、调整亮度和增强对比度,首先将图像转换至HSV空间中并对V分量进行提取,然后利用二维伽马函数对V分量进行处理,最后合成RGB图像,从而获得亮度校正后的无雾图像。所提算法的处理流程如
3.1 Lab颜色空间的改进MSR算法
为了避免单尺度Retinex算法处理不同图像,图像的色彩保真度和细节保持度不能实现相对平衡,则引入MSR算法,该算法可以同时实现图像色彩的增强以及局部和全局动态范围的压缩。MSR算法的数学表达式为
式中:r(x,y)为初步估计的反射分量;N为中心环绕函数的个数;ωn为权重。在图像亮度相差较大的边缘处,图像亮度未平滑过渡,因此适用于平滑图像的Retinex算法作用于非平滑图像后,出现明显的光晕效应以及光照强度高的区域细节信息未能有效改善。
3.1.1 亮度分量的处理
采用传统的MSR算法分别对图像的三个颜色通道进行增强,因颜色通道之间会相互影响,使得最后得到的图像出现色彩失真的现象。但是在Lab色彩空间中,三个通道彼此独立互不干扰,当仅对亮度分量进行处理时,因a分量(绿色到红色变量)和b分量(蓝色到黄色变量)均保持不变,则不会给处理后的图像的准确分析带来不便。
由于亮度分量对图像的影响较小,反射分量对图像色彩的影响较大,为了消除亮度分量对图像的影响,根据Retinex理论将亮度分量分离出来,剩下的反射分量可优化有雾图像[14]。因此在Lab色彩空间中,将亮度分量提取出来并进行处理,则图像S可以表示为
式中:L'为提取亮度分量后的入射图像。为了计算方便,将(12)式转换到对数域中进行求解,表达式为
L'(x,y)是在Lab空间中利用高斯卷积估计得到的,表达式为
则F(x,y)可表示为
式中:λ为归一化常数。F(x,y)的取值需要满足
当σ值较小时,细节信息的保持和动态范围的压缩较好,且提取的光照值全局特性较好,但是色彩无法保持;当σ值较大时,色彩可以更好保持且提取的光照值全局特性较好,但是细节信息保持较差。
3.1.2 边缘保护
当采用Retinex算法处理边缘细节时,易丢失复原后的图像边缘细节信息,因此采用Canny边缘算子求取边缘信息E(x,y)。为了使边缘细节信息能够较好地存在于复原图像中,将图像分为边缘区域和非边缘区域两部分,使用多尺度高斯滤波对非边缘区域进行处理,得到非边缘区域的亮度分量,最终得到含有融合边缘信息的亮度分量,表达式为
由(15)式、(16)式和(19)式可得初步估计的反射分量,表达式为
转回RGB颜色空间中,将R(x,y)作为待处理的图像。
3.1.3 透射率优化
R(x,y)的暗通道用
由He等[7]提出的暗通道先验算法使用了最小值滤波,这会导致有雾图像边缘处的透射率过小,细节被覆盖,获得的透射率有明显的块状效应,复原处的图像出现明显的光晕效应[20]。为了能够得到较为理想的透射率,采用交叉双边滤波算法对透射率进行优化。交叉双边滤波器是空域滤波器和值域滤波器的结合,能够起到保护边缘细节信息和降低噪声等作用。双边滤波器的表达式为
式中:E=
图 2. 不同方法处理后的透射率图像。(a)有雾图像;(b)文献[ 8];(c)透射率粗估计;(d)优化透射率
Fig. 2. Transmittance images after processing by different methods. (a) Hazy images; (b) Ref. [8]; (c) rough estimations of transmittance; (d) transmittance optimization
3.1.4 局部大气光估计
为了求得更为接近真实值的大气光值,实验采用四叉树子空间分块搜索法。该方法可以提取图像的局部特征,消除因大气光值估计不准而出现复原效果不理想的现象。
为了降低图像中天空区域或者光亮光源对获取大气光的影响,首先对图像进行直方图均衡化,接着将处理后的图像均分为4个子矩形区域,然后使用像素平均值减去像素标准差作为评分标准并对4个区域进行评分,对评分最高的区域进行上述步骤的处理,直至所选区域内的像素点个数小于设定的阈值,最后在该区域的RGB颜色通道中选择符合的像素值并作为大气光值。
3.2 对比度增强
在HSV空间中对亮度分量进行处理,可以避免在RGB空间中处理的运算量大、时效性差以及色彩失真[21-22]。依据Retinex理论,多尺度高斯滤波函数可以有效压缩动态范围以及准确估计场景的照射分量,因此采用多尺度高斯滤波函数来提取光照分量。针对图像中不同区域光照亮度差异过大的特点,并且为了提高对比度以及突出细节信息,采用改进的二维伽马函数对图像进行处理,数理表达式为
式中:m为光照图像中亮度分量的均值;γ表示校正参数,γ=(m/255
二维伽马函数是将每一个像素点处的光照值作为参数并与亮度分量的均值相结合,能够提高或者降低不同区域的光照值以实现自适应的校正,从而生成新的HSV图像,最后将其转成RGB图像。实现校正亮度的目的是在有效保留原始图像有效信息的同时,压缩图像的动态范围,增强对比度,提高图像质量。
4 算法验证
实验与仿真均是在个人计算机上进行的,使用的软件为MATLAB 2017a,操作系统为Windows 10。计算机的处理器为Intel(R)Core(TM)i7-8750H CPU@2.20 GHz,内存为24.0 GB。将所提算法与其他经典算法进行对比,从主观和客观两方面对实验结果进行分析。
4.1 主观评价
主观分析虽然有一定的片面性,但是可以最直接地观察图像复原后的效果。将所选取的图像按照不同的性质分为近景组、远近景交替组和远景组三组图像,并将所提算法分别与文献[
7-9,12]进行对比。近景图像的效果对比如
图 3. 不同算法处理近景图像的效果。(a)原图;(b)文献[ 7];(c) 文献[ 8]; (d) 文献[ 9]; (e) 文献[ 12];(f)所提算法
Fig. 3. Effect of different algorithms for processing close-range images. (a) Original images; (b) Ref. [7]; (c) Ref. [8]; (d) Ref. [9]; (e) Ref. [12]; (f) proposed algorithm
从
远近交替图像的效果对比如
图 4. 不同算法处理远近交替图像的效果。(a)原图;(b)文献[ 7];(c) 文献[ 8]; (d) 文献[ 9]; (e) 文献[ 12];(f)所提算法
Fig. 4. Effect of different algorithms for processing alternating near-and-far images. (a) Original images; (b) Ref. [7]; (c) Ref. [8]; (d) Ref. [9]; (e) Ref. [12]; (f) proposed algorithm
远景图像的效果对比如
图 5. 不同算法处理远景图像的效果。(a)原图;(b)文献[ 7];(c) 文献[ 8]; (d) 文献[ 9]; (e) 文献[ 12];(f)所提算法
Fig. 5. Effect of different algorithms for processing perspective images. (a) Original images; (b) Ref. [7]; (c) Ref. [8]; (d) Ref. [9]; (e) Ref. [12]; (f) proposed algorithm
从主观方面来看,所提算法的处理效果较优,能够有效去雾,较为自然且真实地复原图像,而且可以增强图像的对比度以突出细节,但是不能仅凭主观判断对复原图像进行评价,也应从客观恢复标准进行评价以验证算法的可行性和有效性。
4.2 客观评价
采用的客观评价恢复指标有可见边p、平均梯度r、峰值信噪比(PSNR)以及运行时间t。其中p、r和PSNR值越大表示图像的复原效果越好,t值越小表示效率越高。表达式分别为
式中:lr和l0分别为原图和复原图像的可见边数;rt为某一像素处复原图与原图的平均梯度比值;
从
表 1. 不同算法处理不同图像的p值
Table 1. p values of processing different images by different algorithms
|
表 2. 不同算法处理不同图像的t值
Table 2. t values of processing different images by different algorithms
|
表 3. 不同算法处理不同图像的PSNR
Table 3. PSNR of processing different images by different algorithms
|
表 4. 不同算法处理不同图像的运行时间
Table 4. Running time of processing different images by different algorithms unit: s
|
5 结论
针对暗通道先验算法处理带有明亮区域图片易导致透射率偏小、景深边缘处出现光晕效应,大气光值估计不足而导致复原图像整体偏暗的问题,提出以暗通道先验算法为基础并结合多尺度Retinex算法,在Lab颜色空间中提取并消除亮度分量带来的影响,避免传统的Retinex算法对图像色彩产生影响。边缘提取可以有效增加复原图像的细节,避免因最小值滤波引起的光晕效应,采用交叉双边滤波对粗略透射率进行处理,可以有效平滑透射率。在HSV空间中利用二维伽马函数对亮度分量进行处理,可以校正不同区域的亮度值,从而实现对比度的增强,最终获得优化后的无雾图像。实验结果表明,所提算法对近景、近远交替和远景图像都有较为良好的处理效果,复原后的图像细节丰富、色彩自然且对天空或高亮区域的处理效果较好,在客观评价方面也具有明显优势。但是所提算法对远景图像中近景部分的处理易出现过饱和的现象,因此进一步处理色彩偏差是接下来的研究重点之一。
[1] 代书博, 徐伟, 朴永杰, 等. 基于暗原色先验的遥感图像去雾方法[J]. 光学学报, 2017, 37(3): 0328002.
[2] 李红云, 高银. 基于天空区域分割和边界限制L0梯度最小化滤波的图像去雾算法[J]. 南京理工大学学报, 2020, 44(2): 236-245.
[3] 李尧羿, 杜宇超, 顾振飞. 结合天空区域识别的单幅图像去雾方法[J]. 计算机工程与应用, 2018, 54(19): 202-208.
[4] 胡一冰, 唐晨, 陶珊. 基于多尺度Retinex算法的光干涉条纹图像增强[J]. 激光与光电子学进展, 2019, 56(24): 241006.
[6] 余萍, 郝成成. 基于分数阶微分和多尺度Retinex联合的雾霭图像增强算法[J]. 激光与光电子学进展, 2018, 55(1): 011012.
[7] He KM, SunJ, Tang XO. Single image haze removal using dark channel prior[C]∥2009 IEEE Conference on Computer Vision and Pattern Recognition, June 20-25, 2009, Miami, FL, USA. New York: IEEE, 2009: 1956- 1963.
[8] Yu T, Riaz I, Piao J C, et al. Real-time single image dehazing using block-to-pixel interpolation and adaptive dark channel prior[J]. IET Image Processing, 2015, 9(9): 725-734.
[10] 孙伟, 李大健, 刘宏娟, 等. 基于大气散射模型的单幅图像快速去雾[J]. 光学精密工程, 2013, 21(4): 1040-1046.
[11] Meng GF, WangY, Duan JY, et al. Efficient image dehazing with boundary constraint and contextual regularization[C]∥2013 IEEE International Conference on Computer Vision, December 1-8, 2013, Sydney, NSW, Australia. New York: IEEE, 2013: 617- 624.
[12] Cai B L, Xu X M, Jia K, et al. DehazeNet: an end-to-end system for single image haze removal[J]. IEEE Transactions on Image Processing, 2016, 25(11): 5187-5198.
[13] 赵春丽, 董静薇. 基于暗通道及多尺度Retinex的雾霾天气图像增强算法[J]. 激光杂志, 2018, 39(1): 104-109.
[14] 马文君, 刘金虎, 王小鹏, 等. 结合Lab空间和单尺度Retinex的自适应图像去雾算法[J]. 应用光学, 2020, 41(1): 100-106.
[16] 赵源萌, 王岭雪, 金伟其, 等. 基于区域直方图统计的灰度图像色彩传递方法[J]. 北京理工大学学报, 2012, 32(3): 322-326.
[18] 尚月. 基于Retinex的夜间低照度图像自适应增强算法[J]. 信息通信, 2020, 33(4): 36-38.
[19] 杨燕, 张国强, 姜沛沛. 结合景深估计的高斯衰减与自适应补偿去雾[J]. 光学精密工程, 2019, 27(11): 2439-2449.
[20] 韩昊男, 钱锋, 吕建威, 等. 改进暗通道先验的航空图像去雾[J]. 光学精密工程, 2020, 28(6): 1387-1394.
[22] 李福文, 金伟其, 陈伟力, 等. 基于Retinex模型的彩色图像全局增强算法[J]. 北京理工大学学报, 2010, 30(8): 947-951.
Article Outline
彭静, 薛奉金, 苑玉彬. 基于多尺度Retinex和暗通道的自适应图像去雾算法[J]. 激光与光电子学进展, 2021, 58(4): 0410004. Jing Peng, Fengjin Xue, Yubin Yuan. Adaptive Image Defogging Algorithm Combining Multi-Scale Retinex and Dark Channel[J]. Laser & Optoelectronics Progress, 2021, 58(4): 0410004.