图像去雾算法研究综述
2021-05-29蒲亨飞黄治勇
蒲亨飞 黄治勇
摘 要:图像去雾技术的目的是为了去掉图像中雾的影响,从而获得高质量的图像。本文主要从图像增强、图像复原和深度学习的角度归纳总结了图像去雾方法的研究状况,对暗通道先验等经典算法以及新活跃在去雾领域的几种深度学习去雾算法做了进一步的分析,并对各类算法的性能进行了总结,最后针对各类图像去雾方法指出了存在的问题及未来的展望。
关键词:图像去雾;暗通道先验;神经网络;大气散射模型;透射率
中图分类号:TP391.4 文献标识码:A
An Overview of Research on Image Dehazing Algorithms
PU Hengfei, HUANG Zhiyong
(College of Big Data and Information Engineering, Guizhou University, Guiyang 550025, China)
18198542837@163.com; 1392599321@qq.com
Abstract: Image dehazing technology aims to remove haze in image, so as to obtain high-quality images. This article summarizes the research status of image dehazing methods from perspectives of image enhancement, image restoration and deep learning. It makes further analysis of classic algorithms such as dark channel priors and several deep learning dehazing algorithms that are newly active in the field of dehazing. It also analyzes performance of each algorithm, and finally points out existing problems and future prospects for various image dehazing methods.
Keywords: image dehazing; dark channel prior; neural network; atmospheric scattering model; transmittance
1 引言(Introduction)
目前对于雾天图像的处理方法[1]主要有图像增强和图像复原两种方法。图像增强的方法是尽量去除图像噪声,提高图像对比度,改善图像的视觉效果,但对于部分信息可能会造成一定损失。图像复原的方法主要是基于大气散射模型,进行一系列的去雾处理。这种方法更有针对性,达到的效果也自然,信息损失小,但模型中各参数的估计是研究的难点。此外,近年来,卷积神经网络(Convolutional Neural Networks, CNN)在许多方面的应用都取得了不错的效果,基于CNN的相关工作也逐渐被用在图像去雾领域。本文在现有的计算机视觉和图像处理研究成果上,对图像相关去雾技术展开详细介绍,并指出去雾技术的未来发展趋势。
2 基于图像增强的去雾算法(Dehazing algorithm based on image enhancement)
2.1 直方图均衡化
直方图均衡化的主要思路是让图像的直方图分布更加均匀,进而提升图像的对比度,现阶段主要有局部均衡化和全局均衡化两种方法。全局均衡化是对图像整体做均衡化处理,放大图像信息量多的灰度区域,提升图像的视觉效果。该方法比较简单,但局部细节效果不明显,适用于简单场景的雾天图像。局部均衡化是将均衡化算法分散到图像的局部区域,然后通过局部的运算获得所需的增强效果,适用在深度信息变化复杂而对比度不高的雾天的图像处理,但该算法会加大噪声对图像的影响。局部均衡化算法有自适应均衡化和限制对比度自适应均衡化两种。
2.2 Retinex理论
Retinex理论的思路同样是图像增强,该理论强调色彩的恒常性,对光照不均匀引起的对比度低的彩色图像增强效果不错。Retinex算法有单尺度Retinex算法、多尺度Retinex算法以及色彩恢复多尺度Retinex算法。单尺度Retinex算法通過估计环境亮度获得反射图像,无须校正场景,实现简单,但易出现光晕现象。多尺度Retinex算法能实现动态压缩和颜色不变性,视觉效果更好,但该算法也易产生光晕。色彩恢复多尺度Retinex算法补偿了前两种算法损失的部分色彩,但该算法参数设定复杂,计算量大,适用性不高。
2.3 同态滤波
同态滤波算法[2]结合了灰度变换和频率滤波,主要通过对亮度范围进行压缩以及增强对比度的方式来进行图像处理。相关研究显示,在滤波处理之前使用非线性变换易产生光晕效应。此外,小波变换去雾算法也常被用于图像增强。
3 基于图像复原的去雾算法(Dehazing algorithm based on image restoration)
3.1 大气散射模型
在图像去雾领域,由于雾霾等天气对图像去雾产生了不利的影响,McCartney提出了雾天大气散射模型,如图1所示。
此模型包括衰减模型和环境光模型,表达式为:
(1)
其中,是全局大气光强,是有雾图像,是待恢复无雾图像,为透射率;又是透射率函数,表示大气散射系数,代表景物深度。对于晴朗无雾天气,接近于0,可以得到=;而在有雾情况下,>0,则不可忽略。待恢复图像表达式为:
(2)
因此,图像去雾过程就是用已知的求解未知的过程。但要求解,还需要根据求未知的透射率和大气光。
3.2 估计大气光值
大气光值的估计有以下几种常用方法:第一种是暗通道估计法。从暗原色通道中选取最亮的区域部分像素点的最大灰度值当作大气光。该方法鲁棒性好,但一般获得的大气光值较高且耗时长。第二种是分块递归思想估计法。将有雾图像均匀分为几个区域,分别求取各区域的平均亮度值,选取亮度值最大的区域,当分解区域达到设定值大小时,将该区域中亮度最大的点当作大气光。第三种是分段思量估计法。大部分的有雾图像,天空区域一般分配在图像的上1/3区域,因此将有雾图像水平分为三个区域,在最上的1/3区域使用暗通道估计算法估计大气光。此外,还有一些快速估计大气光的方法,此类方法估算简单但精确率不高。
3.3 粗略透射率估计
3.3.1 暗通道去雾估计算法
He[3]等的暗原色先验理论表明,对有雾图像进行局部最小值滤波就能得到暗原色图像,任意一幅无雾图像的暗通道可以表示为:
(3)
其中,是图像RGB通道的亮度值;是RGB的颜色通道;是有雾图像的暗通道;是以像素点为中心的区域,区域大小一般取15×15的窗口。对于室外无雾图像非天空区域,暗通道图像的像素趋近于0,因此对公式(3)两边做局部最小值滤波再变形得到:
(4)
其中,是引入的雾化常量参数,0<≤1,目的是为了保留图像中远处的少量雾气,一般取=0.95。
3.3.2 迭代思想估计算法
由公式(2)可知,是的直线方程,当在0到255变化时,会产生失真。因此使用公式(5)来衡量失真度,使用均方误差公式(6)来衡量对比度增强。有雾图像的暗通道可以表示为:
(5)
(6)
公式(6)中,代表平均值,代表像素点总数,要使-最小,需将有雾图像均匀分块,计算各自区域-的最小值,并把该值当作所有像素点的粗略透射率。
3.4 精确透射率估计
为获得精确透射率,需要对上述粗略透射率进行优化,常用几种优化方法如下:
Soft Matting算法,又称为软抠图算法,该算法表达式为:
(7)
其中,为前景,为后景,为合成系数。定义一个最小化代价函数,通过相关求解获得优化的透射率表达式为:
(8)
其中,为优化后的精确透射率,为拉普拉斯抠图矩阵,为调整系数,为单位矩阵。通过将设置为一个较小值(一般设置为10-4),通过对产生一定的约束。软抠图算法一般能得到较为精确的透射率,但算法复杂度高,不便于实际使用。
双边滤波算法。该算法属于非线性滤波方法,输出的像素值由邻域中像素值加权决定[4],该算法既考虑了空域信息,又结合了灰度相似性,能达到去噪和保持边缘信息的效果。双边滤波器使用不同维度的高斯函数生成了两个模板,将这两个模板相乘得到双边滤波器的模板表达式为:
(9)
其中,为模板窗口的中心坐标,为模板窗口的其他系数的坐标,和分别为空域和阈值模板滤波半径。同模板中非中心像素点与中心点的距离成逆向增减关系,如果距离增大则减小,距离减小则增大。因此,的取值直接影响滤波效果。如果取值过小,特别是近似为1时,空间模板滤波就难以起作用;如果取值过大,计算量会急剧增加,算法复杂度也会急剧增加。与值域像素值间的差值同样存在逆向变化的关系,差值减小则增大,差值增大则减小。
导向滤波算法。该算法计算速度快,执行效率高,只需在滤波处理时导入一幅引导图像。假设输出图像与引导图像有如下约束关系:
(10)
其中,为滤波输出图像,是以像素为中心的局部窗口,与是引导图像在的线性不变函数。为了获得与最优解,采用最小二乘法[5]拟合线性关系,函数为:
(11)
引入平滑因子是为了防止值过大[6],通过线性回归求得:
(12)
其中,和分别表示导向图在的平均值和方差,是窗口中输入图像的均值。引导滤波算法相比软抠图算法在复杂度上有所降低,缩短了处理时间,但某种程度上降低了去雾效果。
3.5 后处理
经过上述步骤获得了大气光值及透射率,因此根据大气散射模型,可以得到去雾处理后的效果图。正常来说,此时的去雾图像相对偏暗,在此基础上可以进行后处理,比如利用伽马校正、自适应对比度增强等方式继续处理,以增强图像去雾的效果。
3.6 基于先验知识的去雾算法
TAN[7]假设局部区域的大气光值固定,通过最大化局部对比度方式处理有雾图像,搭建马尔可夫模型框架,构造代价函数,利用图分割的知识估算最佳大气光。该算法增强了图像的对比度,改善了图像的可视度,但去雾后色彩效果太过饱和,且在部分交界区域产生光晕效应。
FATTAL[8]假设局部区域的反射率为常向量,物体表面色度与介质传播具有局部统计不相关性,通过相关分析来估计常向量反射率。但相关成分变化不明显或颜色信息过少都会影响估计的准确性。
HE[3]等通过对大量的户外无雾图像的统计,发现无雾图像的大部分区域内总会有一些灰度很低的点,因此提出了暗通道先验算法。该算法先使用暗通道估计大气光强,并粗略估算出对应的透射率值,然后通过Soft Matting算法进一步优化透射率,最后利用霧天图像的光学模型恢复出图像,去雾效果明显,颜色自然。但该方法的时间复杂度较高,缺少实时性。
KRATZ[9]等通过最大后验概率对景物反射率和景物深度进行建模,该方法对图像的边缘处理有较好的效果,但色彩对比度太过饱和。
TAREL[10]等提出了一种快速去雾算法。该算法通过中值滤波的变形来估计耗散函数,但应用中值滤波估计法,不合适的参数设定易带来Halo效应。
WANG[11]等采用马尔科夫随机场混合多层色度先验的细节,提出了一种多尺度深度融合去雾算法,得到具有丰富细节信息的较高质量恢复图像,但该算法易包含噪声。
ZHU[12]等提出了一种基于色彩衰减先验的单幅图像快速去雾方法,通过对大量图像的近景、中景、远景进行统计分析,得出雾的浓度与图像亮度和饱和度之差有正比关系的结论。但此方法收集样本比较困难,且缺少理论依据。
综上,尽管基于图像复原的去雾方法取得了较大的进展,但简化的大气散射模型会导致透射率和大气光估计出现一定的误差,且先验信息不具有普遍适用性,易出现去雾不彻底和颜色失真等现象。
4 基于深度学习的去雾算法(Dehazing algorithm based on deep learning)
CNN在图像去雾领域的应用主要可以分为两类:间接端到端网络和直接端到端网络。其中间接端到端去雾网络大部分仍然以大气散射模型为基础,利用神经网络对模型中的参数进行估计;而直接端到端去雾网络则通过学习有雾图像到无雾图像之间的映射关系来恢复无雾图像,此过程又称为深度学习中的end to end。
CAI[13]等提出了一种名为DehazeNet的可训练的端到端系统来估计透射率。DehazeNet采用CNN深层架构,用于体现图像去雾中已建立的假设/先验。此外,该系统还提出了一种新的非线性(nonlinear)激活函数,也称为双边整流(BReLU)线性单元,它可以提高去雾图像质量。实验表明,该系统比现有方法性能更好。但大气光散射模型依赖于单一光源模型,而未考虑多光源的场景,且在景深区域的去雾效果有待提升。
REN[14]等基于CNN提出了一种多尺度深度神经网络结构来估计透射率,先用粗糙网络生成粗粒度的透射图,再用精细网络进一步得到更细致的图像。为了训练多尺度深度网络,该算法基于相关深度数据集,合成了一个由有雾图像和相应的透射率组成的数据集。实验表明,该算法在质量和速度上均有提升。采用此方法虽然不易受场景的约束,但是其网络模型中采用的最大池化等操作会造成细节丢失,且夜间雾天图像处理不好。
ZHANG[15]等基于CNN提出了一种基于去雾公式的新型端到端联合优化去雾网络,利用两个子网络估计出透射率和大气光值,然后基于生成对抗网络损失函数联合训练获得无雾图像。该网络包含金字塔密集连接透射率估计网络、大气光估计网络、去雾网络和联合鉴别器四个模块,其中,透射率估计网络包含边缘保持密集连接的编码器-解码器模块,用于透射率估计;联合鉴别器模块用于判断去雾图像和估计透射率的真假。
LI[16]等提出了一种用CNN构建的一体化除雾网络模型,该模型没有估算中间参数和大气光值,直接通过轻量级CNN输出无雾图像。实验结果证明此模型在PSNR、SSIM和主观视觉质量方面有了较大的提升。此外,这种一体化的端到端设计可以轻松地将该模型嵌入其他深度模型中去,以提高图像处理的任务性能。
CHEN[17]等提出了一种端到端门控上下文聚合网络来直接生成清晰的无雾图像。该网络利用平滑扩张技术,可消除网格化伪影(Grid Artifacts),并通过门控子网融合不同级别的特征。在该网络中输入有雾图像,通过编码器编码为特征图,通过聚合附近区域信息并融合不同级别的特征来增强图像。此外,利用平滑的扩张卷积和额外的门控子网将增强后的特征图解码回原始图像空间,以获取目标雾度残留物。该算法在PSNR和SSIM的指标上提升很大。
YANG[18]等提出了一种基于解耦的新型去雾网络,该网络利用解耦与重建的物理模型,将有雾图像解耦为隐含特征值,再根据隐含特征值还原图像。该算法还收集了大量天然有雾图像和户外无雾图像数据集,以评估图像去雾算法效果。
ENGIN[19]等提出了一种Cycle-Dehaze端到端网络,可以直接从有雾的输入图像生成无雾图像,不用估算模型参数。该网络使用不成对的方式训练网络,并与感知损失相结合来减小该架构的循环一致性损失。该算法通过在该网络中输入低分辨率图像,利用拉普拉斯金字塔来放大低分辨率图像。此算法提升了图像的视觉效果,并获得比CycleGAN架构更优的PSNR和SSIM值。
MAI[20]等通过BP神经网络挖掘图像颜色和场景深度的关系,再由景深得到场景的传播图。LI[21]等提出了一种基于残差的深度卷积神经网络去雾算法,提高了去雾效率。针对深度学习算法去雾后仍有残雾,陈永[22]等提出了一种双域分解的多尺度深度学习去雾算法,该方法设计了含有一个高频子雾网络与低频子雾网络的多尺度深度学习网络,得到良好的去雾效果,但算法复杂度较高。
综上,间接端到端去雾网络在细节效果方面有了一些提升,但大多以大气散射模型为基础,估计的透射率一般包含较多的细节信息。此外,大多数方法将大气光设置为固定常量值,去雾后的图像易出现颜色失真。而直接端到端方法在一定程度上提高了图像复原质量,但在端到端学习过程中易出现过拟合情况,容易忽略图像原有的风格特征,导致局部区域去雾不彻底或过度去雾,复原出的图像出现颜色失真。
5 结论(Conclusion)
本文对图像去雾技术进行了综述性介绍,其中,基于图像增强的方法实现简单,视觉效果明显,已广泛地应用到各个领域中。而基于图像复原和深度学习的去雾方法针对性更强,去雾也更自然。尽管去雾算法得到了迅速发展,也取得了许多研究成果,但目前仍存在許多难点需要克服,同时理论研究成果与实际应用还有一定的差距,存在的问题归纳如下:
第一,光路傳播图的自动求取问题。雾天给光线的传播造成了大量的散射效应,则图像去雾应当从雾天对成像的影响角度切入,把求取反映景深信息的光路传播图放在关键的一环,通过综合考虑基于暗原色原理与基于大气散射模型的各种算法的优缺点,研究获取符合人类视觉感知机理的光路传播图。
第二,去雾算法的自适应、实时性、复杂度高等问题。户外应用的场景,环境复杂多变,雾的浓淡难以用肉眼判断,现有的去雾算法,尤其是单幅图像去雾质量较好的算法,都普遍存在复杂度高、实时性低的问题。例如,要对视频图像去雾,若摄像机固定,则可以通过通用策略求取传播图,然后应用于雾天视频处理;若摄像机处于移动状态,背景和前景时刻在变化,则无法应用通用策略,需研究新的增强或复原手段对视频每一帧进行快速去雾,或者利用硬件加速来协同处理。
第三,去雾结果的评测问题。目前,基于图像去雾的评测指标繁杂,主观性因素成分重,没有足够的说服力,因此在后续的研究中需要建立一套统一的图像质量评价体系。
综上,尽管各种去雾算法得到了一定的发展,但由于有雾图像中参数信息的误差性,现阶段的去雾算法还不能够达到完美的效果,因此,图像去雾领域仍具有较大的发展前景。
参考文献(References)
[1] 郭璠,蔡自兴,谢斌,等.图像去雾技术研究综述与展望[J].计算机应用,2010,30(09):2417-2421.
[2] 史昭君,朱家明,杨伟丹,等.基于同态滤波对太阳耀斑影像云处理的研究[J].北京电子科技学院学报,2018,26(04):46-52.
[3] HE K, SUN J, TANG X, et al. Single image haze removal using dark channel prior[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(12):2341-2353.
[4] NARASIMHAN S G, NAYAR S K. Contrast restoration of weather degraded images[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2003, 25(6):713-724.
[5] 张昌利,孟颖,李鹏超,等.基于导向滤波优化暗原色先验的公路能见度检测方法[J].科学技术与工程,2018,18(06):162-168.
[6] 陈子妍,龙道银,王霄,等.基于逆通道与改进引导滤波的暗通道去雾算法[J/OL].计算机工程,2020:1-10[2020-08-03].https://doi.org/10.19678/j.issn.1000-3428.0057530.
[7] TAN R T. Visibility in bad weather from a single image[J]. IEEE Conference on Computer Vision and Pattern Recognition, 2008(2):2347-2354.
[8] FATTAL R. Single image dehazing[J]. Acm Transactions on Graphics, 2008, 27(3):1-9.
[9] KRATZ L, NISHINO K. Factorizing scene albedo and depth from a single foggy image[C]// International Conference on Computer Vision. Proceedings of the 12th International Conference on Computer Vision. Japan: Kyoto, 2009:1701-1708.
[10] TAREL J P, NICOLAS H. Fast visibility restoration from a single color or gray level image[J]. IEEE Conference on Computer Vision, 2009(5):2201-2208.
[11] WANG Y, FAN C. Single image defogging by multiscale depth fusion[J].IEEE Transactions on Image Processing, 2014, 23(11):4826-4837.
[12] ZHU Q, MAI J, SHAO L. A fast single image haze removal algorithm using color attenuation prior[J]. IEEE Transactions on Image Processing, 2015, 24(11):3522-3533.
[13] CAI B, XU X, 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.
[14] REN W, LIU S, ZHANG H, et al. Single image dehazing via multi-scale convolutional neural networks[C]// European Conference on Computer Vision. 2016 14th European Conference on Computer Vision. Springer: Cham, 2016:154-169.
[15] ZHANG H, PATELV M. Densely Connected Pyramid Dehazing Network[J]. IEEE Conference on Computer Vision and Pattern Recognition, 2018(3):3194-3203.
[16] LI B, PENG X, WANG Z, et al. An all-in-One network for dehazing and beyond[J]. Journal of Latex Class Files, 2015,
14(8):1-12.
[17] CHEN D, HE M, FAN Q, et al. Gated context aggregation network for image dehazing and deraining[C]// Winter Conference on Applications of Computer Vision. 2019 IEEE Winter Conference on Applications of Computer Vision. New York: IEEE Press, 2019:1375-1383.
[18] YANG X, XU Z, LUO J, et al. Towards perceptual image dehazing by physics-based disentanglement and adversarial training[J]. National Conference on Artificial Intelligence, 2018(2):7485-7492.
[19] ENGIN D, GENC A, EKENEL H K, et al. Cycle-dehaze: Enhanced CycleGAN for single image dehazing[J]. Computer Vision and Pattern Recognition, 2018(14):825-833.
[20] MAI J, ZHU Q, WU D, et al. Back propagation neural network dehazing[C]// International Conference on Robotics and Biomimetics. Proceedings of IEEE International Conference on Robotics and Biomimetics. Indonesia: Bali, 2014:1433-1438.
[21] LI J, LI G, FAN H, et al. Image dehazing using residual-based deep CNN[J]. IEEE Access, 2018(5):26831-26842.
[22] 陳永,郭红光,艾亚鹏.基于双域分解的多尺度深度学习单幅图像去雾[J].光学学报,2020,40(02):71-82.
作者简介:
蒲亨飞(1995-),男,硕士生.研究领域:图像处理.
黄治勇(1996-),男,硕士生.研究领域:数字图像处理,深度学习.