基于改进二值分割的图像去雾算法
2022-05-26司振惠
于 萍,郭 鑫,王 岩,周 研,司振惠
(吉林师范大学 计算机学院,吉林 四平 136000)
0 引言
随着科技进步,计算机被运用到许多领域中[1-3],而因现代工农业的迅猛发展,恶劣天气频发,人们对景物的拍摄与观察受到严重影响.例如,2019年澳大利亚的丛林大火,悉尼和墨尔本等地均出现了浓烟和雾霾天气,由于人们拍摄的照片无法清晰地呈现景象,给救援任务和新闻报道工作带来了极大的挑战,由此图像去雾受到科研工作者的重视,成为了近几年的研究热点.
图像去雾算法大致可被归纳为四类:通过物理公式实现的图像去雾算法、基于色彩增强的图像去雾算法[4-6]、基于神经网络的图像去雾算法[6-9]和基于图像融合的图像去雾算法[10-12].其中,基于物理公式的图像去雾算法通过考虑雾霾的成因,并对成因进行建模实现对图像去雾,效果良好.M.H.Kai等[13]提出的暗通道先验理论,通过粗略估计透射率,引导滤波[14]进一步优化、以暗通道图像获取大气光值实现去雾;蒋建国等[15]针对暗通道先验理论[13]估计透射率及大气光不准确的问题,在其基础上引入容差值对透射率进行重新估计,使用容差值K判断图像明亮区域并对明亮区域的透射率进行优化,从而避免暗通道先验理论在明亮区域不成立的问题;黄小芬等[16]通过瑞利散射优化大气光值的选取,使大气光值进一步优化;孙启隆等[17]通过将暗通道先验理论[13]与图像增强算法相结合,实现了沙尘图像增强.
上述算法从不同角度实现了图像去雾,但明亮区域仍有时存在光晕现象、亮度不佳等情况.为解决上述问题,本文采取引导滤波与二值分割法优化大气光值的选取,将容差值改为定值后优化透射率,进行去雾.经过对比实验验证,本文处理得到的图像综合质量高,且亮度更佳.
1 基本原理
1.1 大气散射模型
大气散射模型,一般用于解释物体的成像原理,即
I(x)=J(x)t(x)+A(1-t(x)).
其中:I(x)代表原始有雾图像;J(x)为清晰的无雾图像;A代表全局大气光值;t(x)表示的是图像透射率.该公式是大部分基于物理公式实现图像去雾算法的基础理论体系.由于公式中同时存在三个未知变量,因此利用原始有雾图像准确估计大气光值与透射率,是基于物理公式实现图像去雾算法能否高效恢复出清晰图像的关键所在,也是探索该领域的难题之一.
1.2 暗通道先验理论
M.H.Kai等[13]为解决大气散射模型中存在三个未知数的问题,提出暗通道图像的概念.他观察大量户外无雾图像,发现图像中的非明亮区域中总存在一些像素值趋近于零的像素点.将这些像素点拼接成整体像素值接近于零的新图像,即暗通道图像.M.H.Kai等[13]通过选取图像中最亮的0.1%的点作为全局大气光,经过等式变化,可得到
其中引入参数ω的意义在于,即使在晴空万里的天气条件下,空气中也难免存在小部分空气粒子与入射光线发生交互作用,为使图像自然,参数ω取值0.95[13].
获取到A与T(x)后便可实现去雾,具体公式为
为避免透射率出现零的情况,引入了参数t0,其取值为0.1.
2 基于改进二值分割的图像去雾方法
为避免常规算法在明亮区域出现光晕现象、图像整体亮度不佳等问题,本文算法通过改进二值分割法,以引导滤波和改进后的二值分割将图像对大气光值进行优化,通过二值分割得到引导滤波优化后的明亮区域IFL和非明亮区域IFD,求取大气光值AL和AD;以两个区域的大气光值AL和AD求取全局大气光值AM,然后估计全局透射率T(x);通过改进后的二值分割法将原始有雾图像I分割为明亮区域IL,非明亮区域ID;为减少算法复杂度,对蒋的容差值K[15]进一步优化,将容差值取为定值后优化明亮区域得粗略透射率T(x),进行相应区域去雾,得到修复图像JR;通过YUV通道进行降低亮度,再与原始有雾图像进行加权融合得出最终的清晰图像J,本文流程图如图1所示.
2.1 大气光值的选取
2.2.1 二值图像分割法
常规的图像分割法会保留一定的像素值,需要采用设定阈值进行判断,这也使所划分的明亮区域出现极大的误差,且操作复杂.而在二值图像分割图像中,像素值非1即0,判断难度降低,划分出的明亮区域更加准确,且操作方法简单,因此,选用二值分割检测图像中的明亮区域与非明亮区域.在将彩色图像处理成二值图像的时候,会根据彩色图像整体像素值评定一个标准值δ,高于标准δ的像素值归为1,即明亮区域;低于标准δ的像素值归为0,即为非明亮区域.为使划分区域更为准确,经过多次实验发现,在标准值δ基础上加0.2会使分割出的图像更加合理,极大程度上减少了色差问题出现的概率,具体公式如下:
其中:i,j是两幅图像的横纵坐标;I为原始有雾图像;IF为平滑图像;IL,IFL为分别为两幅图像的明亮区域;ID,IFD为两幅图像的非明亮区域;δ为标准值.
为证明引入标准值的必要性,观察图2.图2为引入标准值前后分割对比图像,图2(A)中的明亮区域较多,通过引入标准值处理,图2 (B)中的明亮区域明显变小,尤其是左下角及右上角区域.在对原始有雾图像的分割处理中,图2(C)中显示,非天空区域的明亮部分被筛选到天空区域,而在引入标准值后,即图2(D)明亮区域范围变小,使得树木部分的细节更加突出,为进一步提高图像清晰度,避免出现光晕现象提供了可能.
(A)未引入标准值平滑图像分割;(B)引入标准值平滑图像分割;(C)未引入标准值原始有雾图像分割;(D)引入标准值原始有雾图像分割
2.2.1 大气光值
暗通道先验理论[13]选取的大气光值会导致选取的大气光值有偏大的可能性,这直接导致了图像偏暗、图像色彩饱和度偏高的问题.针对此问题,本文用引导滤波[14]实现原始有雾图像的模糊化,减弱噪声影响,相对减少极亮点的像素值,有效避免了处理后的清晰图像明亮区域和非明亮区域的界限过于明显与选取的大气光值过大的问题.通过二值图像分割法将平滑图像分割出明亮区域IFL和非明亮区域IFD,以两区域前0.1%像素点的平均值作为相应大气光值,公式为
其中:AL为明亮区域的大气光值;AD为非明亮区域的大气光值;mean()函数为均值函数;max0.1%()函数为取图中前0.1%像素点的函数.
图3是平滑图像分割及明亮区域对比图.其中,图3(A)为原始有雾图像,图3(B)为平滑图像,通过对比可以看出,平滑后的图像极亮点的大小被降低,但其相对梯度保持不变;图3(C)为平滑图像的二值分割图像,虽然由于平滑舍去了部分天空区域,但所选取的明亮区域都来自于天空,避免了非天空区域明亮区域的干扰;图3(D)和图3(E)分别为平滑图像的非明亮区域和明亮区域,两幅图进一步验证了选取天空区域的准确性;图3(E)和图3(F)分别为平滑图像和原始有雾图像的明亮区域,通过对比可以发现,图3(E)将图3(F)中的汽车和地面等非天空区域的明亮区域过滤,保留的部分全部为天空区域,避免了干扰,进一步证明了引导滤波的必要性.
(A)原始有雾图像;(B)平滑图像;(C)平滑图像的二值图像;(D)平滑图像的非明亮区域;(E)平滑图像的明亮区域;(F)原始有雾图像的明亮区域
2.2 图像透射率选取与图像修复
暗通道先验理论[13]在明亮区域存在弊端,即估计的透射率不够准确,易出现光晕现象.本文算法针对此问题,同时也为避免算法在明亮区域与非明亮区域出现色差问题,将明亮区域的大气光值AL与非明亮区域的大气光值AD做平均值,记为AM,通过AM估计全局透射率T(x),公式为
其中:AM为均值大气光值;AL和AD分别为明亮区域和非明亮区域的大气光值;mean()函数为均值函数;x,y为像素点;i,j为相应的横纵坐标值;C为三个通道中的任意一个相应的通道值;Ω为以x像素为中心的过滤窗口.
在得到明亮区域大气光值AL、非明亮区域大气光值AD与全局透射率T(x)后,将原始有雾图像以二值图像分割法分为明亮区域与非明亮区域,用AD和T(x)修复原始有雾图像的非明亮区域.为避免天空处出现光晕现象,引入容差值K[15]进行部分雾气的保留,优化明亮区域的T(x),避免光晕现象产生.
由于蒋建国等[15]依靠容差值K在算法中判断原始有雾图像的明亮区域,当图像改变时,需要对容差值手动重新选取,加大了算法复杂度.而本文中通过二值分割法判断原始有雾图像的明亮区域,容差值仅起到优化透射率的作用,算法不再依靠容差值寻找明亮区域,所以无需随着清晰图像的改变做出改变,取定值0.5即可,不仅保证图像质量进一步提升,且减少了算法负责度.得到优化后的透射率T(x)后与AL对原始有雾图像明亮区域进行修复处理,公式为
其中:i,j为图像的横纵坐标;JR为修复图像;I为原始有雾图像;IL,ID分别代表原始有雾图像的明亮区域和非明亮区域;AL为明亮区域的大气光值;AD为非明亮区域的大气光值;T(i,j)为坐标为(i,j)处的透射率;K为容差值.
图4为原始有雾图像的分割图及修复图像.图4(A)为原始有雾图像,图4(B)和图4(C)分别为原始有雾图像的非明亮区域ID与明亮区域IL,通过对比可以看出,二值分割能够很好地进行明亮区域的划分,图4(D)是修复后的图像JR、通过与图4(A)进行对比,可以看到,原始有雾图像中的雾被有效去除,右侧的枫树,地面的植被和道路等区域的颜色还原度较高,清晰度良好.
(A)原始有雾图像;(B)原始有雾图像非明亮区域;(C)原始有雾图像明亮图像;(D)修复图像
2.3 YUV颜色通道优化图像亮度
在YUV颜色空间中,Y代表图像的明亮度,即图像的灰度图像,U,V代表图像的颜色色度[18].
图5为YUV颜色通道优化图像亮度对比图,图5(A)为原始有雾图像去雾后的效果,可以看出,图像整体偏亮,如图像下方红框中的道路,整体偏白,将图5(A)在YUV颜色通道中调节亮度后的效果如图5(B)所示,通过对比可以看出,图像亮度降低,红框内的马路更加自然.由于在后期的加权融合过程中,原始有雾图像的引入将大幅提升图像整体的亮度,因此有针对性的降低参与融合图像的亮度是十分必要的.
(A)修复图像;(B)YUV通道优化亮度
2.4 图像加权融合
加权融合的公式为D=λB+C.其中:B为原始有雾图像;C为清晰图像;D为融合图像;λ为融合系数.本文算法中,既要考虑保留原始有雾图像的细节,又要考虑原始有雾图像存在雾的影响,因此,λ的取值小于1.图6为图像融合效果图.图6(A)为YUV颜色通道优化后的清晰图像,可以看出在天空与树的连接处有着明显的轮廓,将图6(A)与原始有雾图像融合后的效果显示在图6(B)中,轮廓边缘被淡化,图像整体更加自然,本文融合系数λ为0.2.
(A)YUV通道优化亮度;(B)融合图像后效果
3 实验与结果分析
本文实验在64位操作系统的普通PC机上进行,实验环境为:系统内存为8 GB、处理器为Intel(R) Core(TM) i7-6700 CPU @ 3.40 GHz 3.40 GHz,算法运行的软件为Matlab2016.
为验证本文算法的优势,本文算法与文献[10,16-18]从主观视觉的效果和客观参数评价两方面进行比较,实验中选取的图像主要来源于网络.主观视觉的效果对比为图7—9所示.
(A)原始有雾图像;(B)文献[13]图像;(C)文献[19]图像;(D)文献[20]图像;(E)文献[21]图像;(F)本文算法图像
(A)原始有雾图像;(B)文献[13]图像;(C)文献[19]图像;(D)文献[20]图像;(E)文献[21]图像;(F)本文算法图像
(A)原始有雾图像;(B)文献[13]图像;(C)文献[19]图像;(D)文献[20]图像;(E)文献[21]图像;(F)本文算法图像
由图7可见,文献[13]算法获得的图像色彩过深,且图像亮度过暗,在天空右侧树枝处出现了较明显的光晕现象;文献[19]算法增强后的图像中,马路、石阶上被引入大量噪声,图像整体被过度增强;文献[20]算法增强后的图像中,树枝的颜色饱和度偏大,树枝显得有些突兀;文献[21]算法增强后的图像,屏幕左侧近端的树枝部分被过度增强,已出现图像部分失真的现象;本文算法所处理的图像,整体亮度相比于其他算法表现良好,色彩恢复度较理想,图像左右两侧的绿色草丛与黄色地表,对比明显,图像右侧的枫树颜色恢复程度远优于其他算法,汽车处的对比度较好.
由图8可见,文献[13]算法增强后的图像整体颜色较深、亮度偏暗,图像右上角的天空云彩部分出现了明显的颜色失真现象;文献[19]算法增强后的图像,中间山体部分的部分区域颜色发白,引入噪声过多,图像效果增强过度;文献[20]算法获得的图像整体亮度表现不佳,天空右侧区域的云彩出现光晕现象;文献[21]算法增强后的图像整体颜色偏红,右边的房子变成了深蓝色,山体中间区域变成了红色,颜色失真明显,人形处和其附近的茅屋、山体颜色过度饱和;本文算法获得的图像天空色彩鲜艳,山体部分、茅屋和右侧房屋颜色自然,图像亮度适中,图像细节部分处保存良好.
由图9可见,文献[13]算法增强后的图像,天空出现明显光晕现象,图像整体亮度过低,景深过大,色彩饱和度过高,山体部分的细节已无法分辩,远处雪山部分的夕阳被严重放大,影响了雪山原本的颜色;文献[19]算法增强后的图像,近处的山峰部分被引入噪声,使山峰部分色彩发白,较远处的山峰与近处的山峰交界处去雾不彻底,边界突兀;文献[20]算法增强后的图像也过度放大了远处雪山上的夕阳,图像整体色调不和谐;文献[21]算法增强后的图像,图像整体偏暗,近处的山峰处色彩饱和度被过度增强,影响了视觉效果.本文算法增强后的图像如图9(F)所示,从图中可以观察到,图像色彩自然,远处山峰与天空,远处山峰与近处山峰的边界处清晰自然,在天空处保留了原始有雾图像的颜色,效果更接近于原始有雾图像,去雾后的图像效果更佳.
本文主要通过峰值信噪比(Peak Signal-To-Noise Ratio,PSNR)、结构相似度(Structural Similarity,SSIM)、像素平均值(Average,AVE)及通用质量指标(Universal Quality Index,UQI)四个参数进行评估.PSNR表示图像的失真程度,PSNR的值越大,说明图像的失真程度越小;SSIM根据亮度、对比度和图像结构三方面计算相似程度,其值越大,说明图像的相似程度越高;AVE代表图像像素值的均值,其值越大,说明图像的亮度越好;UQI根据图像综合相关性损失、亮度失真和对比失真度设计出的客观参数,其值越高,说明图像综合素质越高.
图7—9的客观评价参数结果列于表1—3.
表1 图7的客观评价参数
表2 图8的客观评价参数
表3 图9的客观评价参数
4 结语
空气中的雾通常会减弱拍摄图像的对比度与色彩饱和度,使人很难清晰分辩图像中的目标.大多的算法往往存在着图像亮度表现不佳、景深过大及天空处存在光晕等问题.本文算法一是利用引导滤波平滑图像,再用二值图分割法分割平滑图像,选取大气光值,其中引导滤波解决了图像亮点干扰、因二值图分割法所产生的区域边缘对比度过大等问题,二值图分割法则选取了更为准确的区域大气光值;二是为使图像的透射率更加贴近图像整体,以两个区域的大气光值的平均值估计图像透射率,所估计的透射率更适合全局图像;三是通过二值图分割法对原始有雾图像分割,以定值容差K对明亮区域粗略透射率进行优化,进行明亮区域和非明亮区域的去雾修复;四是通过YUV和加权融合算法做最后的优化.本文算法获取的清晰图像,就主观观察,颜色鲜艳,图像亮度良好,且避免了光晕的出现;就客观参数来看,算法比其他算法的参数略高,图像质量高于其他算法,体现出了本文算法的可行性与有效性.