基于深度学习的图像去雾综合调查与分类
摘要
随着卷积神经网络的发展,已经提出了数百种基于深度学习的去雾方法。在本文中,我们对有监督、半监督和无监督去雾进行了全面调查。我们首先讨论常用的物理模型、数据集、网络模块、损失函数和评估指标。然后,对各种去雾算法的主要贡献进行了分类和总结。此外,还进行了各种基线方法的定量和定性实验。最后,指出了可以启发未来研究的未解决问题和挑战。 https://github.com/Xiaofeng-life/AwesomeDehazing 提供了一系列有用的除雾材料。
1 引言 由于环境中含有的漂浮颗粒的吸收,相机拍摄的图像质量会有所下降。在雾霾天气下,图像质量下降的现象对摄影工作产生了负面影响。图像的对比度会降低,颜色会发生变化。同时,场景中物体的纹理和边缘会变得模糊不清。如图1所示,雾霾和无雾霾图像的像素直方图之间存在明显的差异。对于视觉任务,如物体检测和图像分割,低质量的输入会降低精心设计的模型的性能。
因此,许多研究人员试图从朦胧的图像中恢复高质量的清晰场景。在深度学习被广泛用于计算机视觉任务之前,图像脱色算法主要依赖于各种先验假设[50]和大气散射模型(ASM)[89]。这些基于统计规则的方法的处理流程具有良好的可解释性。然而,在面对复杂的现实世界场景时,它们可能表现出缺点。例如,著名的暗通道先验[50](DCP,2009年CVPR最佳论文)不能很好地处理含有天空的区域。
受深度学习的启发,[12, 106, 108]将ASM和卷积神经网络(CNN)结合起来估计物理参数。定量和定性的实验结果表明,深度学习可以帮助以监督的方式预测物理参数。在此之后,[80、86、104、176、184] 已经证明端到端的监督去雾网络可以独立于 ASM 来实现。由于 CNN 强大的特征提取能力,这些非基于 ASM 的去雾算法可以达到与基于 ASM 的算法相似的精度。
基于ASM和非ASM的监督算法已经显示出令人印象深刻的性能。然而,它们往往需要合成的配对图像,而这些图像与真实世界的朦胧图像不一致。因此,最近的研究集中在更适合于现实世界的除霾任务的方法上。[23, 43, 67]探讨了不需要合成数据的无监督算法,而其他研究[1, 20, 74, 166]提出了半监督算法,利用合成配对数据和现实世界的非配对数据。
在研究人员的努力下,已经提出了数百种去雾方法。为了启发和指导未来的研究,迫切需要进行全面的调查。一些论文试图部分回顾去雾研究的最新进展。例如,[79,124,146] 总结了非深度学习去雾方法,包括深度估计、小波、增强、滤波,但缺乏对最近基于 CNN 的方法的研究。帕里哈尔等人。 [101] 提供了关于有监督去雾模型的调查,但它没有对半监督和无监督方法的最新探索给予足够的关注。班纳吉等人。 [10]对现有的夜间图像去雾方法进行了介绍和分组,但很少对白天的方法进行分析。桂等人。 [44]对有监督和无监督算法进行了分类和分析,但没有总结最近提出的各种半监督方法。与现有评论不同,我们对基于深度学习的监督、半监督和无监督日间去雾模型进行了全面调查。
在本次审查的算法分析部分,有两个因素需要考虑。首先,我们如何训练所需的模型?基于此,算法分为监督、半监督和无监督三种类型。其次,预期模型展示了哪些技术有利于去雾任务,从而激发未来的工作以建立在它们之上。基于此,监督、半监督和无监督方法分别分为 18、3、4 类。现有的去雾算法如表 1 所示,根据其主要贡献进行分类。为了证明现有去雾算法已经取得的结果,第 6 节对监督、半监督和无监督算法的性能进行了定量和定性研究。
1.1 本次调查的范围和目标本次调查并未涵盖去雾研究的所有主题。我们将注意力集中在使用单眼白天图像的基于深度学习的算法上。这意味着我们不会详细讨论非深度学习去雾、水下去雾[71、135、136]、视频去雾[109]、高光谱去雾[91]、夜间去雾[161-163]、双目去雾[99] ]等。因此,当我们在本文中提到“去雾”时,我们通常指的是基于深度学习的算法,其输入数据满足四个条件:单帧图像、白天、单目、地面。由于不同的去雾方法在不同的条件和目的下,本次调查没有对各种算法的实验结果进行比较。总之,本次调查有以下三个贡献。
• 总结了常用的物理模型、数据集、网络模块、损失函数和评估指标。
• 介绍了监督、半监督和无监督方法的分类和介绍。
• 根据已有的成果和未解决的问题,对未来的研究方向进行了展望。
1.2 阅读本调查指南第 2 部分介绍了物理模型 ASM、合成和生成的真实数据集、损失函数、去雾网络中常用的基本模块以及各种算法的评估指标。第 3 节全面讨论了有监督的去雾算法。第 4 节和第 5 节分别对半监督和无监督去雾方法进行了回顾。第 6 节介绍了三类基线算法的定量和定性实验结果。第 7 节讨论了去雾研究的未解决问题。
对去雾研究进行逻辑和全面审查的一个重要挑战是如何正确分类现有方法。在表1的分类中,有几点需要指出如下。
• DCP 在去雾任务上得到验证,推理过程使用 ASM。因此,使用 DCP 的方法被认为是基于 ASM 的。
• 本调查将基于知识蒸馏的监督去雾网络视为监督算法,而不是弱监督/半监督算法。
• 使用总变异损失或GAN 损失的监督去雾方法仍被归类为监督。
在这里,我们给出了本次调查的符号约定。除非另有说明,所有符号的含义如下: () 表示朦胧的图像; () 表示无雾图像。 ()代表传输图; ()、()和()中的是像素位置。下标“”表示重建后的图像,如()就是重建后的朦胧图像。下标“”指的是预测输出。根据[41],大气光可以被视为一个常数A或一个非均匀矩阵()。在本次调查中,大气光统一表示为。此外,许多论文给所提出的算法起一个缩写名称,例如GFN [107](gated fusion network for single image dehazing)。
为了便于阅读,本调查使用缩写作为这些论文的参考。少量论文没有给出算法的缩写,我们根据相应论文的标题提取相应的缩写。
2 相关工作
去雾算法的共性主要体现在四个方面。首先,网络的建模依赖于物理模型ASM或完全基于神经网络。其次,用于训练网络的数据集是否需要包含透射图、大气光值或成对的监督信息。第三,网络基于什么样的基础模块。第四,在训练过程中使用了什么损失函数。基于这四个因素,研究人员设计了多种有效的去雾算法。因此,本节介绍 ASM、数据集、损失函数和网络架构模块。此外,本节还讨论了如何评估去雾结果。
2.1 去雾过程的建模
雾霾是一种自然现象,可以用 ASM 近似解释。 McCartney [89] 首先提出了基本的 ASM 来描述雾霾形成的原理。然后,Narasimhan [97] 和 Nayar [98] 扩展和开发了目前广泛使用的 ASM。 ASM为图像去雾的研究提供了可靠的理论依据。它的公式是
() = ()() + (1 − ()), (1)
其中是坐标值,是全球大气光。在不同的论文中,可以被称为空气光或环境光。为了便于理解,在本次调查中,被标注为大气光。对于基于 ASM 的去雾方法, 通常是未知的。 () 代表朦胧的图像, () 代表清晰的场景。对于大多数去雾模型,() 是输入, () 是所需的输出。 () 表示介质传输图,定义为:
() = (− ()), (2)
其中和()分别代表大气散射参数和()的深度。因此,()由()决定,可用于模糊图像的合成。如果可以估计()和,则可以通过以下公式获得无雾图像():
() =(() − (1 − ()))/(). (3)
ASM的成像原理如图2所示。可以看出,从物体到达相机的光线是由空气中的粒子改变的。一些作品使用 ASM 来描述雾霾的形成过程,大气散射模型中包含的参数以显式或隐式的方式求解。如表 1 所示,ASM 对去雾研究产生了深远的影响,包括有监督的 [12, 68, 106, 158]、半监督的 [20, 74, 88] 和无监督的算法 [43, 66]。
分别在第 4 节和第 5 节中。第 6 节介绍了三类基线算法的定量和定性实验结果。第 7 节讨论了去雾研究的未解决问题。
对去雾研究进行逻辑和全面审查的一个重要挑战是如何正确分类现有方法。在表1的分类中,有几项需要指出如下:
• DCP 在去雾任务上得到验证,推理过程使用 ASM。因此,使用 DCP 的方法被认为是基于 ASM 的。
• 本调查将基于知识蒸馏的监督去雾网络视为监督算法,而不是弱监督/半监督算法。
• 使用总变异损失或GAN 损失的监督去雾方法仍被归类为监督。
在这里,我们给出了本次调查的符号约定。除非另有说明,所有符号的含义如下: () 表示朦胧的图像; () 表示无雾图像。 ()代表传输图; ()、()和()中的是像素位置。下标“”表示重建后的图像,如()就是重建后的朦胧图像。下标“”指的是预测输出。根据[41],大气光可以被视为一个常数A或一个非均匀矩阵()。在本次调查中,大气光统一表示为。此外,许多论文给所提出的算法起一个缩写名称,例如GFN [107](gated fusion network for single image dehazing)。为了便于阅读,本调查使用缩写作为这些论文的参考。少量论文没有给出算法的缩写,我们根据相应论文的标题提取相应的缩写。
2 RELATED WORK
去雾算法的共性主要体现在四个方面。首先,网络的建模依赖于物理模型ASM或完全基于神经网络。其次,用于训练网络的数据集是否需要包含透射图、大气光值或成对的监督信息。第三,网络基于什么样的基础模块。第四,在训练过程中使用了什么损失函数。基于这四个因素,研究人员设计了多种有效的去雾算法。因此,本节介绍 ASM、数据集、损失函数和网络架构模块。此外,本节还讨论了如何评估去雾结果。
2.1 去雾过程的建模
雾霾是一种自然现象,可以用 ASM 近似解释。 McCartney [89] 首先提出了基本的 ASM 来描述雾霾形成的原理。然后,Narasimhan [97] 和 Nayar [98] 扩展和开发了目前广泛使用的 ASM。 ASM为图像去雾的研究提供了可靠的理论依据。它的公式是
() = ()() + (1 − ()), (1)
其中是坐标值,是全球大气光。在不同的论文中,可以被称为空气光或环境光。为了便于理解,在本次调查中,被标注为大气光。对于基于 ASM 的去雾方法, 通常是未知的。 () 代表朦胧的图像, () 代表清晰的场景。对于大多数去雾模型,() 是输入, () 是所需的输出。 () 表示介质传输图,定义为:
() = (− ()), (2)
其中和()分别代表大气散射参数和()的深度。因此,()由()决定,可用于模糊图像的合成。如果可以估计()和,则可以通过以下公式获得无雾图像():
() =(() − (1 − ()))/(). (3)
ASM的成像原理如图2所示。可以看出,从物体到达相机的光线是由空气中的粒子改变的。一些作品使用 ASM 来描述雾霾的形成过程,大气散射模型中包含的参数以显式或隐式的方式求解。如表 1 所示,ASM 对去雾研究产生了深远的影响,包括有监督的 [12, 68, 106, 158]、半监督的 [20, 74, 88] 和无监督的算法 [43, 66]。
表 2. 图像去雾任务的数据集。 Syn 代表合成模糊图像。 HG 表示雾生成器生成的雾图像。真实意味着真实世界的场景。 S&R 表示 Syn&Real。 I 和 O 分别表示室内和室外。
图 3. NYU-Depth 数据集中的清晰图像和对应的深度图。
2.2 去雾任务的数据集
对于目标检测、图像分割和图像分类等视觉任务,可以通过仔细标注获得准确的真实标签。然而,对于自然场景中的朦胧图像,几乎不可能获得清晰、准确、逐像素的标签(无雾图像)。目前,获得成对的有雾和无雾图像主要有两种方法。第一种方法是借助 ASM 获取合成数据,例如 D-HAZY [2]、HazeRD [179] 和 RESIDE [69]。通过为 ASM 选择不同的参数,研究人员可以很容易地获得不同浓度水平的朦胧图像。合成一幅朦胧图像需要四个分量:清晰图像、与清晰图像内容相对应的深度图 ()、大气光和大气散射参数。因此,我们可以将合成数据集分为两个阶段。第一阶段需要成对采集清晰的图像和对应的深度图。为了确保合成的雾度尽可能接近真实世界的雾度,深度信息必须足够准确。图 3 显示了 NYU-Depth 数据集 [120] 中的清晰图像和相应的深度图。在第二阶段,大气光和大气散射参数被指定为固定值或随机选择。常用的 D-HAZY [2] 数据集是在 和 都为 1 时合成的。一些研究选择不同的 和 以提高训练模型的泛化能力。例如,MSCNN [106] 设置 ∈ (0.7, 1.0) 和 ∈ (0.5, 1.5)。图 4 显示了当 取 6 个不同值时对应的模糊图像。
第二种方法是通过专业的雾度生成器生成雾度图像,例如 I-HAZE [3]、O-HAZE [7]、Dense-Haze [5] 和 NH-HAZE [6]。著名的图像恢复和增强新趋势(NTIRE 2018-2020)去雾挑战赛 [4, 8, 9] 就是基于这些生成的数据集。图 5 显示了雾度发生器模拟的数据集中包含的四对雾度和无雾度示例。图 5 (a) 中的图像来自室内场景,而 (b)、© 和 (d) 中的图像都是在室外场景中拍摄的。这三个室外数据集中的雾霾模式存在差异。 (b)和(c)中的雾度均匀分布在整个图像中,而(d)中的雾度在整个场景中是不均匀的。此外,(c)中的雾度密度显着高于(b)和(d)中的。这些具有不同特征的数据集对去雾算法的设计具有重要的指导意义。例如,为了去除 Dense-Haze 中的高浓度霾,需要设计具有更强特征提取和恢复能力的模型。
合成和生成雾度的主要优点是它减轻了数据采集过程中的困难。然而,基于 ASM 合成或雾度发生器生成的雾度图像无法完美模拟现实世界雾度的形成过程。因此,合成数据和真实世界数据之间存在固有差异。一些研究已经注意到人工数据的问题,并尝试构建真实世界的数据集,例如 MRFID [85] 和 BeDDE [182]。然而,由于数据收集的高成本和困难,当前的现实世界数据集没有包含足够的示例作为合成数据集,如 RESIDE [69]。为了便于不同数据集的比较,我们总结了各种数据集的特点,并在表2中展示。
2.3 网络块 CNN 广泛用于当前基于深度学习的去雾网络。常用的模块有标准卷积、空洞卷积、多尺度融合、特征金字塔、跨层连接和注意力。通常,多个基本块组成一个高质量的去雾网络。为了便于理解不同去雾算法的原理,将网络架构中常用的基本块总结如下。
• 标准卷积:表明以顺序连接的方式使用标准卷积来构建神经网络是有效的。因此,标准卷积通常与其他块一起用于去雾模型 [68、106、116、178]。
• 空洞卷积:空洞卷积可以在保持卷积核大小不变的情况下增加感受野。研究 [13, 65, 147, 168, 170] 表明,空洞卷积可以提高全局特征提取的性能。此外,融合不同膨胀率的卷积层可以提取不同感受野的特征。
• 多尺度融合:具有多尺度卷积核的 CNN 已被证明可以在各种视觉任务中有效地提取特征 [126]。通过使用不同尺度的卷积核并将提取的特征融合在一起,去雾方法[36, 127-129]证明了融合策略可以在图像恢复过程中获得多尺度细节。在特征融合的过程中,一种常见的方式是将不同大小的卷积核得到的输出特征进行空间连接或相加。
• 特征金字塔:在数字图像处理研究中,图像金字塔可用于获取不同分辨率的信息。基于深度学习的去雾网络 [15, 123, 154, 158, 159, 178, 181] 在网络的中间层使用这种策略来提取多个尺度的空间和通道信息。
• 跨层连接:为了增强不同层之间的信息交换,提高网络的特征提取能力,CNN 中经常使用跨层连接。去雾网络中主要使用三种跨层连接,分别是 ResNet [51] 提出的残差连接 [19, 53, 80, 105, 180],密集连接 [14, 31, 46, 70, 172, 186] 由 DenseNet [54] 设计,并在 U-Net [110] 的启发下跳过连接 [36, 65, 149, 181]。
• Attention in dehazing:注意力机制已成功应用于自然语言处理的研究。计算机视觉中常用的注意力模块包括通道注意力和空间注意力。对于二维图像的特征提取和重建过程,通道注意力可以对特征图的不同通道进行加权。这种不等价的特征图处理策略可以让模型更加关注有效的特征信息。空间注意力机制侧重于特征图内部位置区域的差异,例如雾度在整个地图上的分布。通过在网络中嵌入注意力模块,方法 [19, 29, 65, 80, 86, 92, 104, 131, 147, 147, 154, 155, 178] 取得了出色的去雾性能。
2.4 Loss Function
本节介绍常用的有监督、半监督和无监督去雾模型的损失函数,可用于透射图估计、清晰图像预测、模糊图像重建、大气光回归等。获得更好的去雾效果。表 3 给出了不同去雾方法使用的损失函数的详细分类和总结。在下面介绍的损失函数中, 和 分别表示预测值和真实值。
2.4.1 保真度损失。去雾研究中广泛使用的逐像素损失函数是 L1 损失和 L2 损失,定义如下:
1 = || − ||1. (4)
2 = || − ||2. (5)
2.4.2 感知损失。 L1或L2损失没有充分考虑人类视觉系统在感知评估过程中的特殊属性。最近的研究使用预训练的分类神经网络来计算特征空间中的感知损失。最常用的预训练模型是 VGG [122],它的一些层用于计算预测图像和参考图像之间的距离。
其中表示要选择的特征数量; 表示特征图的索引; (·) 表示预训练的 VGG。在计算感知损失和网络优化过程中,VGG 的参数通常是冻结的。
2.4.3 结构损失。作为去雾方法的度量,SSIM [138] 也被用作优化过程中的损失函数。研究表明,SSIM loss 可以提高图像恢复过程中的结构相似性。 MS-SSIM [139] 在 SSIM 中引入了多尺度评估,它也被去雾算法用作损失函数。
2.4.4 梯度损失。梯度损失,也称为边缘损失,用于更好地恢复图像的轮廓和边缘信息。边缘提取可以通过拉普拉斯算子、Canny算子等来实现。例如,SA-CGAN [116] 使用标准差为的高斯拉普拉斯算子对二维图像进行二次微分:
其中 (, ) 表示像素位置。然后,使用L1和L2等回归目标函数来计算梯度损失。
2.4.5 总变差损失(Total Variation Loss)。 总变差损失(TV)损失[111]可用于平滑图像和去除噪声。训练目标是最小化以下函数:
其中和分别代表水平和垂直坐标。从公式可以看出,TV loss可以加入到无监督训练的网络中。
2.5 图像质量指标
由于雾度的存在,图像的饱和度和对比度降低,并且图像的颜色因不确定模式而失真。为了衡量去雾图像和地面真实无雾图像之间的差异,需要客观的指标来评估各种去雾算法获得的结果。大多数论文使用峰值信噪比 (PSNR) [58] 和结构相似度 (SSIM) [138] 来评估去雾后的图像质量。 PSNR的计算需要使用公式(11)得到均方误差(MSE):
其中和分别代表要评估的两个图像。 和是它们的高度和宽度,也就是说,和的维度应该严格相同。图像的像素位置索引由和表示。然后,PSNR可以通过对数计算得到如下:
其中,对于 8 位像素, 等于 8。 SSIM是基于人类视觉感知与结构信息的相关性,其公式如下:
其中、、和分别代表和的均值和方差; 是两个变量之间的协方差; 1 和2 是用于确保数值稳定性的常数。
由于雾霾会导致场景和物体的颜色发生变化,一些作品使用 CIEDE2000 [115] 作为对颜色偏移程度的评估。 PSNR、SSIM 和 CIEDE 属于全参考评价指标,这意味着必须以清晰的图像对应的模糊图像作为参考。现实世界的模糊和无模糊图像对很难在内容上保持完全相同。例如,场景中的照明和物体可能会在雾霾出现前后发生变化。因此,为了保持评估过程的准确性,需要将相应的模糊图像与清晰的图像合成[93]。
除了全参考指标 PSNR、SSIM 和 CIEDE,最近的工作 [69, 77] 利用无参考指标 SSEQ [82] 和 BLIINDS-II [112] 来评估没有地面实况的去雾图像。无参考指标对于现实世界的去雾评估具有至关重要的价值。
3 SUPERVISED DEHAZING
监督去雾模型通常需要不同类型的监督信息来指导训练过程,例如透射图、大气光、无雾图像标签等。理论上,监督去雾方法可以分为基于ASM和非基于ASM的去雾方法。基于 ASM 的。但是,这种方式可能存在重叠,因为基于 ASM 和非基于 ASM 的算法都可以与分割、检测和深度估计相结合。因此,本节根据监督算法的主要贡献对其进行分类,以便清楚地观察证明对去雾研究有价值的技能。
3.1 Learning of ()
根据ASM,去雾过程可以分为三个部分:透射图估计、大气光预测和无雾图像获取。 MSCNN [106] 提出了解决 ASM 的以下三个步骤:(1)使用 CNN 估计透射图(),(2)采用统计规则来预测大气光,(3)解决() ()和联合。 MSCNN 采用多尺度卷积模型进行传输图估计,并使用 L2 损失对其进行优化。此外,它指出可以通过在()中选择 0.1% 最暗的像素来获得,对应于()[50]中强度最高的像素。因此清晰的图像()可以通过
不同的论文可能使用不同的统计经验来估计,但他们用于去雾的策略与 MSCNN 是一致的。 ABC-Net [129] 使用最大池化操作从() 的每个通道中获取最大值。 SID-JPM [57] 通过最小过滤内核过滤 RGB 输入图像的每个通道。然后将每个通道的最大值用作估计的。 LAPTN [84] 还应用最小过滤器和最大过滤器来预测。这些方法一般不需要大气光标注,但需要成对的朦胧图像和透射图。
3.2 Joint Learning of () and A
一些工作没有联合使用卷积网络和先验统计进行物理参数估计,而是完全通过CNN实现物理参数的预测。DCPDN[158]通过一个金字塔密集连接的编码器-解码器网络来估计传输图,并使用对称的U-Net来预测大气光。为了提高传输图的边缘精度,DCPDN设计了一个混合边缘保护损失,其中包括L2损失、双向梯度损失和特征边缘损失。 DHD-Net[145]设计了一种基于分割的雾霾密度估计算法,它可以分割密集的雾霾区域,并划分出全球大气光候选区域。HRGAN[100]利用多尺度融合扩张卷积网络来预测(),并采用单层卷积模型来估计。PMHLD[18]使用补丁图生成器和细化网络进行传输图估计,并利用VGG-16进行大气光估计。值得注意的是,如果使用回归训练来获得,一般需要地面真实标签。
3.3 Non-explicitly Embedded ASM 非显式嵌入式 ASM
ASM 可以以重新制定或嵌入的方式并入 CNN。 AOD-Net [68] 发现端到端神经网络仍然可以用于解决 ASM,而无需直接使用地面实况() 和。根据原始 ASM, () 的表达式为:
AOD-Net 提出了没有实际物理意义的() 作为描述() 和的中间参数。 () 定义为:
其中 等于 1。根据 ASM 理论, () 可以由 () 唯一确定为:
AOD-Net 认为非联合传输图和大气光预测过程可能会产生累积误差。因此,独立估计()理论上可以降低系统误差值。 FAMED-Net [165] 在多尺度框架中扩展了这个公式,并利用完全逐点卷积来实现快速准确的去雾性能。 DehazeGAN [186] 将可微规划的思想融入到和()的估计过程中。结合重新制定的 ASM,DehazeGAN 还实现了端到端的去雾管道。 PFDN [30] 将 ASM 嵌入到网络设计中,并提出了一个特征去雾单元,它可以在设计良好的特征空间而不是原始图像空间中去除雾霾。说明 ASM 在非显式参数估计下仍然可以帮助去雾任务。