摘 要: 为了解决由于雾霾天气影响而导致采集的图像存在视见度低和细节可见性不足的问题,提出一种结合卷积变换与细节优化的图像去雾算法.首先,将大气光幕的初始估计定义为高维流形信号,利用空间域的等距变换思想实现降维,经归一化卷积提取精确的大气光幕值.接着,融合形态学运算和最大通道实现浓雾区域的检测,从而获得准确的大气亮度.最后,通过大气散射模型对雾天图像进行还原,并采用分段线性映射图进行细节和亮度的优化提升.理论分析和实验结果表明:复原图像的细节特征得到优化,保真度和整体亮度得到提升,相比于当前主流的算法,平均梯度提高了50.89%,信息熵提高了6.44%.该算法能有效消除图像中的雾气,所获得的视觉效果真实自然,基本能够满足对视见度和细节的要求.
关 键 词: 图像去雾;卷积;细节优化;图像复原;图像增强;大气散射模型
1 引 言
雾天环境下拍摄的画面容易出现颜色偏移、饱和度不足和对比度下降等问题,并且雾霾掩盖了图像中的部分细节信息,造成目标景物特征无法分辨.这给图像的后续处理带来了诸多不便,严重影响了室外安防监控、目标分析、自动交通驾驶等方面的应用.尤其在实时监控方面,亟需一种快速有效的去雾方法.
近年来,基于先验假设和神经网络学习的去雾算法研究取得了较大进展.Fattal[1]假设透射率与景物局部阴影具有不相关性,采用独立成分分析估计介质透射率.该方法对于浓雾图像的处理效果不佳,且需要对颜色进行统计,因此对灰度图像无效.Tarel[2]提出采用中值滤波器对大气光幕进行优化的快速方法来实现图像去雾,然而在景深突变的边缘处容易产生光晕现象,去雾效果不自然.He[3]通过对大量户外无雾图像进行统计观察,总结得出暗原色先验理论,并用于单幅图像去雾,取得良好的视觉效果,得到了业内研究者的广泛关注,然而算法中采用软抠图具有较大的时间复杂度.Meng[4]对介质透射率的边界进行条件约束,结合正则化方法优化建模,从而得到细节精细的结果.Zhu[5]提出颜色衰减先验,结合监督学习进行深度信息的重建,从而估计透射率以及复原清晰图像.Wang[6]采用线性变换的方式对透射率进行快速计算,并通过弱化方式解决局部失真现象.Sebastian[7]计算有雾图像的最小通道图,并在其基础上利用多层感知器获取透射率的估计值.曾接贤[8]在暗原色先验的基础上,采用双边滤波器替代软抠图算法求解介质透射率,提高了算法的实时性.崔倩男[9]利用引导滤波器对透射率进行细化处理,并通过调整因子对暗原色失效的区域进行修正,从而复原清晰无雾的图像.邵明省[10]通过区分雾天图像的远景、近景,并做不同程度的优化处理,改进了暗原色先验算法.谭龙江[11]和曾浩洋[12]分割雾天图像的天空区域求取大气亮度,结合暗通道对透射率的估计方式进行改进.Ren[13]采用多尺度深层网络学习用于介质透射率的估计,对合成图像和自然图像的去雾取得良好的效果.Cai[14]结合卷积网络与大气散射模型预测介质透射率,从而恢复高质量的无雾图像.陈清江[15]构建有雾图像和清晰图像的残差网络,采用多尺度卷积获取雾气特征,结合引导滤波进行恢复.
目前基于先验信息的去雾算法普遍存在场景适应性不足的缺陷,而基于深度学习的方法对自然图像的处理效果有待提高.为了克服上述局限,本文采用卷积变换的思想和分段映射后处理,结合大气散射模型实现雾化图像的细节提升.仿真实验显示,本文的主观评价和客观指标均有较大的优势.
2 大气散射模型
大气散射模型被广泛应用于图像去雾、夜间图像增强和水下图像增强等方面的研究,其数学表达式如下:
I(x,y)=J(x,y)t(x,y)+A(1-t(x,y))
(1)
其中,I(x,y)为雾化的原始图像;J(x,y)为去雾后的清晰图像;A为大气亮度,一般当做全局常量;t(x,y)为介质传输透射率,当光线在均匀介质中传输时,有:
t(x,y)=e-βd(x,y)
(2)
其中,β为大气散射系数;d(x,y)为景物深度,反映景物与图像采集设备之间的距离信息.式(1)等号右边的第2项定义为大气光幕:
V(x,y)=A(1-t(x,y))=A(1-e-βd(x,y))
(3)
大气光幕反映了环境光线的散射导致图像中景物产生色彩失真和细节模糊的程度.结合式(1)和式(3),已知雾天图像I(x,y)的前提下,求得模型中的A、V(x,y)或t(x,y),便可反解求出清晰的无雾图像J(x,y).
3 本文算法
基于大气散射模型,本文算法可分为3个步骤:一是根据模型分析大气光幕的特征,利用空域降维变换和归一化卷积获取光幕值;二是结合形态学腐蚀与最大通道计算大气亮度;三是根据模型复原图像,并进行分段线性映射调整.
3.1 卷积变换获取大气光幕
根据模型中光线散射的特性,可提取雾天图像的3个通道最小值作为初始估计,即:
(4)
由上述分析和式(3)可知,大气亮度A为全局常量的前提下,大气光幕V与场景深度d成正相关,即景深一致时,光幕值基本相同;景深突变的区间,光幕值随之突变.由此可得,大气光幕仅与景物所处的深度相关,与景物表面的纹理无关.因此,为了获得准确的估计值,需要完全滤除最小通道图Im中的纹理信息,且完整保留其边缘结构,此处采用基于空间变换的归一化卷积[16]来实现这一操作.
该变换定义了高维空间中2维图像在流形上的曲线与实线之间的等距,保留了曲线上各点之间的测地距离,自适应地对输入信号进行变形,使卷积变换能在线性时间内有效地进行.
给定输入图像Im,在变换域5维空间R5中将其定义为2维流形结构M,令为该流形中的一个点,对应Im中的像素坐标p=(xp,yp),幅值Im(p)=(rp,gp,bp).设为5维空间中的保边缘卷积核,对图像Im进行卷积运算得到的结果可表示为:
(5)
其中,表示图像Im的像素点集合.为了使降维后的边缘效果与5维空间中的卷积核F保持一致,寻找变换形式τ:R5→Rl,l<5,以及定义在降维空间Rl上的卷积核H,使得:
(6)
根据等距变换的思想进行降维,卷积核H的响应速度与F保持高度一致,即可起到边缘保持的作用.通过理论分析和实践验证,得出变换形式τ如下:
(7)
其中,I′m表示对图像Im求导数;σs和σr分别表示空域和值域的标准差.在均方意义上,最优的降维卷积结果可由归一化卷积获得,即:
(8)
其中,归一化因子为了提高执行效率,H采用移动式搜索的盒式卷积进行优化,时间复杂度仅为O(N).
图1(a)为原始雾天图像,经式(8)计算得到的大气光幕如图1(b)所示,图中景深突变的结构边缘被保留,景深基本一致的区间被有效平滑滤除,如树木绿叶的纹理和建筑物的细节基本不可见,整体与自然场景下的深度特征相符.
图1 本文算法去雾效果
Fig.1 Dehazing result using proposed algorithm
3.2 检测浓雾区域与计算大气亮度
复原图像的另一个关键参数是全局大气亮度值.杨红[17]提取天空的亮度最大值,将原始图像中对应的亮度均值作为初始估计,再进行精细化校正,该方法针对不含天空或天空界限不明显的图像将产生较大误差.李喆[18]保留暗原色图和深度图中小部分坐标重合的像素,再将最大值作为大气亮度,然而自然图像的深度信息是未知的,提取难度较大,难以满足实际应用的需求.根据大气散射的特性,大气亮度位于整幅图像中雾气最浓的区域,因此找出浓雾区域即可求得准确值.本文提出的浓雾区域的检测步骤如下:
Step 1.对原始图像的3个通道分别进行形态学腐蚀处理,结果记为Ie;
Step 2.取Ie中3个通道的最大值,得到最大通道图Ia,即:
(9)
Step 3.标记Ia中最亮的前1%像素点坐标,对应Ie中相同坐标的像素集合指定为雾最浓区域;
通过上述方法得到的结果如图1(c)所示,黑色标记区域位于图像最上方,即景深的最深处.由于自然环境下的雾气具有各向均匀性,深度越大所叠加的雾气越多,因此该区域可认定为合理的雾最浓区域.取该区域内3个通道的平均值作为大气亮度A.
3.3 复原图像与细节优化
利用估计得到的大气光幕V和大气亮度A,根据式(3)计算传输透射率:
(10)
其中,0≤ω≤1,表示能见度还原系数,可有效控制图像的去雾程度.ω=1说明100%去除雾气影响,此时取值偏大容易导致过度处理,出现过饱和以及像素溢出现象;取值偏小则会造成去雾力度不足,清晰度不佳.为了兼顾饱和度和清晰度,经过大量图像测试验证,取ω=0.9时效果最佳.将透射率和大气亮度代入式(1),根据散射模型恢复清晰的结果:
(11)
其中,设置传输透射率的下限值t0,可避免由于噪声干扰而出现分母为零的现象,本文取t0=0.01.
由于原始图像中的绝大多数像素值小于大气亮度A,经过式(11)计算后,图像亮度比实际场景偏暗,造成部分细节可见性不足[19,20],因此需要对图像的细节进行优化,亮度进行提升.本文采用分段线性映射进行不同程度的拉伸,对较暗的前50%灰度实行大幅度提升,后50%灰度的提升程度分2次逐步放缓.按照图2所示的3段线性映射进行优化,去雾的最终结果如图1(d)所示,对比原始雾天图像可以发现,雾气被有效去除,细节得到优化,对比度和层次感增强,整体亮度符合视觉特性.
图2 优化映射图
Fig.2 Optimization mapping
4 实验结果分析
在Windows10系统下运行MATLAB 8.5软件进行仿真实验,硬件配置为4GB内存的i5处理器.用于对比的算法有He算法[3]、Meng算法[4]、Ren算法[13]、Cai算法[14]和Sebastian算法[7],通过主观上的评价和客观指标分析来验证本文方法的优势.
4.1 主观评价
使用本文算法提升图像细节效果(见图3).图3(a)为雾天图像,图3(b)为本文算法的去雾结果,对比可知,图像中的雾气被有效去除,对比度和能见度有了很大提升.对白色框中的细节进行放大,结果如图3(c)和图3(d)所示,不难看出,本文对细节优化的效果出众,有利于目标特征的检测与识别.
图3 图像细节的提升
Fig.3 Improvement of image detail
图4给出了本文与5种当前主流算法的对比结果.图img1和img2中,He、Meng和Ren的清晰度不足,Cai的雾气去除不彻底,Sebastian上方出现明显的像素值溢出现象.图img3中,He、Cai和Sebastian的树叶偏暗,Meng和Ren的树叶缝隙间仍有雾气存在.图img4中,本文对火车的恢复效果最佳,其余方法在细节上均有不同程度的模糊现象.图img5中,He、Meng和Cai的对比度不够高;相比之下,本文的结果明亮通透,层次感和视见度更佳.图img6中,He和Meng的天空出现噪声点;Ren的树叶周围仍然有部分雾气没有去除;Cai和Sebastian的左侧树叶亮度较暗,细节不明显;本文的对比度较高,且对噪声不敏感,能够基本保持天空的良好视觉效果.通过6组图片的对比可知,本文在细节清晰度的恢复优于其他方法.
4.2 客观评价
客观评价指标采用平均梯度G和信息熵E.平均梯度用来衡量清晰程度,数值越大说明图像的清晰度越高,计算式如下:
(12)
其中,M和N分别表示图像的行数和列数,I(x,y)表示坐标位置为(x,y)的像素值.
信息熵反映图像的信息量,数值越大表明信息越丰富,图像质量越高,计算式如下:
(13)
其中,px表示图像灰度值x的出现概率.
图4的2项客观指标如表1所示,其中的加粗数据为每行最优值.从总体上来看,本文的2项指标均占较大优势.统计表1的数据,得出本文的G指标相比He算法提高72.39%,相比Meng算法提高37.14%,相比Ren算法提高61.78%,相比Cai算法提高67.44%,相比Sebastian算法提高15.72%;E指标相比He算法提高5.85%,相比Meng算法提高10.27%,相比Ren算法提高8.14%,相比Cai算法提高5.51%,相比Sebastian算法提高2.43%.客观指标进一步验证了本文算法的优势,与主观评价的结果一致.
图4 实验结果比较
Fig.4 Comparison of experimental results
表1 客观指标比较
Table 1 Comparison of objective index
5 结 论
本文采用卷积变换与细节优化相结合的方法对图像进行去雾处理.在散射模型的基础上,首先对大气光幕值进行初始估计,并将其定义为高维信号,再通过降维变换和卷积运算得到细化后的精确值;其次,应用腐蚀操作消除干扰,融合最大通道图进行大气亮度的计算;最后恢复无雾图像并利用分段映射关系实现细节优化.实验结果证明:本文算法对雾天图像的细节优化效果明显,客观指标突出,平均梯度整体提高了50.89%,信息熵整体提高了6.44%,能够满足对清晰度和细节的要求.