融合上下文感知注意力的低光图像去雾网络
2023-05-11王柯俨成吉聪黄诗芮蔡坤伦王威然李云松
王柯俨,成吉聪,黄诗芮,蔡坤伦,王威然,李云松
(西安电子科技大学 综合业务网理论及关键技术国家重点实验室,陕西 西安 710071)
1 引 言
受空气中悬浮的灰尘、水滴和烟雾等颗粒的影响,光线会发生吸收和散射等作用,使得在雾霾天气下采集的户外图像质量受到严重损伤,常常表现出对比度低、信息辨识性差等情况,严重影响了后续高级视觉处理任务的性能。为了解决这一问题,国内外学者提出了众多的图像去雾算法,但现有算法大多是针对白天自然光照较均匀充足的场景,而忽略了夜间或清晨等光照较弱且不均匀的低光照雾霾场景[1]。由于光照强度低且光照环境复杂,导致在低光照雾霾场景下获取的图像质量更差,细节更模糊,色偏更严重,去雾难度更大[2]。因此,研究低光照雾霾场景的去雾问题更具现实意义和挑战性。
目前针对低光照雾霾场景的图像去雾算法相对较少,并且大都为传统方法,其根据建模的来源可分为两类:① 基于大气散射模型及其改进模型。例如文献[3]提出了一种以图像滤波为导向的夜间去雾方法,通过人为选择不同参考图像以模拟夜间雾图的真实效果;文献[4]通过对低光照雾霾场景进行光照估计,并使用暗通道先验算法进行去雾;② 根据低光照场景的特点,结合多光源和辉光等因素,建立适合低光照场景成像规律的模型。例如文献[5]通过最大反射率先验建模,估计环境光照和透射率,进而得到清晰图像;文献[6]提出了一种变分分解模型,将夜间朦胧图像同时分解为结构层、细节层和噪声层,并通过物理模型的反演将去雾得到的结构层和增强的细节层集成为无雾图像。尽管上述方法对部分场景取得了较好的去雾效果,但对于复杂的低光照雾霾场景,传统方法的建模能力有限,难以适应场景的多样性,导致恢复图像质量欠佳,易产生严重的色偏。
近年来不少研究人员利用深度学习强大的特征挖掘和表示能力,构建神经网络来实现低光照雾霾场景下的图像去雾,但是受限于当前低光雾霾场景去雾的大规模训练集较少,基于深度学习的低光图像去雾方法仍然较少。文献[7]提出了一种端对端的低光去雾网络(Haze Desity Prediction Network,HDPNet),并将网络生成的特征图带入大气散射模型中,最终获得无雾图像。文献[8]同时利用灰度模块和颜色模块对图像进行去雾,通过将灰度模块输出的灰度无雾图像引导彩色模块,最终输出彩色无雾图像。文献[9]提出了一种解耦融合网络,通过该网络可根据雾霾图像自适应解耦估计透射率图和大气光值,并结合大气散射模型最终生成清晰的无雾图像。
相比于传统算法,现有的深度学习去雾算法性能更优,泛化能力更强,但仍存在如下两点问题:① 缺乏对全局上下文依赖关系的考虑。由于低光照雾霾场景下图像质量退化更严重,需要结合全局语义信息才能更准确地恢复图像。而现有去雾网络大都通过卷积层的堆叠实现特征提取,其感受野有限,通常只能关注到局部特征,而忽略了全局视角下的上下文依赖关系,导致网络对重要特征的辨识能力较弱,造成部分去雾图像出现细节丢失、色调偏白和去雾不彻底的现象;② 缺乏对图像色偏的有效校正。由于低光照雾霾场景下光照强度低且常存在非单一光源,去雾图像易出现严重的色偏现象,这一问题仅通过网络模块设计难以有效解决。
针对上述问题,笔者提出了一种融合上下文感知注意力的低光图像去雾网络(Aggregated Context-aware Attention Network,ACANet)。为了解决图像细节重建的问题,设计了上下文感知注意力机制,克服了传统卷积层只能提取局部特征的不足,可通过全局视角感知并辨析重要特征信息。具体地,首先引入了层内上下文感知注意力模块,依次从通道维度和空间维度结合全局视角辨识和加权输入的浅层特征,使得输出的高级特征具备全局上下文视野,有效增加了重要特征的权重,从而驱使网络更关注于图像纹理信息;其次,引入层间上下文感知注意力模块,通过投影操作将高级特征映射到信号子空间,并与原始低级特征进行融合,有效结合了不同感受野下的深层次细节信息,进一步提升了网络对图像细节信息的重建能力。此外,为了更好地解决色偏问题,网络还引入CIEDE2000色偏损失函数,通过在CIELAB色彩空间对图像色调进行约束,迫使网络学习图像退化相关的色彩特征,有效减少了恢复图像的色偏。笔者在3R、HDP-Net低光数据集上对所提网络进行了训练和测试,实验结果表明,所提网络对低光图像去雾效果更好,恢复图像的细节更清晰,色彩还原度更好。
2 相关工作
笔者提出的融合上下文感知注意力的低光图像去雾网络(Aggregated Context-aware Attention Network,ACANet),是以(Multi Scale Boosted Dehazing Network,MSBDNet)[10]网络为基准网络。MSBDNet是一种基于U-Net架构的具有密集特征融合的多尺度增强去雾网络,是针对正常光照场景去雾问题而设计的,其网络总体架构如图1所示。MSBDNet网络的核心有两个,一是在网络解码端部分引入了boosted增强策略[11],用以逐步恢复无雾图像;另一个是基于反投影[12]反馈的DFF模块,用以解决U-Net结构中下采样部分产生的空间信息压缩丢失的问题,使得解码端能够更有效提取不同层次的特征信息。
图1 MSBDNet网络架构
虽然MSBDNet对正常光照场景下的雾图具有良好的去雾效果,但网络设计中并未考虑低光环境下雾霾图像光照强度低、光照不均匀等因素,以致对低光图像去雾会产生色偏及纹理信息丢失的现象。因此,笔者在MSBDNet网络的基础上,设计了融合层内和层间上下文感知注意力模块,以实现对细节信息更好的复原;在网络训练过程中引入了色偏损失函数,以进一步提高网络对色彩信息的学习能力。
3 融合上下文感知注意力的网络总体架构
笔者提出的融合上下文感知注意力的低光图像去雾网络(ACANet)的整体架构如图2所示。ACANet网络采用多尺度编解码结构,从上到下共5层;由于网络第2层到第4层结构完全相同,故图中只画出了第2层各模块结构。在网络第2层到第5层的编解码端都新增了文中提出的层内上下文感知注意力模块;在网络第2层到第4层的跳跃连接处引入了文中提出的层间上下文感知注意力模块;在网络第1层编解码端放置了轻量注意力模块[13]。通过层内和层间上下文感知注意力模块的共同作用,网络能够更好地从全局视角感知重要特征信息,使恢复图像具有更丰富的纹理细节,达到更好的去雾效果。
图2 ACANet网络架构
3.1 层内上下文感知注意力模块
由于低光照雾霾场景下图像退化严重,去雾难度大,受有限的卷积感受野影响,仅利用卷积网络提取的局部特征关系难以有效复原图像的纹理细节信息,导致恢复图像产生细节丢失、色调偏白和去雾不彻底等现象。为解决上述问题,使网络突破局部视野的限制,能够更好地从全局上下文视角辨识重要特征关系,ACANet引入层内上下文感知注意力模块,依次从通道维度和空间维度聚焦上下文特征信息,旨在利用丰富的上下文信息对重要特征进行加权,使得输出的深层特征具有全局视野,从而使网络能够更好地辨识重要特征依赖关系,更好地过滤非重要信息,进而提升网络的性能。层内上下文感知注意力模块的总体结构如图3(a)所示,包含通道上下文感知模块和空间上下文感知模块。
(a) 层内上下文感知注意力模块
3.1.1 通道上下文感知模块
通道上下文感知模块聚焦于通道信息;该模块从通道维度上对重要特征加权,分别从局部通道、全局通道生成注意力掩码矩阵,输出对通道处各像素点的加权响应,使网络更加专注于通道有效信息。具体结构如图4(a)所示。通道上下文感知模块输入为C×W×H的原始特征块,在经过左半部分卷积及调整大小后,输出为C×WH的特征矩阵A以及WH×C的特征矩阵B,相乘后得到全局通道注意力信息掩码矩阵C,其大小为C×C;右半部分在经过池化及卷积操作之后,得到一个大小为C×1×1的局部通道注意力信息掩码矩阵D。将矩阵C与D相乘后的通道矩阵E作为权重矩阵,其每一个元素信息均包含了所有通道和所有像素的信息。再将矩阵E与原始输入特征块逐像素相乘,最终得到大小为C×W×H的高级输出特征块。具体操作可表示为
图4 通道、空间上下文感知模块结构图
D=f[MaxPool(X)]+f[ AvgPool(X)] ,
(1)
Y=(A·B)·D⊗X,
(2)
其中,X为输入原始特征,f(·)表示卷积操作,MaxPool(·)表示自适应最大池化操作,AvgPool(·)表示自适应平均池化操作,⊗表示逐像素相乘,·表示矩阵相乘,Y表示输出特征块。
3.1.2 空间上下文感知模块
空间上下文感知模块则聚焦于感知空间维度的局部上下文和全局上下文,并从空间维度对重要信息进行加权,通过生成局部空间注意力掩码矩阵及全局空间注意力掩码矩阵,输出对空间位置各像素点加权响应,使网络更加关注于图像的空间信息,具体结构如图4(b)所示。其结构与通道上下文感知模块相似,主要有两处差异,第1个差异是其右半部分经过池化操作后再使用卷积融合成是尺寸为1×W×H的局部空间注意力信息掩码矩阵D;另一个差异是其左半部分输出的是大小为WH×WH的全局空间注意力信息特征矩阵C。最终将矩阵C与D相乘后的掩码矩阵E作为权重矩阵,对输入特征进行加权。具体操作可表示为
D=f[ MaxPool(X);AvgPool(X)] ,
(3)
Y=(A·B)·D⊗X,
(4)
其中,“;”为拼接操作。
3.2 层间上下文感知注意力模块
层内上下文感知注意力模块旨在解决同一层编解码端的信息传递问题,而多尺度编解码网络的不同层由于感受野大小和网络结构不同,可以提取到不同尺度的互补特征。为了更好融合不同感受野下的重要互补特征,进一步实现网络不同层间信息的重构[14],ACANet在跳跃连接处引入层间上下文感知注意力模块,以获得不同层之间更高质量的融合特征。具体结构如图3(b)所示。将原始低层特征X1与高层特征X2作为输入特征图送入层间上下文感知注意力模块,经下采样后进行通道维度拼接操作;然后利用投影模块[15]将高层特征X2映射到低层信号子空间,并将投影模块的输出结果进行上采样操作,以恢复原始空间维度尺寸;最后通过协注意力模块[16]将低层特征丰富的细节信息嵌入到上采样后的高层特征中,得到融合不同层间上下文的输出特征图Y。
3.3 损失函数
为进一步解决图像复原产生的色偏问题,引入了CIEDE2000色偏损失函数,使网络在CIELAB色彩空间对图像色调进行约束;同时,为保证恢复图像其整体主观视觉效果较好,网络也引入均方误差损失进行约束。因此,文中所采用的损失函数为均方误差损失与色偏损失之和,总损失公式为
L=Lmse+Lc,
(5)
其中,Lmse为均方误差损失,Lc为色偏损失。
3.3.1 均方误差损失
均方误差损失又称为L2损失,通过计算预测值与真实值之间的均方误差,进而对模型优劣进行衡量。因此也可以看成是对欧氏距离的计算,具体计算公式为
(6)
其中,n表示输入的总数据个数,X表示预测值,Y表示真实值。
3.3.2 基于CIEDE2000[17]的色偏损失
(7)
4 实验结果与分析
为了验证文中网络的性能,实验选用3R低光数据集[18]中8 970幅图像和HDP-Net夜间黄光数据集及非黄光数据集[7]中各10 000张图片对网络进行训练和测试。
网络使用Pytorch平台进行训练和优化,并使用Adam优化器和反向传播算法对参数进行更新迭代。实验针对不同的数据集定义了不同的初始学习率,并采用动态学习率优化网络参数。其中,3R数据集初始学习率为0.000 2,HDP数据集初始学习率为0.000 1,并且每经过100轮训练,网络学习率降为之前的十分之一。具体网络训练参数如表1所示。
表1 文中网络训练参数
实验所用计算平台如下:CPU为Intel(R) Core CPU i9 10900X,主频3.7 GHz;显卡为Nvidia GeForce RTX3090,显存24GB;操作系统为Ubuntu18.04,CUDA版本为11.3,Pytorch版本为1.10。
为证明文中所提算法的有效性,笔者通过对比实验、消融实验对网络进行验证,并选择峰值信噪比(Peak Signal-to-Naise Ratio,PSNR)和结构相似性(Structural SIMilarity,SSIM)作为客观评价指标,其最终计算结果取平均值。
4.1 对比实验
笔者选取5种去雾算法与文中低光去雾网络进行对比。由于现阶段基于深度学习的低光去雾网络暂未开源代码,且采用的数据集不同,故对比方法选取3种端到端的正常光照去雾网络—MSBDNet[10]、GCANet[19]、FFANet[20],其均在正常光照场景去雾中展现了优秀的性能。为保证对比公平,用新的数据集对3种网络重新训练,并都引入了色偏损失函数。此外,笔者也选取了两种开源的传统低光去雾算法进行比对。表2展现了在3R数据集以及HDP-Net数据集上,包含文中网络在内的6种去雾算法客观指标测量结果。其中,加粗数值代表同一数据集下性能最好的结果,而加下划线的数值则代表性能次之的结果。
表2 各算法去雾结果客观指标
从表2可以看出,在3R数据集上,笔者所提算法在PSNR、SSIM指标上均高于其他算法,且相对于基准网络MSBDNet,PSNR提升了2dB左右,SSIM提升了0.01左右;在HDP数据集上,PSNR指标仍高于其他算法,由于网络缺少优化结构信息的损失函数,SSIM指标排名第二,略低于GCANet,但相对于基准网络MSBDNet,文中方法的PSNR和SSIM指标均有提升。由于低光雾霾场景复杂多变,而传统去雾算法多依赖于物理模型,泛化能力较差,导致其在3R数据集、HDP数据集中去雾效果较差。
图5给出了3R数据集上不同算法的去雾效果图。通过主观对比可以看出,在色彩恢复方面,其他5种对比去雾算法对天空部分的处理均不理想,其中两个传统方法在天空部分出现了严重的光晕和色偏,而MSBDNet在天空区域的颜色偏白,而文中算法对天空色彩恢复良好;在纹理信息恢复方面,从第2行、第4行可以看出,文中算法对纹理信息的恢复效果更好,其结果更接近于原始图像。由此可见,针对低光合成数据集,文中算法表现优异。
图5 3R数据集上不同去雾算法对比图
图6对比了不同算法在真实数据集上的去雾效果图,利用3R数据集训练得到的权重对真实低光照雾图进行去雾。通过主观对比可以看出,在色彩恢复方面,其他5种算法对灯光的恢复均出现了严重的色偏现象,MSBDNet和GCANet更是将灯光颜色还原成了紫色,仅文中算法对灯光的复原更接近于真实色彩;在纹理细节方面,相较于其他算法产生的辉光效应,文中算法对道路标志的恢复更好,其边缘区域过渡更自然,纹理信息更清楚。综上所述,针对真实低光照场景雾图,文中算法表现更优。
图6 真实数据不同去雾算法对比图
表3给出了6种算法的复杂度统计结果。为比较公平,笔者将3R数据集裁切为大小为512×512像素的小图,在RTX3090显卡上测试网络的运行速度、运算量(FLOPs)和参数量等指标。结合表2、表3可以看出,文中网络具有最好的去雾性能,但在算法复杂度方面,由于引入了上下文感知注意力模块,文中网络相较于基准网络MSBDNet,其运行时间较长,但网络总体运算量基本持平,参数量略有下降。因此,如何在保持良好性能的前提下,设计轻量化去雾模型以满足实时处理要求,有待进一步研究。
表3 各算法复杂度统计
4.2 消融实验
消融实验1为验证文中所提模块的有效性,笔者在基准网络MSBDNet(记为Baseline)的基础上分别引入了层内、层间上下文感知注意力模块,并在3R数据集上进行训练测试,计算PSNR、SSIM指标,和文中网络进行对比。
从表4可以看出,色偏损失的引入使得网络C的PSNR相较于(网络B)Baseline提高了1.18 dB,有效证明了色偏损失函数对图像色彩复原有着较好的效果。在此基础上,层内上下文感知注意力模块的引入使得网络D的PSNR相较于网络C又提高了0.45 dB,从而证明了编解码端该模块的有效性,而层间上下文感知注意力模块的引入使得网络E的PSNR较网络C又提高了0.47dB,有效验证了跳跃连接处该模块对网络性能的提升,而通过上述注意力模块的联合使用更是使得文中网络F的PSNR较基准网络Baseline提高了2.16 dB,较网络C提高了0.98 dB,充分说明了笔者所提上下文感知注意力模块对网络性能的有效提升。
表4 消融实验1结果
图7给出了3R数据集上消融实验1的效果对比图。从第1张结果图可以看出,色偏损失的引入使得图像色彩更接近于真实图像,层内上下文感知注意力模块能够使得网络学习到全局信息,对物体的边缘过渡区域处理较好,加深了物体背景信息,而层间上下文感知注意力模块使得高楼处纹理信息更加清楚,增强了图像的细节纹理信息。从第2张结果图可以看出,单独的层内上下文感知注意力模块同样也会出现色偏现象,但层间上下文感知注意力模块对天空区域处理效果较好,通过两种模块的结合使用,使其对天空的处理更接近于原始清晰图像。因此,文中所结合使用的各模块均提升了网络的去雾效果。
图7 消融试验1结果对比
消融实验2为验证网络层数对于网络性能的影响,笔者在3R数据集上对不同层数的网络进行了训练和测试,客观性能指标结果如表5所示。当层数较少时,由于网络对特征的抽象能力较弱,难以获取更为全面的语义信息,使得复原后的图像指标有所下降;而当层数较多时,由于抽象程度过高,导致信息在多次卷积的过程中出现丢失,同样会造成指标下降。因此,文中所选择的5层网络结构实现了最优的去雾效果,达到了最好的性能指标。
5 结束语
针对当前低光去雾网络聚合全局信息不足,色偏影响严重等问题,笔者提出了一种融合上下文感知注意力的低光图像去雾网络,使网络能够更好地考虑上下文特征信息。同时,引入色偏损失函数校正图像色偏。实验证明,文中所提的算法在两种数据集上,两种客观指标都取得了较好的效果。在主观视觉上,文中算法有效地减少了色偏,增强了图像的纹理细节,使恢复图像更清晰自然。但文中算法仍存在一些不足,如算法的时间复杂度较高。因此,下一步研究将更着重于模型的轻量化实时处理,考虑模型在真实场景的泛化性和鲁棒性,实现更贴合实际的应用研究。