齐城慧, 张登银
(南京邮电大学物联网学院, 江苏 南京 210003)
近年来,在自然因素和人为因素的共同影响下,我国大部分地区都遭受了雾霾天气的危害。随着社会工业化进程的不断发展,环境污染的加剧导致空气质量严重退化,雾霾天气出现的频率也越来越高。在雾霾气象条件下,大气中大量的悬浮细微颗粒会在不同程度上散射和吸收物体的反射光线,导致景物反射的光线强度减弱。图像传感器所采集到的物体图像由于反射光的强度不同而产生差异,生成的图像容易呈现出对比度降低、清晰度下降等退化现象,严重影响了图像的视觉效果,也为计算机成像系统的正常工作带来了障碍和挑战。
目前,大多数计算机成像系统都需要依赖图像去雾技术对拍摄的降质图像进行恢复。特别是在智能交通辅助驾驶任务中,需要车载监控设备对雾天影响下的户外路况信息进行准确的感知及快速的判断。为了最大程度保障道路交通安全,智能交通领域对图像去雾准确性和实时性都有着更高的要求。
然而,图像去雾是一个非常具有挑战性的问题,很难在质量和效率上得到平衡。早期解决方案大部分基于先验知识[1],研究人员提出了各种先验条件作为额外约束,以找到物理模型中未知参数的合适解,产生高能见度的去雾结果。尽管这些先验知识在特定情况下表现良好,但它们无法适应所有情况,容易产生额外的伪影,例如光晕和色块等。
与基于先验的去雾方法不同,基于学习的方法利用卷积神经网络(convolutional neural networks, CNN)估计大气光和透射率,或通过监督学习直接从输入的朦胧图像中恢复无雾图像。基于深度学习的方法相对于其他方法性能的提升主要归功于其CNN的不同模型设计。DehazeNet[2]通过深度CNN先估计透射率,随后通过物理模型还原图像,但训练过程中无法保证参数的准确估计,去雾效果不稳定。而直接学习有雾到无雾图像映射关系的算法训练过程大多需要来自同一场景的大量清晰和模糊的图像,对容易出现过拟合状态,去除真实雾霾的能力有限。比如,最新提出的基于特征融合注意力的网络[3]虽然在质量评价指标上取得突破,但无法处理户外真实场景。在这种情况下,为了学习更多的特征并取得更好的去雾效果,需要不断增加网络参数,加深网络层级,这不仅使模型训练困难,也会造成去雾效率低,限制了上述大多数去雾算法,使其仅停留在理论层面,并不满足户外交通系统对去雾算法的要求。
因此,本文针对户外交通场景下图像或视频采集系统对去雾算法实时性的要求,提出基于感知融合机制的渐进式去雾网络(progressive dehaze network,PD-Net)用于快速除雾。网络在每个阶段采取相同结构的轻量级网络对有雾图像分块提取特征,以少量的模型参数完成对背景信息复杂的降质图像的处理。为使各阶段更好地协同工作,提出跨阶段感知融合模块(perception fusion module,PFM),PFM帮助网络各阶段上下文的多尺度信息进行自适应融合并传递,保留了图像边缘和纹理细节结构。整体网络基于轻量级结构,去雾效果符合人类视觉预期且能够实时去雾,可被广泛地应用于智能交通辅助驾驶任务,具有现实意义。
在有雾天气下,空气中存在大量的水滴、灰尘、烟雾等大量悬浮粒子,这些悬浮粒子会与大气光相互作用,影响中光的颜色、强度以及传播路线等性质,造成成像质量低下。通常在理想状态下,大气光照射到物体表面,成像系统依靠物体反射的光呈现图像。而在雾天环境下,一方面,大气光被空气中的悬浮微粒散射或吸收,光源与物体的距离越大,导致照射到物体表面的白色大气光越多;另一方面,物体表面的反射光也会在雾天的悬浮粒子作用下被吸收和散射,成像系统依赖的反射光也随之减少。基于这种成像过程,智能图像采集设备捕捉的图像结果往往呈现出低对比度、颜色偏移、细节信息模糊等图像退化特征。大气散射模型[4]描述了有雾图像的退化原理,公式如下:
I(x)=J(x)t(x)+A(1-t(x))
(1)
式中:I(x)代表成像设备拍摄到的有雾图像;J(x)代表原本真实无雾图像;x表示被观察的像素点;A代表全局大气光值;t(x)表示光线透射率,反映的是空气反射光线的能力。
近年来,为了解决雾天图像复原问题,人们提出了许多方法。这些方法大致可以分为:基于先验的方法和基于学习的方法。传统的基于图像先验的方法依赖于从图像中手工制作的统计数据,利用额外的数学约束补偿重建过程中丢失的信息。典型的方法有颜色衰减先验(color attenuation prior,CAP)[5]、暗通道先验(dark channel prior,DCP)[6]等算法以及以此为基础的一些改进算法[7]等。但上述基于先验的去雾算法所依赖的特征比较单一,中间变量估计存在误差,还需要进一步的探索改善。
与传统方法不同的是,基于深度学习的方法通过利用CNN从大量有雾和无雾图像数据中提取雾霾特征以进行去雾。早期,Cai等[2]首次提出将可训练的端到端系统DehazeNet网络用于传输值估计,随后通过大气散射模型恢复无雾图像,Li 等[8]将大气散射模型的物理公式进行变形,提出了一体化网络 (all-in-one network,AOD-Net),该AOD-Net可以直接生成无雾图像。Zhang等[9]提出了一种具有边缘保持密集连接的编码器-解码器架构的稠密连接金字塔去害网络(densely connected pyramic dehazing network,DCPDN)。Ren等[10]先使用预处理模块对图像白平衡、对比度进行操作,进一步提出门控融合网络,直接从有雾的输入中恢复干净的图像。另外,生成对抗网络[11]也被广泛用于图像去雾领域。Qu等[12]在生成对抗网络中嵌入了增强网络以实现去雾效果。Shao等[13]在循环生成对抗网络的基础上提出了一种用于单图像去雾的域自适应框架,减小合成图像和真实世界有雾图像之间的差异。
除上述网络,多尺度策略[14]、密集网络[15]、残差结构[16]、注意力机制[17]等也被广泛用于解决去雾问题。近两年,Dong等[18]提出了一种基于U-Net[19]架构的具有密集特征融合的多尺度增强去雾网络,通过增强解码器来恢复无雾图像,在现实雾天场景中表现优异。Qin等[3]将通道注意力与像素注意机制相结合,提出特征融合注意网络,可以自适应学习权重信息来融合特征,所以该结构可以保留浅层的信息并将其传递到深层,很大程度上提高了客观指标。图像去雾是一个高度不确定且约束不足的问题,对图像去雾技术性能提升的不断探索仍是图像处理和计算机视觉领域研究的重点。
多阶段策略旨在将具有挑战性的图像恢复任务分解为简单的子任务。在姿势估计[20]、检测[21]等高级任务中取得成功的推动下,多阶段渐进策略已被用于解决各种图像复原任务。比如,Fu等[22]采用级联网络阶段式逐步恢复降质图像,解决图像去雨问题。在图像去模糊领域,Suin等[23]提出多尺度的CNN模拟模糊图像从粗糙到细致的恢复方式,复原因各种原因导致的模糊图像。对于本文提出的图像去雾问题,早期,Ren等[24]提出的多尺度深度神经网络利用分阶段的思想先对透射率进行粗糙的估计,随后细化透射率。类似地,Zhao等[25]提出弱监督的细化框架,先使用暗通道方法初步恢复可见度,随后使用弱监督的生成对抗网络增强图像效果。然而,大多数分阶段去雾方法都是逐渐改进前一阶段的特征结果。与上述方法不同的是,本文网络将多尺度和多阶段思想相结合,在每个阶段以相同的编码-解码结构分块学习复杂分布的雾霾图像不同区域的特征,随后将结果自适应融合,实现现实场景下的有效去雾。
注意力机制主要包括空间维度和通道维度两种。前者通过一个空间转换器对图像中不同区域之间的信息做对应的空间变换,学习其中的关键信息。后者针对不同通道计算毎个通道与关键信息的相关度,作为它们对于最终结果的贡献度或权重。近年来,注意力模块已被用于各种计算机视觉任务。其中,高级计算机视觉包括图像分类、对象检测或分割等,低级视觉领域包括图像去雨、去模糊、去噪、去雾等,均取得了优质的效果。卷积块注意力模块(convolutional block attention module,CBAM)[26]是一种典型的混合域的注意力机制。该轻量级的通用模块,可以无缝地集成到任何卷积网络架构中,完成与原本的网络的协同训练,有广泛的实用意义。网络结构如图1所示。
图1 注意力机制的网络结构示意图
对于输入的特征图,首先通过通道注意力模块了解到什么样的特征有意义,然后空间注意力模块来关注哪里的特征有意义。本文将注意力机制引用到特征融合模块,以完成对上下文特征的自适应感知级联。
本文提出基于感知融合机制的渐进式去雾网络,整体网络由3个阶段组成,每个阶段使用相同结构的编码器-解码器网络结构分块学习输入图像的上下文信息,提取有雾图像不同空间的多尺度特征。对于每个阶段来说,由于不同区域雾分布的情况并不相同,受深度多分片网络[27]的启发,本文在每个阶段分别将图像分割为不同尺寸的补丁块,自下而上分别分割为4块、两块和原始图像块,从局部到整体渐进地完成去雾工作。而对于相邻阶段特征之间信息的交互,不是简单地执行相加的操作,而是引入了一个跨通道感知融合模块级联各阶段提取的特征,完成每个阶段到每个阶段之间边缘结构和细节信息流的高效传递。整体网络框架如图2所示。
图2 算法整体架构
具体而言,第一阶段的编码器以及解码器分别称为Enc-1和Dec-1,第2阶段称为Enc-2和Dec-2,最后阶段为Enc-3和Dec-3。在第1阶段,将原始图像沿水平和竖直方向划分为4个补丁块,Enc-1进行下采样分块,提取输入图像的多尺度特征,下采样操作可以增加感受野,充分学习上下文信息,将提取的特征送入第2阶段并经过Dec-1,在上采样的过程中逐步还原图像。第2阶段将前两个阶段得到的图像垂直划分为两个补丁块,经过Enc-2提取特征结合Enc-1的输出,在PFM中生成新的结果,将结果作为Dec-2的输入进一步还原出图像。第3阶段直接以原始分辨率运行以便于生成空间精确的结果,Enc-3提取的特征联合前两阶段反馈的特征图解码生成最终的清晰图像,整个网络以逐步细化的方式完成端对端的高质量去雾。
其中,在特征传递过程中,所用到的PFM基于导向滤波器[28]和注意力块[29]设计,可以自适应地感知并学习每个阶段子网提取的特征,同时保留图像边缘信息。不同于传统的相加操作,它可以更充分利用每个子网编码器所提取的中间特征,完成每个阶段到每个阶段之间信息流的高效传递,为多阶段的协同工作提供了有力支撑。
接下来,对网络各部分的具体工作做详细的描述。
本文网络中,编码器-解码器的网络结构框架如图3所示,它基于U-Net网络结构设计,包括编码器以及解码器两个部分。
图3 编码器-解码器网络结构
首先,编码器下采样的过程,使用3组相同的单元模块进行特征提取,每个单元模块包含了卷积层、实例归一化层和ReLU激活层,卷积核大小均为3×3,步长为2。随后,解码器采用与编码器卷积层对称的网络结构还原图像。
与传统的U-Net型网络不同的是,受注意力机制的启发,为了让网络自适应地学习不均匀、复杂分布的雾的信息以及不同部分的结构细节,在上采样过程中加入了通道注意力块(channel attention block, CAB)来融合下采样过程输出的特征信息,进一步加入空间注意力块(sapatial attention block, SAB)将不同的权重分配到图像中的不同区域。通道和空间注意力是轻量级结构,并不会导致所提出算法的计算复杂度明显增加。
在整个网络中,本文为每个卷积层之间填充零以保证边界。另外,每个阶段采用跳层连接,以便对各阶段的运行进行深度监督,使训练策略稳定并快速收敛。
相比单阶段去雾网络,本文提出的多阶段渐进式去雾策略通过分块的方法可以学习到不同区域雾的分布特征,随后使用相同结构的轻量级网络逐步对每阶段的图像进行恢复。因此,每一阶段提取的多尺度特征均有助于丰富下一阶段的特征,一般多阶段网络在融合上都采取单纯的相加操作,但各阶段产生的结果信息在单纯的通过相加进行传递的过程中会产生图像结构信息丢失,造成局部去雾不足、图像模糊或去雾过度场景曝光等现象,同时边缘和细节部分也会产生问题。
为了解决这种问题,本文提出跨阶段感知融合机制来实现上下文信息的传递,所提出的网络结构如图4所示。
图4 跨阶段感知融合机制网络结构
如图4所示,跨阶段感知融合模块将导向滤波器与注意力块相结合。其中,导向滤波器是一种保留图像边缘的滤波器,最初用于图像层面的结构信息迁移,本文将导向滤波器嵌入CNN以将前层提取的信息向下一阶段进行迁移,实现边缘结构信息的传递。进一步地,注意力机制可以突出各阶段细节特征,更好地学习不同区域的雾的浓度信息。因此,提出的融合网络对提升最终去雾结果的主观和客观效果都有至关重要的作用。
跨阶段感知融合模块将每相邻阶段的特征图进行有效融合,对于相邻两阶段得到的特征图Spre和S,最终融合结果表示为Sout。与导向滤波器类似,假设融合结果与输入的特征存在线性关系。首先,通过注意力机制分别对Spre和S进行卷积操作,卷积核大小为1×1,随后将结果级联相加再经过ReLU函数激活,进一步,再经过一次卷积操作和Sigmoid激活提取到注意力图T,以帮助确定融合系数。接下来,注意力图T经过均值滤波和一个局部线性模型得到跨阶段导向融合系数A、B。最终融合结果Sout可通过线性模型表示为
Sout=A×Spre+B
(2)
假设跨阶段感知融合滤波器窗口大小为ωk,每一个位置k都有半径为r的窗口,i为像素点坐标,每一个位置对应的系数都不同。因此,需要对不同的窗口系数求平均值,最终的融合结果Sout还可表示为:
(3)
式中:Nk表示每一个滤波器窗口内所有的像素;Ωi是所有窗口的集合。
随后,通过最小化Sout和S的重构误差求解每个位置的系数ak和bk,目标函数定义为
(4)
式中:Ti表示像素点i的注意力权重;λ为正则化参数。
式(4)是一个线性回归模型,使E最小就可以得到ak和bk两个线性参数的最优解。因此,ak和bk可以分别表示为
(5)
(6)
最终,将ak和bk结果代入式(3),可以得到最终的融合结果。
由上述过程可知,导向滤波器基于线性模型保留边缘结构信息,且计算方式简单,并不会增加网络的复杂性。注意力块的引入在保留特征图细节信息的同时也对未知参数的求解做出了很大贡献。在二者的协同下,跨阶段感知融合模块优化了各阶段特征的传递过程,不仅简化了信息流,也使网络的优化过程更加稳定,为提出的多阶段渐进式网络的工作提供了必要支撑。
多阶段渐进式导向去雾级联每个阶段的去雾结果,最终目的是生成接近原始未降质状态的清晰无雾图像。基于图像的判断依赖于结构内容和色彩,因此,本文损失函数由重建损失Lrec和感知损失Lper组成。除此之外,引入颜色损失Lcol进一步优化生成图像主观的效果。使用上述损失函数的线性组合作为优化目标,总损失函数表示为
Ltol=λrLrec+λpLper+λcLcol
(7)
式中:λr、λp和λc是每个损失函数分别对应的权重参数。
(1) 重建损失
重建损失用来表示去雾图像和图像像素空间中真实值之间的保真度。N个样本上的损失函数可表示为:
(8)
式中:Jres为多阶段渐进式网络的输出结果;Jreal为送入网络处理的模糊图像I对应的地面真实图像;Lrec为Jreal和Jres之间的距离。
(2) 感知损失
本文采用感知损失来衡量特征空间中的感知相似度,以提升网络生成图像的视觉效果。将感知损失定义为去雾图像经过所提网络得到的特征图像与真实图像之间的距离,公式为
(9)
式中:φj(Jres)、φj(Jreal)分别表示Jres和Jreal经过VGG16网络[30]第j个卷积层提取到的特征;Lper为它们之间的距离。
(3) 颜色损失
采用神经网络进行图像去雾通常会产生颜色单调、低对比度等情况。针对这种情况,可以通过高斯模糊图像内容来计算细化图像和目标图像之间的色差,以此生成与原图像具有相同颜色分布的图片,颜色损失表示为
(10)
式中:B(Jres)表示输出结果Jres对应的模糊图像内容;B(Jreal)表示地面真实图像模糊处理后的结果。
本文实验的操作系统为Ubuntu平台,在配备AMD Ryzen 1600X图形处理单元和NVIDIA GTX 1080图形处理单元的系统上基于Pytorch[31]深度学习框架开发并训练基于感知融合机制的渐进式去雾网络模型。在训练期间,将损失函数权重分别设置为,λr=1,λp=4e-3,λc=3e-8。另外,采取Adam优化器来更新网络的参数。本文总共训练了1 000个轮次,批处理大小设置为32。
对于训练数据,在实验中采用真实单图像去雾(realistic single image dehazing, RESIDE)[32]大型数据集对网络进行训练,RESIDE数据集包含大量室内外场景的有雾和无雾图像对,且每张无雾图像还对应不同浓度的有雾图像。分别从室外训练集(outdoor testing set, OTS)和室内训练集(indoor testing set, ITS)中随机选取2 000张不同浓度的成对图像送入网络进行训练,以充分学习雾的特征。另外,由于本网络在不同阶段需要将输入图像划分为不同大小的图像块,划分结果应为整数,所以将训练的数据统一调整至大小为(512×520×3)。
本文在RESIDE 数据集的室外测试子集OTS上完成合成数据集上的实验评估。本文定性和定量地将提出的模型分别与基于先验和学习的方法进行对比分析。另外,本文也对相关参数进行了消融分析,以证明其有效性。
(1) 主观视觉分析
为了直观展示不同算法的主观去雾效果,选取不同雾天场景下的图像进行比较。选取对比算法包括DCP[6]、基于物理模型参数估计的深度学习方法,包括端到端去雾网络DehazeNet[2]、AOD-Net[8],以及基于复杂结构神经网络来学习有雾与无雾图像之间映射关系的多尺度增强去雾网络(multi-scale boosted dehazing network,MSBDN)[18]。测试图像分别选取了几个有代表性的户外场景,例如公路、湖边、街道以及高架等。合成数据集上的主观结果如图5所示。
图5 合成数据集上的实验评估
从图5的对比结果可以看出,对于输入的不同有雾图像,即图5(a),选取的对比算法都可以在一定程度上完成去雾任务。但采用传统的基于暗通道先验方法DCP进行去雾后,图像效果变暗,且明显不适用于大面积天空区域,如图5(b)所示。而最早基于深度学习的DehazeNet去雾算法由于对透射率的估值在不同情况下会存在误差,因此,针对较大景深场景结果出现伪影以及色彩失真现象,且伴随局部光晕,不符合人眼视觉预期,如图5(c)所示。如图5(d)所示,AOD-Net存在去雾不完全的情况。而MSBDN在合成测试集上表现相对较好,去雾结果接近地面图像,但仍忽略了部分细节的恢复,没有充分考虑边缘部分,特别是针对选取的具有复杂背景信息的图像。综合来看,本文算法能够在合成的测试数据上取得良好的去雾效果,无论是在色彩、亮度还是图片细节上均很好地达到了与地面图片一致的主观视觉预期效果,具有明显的视觉优势。
(2) 客观量化分析
为了进一步衡量本文所提出的基于感知融合机制的渐进式去雾网络的有效性,本文将对比结果进行了客观的量化评价。首先,选取客观指标评估去雾后的图像质量;其次,对所提网络中的参数进行消融研究;最后,从算法效率进行分析,证明网络的实时性。
首先,客观评价指标分别选取峰值信噪比(peak signal to noise ratio, PSNR)来检验图像细节信息的完整度,以及选取结构相似性(structural similarity, SSIM)来反映图像结构完整性,对比算法包括基于先验的算法DCP[6]、CAP[5],基于物理模型参数估计的深度学习方法(DehazeNet[2]、AOD-Net[8])以及最新端到端基于不同结构的神经网络来学习有雾无雾之间映射关系的算法GridDehazeNet[14]、MSBDN[18]。表1显示了上述算法在OTS数据上的客观指标比对结果。
表1 不同去雾方法客观比较结果
实验证明,本文算法在OTS室外测试集上,与最新的算法的客观指标结果相比,PSNR和SSIM平均值都有了很大的提升,PSNR从目前最佳的32.09提升至33.02,SSIM相比表现最好的GridDehazeNet的0.981 9提升至0.986 5。
本文进一步通过消融实验证明损失函数中所引入的参数对算法鲁棒性的提升作用。主观视觉效果难以轻易分辨,因此通过客观指标PSNR以及SSIM进行进一步分析。相关对比结果如表2所示。
表2 损失函数对比
从表2可以看出,引入损失函数权重参数λr、λc能够提升图像去雾的结果,进一步增强算法的性能。
另外,为了满足真实去雾任务中的实时性要求,分别计算不同算法处理单幅图像所需的平均运行时间。对于运行效率的评估,DCP、CAP算法在Matlab上运行,其余算法均在Pytorch上实现。运行时间对比数据如表3所示。
表3 运行时间对比
从表3中的对比结果可以看出,本文所提算法处理单幅图像所需要的时间更短,去雾效率更高,约为目前高效算法MSBDN的50%,即仅需要0.072 s,可以满足实时去雾需求。
真实场景下的雾具有强复杂性和不定性,因此为了进一步证明网络的普适性,需要在自然拍摄的有雾图像上进行评估。本文选取了真实雾天场景下所拍摄的含有复杂雾特征分布的图像来证明所提算法可用于智能交通领域,对比算法包括DCP[6]、CAP[5]、基于物理模型参数估计的深度学习方法,包括DehazeNet[2]、AOD-Net[8],以及端到端基于不同结构神经网络来学习有雾与无雾图像映射关系的算法,包括GridDehazeNet[14]、MSBDN[18]。视觉对比结果如图6、图7所示。
图6 不同算法在真实室外数据集上的图像去雾结果1
图7 不同算法在真实室外数据集上的图像去雾结果2
由图6、图7可以看出,面对真实的室外场景,传统方法DCP和CAP能够有效消除图片中的雾,但均存在问题。DCP在没有大面积亮度的区域去雾效果不错,但难以摆脱无法处理天空区域的问题;CAP方法去雾画面偏暗;DehazeNet产生伪影和光晕;AOD-Net去雾不完全;Grid-DNet和MSBDN虽然能够去雾,但画面清晰度不够,许多细节丢失,难以辨别远处的路况状态。相比其他神经网络去雾方法,本文算法不仅可以很好地还原图像清晰度,还可以有效地恢复图像中复杂的背景信息。因此,本文算法在智能交通领域,能够帮助车载辅助驾驶终端对路况信息进行准确判断。
在雾霾天气下,户外图像或视频采集系统对去雾算法的实时性要求很高。因此,本文提出基于感知融合机制的渐进式图像去雾算法。将降质图像恢复的任务分解为渐进式的子任务,在每个阶段使用相同结构的轻量级的网络分块学习多尺度特征。这种基于渐进式的去雾策略赋予了网络处理具有复杂背景的有雾图像的能力,也进一步提高了网络的效率。在此基础上,为了有效地整合多个去雾阶段的中间输出,更好地实现上下文特征信息的有效融合,引入跨阶段感知融合机制为相邻阶段多尺度特征分配权重,级联多个去雾模块完成特征的传递。该机制不仅可以自适应融合浅层和深层信息,同时也保留了图像边缘和结构细节信息,为多阶段网络的有效工作提供了必要支撑。实验证明,与现有主流去雾算法相比,本文提出的网络模型具有很高的鲁棒性,且能够实时去雾,有望被应用于智能交通等现实领域。