结合天空区域分割和暗通道先验的去雾算法
2022-08-23何金玉罗荣鑫俞文静
尹 静,何金玉,罗荣鑫,俞文静
(广州软件学院,广东 广州 510990)
0 引 言
雾霾[1]对人们的交通出行和身体健康都造成了十分严重的影响。雾霾不仅会降低物体的能见度,使采集到的户外图像严重降质,还会对人们的身体健康造成很大的危害,导致疾病传播的风险增高。图像去雾也一直是计算机视觉的热点问题,因此,探索一种有效的去雾方法具有重要的研究价值。
图像去雾算法主要分为图像增强和图像复原两类[2-3],经过国内外学者多年的研究,出现了众多有效的图像去雾算法。例如,Jobson等[4]在SSR算法的基础上提出了MSR(多尺度Retinex)算法,该算法可以实现图像颜色恒常性,增强图像的色彩;He等[5]提出了一种简单且有效的去除单幅雾霾图像的方法,即暗通道先验算法,该算法使用大气散射模型和软抠图插值方法复原图像,但在处理天空区域时,白边效应十分明显;Xu等[6]在对天空区域进行分割的基础上,针对不同区域分别估算大气光值和透射图,最后利用优化后的合成全局图生成去雾图像。
针对暗通道先验算法去除天空区域雾霾效果不理想、大气误提取以及传统阈值分割需要多次观测获取分割阈值的问题,提出了一种结合透射率图的单阈值分割和暗通道先验的方法,将输入的雾霾图像分割为天空区域和非天空区域,从天空区域提取大气光值,对非天空区域使用暗通道先验算法处理,最后合并天空区域图像和非天空区域图像,获得清晰的复原图像。
1 研究基础
1.1 图像阈值分割
图像分割就是把图像中具有独特性质的区域区分开并提取出目标区域的技术[7],该文采用单阈值分割算法对输入雾霾图像的天空区域和非天空区域进行分割。
阈值分割法[8]是一种基于区域的图像分割方法,其结果很大程度上取决于阈值的选择,其原理是:通过设定不同的特征阈值,把图像像素点分为若干类。设(x,y)为二维数字图像的平面坐标,图像灰度级的取值范围是G={0,1,…,L-1},0表示最暗的像素点,L-1表示最亮的像素点,位于坐标点(x,y)上的像素点的灰度值为f(x,y)。设t∈G为分割阈值,单阈值分割方法就是确定一个分割阈值t,若取b0=0(黑),b1=1(白),则表示图像的二值图,于是图像函数g(。,。)在阈值t上的分割结果表示为[7]:
(1)
阈值分割的计算简单、高效且实用,在图像的信息处理、挖掘和视觉效果改善应用广泛,具有很大的研究价值和研究意义。
1.2 暗通道先验算法理论
暗通道先验[5]基于大量户外无雾图像的观察提出:在大多数非天空局部区域中,至少有一个颜色通道的像素值很低,甚至接近于0。其数学表达式如下:
(2)
其中,Jc表示颜色通道,Ω(x)表示一个以x为中心、大小为15×15的局部区域子块,Jdark表示图像J的暗通道,无雾图像非天空区域的暗通道趋于0。
第一步:估计透射率。
在处理原图像时应保留少量雾霾,可引入如下数学表达式达到图像自然的效果:
(3)
第二步:软抠图。
采用软抠图算法[9]来改善传输。
(4)
其中,L是Levin[9]提出的拉普拉斯矩阵,λ是正则化参数。第一项是平滑项,第二项是数据项。
第三步:恢复场景辐射亮度。
大气散射模型的数学模型如下[10]:
I(x)=J(x)t(x)+A(1-t(x))
(5)
利用透射率图,根据方程式(5)可以恢复场景辐射。但是,当透射率t(x)接近于0时,直接衰减项J(x)t(x)可能非常接近于0,直接恢复的场景辐射易受噪声影响。因此,将透射率t(x)限制在下限t0,在非常密集的雾霾区域保留少量雾霾。最终场景辐射J(x)通过以下方程式恢复:
(6)
t0通常取值为0.1。因为场景辐射亮度通常不如大气光明亮,所以消除雾霾的图像看起来很暗。因此,增加J(x)的曝光度来显示。
第四步:选择暗通道中最亮的10%像素估计大气光值。
2 算法思路及设计
2.1 输入雾霾图像的处理
暗通道先验算法和传统阈值分割在处理天空区域时存在以下问题:
(1)暗通道先验算法对天空区域并不适用。
(2)暗通道先验算法会错误地从非天空区域中选取大气光值。
(3)传统阈值分割算法在分割不同图像的天空区域时需要人为变换算法以及通过大量的手动调试和对比才能确定阈值。
针对以上问题,该文提出一种分割天空区域的方法,利用透射率图中非天空域的透射率值大于天空透射率值的特点进行分割。为了避免非天空区域出现误分割的现象,将透射率图进行初次分割,一部分为包含天空和天空与非天空交界处图像,使用改进的MSR算法降低透射率值后,再进行二次分割,另一部分为非天空图像,将其透射率值均设为255;最后,合并这两部分图像形成二值图,并据此二值图分割,从天空域提取大气光值用于非天空域进行去雾,最终合并输出复原图像。算法流程设计如图1所示。
图1 算法流程设计
2.2 基于透射率图的雾霾图像分割
2.2.1 透射率图的特点分析
暗通道先验算法在处理天空区域图像时不理想,根据公式计算出的天空透射率偏小,其平均透射率趋近于0,而非天空区域的平均透射率值大于0.5,经引导滤波细化后的透射率图呈现以下特点:
(1)透射率图的直方图显示,天空区域的像素值主要集中在0~50这一低阈值范围内,并在视觉上呈现较为黑暗[11],如图2所示。
图2 透射率图及其直方图
(2)在天空区域和非天空区域的交界处,选取小部分区域进行观察。竖直和水平方向上看:从天空区域到非天空区域,像素的变化从低到高,天空区域和非天空区域交界处的像素值差值比较明显;并且在天空区域中远离交界处的像素值都在0~10这个范围内,而靠近交界处的像素值虽然大于10,但与非天空区域的像素值依然存在明显的差值,如图3所示。
图3 天空区域和非天空区域交界处像素值局部图
2.2.2 使用改进的MSR算法处理透射率图
受文献[12-13]启发,该文利用透射率图中天空透射率远低于非天空透射率的特点,采用Retinex算法中将图像转换为对数域的思想处理透射率图[13],即将透射率值变换到对数域的负数区域后乘以h系数进行缩小,最后再反变换到实数域中进行归一化,使得天空区域透射率值在归一化过程中,由于天空区域的透射率值过小而被近似计算为0,从而达到将天空区域的透射率值降低至约为0的目的。其计算公式如下:
(7)
其中,T(x,y)为经引导滤波处理的透射率图,其像素值的范围是0~255,h为该公式用于缩小透射率的系数,取值为3。若T(x,y)=0则直接将像素值置为0,若T(x,y)≠0则转换到对数域中乘以系数h进行缩小。
经改进MSR算法处理后透射率图呈现以下特点:
经改进MSR算法处理后的透射率图,整幅图像的像素值会降低,这样可以使天空区域0~10的像素值降低到趋近于0或等于0,而在天空区域和非天空区域的交界处像素值都大于0,如图4所示。
图4 改进的MSR算法处理后天空区域和非天空区域交界处像素值局部图
依据透射率图和经改进MSR算法处理的透射率图的特点,该文设计出一种新的天空区域分割算法,具体步骤如下:
(1)输入雾霾图像,将其转换为透射率图。
(2)将透射率图分割为上下两部分,分割的原理为:天空区域的上部分图像的像素值均小于50,非天空区域的下部分像素值的均值大于50。
(3)对天空区域上部分使用改进的MSR算法处理,选取阈值为0进行分割。
(4)将非天空区域下部分的像素值全部设置为255。
(5)整合天空区域上部分图像和非天空区域下部分图像,形成二值图,如图5所示。
(6)天空区域和非天空区域的分割完成。
图5 分割结果
2.3 大气光值A的选取
为避免从暗通道错误地选取大气光值[14],可以从分割后的天空区域图像提取大气光值,具体步骤如下:
随后,“嘉宾报告”环节主题论坛正式拉开,论坛由MM新自动化与驱动杂志执行主编李峥主持,各位行业专家围绕改革开放40年中国制造的发展与展望做了精彩的主旨演讲。
(1)统计天空区域各个灰度级对应的像素数目,并求其总和为S。
(2)计算灰度级为0的像素数目,并计算其占S的百分比,若在0%~1%内,则在灰度级为0的像素数目的基础上继续累加灰度级为1的像素数目,并继续计算其占S的百分比,以此类推,直到其占S的百分比在1%以上,最终得到满足条件的计算比例kj的集合,从该集合中取最小灰度级j作为大气光值。
此计算可以较为准确地获得大气光值,以下为大气光值A的计算公式[15]:
(8)
其中,kj表示灰度级为j的计算比例,xi表示灰度级为i的像素数目,xt表示灰度级为t的像素数目。
3 实验结果与分析
对大量户外雾霾图像进行实验验证,这里随机展示4组由不同去雾算法处理得到的结果,如图6所示。
图6 各方法处理对比图
图(a)为原始雾霾图像;图(b)为采用直方图均衡化算法得到的结果;图(c)为经引导滤波处理后的暗通道先验去雾算法得到的结果;图(d)为采用文中算法得到的结果。
为了进一步验证该算法的复原效果,采用均方误差(MSE)、峰值信噪比(PSNR)和结构相似性(SSIM)、运行时间这四项评价性能指标对图中的4组图像进行客观评价,数据结果见表1。
表1 各方法不同性能指标比较
由表1可以得出,文中算法在均方误差、峰值信噪比、结构相似性这三个方面,大体优于传统暗通道先验算法。根据实验测试数据,可以得出以下结论:
(1)以MSE作为评测指标,图(1)、图(3)经过文中算法处理后,其指标值均低于经直方图均衡化算法处理的图像,文中算法处理的4幅图像的指标值均低于经暗通道先验算法处理的图像,这表明文中算法预测模型描述实验数据具有更好的精确度。
(2)从PNSR的测试数据来看,文中算法复原的图(1)优于直方图均衡化算法,而所复原的图(2)、图(3)、图(4)要低于直方图均衡化算法,不过文中算法与暗通道先验算法相比,其PNSR值均大于暗通道先验算法,即文中算法的PNSR基本处于暗通道先验和直方图均衡化算法之间,说明文中算法有效减少了图像失真的情况,改善了传统暗通道先验算法的不足。
(3)分析测得的SSIM的数据,图(1)、图(2)、图(3)均优于直方图均衡化算法,而图(4)略低于直方图均衡化算法,4幅图像的SSIM指标值均高于传统的暗通道先验算法。
(4)从运行时间的结果来看,文中算法运行时间最长,为经引导滤波细化后的暗通道先验算法的3倍,直方图均衡化算法的15倍。
实验结果和测试数据均证实了文中算法的可行性与有效性,尤其在处理轻度和中度雾霾时,具有很强的适用性。通过分析实验数据,相较于传统的暗通道先验算法,文中算法在去雾性能和效果上得到了提升;从视觉上看,文中算法不但避免了直方图均衡化算法处理雾霾图像后其对比度过高或过低导致图像不自然的缺点,而且解决了传统的暗通道先验算法在处理天空区域不理想以及大气光值误提取的问题,但从运行时间上看,文中算法的运行速度比前两种传统的去雾算法慢,因此,降低文中算法的时间复杂度,将是下一步研究的重点。
4 结束语
结合阈值分割法和暗通道先验算法,针对暗通道先验算法在处理带有天空区域的雾霾图像不理想的问题,提出并设计了一种结合天空区域分割和暗通道先验的方法。实验结果表明:
(1)该算法有效解决了暗通道先验算法处理天空区域效果不佳的问题,在均方误差、峰值信噪比、结构相似性等方面均优于传统的暗通道先验算法。
(2)结合阈值分割法、多尺度Retinex算法(MSR)、暗通道先验算法对输入的雾霾图像进行处理,其中只对图像的上部分使用改进的MSR算法,尽可能地减少改进的MSR算法对非天空区域的影响,减少图像的误分割。
(3)传统的阈值分割法需要多次观察和测试以确定分割阈值,该文使用改进的MSR算法对透射率图做处理,使透射率图呈现天空区域等于0或趋近于0,非天空区域大于0的特点,将分割阈值限制为0,可以使用同样的阈值进行分割,增大了阈值分割的效率。
(4)对于天空区域和非天空区域交界处,由于存在远景和近景,在改进的MSR算法处理后的透射率图中,远景的像素值先变为0,这样就会产生误分割。
相较于传统的去雾算法,该算法无论是复原图像的清晰度还是各项评价性能指标均取得不错的结果,但是也存在很多的不足,对于分割出来的天空区域图像仍需进一步研究,且该算法的时间复杂度相对较大,算法的实时性有待提高。