GridDehazeNet: Attention-Based Multi-Scale Network for Image Dehazing
Abstract
我们提出了一个端到端的可训练卷积神经网络(CNN),命名为GridDehazeNet,用于单幅图像去雾。GridDehazeNet由预处理、主干网络和后处理三个模块组成。与手工选择的预处理方法产生的衍生输入相比,可训练的预处理模块可以生成具有更好多样性和更相关特征的学习输入。该核心模块实现了一种基于注意力的网格网络多尺度估计方法,有效地解决了传统多尺度估计方法存在的瓶颈问题。后处理模块有助于减少最终输出中的伪影。实验结果表明,GridDehazeNet在合成图像和真实图像上的表现都优于最先进的技术。本文提出的消雾方法不依赖于大气散射模型,并解释了为什么即使只考虑合成图像的消雾结果,也不一定有利于利用大气散射模型提供的降维。
1 Introduction
在过去的二十年里,图像去雾问题在计算机视觉领域受到极大关注。图像去雾旨在恢复模糊图像的清晰版本。有助于减轻环境条件引起的图像失真对各种视觉分析任务的影响,这对于开发鲁棒智能监控系统至关重要。
作为图像恢复的典型例子,除雾问题可以通过各种各样的技术来解决,这些技术在本质上是通用的。此外,在图像去雾中遇到的许多误解和困难也体现在其他恢复问题上。因此,在更广泛的背景下审查有关问题是有益的,下面着重说明其中三个问题:
- 物理模型的作用:许多数据驱动的图像恢复方法需要合成数据集进行训练。为了创建这样的数据集,需要有一个相关图像退化过程的物理模型(例如,雾霾效应的大气散射模型)。一个自然的问题是,图像恢复算法本身的设计是否应该依赖于这个物理模型。显然,依赖于模型的算法可能会由于模型不匹配而在真实图像上遭受固有的性能损失。然而,人们通常理所当然地认为,这种算法在使用相同物理模型创建的合成图像上必须具有优势。
- 预处理方法的选择:为了便于后续操作,预处理广泛应用于图像预处理中。它还可以用来生成给定图像的几个变体,提供某种形式的多样性,可以通过适当的融合来利用。然而,预处理方法通常是基于启发式选择的,因此不一定最适合所考虑的问题。
- 多尺度估计的瓶颈:图像恢复需要对扭曲图像与原始清晰图像之间的统计关系有明确/隐含的了解。捕获这种关系所需的统计模型通常有大量的参数,与现有的训练数据相当,甚至更多。因此,根据训练数据直接估计这些参数往往是不可靠的。多尺度估计通过以下方式解决了这个问题:i)用低维统计模型近似高维统计模型;ii)基于训练数据估计低维模型的参数;iii)参数化估计的低维模型的邻域,执行精细估计,并在需要时重复此过程。很明显,一个尺度上的估计精度会影响下一个尺度上的估计精度。由于多尺度估计通常以连续的方式进行,其性能往往受到一定瓶颈的限制。
这项工作的主要贡献是一个端到端的可训练CNN,名为GridDehazeNet,用于单幅图像去雾。这个网络可以看作是我们试图解决上述图像恢复中的一般问题的产物。首先,本文提出的GridDehazeNet不依赖大气散射模型进行雾霾去除,但即使在合成图像上,也能够优于现有依赖于模型的去雾方法;对于这一令人困惑的现象,提出了一种可能的解释,并给出了一些支持实验结果。其次,GridDehazeNet的预处理模块是完全可训练的;与手工选择的预处理方法相比,学习后的预处理方法可以更灵活、更有针对性地增强图像。最后,在网格网络上实现基于注意力的多尺度估计,实现了不同尺度间高效的信息交换,缓解了瓶颈问题。结果表明,所提出的除雾方法与最先进的方法相比具有优越的性能。
2 Related Work
早期的图像去雾工作要么需要在不同条件下拍摄同一场景的多幅图像,要么需要从其他来源获取侧面信息。
没有侧面信息的单幅图像去雾相当困难。已经提出了许多方法来应对这一挑战。传统的策略是根据一定的假设或先验估计透射图t(x)和全球大气光强A(或其变体),然后对Eq.(1)进行反演,得到去雾图像。
这方面的代表性研究包括。具体而言,基于观察到清晰图像相对于朦胧图像往往具有更高的对比度,提出了一种局部对比度最大化去雾方法;雾霾去除是在假定透射图和表面遮阳局部不相关的情况下,通过反照率分析实现的;也有引入的去雾方法使用了暗通道先验(Dark Channel Prior, DCP),该方法断言非雾斑中的像素在至少一个颜色通道中具有低强度;提出了一种机器学习方法,该方法利用随机森林回归器利用四个与雾霾相关的特征;采用颜色衰减先验,开发了一种用于图像去雾的监督学习方法。尽管这些方法取得了不同程度的成功,但它们的性能受到所采用的假设/先验相对于目标场景的准确性的固有限制。
随着深度学习技术的进步和大型合成数据集的可用性,近年来数据驱动的图像去雾方法越来越受欢迎。这些方法在很大程度上遵循上述传统策略,但减少了对手工制作先验的依赖。例如,有研究提出的去雾方法DehazeNet使用三层CNN直接从给定的模糊图像中估计透射图;采用了一种多尺度CNN (MSCNN),能够进行精细的传输估计。
AOD-Net代表了对传统策略的背离。具体而言,在其中引入了公式(1)的重新表述,以绕过对透射图和大气光强的估计。仔细观察发现,这种重新表述实际上使大气散射模型完全多余(尽管在没有认识到这一点)。更进一步,在算法设计中明确放弃了大气散射模型。也有提出的门控融合网络(GFN)利用手工选择的预处理方法和多尺度估计,这些方法本质上是通用的,需要改进。
3 GridDehazeNet
提出的GridDehazeNet是一个端到端可训练网络,具有三个重要特征:
不依赖于大气散射模型
图2 大气散射模型对图像去雾的潜在不利影响。为了说明目的,我们将重点放在单个像素的两个颜色通道上,并用t1和t2表示各自的传输图。图2(a)绘制了损耗面随t1和t2的函数图。可以看出,在满足t1 = t2的点(见绿点)达到了全球最小值,这与大气散射模型一致。以黑点为起点,我们可以很容易地使用梯度下降(见黄色路径)找到这个全局最小值。然而,基于大气散射模型沿t1 = t2方向(见红色路径)的受限搜索将卡在紫色圆点表示的点上(见图2(b))。需要注意的是,这个点在约束空间中是局部极小值,而不是在原始空间中,仅仅因为采用了大气散射模型,它就成为了一个障碍物。
在上述单幅图像除雾方法中,只有AOD-Net和GFN不依赖于大气散射模型。然而,就合成图像的除雾效果而言,没有令人信服的理由说明为什么忽略该模型有任何优势。有提出的论点是,从模糊图像估计t(x)是一个不适定问题。然而,这是令人困惑的,因为估计t(x)(与颜色通道无关)可能比估计更容易。在图2中,我们提供了一个可能的解释,为什么如果盲目地使用t(x)与颜色通道无关的事实来缩小搜索空间可能会有问题,以及为什么在搜索最优t(x)时放松这个约束可能是有利的。然而,有了这种松弛,大气散射模型在估计过程中没有减少维数。更根本的是,我们知道CNN的损失面通常表现良好,局部最小值通常几乎与全局最小值一样好。另一方面,通过将大气散射模型合并到CNN中,基本上会引入一个非线性分量,该非线性分量与网络的其余部分本质上是异构的,这可能会产生一个不希望看到的损失面。
可训练预处理模块
预处理模块通过生成给定模糊图像的多个变体,每个变体突出该图像的不同方面,使相关特征信息更明显地暴露出来,有效地将单幅图像去雾问题转化为多幅图像去雾问题。与现有文献中手工选择的预处理方法相比,本文提出的预处理模块是完全可训练的,这符合近年来图像去雾研究的发展所显示的数据驱动方法相对于基于先验的方法的普遍偏好。请注意,手工选择的处理方法通常旨在增强视觉上可识别的某些具体特征。排除抽象特性是不合理的。实际上,可能存在比图像域更适合后续操作的抽象变换域。可训练的预处理模块可以自由地识别变换域,在变换域上可以利用更多的多样性增益。
基于注意力的多尺度估计
受启发,我们在网格网络上实现了多尺度估计。网格网络相对于广泛用于图像恢复的编码器-解码器网络和传统的多尺度网络具有明显的优势。特别是,编码器-解码器网络或传统的多尺度网络中的信息流往往由于分层结构而受到瓶颈效应的影响,而网格网络通过使用上采样/下采样块在不同尺度上的密集连接来避免这一问题。我们进一步赋予网络一种基于渠道的注意力机制,允许更灵活的信息交换和聚合。注意机制还使网络能够更好地利用预处理模块所产生的多样性。
3.1 网络体系结构
GridDehazeNet由三个模块组成,即预处理模块、骨干模块和后处理模块。图3显示了所提网络的整体架构。
预处理模块由卷积层(w/o激活函数)和残差密集块(RDB)组成。它从给定的模糊图像中生成16个特征映射,这些特征映射将被称为学习输入。
主干模块是GridNet的增强版本,最初是为语义分割而提出的。它基于预处理模块生成的学习输入进行基于注意力的多尺度估计。在本文中,我们选择三行六列的网格网络。每一行对应一个不同的比例尺,由五个RDB块组成,保持特征映射的数量不变。每一列都可以看作是通过上采样/下采样块连接不同尺度的桥梁。在每个上采样(下采样)块中,特征映射的大小减少(增加)2倍,而特征映射的数量增加(减少)2倍。在这里,上采样/下采样是使用卷积层来实现的,而不是传统的方法,如双线性或双三次插值。图4提供了RDB块、上采样块和下采样块的详细说明。每个RDB块由五个卷积层组成:前四层用于增加特征映射的数量,而最后一层融合这些特征映射,然后通过通道加法将其输出与该RDB块的输入结合起来。
下面设置RDB的增长率为16。上采样块和下采样块在结构上是相同的,只是使用不同的卷积层来调整特征映射的大小。在GridDehazeNet中,除了预处理模块中的第一个卷积层和每个残差密集block中的1×1卷积层外,所有卷积层都使用ReLU作为激活函数。为了在输出大小和计算复杂度之间取得平衡,我们将三种不同尺度的特征映射的数量分别设置为16、32和64。
由骨干模块的输出直接构造的去雾图像容易包含伪影。因此,我们引入了后处理模块来提高去雾图像的质量。后处理模块与预处理模块的结构是对称的。
3.2 基于通道注意的特征融合
鉴于来自不同尺度的特征映射可能不具有相同的重要性,我们提出了一种受启发的通道注意机制,以生成可训练的权重用于特征融合。设和分别表示行流和列流中的第i个特征通道,设和表示它们相关的关注权重。通道型注意机制可以表示为:
其中表示第i通道中的融合特征。注意机制使GridDehazeNet能够灵活调整不同尺度对特征融合的贡献。我们的实验结果表明,只要引入少量可训练的注意力权重,所提出的网络的性能就可以大大提高。
值得注意的是,可以通过选择合适的注意力权重来修剪(或停用)所提议的GridDehazeNet的一部分,并恢复一些现有的网络作为特殊情况。例如,图3中的红色路径说明了可以通过修剪GridDehazeNet获得的编码器-解码器网络。另一个例子是,从GridDehazeNet中移除交换分支(即主干模块中的中间四列)会导致类似于传统多尺度网络的结构。
3.3 损失函数
为了训练所提出的网络,使用smooth L₁损失和感知损失。Smooth L₁损失提供了去雾图像与真实图像之间差异的定量度量,由于L₁范数可以防止潜在的梯度爆炸,因此与MSE损失相比,它对离群值的敏感性较低。
Smooth L₁ Loss
设表示去雾图像中像素x的第i个颜色通道的强度,N表示总像素数。平滑L₁ Loss可以表示为:
Perceptual Loss
与逐像素损失不同,感知损失利用从预训练的深度神经网络中提取的多尺度特征来量化估计图像与地面真实之间的视觉差异。在本文中,我们使用在ImageNet上预训练的VGG16作为损失网络,从前三个阶段(即Conv1-2、Conv2-2和Conv3-3)的最后一层提取特征。感知损失定义为:
式中,, j = 1,2,3,表示与去雾图像(ground truth J)相关联的上述三个VGG16特征映射,, 和表示的维数,j = 1,2,3。
Total Loss
将smooth L₁ Loss和感知Loss结合定义Total Loss,定义如下:
其中λ是用于调整两个Loss分量的相对权重的参数。本文λ设为0.04。
4 Experimental Results
我们进行了大量的实验,以证明所提出的GridDehazeNet在合成和现实世界数据集的定量除雾结果和定性视觉效果方面优于最先进的技术。实验结果也为GridDehazeNet的组成模块提供了有用的见解,并为总体设计提供了坚实的依据。更多的例子可以在补充材料中找到,源代码将公开提供。
4.1 训练和测试数据集
一般来说,收集大量真实世界的朦胧图像及其无雾图像是不切实际的。因此,数据驱动的除雾方法往往需要依赖于合成雾霾图像,而合成雾霾图像可以基于大气散射模型,通过适当选择散射系数和大气光强A,从清晰图像中生成。本文采用大规模合成数据集"RESIDE",对所提出的GridDehazeNet进行训练和测试。RESIDE包含室内和室外场景的合成朦胧图像。RESIDE的室内训练集共包含13990幅朦胧室内图像,由1399幅清晰图像生成,其中β∈[0.6,1.8],a∈[0.7,1.0];深度图d(x)来自NYU Depth V2和Middlebury Stereo数据集。经过数据清洗后,由8477幅清晰图像生成的户外模糊图像(OTS)共包含296695幅,其中β∈[0.04,0.2],a∈[0.8,1.0];使用中开发的算法估计室外图像的深度图。测试采用合成目标测试集(SOTS),该集由500幅室内朦胧图像和500幅室外朦胧图像组成。此外,为了对真实图像进行比较,我们使用了中的数据集。
4.2 实现
提出的GridDehazeNet是端到端可训练的,无需对子模块进行预训练。我们使用大小为240×240的RGB图像patch来训练网络。对于加速训练,使用Adam优化器,批大小为24,其中β1和β2分别采用默认值0.9和0.999。在之后,我们不使用批归一化。初始学习率设置为0.001。对于ITS,我们总共训练了100个epoch,每20个epoch学习率降低一半。
对于OTS,网络只训练10个epoch,每2个epoch学习率降低一半。训练是在两台NVIDIA GeForce GTX 1080Ti的PC上进行的,但只有一个GPU用于测试。当训练结束时,ITS和OTS的损失函数分别下降到0.0005和0.0004,我们认为这是一个很好的收敛迹象。