对于暗通道先验不适合天空区域,导致透射率偏小使复原的无雾图像色彩变暗问题。提出对天空区域精准割据,按不同的区域分别估计大气光强度去雾处理。改进了阈值分割方法使区分天空域与非天空域更加准确。将分割后产生的白边用融合方法处理,减少了分界处白边效应,使得图片去雾后更加自然。试验结果表明,分割速度较快,能够达到良好的去雾效果且对于天空区域没有明显的色块,去雾后图像更加自然清晰。 For the dark channel, a priori is not suitable for the sky area, resulting in a small transmittance and darkening the color of the restored fog-free image. Based on the segmentation of the sky re-gion, it is proposed to separately estimate the atmospheric intensity defogging process according to different regions. Improved threshold segmentation method makes it more accurate to distinguish sky domain from non-sky domain. The white edge generated after segmentation is processed by the fusion method, which reduces the white edge effect at the boundary and makes the picture more natural after defogging. The experimental results show that the segmentation speed is fast, can achieve a good defogging effect and has no obvious color patches for the sky area, and the image is more natural and clear after defogging.
梁腾飞,张延华
沈阳化工大学信息工程学院,辽宁 沈阳
收稿日期:2020年2月2日;录用日期:2020年2月17日;发布日期:2020年2月24日
对于暗通道先验不适合天空区域,导致透射率偏小使复原的无雾图像色彩变暗问题。提出对天空区域精准割据,按不同的区域分别估计大气光强度去雾处理。改进了阈值分割方法使区分天空域与非天空域更加准确。将分割后产生的白边用融合方法处理,减少了分界处白边效应,使得图片去雾后更加自然。试验结果表明,分割速度较快,能够达到良好的去雾效果且对于天空区域没有明显的色块,去雾后图像更加自然清晰。
关键词 :去雾,暗原色先验,阈值分割优化,导向滤波
Copyright © 2020 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
计算机视觉系统在雾霾天气进行工作时,由于空气中的颗粒导致光线散射,颗粒对光线的吸收导致光线的衰减,大量信息丢失,使得系统不能正常的工作。这也使图像处理算法无法正常的处理,因此对雾天图像清晰化和减少设备对环境的依赖具有较高的研究意义。
对于雾天清晰化处理的图像去雾方法主要可分为以下两类:一类是对图像进行增强:包括全局、局部化增强。这两种增强都是基于直方图均衡化算法:将图中像素总个数少的像素进行灰度压缩,使图像中像素总个数多的灰度进行拉宽,再把这种非线性拉伸后的灰度级通过直方图均匀分布以达到去雾的效果 [
本文研究基于先验信息方法中He提出的暗原色先验原理进行改进。提出对天空区域进行割据的算法:基于最大类间方差法进行形态学膨胀的改进对天空区域和非天空区域准确分割,然后对不同区域采用不同的方法获取大气光强度A,通过导向滤波算法获取细化的透射率,最后采用融合方式将处理后的天空域与非天空域进行白边消除。
不同的物体对光的反射能力具有不同的特性,与光在不同的介质穿过时散射作用也会增加 [
E D ( d , λ ) = E 0 ( λ ) e − β ( λ ) d (式1-1)
其中d表示场景深度, E 0 表示光强度, E D ( d , λ ) 表示光衰减项, β ( λ ) 表示大气的散射系数。
散射公式为:
E A ( d , λ ) = E w ( λ ) ( 1 − e − β ( λ ) d ) (式1-2)
其中 E A ( d , λ ) 表示大气增强项, E w ( λ ) 表示原始大气光的总强度。
所以有雾环境下图像的物理模型为:
E ( d , λ ) = E D ( d , λ ) + E A ( d , λ ) (式1-5)
将式1-1,式1-2带入得:
E ( d , λ ) = E 0 ( λ ) e − β ( λ ) d + E w ( λ ) ( 1 − e − β ( λ ) d ) (式1-6)
令 I ( x ) = E ( d , λ ) , t ( x ) = e − β ( λ ) d , J ( x ) = E 0 ( λ ) , A = E w ( λ ) 式得
I ( x ) = J ( x ) t ( x ) + A ( 1 − t ( x ) ) (式1-7)
这就是在机器视觉以及计算机图像处理领域的常用方程 [
He等 [
J d a r k ( x ) = min y ∈ Ω ( x ) ( min c ∈ { r , g , b } ( J c ( y ) ) ) (式1-8)
其中, J c 表示表示彩色图像J的各个色彩(RGB)通道, Ω ( x ) 表示以x为中心的局部窗口邻域。且 J d a r k 接近于0。
这里假定大气光强度A已知,且在窗口邻域内的透射率 t ˜ ( x ) 为某一固定值。则公式1-8可以变形为:
I C ( x ) A C = t ˜ ( x ) J C ( x ) A C + 1 − t ˜ ( x ) (式1-9)
对式1-9最小化得:
min y ∈ Ω ( x ) ( min c ( I C ( y ) A C ) ) = t ˜ ( x ) min y ∈ Ω ( x ) ( min c ( J C ( y ) A C ) ) + 1 − t ˜ ( x ) (式1-10)
即:
t ˜ ( x ) = 1 − min y ∈ Ω ( x ) ( min c ( I C ( y ) A C ) ) 1 − min y ∈ Ω ( x ) ( min c ( J C ( y ) A C ) ) (式1-11)
由于 J d a r k 接近于0即
J d a r k ( x ) = min y ∈ Ω ( x ) ( min c ∈ { r , g , b } ( J c ( y ) ) ) = 0
所以式1-11得:
t ˜ ( x ) = 1 − w min y ∈ Ω ( x ) ( min c ( I C ( y ) A C ) ) (式1-12)
其中为保留图像深度感,有必要保留一定程度的雾,w系数为 0 < w < 1 ,一般值为0.95。
此时I、A和t都已知,即可求出J。公式为:
J ( x ) = I ( x ) − A t ˜ ( x ) + A (式1-13)
从式1-13看出当 t ˜ ( x ) 太小式,导致无雾图像J偏大所以 t ˜ ( x ) 将设置下限为 t 0 (程序中值取0.1)最终获取无雾图像公式为:
J ( x ) = I ( x ) − A max ( t ˜ ( x ) , t 0 ) + A 。 (式1-14)
采用He提出的导向滤波算法对粗透射率再次细化处理获取 [
导向滤波模型公式:
q i = ∑ j w i j ( I ) p j (式2-1)
其中p,q为输入图像与输出图像,i,j代表像素的坐标位置,I是改滤波的引导图, w i j 是滤波核。
假设该滤波输出与引导图像为线性变化即:
q k = a k I i + b k , ∀ i ∈ w k (式2-2)
其中 w k 为局部窗口邻域,k为像素中心。
( a k , b k ) 是一对线性系数,若输入输出图像的差异最低则满足:
E ( a k , b k ) = ∑ i ∈ w k ( ( a k I i + b k − p i ) 2 + ε a k 2 ) (式2-3)
其中 ε 是正则化参数,
{ a k = 1 | w | ∑ i ∈ w k I i p i − μ k p k ¯ σ k 2 + ε b k = p k ¯ − a k μ k
得到滤波结果:
{ q i = 1 | w | ∑ i ∈ w k a k I i + b k q i = a i ¯ I i + b i ¯ a i ¯ = 1 | w | ∑ i ∈ w k a k b i ¯ = 1 | w | ∑ i ∈ w k b k (式2-5)
该滤波核系数为:
W i j ( J g ) = 1 | w | 2 ∑ k : ( i , j ) ∈ w k ( 1 + ( J i g − μ k ) ( J j g − μ k ) σ k 2 + ε ) (式2-6)
其中 J g 是引导图, σ 2 为 J g 在 w k 窗口的方差, J g 在 w k 窗口的均值为 μ k , w k 窗口中的像素数目为 | w | 。
程序首先获取原估计透射率,将获取的原估计透射率作为引导图,利用导向滤波在此细化获取更加准确的透射率,最后将小于 t 0 下限的用 t 0 = 0.1 代替。
这里基于图像的灰度直方图分类,将图像分为远景与背景,以类间的最大或类内的最小方差作为阈值的选取准则 [
假定某副图像的灰度级为( 1 , 2 , 3 , ⋯ , L ),处在灰度级为i的像素点总个数为 n i ,像素点的总个数为N,
故 N = n 1 + n 2 + n 3 + ⋯ + n L 。同时灰度级为i在图中出现的概率
值k对图像进行分类则有:
这时两类灰度出现的概率为:
两类的灰度平均值为:
其中
两类的灰度方差:
令
选取最优阈值k使得三个判定函数最大。由于
上面可以看出
用类间方差作为分类性能的高低函数为:
得出最佳阈值
计算出最优分割阈值后对图像进行分割。避免交界处噪声对分割的影响,采用多次形态学膨胀操作,获得二值图像,从中提取出天空区域和非天空区域来对单一分割进行改进。具体方法为:
循环将上面分割的结果用最大值替代卷积求和,用加法替代卷积的乘积即 [
其中,
然后再将膨胀后的图像与有雾图像叠加运算,再将此时的天空区域按照式2-22判断:
程序中将满足条件的天空取0,非天空区域的置1,最后得到准确分割后的天空区域与非天空区域。
根据He提出的算法,对暗通道图的亮度值进行排序,取最大亮度值得前0.1%的像素,将这些像素在有雾的原始图像中的最大值作为A。避免A值受到白色亮点影响A的计算结果,采用以下算法:
1. 非天空区域:统计非天空区域最大亮度的1%像素的平均值为大气光强度A的值 [
2. 天空区域:将有雾图像按上述分割后天空区域均匀分成四块区域,计算平均值和标准值的最大差值与设定的阈值比较,大于阈值的继续均分成四块计算平均值和标准值的差值,当小于设定阈值时,计算选定区域的平均亮度值作为大气光强度的A值。
为了消除拼接后的分界处的白边效应公式为:
其中
试验运行环境为win10家庭版,matlab版本为2014b,图像为选取带雾图片。
最大类间方差法进行单一阈值分割与阈值分割进行形态膨胀改进后的阈值分割图像对比,分割处理后的天空区域与非天空区域结果为图1。从图1的试验结果看出本文改进的阈值分割能够很好的分割出天空域与非天空域,验证了本文对阈值分割算法的改进。基于导向滤波的改进获取透射率结果为图2。从图2看出基于导向滤波改进后来获取的透射率更加细化,更符合实际。最后原图像与去雾后的图像对比结果为图3,试验图3结果表明还原后的图像在雾浓度较小时能够达到良好的去雾效果且对于天空区域没有明显的色块,去雾后图像更加自然清晰。
图1. 单一阈值分割与改进后阈值分割
图2. 原透射率与改进后的透射率
图3. 原图像与去雾后的图像
通过对暗原色先验不适合用于天空域的去雾处理研究与分析,提出对天空区域进行割据的去雾算法:以最大类间方差法算法进行阈值分割图像,然后对其进行形态学膨胀处理,改进膨胀算法,能够更有效的分割出天空区域。通过对研究导向滤波,获取更加细致的透射率并提出给其设置下限使得复原的图像误差更低。但试验结果中选取图像中雾的浓度较大时,复原的图像出现日晕现象,复原图像效果不理想,这也是进一步研究的内容。
梁腾飞,张延华. 基于天空区域分割的单幅图像去雾方法Single Image Dehazing Method Based on Sky Region Segmentation[J]. 计算机科学与应用, 2020, 10(02): 325-333. https://doi.org/10.12677/CSA.2020.102033