APP下载

基于特征差异的多尺度特征融合去雾网络研究

2024-04-23刘彦红杨秋翔胡帅

计算机工程 2024年4期
关键词:注意力损失卷积

刘彦红,杨秋翔,胡帅

(中北大学软件学院,山西 太原 030051)

0 引言

随着计算机视觉的快速发展,各种图像处理技术不断改进和拓展。在视频监控、自动驾驶等户外视觉系统中,图像采集常常受到恶劣天气尤其是雾霾天气的影响,这种影响会降低能见度和视觉体验,同时极大程度地降低后续图像识别、分割、分类等效果。雾霾是一种普遍存在的天气现象,由于空气中悬浮的微小颗粒散射、吸收或反射光线等行为对光线传播造成干扰和阻碍,导致空气中物体的对比度、颜色等特征衰减,从而影响人类视觉观感。因此,需要图像去雾技术消除雾霾区域,提高图像的质量。

近年来,基于深度学习的图像去雾技术成为去雾领域的主要研究方向[1],该类技术因其强大的特征学习和上下文信息提取能力,可以自动学习模型参数,得到雾霾图像与清晰图像之间的映射关系。目前,基于深度学习的图像去雾技术主要分为两大类:一类是借助物理模型和先验知识的图像去雾方式,通过分析图像中的色彩、亮度、对比度等特征,估计雾霾的程度和分布,进而采用适当的算法进行修复和增强,或通过大气散射模型等图像处理技术消除图像中的噪声和失真,最终得到清晰自然的图像;另一类是完全神经网络的端到端去雾方式[2],该类方法不需要额外的先验知识就可直接生成清晰的无雾图像,具有更好的自适应性和鲁棒性。

目前,端到端的图像去雾技术仍然存在很多问题:一是计算成本高,因其涉及较复杂的模型架构和大规模的数据训练,需要耗费大量的计算资源;二是在真实场景中,图像去雾效果往往不理想,面临着质量损失、去雾估计不准确、多尺度处理等问题。

为了使图像去雾网络能够充分捕获多尺度之间的信息差异,同时融合坐标维度、通道维度等多方面信息,本文在FFA-Net[3]模型的基础上进行改进,提出一种基于特征差异的多尺度特征融合去雾(FD-CA dehaze)网络。引入特征差异(FD)模块用于捕获不同阶段雾霾的差异信息。设计一种有效坐标注意力(ECA)模块,用于减轻特征融合过程中位置信息丢失的问题。提出一种双注意力(D-CA)模块,其将通道注意力(CA)[4]和ECA模块相结合,CA关注通道之间的相关性,与更加关注位置信息和空间信息的ECA相结合能够获得更加全面和准确的特征表达,从而提升模型的性能和泛化能力。在此基础上,修改损失函数,分别采用L1损失函数和感知损失函数,L1损失函数用于衡量模型预测结果与真实标签之间的差异,感知损失函数可以使模型更好地学习图像的内容特征,还原图像高频信息。在综合目标测试集(SOTS)和混合主观测试集(HSTS)上进行实验,以验证本文所提FD-CA dehaze网络的去雾效果。

1 相关工作

1.1 基于物理模型和先验知识的图像去雾

大气散射模型[5]成像原理如图1所示(彩色效果见《计算机工程》官网HTML版,下同)。空气中存在很多尘埃、水滴、烟雾、霾、气溶胶物等颗粒物质,光线与该类物质碰撞之后方向发生一定的偏移,导致光的散射和衰减,人眼或照相机接收到的光强度降低,从而影响物体成像。

图1 大气散射模型成像原理Fig.1 Imaging principles of atmospheric scattering model

大气散射模型公式如下:

I(x)=J(x)t(x) +A(1-t(x))

(1)

t(x)= e-βd(x)

(2)

其中:I(x)表示有雾图像;J(x)表示原始图像(无雾图像);A是全局大气光强;t(x)是透射率,可由式(2)进行计算;β是全散射系数;d(x)为场景深度。

在式(1)中,I(x)是已知的,其余变量均为未知参数,不太易于求解,通常通过先验知识求解透射率t(x),然后根据模型或其他方法求解全局大气光强A和无雾图像J(x)。

基于先验知识的去雾算法主要包括暗通道先验算法[6]、颜色衰减算法[7]等。随着深度学习的不断发展,许多学者将其与图像去雾相结合,提出很多优秀的算法。文献[8]认为介质传输图估计的好坏在很大程度上影响了去雾效果,其提出基于神经网络的端到端学习和估计介质传输图系统DehazeNet,从而恢复无雾图像。文献[9]改变了以往从粗到细实现去雾的方式,对不同雾度采用不同级别的监督方式进行学习,提出水平感知渐进网络LAP-Net。文献[10]改变以往分别估计大气散射模型中透射率和大气光强2个参数的方式,首次提出一体式估计参数的端到端图像去雾网络AOD-Net。文献[11]发现仅仅使用基于先验的去雾方法会产生伪影,因此,将基于学习的方式与该方法相结合,提出基于暗通道先验去雾(DCP)网络的两阶段去雾框架RefineDNet,使用不成对的弱监督方式训练网络。文献[12]考虑到去雾领域先验知识等信息的缺乏,预训练出一个离散码本,用于封装高质量先验,并通过一对编解码器来构建去雾网络RIDCP。

1.2 完全神经网络的端到端图像去雾

由于物理模型的准确性、先验知识的表达能力等存在限制,越来越多的学者采用完全神经网络的图像去雾方式。文献[13]为减少扩张卷积造成的网格伪影,提出门控上下文聚合网络GCANet,通过平滑扩张残差模块聚合上下文信息,利用门控融合子网模块融合不同级别的特征,并将雾度残差加入到网络中,得到了较好的复原效果。文献[14]通过平滑空洞卷积提出基于残差注意力的去雾网络,该网络在编码器-解码器的基础上添加多尺度特征提取和特征融合模块,以多模块组合形式实现端到端图像去雾。文献[15]在网格网络的基础上提出端到端的去雾卷积神经网络GridDehazeNet,网络由3个模块组成,可训练的预处理模块提供多样性的输入,基于注意力的主干模块有效地融合不同尺度特征,后处理模块减少输出图像的伪影。文献[3]提出一种新颖的特征注意力模块用于去雾网络FFA-Net,该网络结合通道注意力和像素注意力,并以自适应学习的方式赋予特征不同的权重参数,在特征融合的基础上让网络更加专注厚雾等重要特征,产生了很好的去雾效果。

生成对抗网络是一种无监督的机器学习方法,主要包含生成器和鉴别器两部分。近些年,很多学者将生成对抗网络用于图像去雾领域,取得了很好的效果。文献[16]在生成器和鉴别器中都使用沙漏形网络,生成器基于U-Net设计含跳层结构的卷积神经网络,并使用绝对损失函数,所提网络能够有效地应用于图像去雾和加雾任务。随着ViT(Vision Transformers)[17]这一神经网络架构的提出,许多学者将其应用于高级视觉任务。文献[18]提出一种改进Swin的图像去雾神经网络DehazeFormer,通过修改归一化层、激活函数、空间信息聚合方案等,在去雾成本和去雾效果方面相对其他网络得到提升。

2 FD-CA dehaze网络

本文提出的FD-CA dehaze网络如图2所示,该网络划分为2个阶段,第一阶段将有雾图像作为网络的输入,经过一个用于提取浅层信息的卷积层,将特征图传至多尺度特征融合模块中,多尺度特征融合模块由残差卷积注意力(RC)模块、FD模块、ECA模块组成,之后连接每个模块产生的特征信息,再经过第二阶段中的D-CA模块和2个卷积模块的处理,最后通过跳跃连接生成去雾图像。

图2 FD-CA dehaze网络结构Fig.2 Network structure of FD-CA dehaze

2.1 RC模块

RC模块网络结构如图3所示,由n个3×3卷积、ReLU、3×3卷积和特征注意力模块组成。其中,特征注意力模块由CA模块和像素注意力(PA)模块[19]两部分组成,CA可以使网络关注不同通道的特征,PA使模型关注图像中的高频细节(如厚雾)等像素特征。具体来说,首先使用3×3的卷积层对输入图像进行特征提取;然后通过ReLU函数进行非线性变换,进一步提高特征的表达能力;之后再次使用3×3的卷积层进行特征提取,特征注意力模块对特征图中的不同区域进行加权处理;最后通过跳跃连接将原始数据与处理后的数据相加,捕获并保留更多的信息和细节。

图3 RC模块结构Fig.3 RC module structure

CA通过全局平均池化将全局空间信息转化为信道描述符,然后经过卷积、ReLU和Sigmoid操作,将初始输入与通道CA进行元素乘法运算。与CA类似,PA的输入为通道CA的输出结果,首先经过2个具有ReLU和Sigmoid激活函数的卷积层,将其从C×H×W转换为1×H×W,再将输入与PA输出结果进行元素相乘,得到特征注意力模块的输出结果。在本文中,n的值设置为19。

CA实现过程可由式(3)~式(6)表示:

(3)

y2=Conv(ReLU(Conv(y1)))

(4)

y3=Sigmoid(y2)

(5)

c=y3⊗x

(6)

PA实现过程可由式(7)~式(9)表示:

y4=Conv(ReLU(Conv(c)))

(7)

y5=Sigmoid(y4)

(8)

p=c⊗y5

(9)

其中:Xc(i,j)为坐标(i,j)处第c个通道的值;global_pool为全局池化函数;⊗为逐像素相乘。

2.2 FD模块

去雾图像常常存在边缘界限模糊、噪声较多等问题,而文献[20]研究发现,添加了FD模块的网络在逐像素点相加的过程中可以有效获取差异信息,减少雾霾的影响,因此,本文将其引入至本网络的多尺度特征融合模块中。FD模块主要由2个相邻的残差卷积注意力块差值组成,优点是能够帮助模型学习到更精细的特征表示,从而提高性能。上述过程可由式(10)、式(11)表示:

FFD,1=RRC,2-RRC,1

(10)

FFD,2=RRC,3-RRC,2

(11)

2.3 ECA模块

已有研究发现注意力模块(如SE[21]、CBAM[22]、Coordinate Attention[23]等)能够有效提升模型性能。本文改进了Coordinate Attention注意力,在Coordinate Attention中,全局池化会造成位置信息丢失,本文提出将通道注意力与位置信息相融合的注意力方式,在捕获跨通道信息的同时也能获取方向感知和位置敏感信息。但是,由于该融合方式采用的全局池化常常会忽略局部细节和多尺度信息,为此,本文提出一种有效坐标注意力模块ECA,将最大池化选择分支引入到通道注意力中,将全局池化和最大池化并联,并使用参数α和β确定其比例,其中,α、β总和为1,本文将α、β的值均设置为0.5。ECA模块如图4所示。

图4 ECA模块结构Fig.4 ECA module structure

在ECA注意力模块中,主要分为ECA坐标信息嵌入和ECA注意力生成两部分:前者将全局池化信息和最大池化信息压缩在通道描述符中的内容分解为水平和垂直2个方向,形成一对方向感知特征图;后者充分利用获取到的位置信息,准确突出厚雾或高频区域。

2.3.1 ECA坐标信息嵌入

全局池化将整个特征图内的信息压缩到一个通道描述符中,常常无法准确保留不同的位置信息。最大池化能保留部分位置信息,但仍然存在位置信息丢失和不变性的问题。位置信息对于恢复清晰图像和准确估计深度图非常关键,因此,将全局池化、最大池化与位置信息相结合可以更好地帮助模型理解图像空间结构,保留重要的局部特征以及获取不同层次的特征表达。具体而言,为了更好地了解雾的分布情况,本文将全局池化和最大池化分解为一对一维特征编码的形式。对于输入的特征X,本文采用2个空间范围的池核 (H, 1) 和 (1,W),分别在水平和垂直坐标上对每个通道进行编码,其中,高度为h的第c个通道的输出可表示为:

(12)

其中:α和β均为0.5。

同理,宽度为w的第c个通道的输出如下:

(13)

2.3.2 ECA注意力生成

通过在x轴和y轴方向上的分解,得到了一个方向感知特征图对。现在需要对2个方向上的信息进行融合,并忽略一些如薄雾和低频等不重要的特征,同时充分考虑通道间的信息。因此,本文使用Concat和1×1卷积方式进行连接,首先通过归一化和非线性激活函数处理2个方向融合的特征,归一化可以避免梯度消失并加快收敛速度,使用Sigmoid激活函数可以提高网络模型的非线性能力;之后,再次将特征图划分成X和Y这2个方向上的一维张量,表示为Ih和Iw;最后,通过卷积和Sigmoid激活函数分别处理一维张量,并将其融合为二维图像。

上述过程可由式(14)~式(18)表示:

I=act(BN(Conv(cat(Ac,Bc))))

(14)

Ih,Iw=split(I)

(15)

fh=Sigmoid(Conv(Ih))

(16)

fw=Sigmoid(Conv(Iw))

(17)

y(i,j)=x(i,j)*fh(i)*fw(j)

(18)

其中:I是中间特征图,I∈C×(H+W),其编码了水平方向和垂直方向的空间信息;Conv表示1×1卷积;fh∈C×H;fw=C×W;y(i,j)即为最终的ECA注意力。

2.4 D-CA模块

D-CA模块结构如图5所示,由CA模块、ECA模块及跳跃连接串联而成,该种组合方式可以更好地利用输入图像中的空间信息和通道信息,并且获取有用的位置信息,从而提升模型的性能和泛化能力。

图5 D-CA模块结构Fig.5 D-CA module structure

2.5 损失函数

本文损失函数由L1损失和感知损失组成,总损失函数如式(19)所示:

L=L1+λLP

(19)

其中:L1表示L1损失函数;LP表示感知损失函数;λ表示2个损失函数之间的相对权重,将其设置为0.04。

2.5.1 L1损失函数

L1损失函数是预测值FD-CA(Ih)与真实值Igt之间距离的平均值,如式(20)所示:

(20)

其中:ϖ为FD-CA dehaze网络中的参数;Igt代表ground truth;Ih代表有雾图像。

2.5.2 感知损失函数

感知损失函数通过预训练的神经网络来计算真实图像与输出图像之间的差距,本文使用VGG16[24]的预训练模型,从前3个卷积层(Conv1-2、Conv2-2、Conv3)中提取多尺度特征。感知损失函数定义为:

(21)

3 实验验证

3.1 实验环境与参数设置

具体测试环境设置:GPU为GeForce RTX 3090,显存为24 GB,CUDA版本为11.2,cuDNN版本为8.4.0,PyTorch为1.12.1,编译语言为Python 3.8,操作系统为Ubuntu 20.04。

在实验中,设置输入图像大小为240×240×3,整个网络在训练集中训练7×105个批次。使用Adam优化器对参数进行调优,设置参数β1和β2分别为0.9和0.999。经图6的实验对比,将初始学习率设置为0.000 1,并通过余弦退火策略将学习率从初始值调整到0。

图6 学习率对比结果Fig.6 Learning rate comparison results

RC模块中通道注意力、像素注意力参数设置如表1所示。ECA模块中参数α、β对比实验结果如表2所示,其中最优数据加粗标注。可以看出,当α、β均为0.5时去雾效果达到最佳。

表1 CA、PA模块参数设置Table 1 Parameter configuration for CA and PA modules

表2 参数α、β对比实验结果Table 2 Parameterαandβcomparative experiment results

3.2 数据集

RESIDE[25]是一个大规模去雾数据集,由真实和合成的有雾图像组成,包含训练集和测试集两部分。在训练集中,本文选择室内训练集(ITS)和户外训练集(OTS)。ITS训练集包含13 990张有雾的室内图像,由1 399 张清晰图像生成。OTS训练集包含296 695张有雾的户外图像,由8 477张清晰图像生成。由于室内、室外光线以及照片清晰程度等的影响,本文手动筛选出8 972张室内训练的清晰合成图和3 564张户外训练对。

在测试集中,选择RESIDE中的综合目标测试集(SOTS),该测试集包括500张室内和户外的有雾图像,按照与训练集相同的处理方式合成有雾图像。同样地,为保证本文模型在真实世界中的去雾效果,本文还选择混合主观测试集(HSTS),其包含10张真实的有雾图像和10张合成的户外有雾图像。

3.3 对比实验结果

3.3.1 SOTS测试集上的结果

在SOTS合成数据集上进行测试,将本文方法与经典去雾方法(DCP、AOD-Net、GCANet、DehazeFormer-T、FFA-Net、GridDehazeNet和RefineDNet)进行定量和定性比较。其中,选用峰值信噪比(PSNR)和结构相似度(SSIM)评估去雾效果。PSNR是基于图像像素灰度值的统计,SSIM代表图像结构信息的相似程度,这2个数值越高,代表去雾效果越好。峰值信噪比和结构相似度对比结果如表3所示,去雾效果如图7所示。

表3 SOTS测试集上的定量结果Table 3 Quantitative results on the SOTS test set

图7 SOTS测试集上的去雾效果Fig.7 The dehazing effect on the SOTS test set

由表3可以看出:DCP室内外的PSNR和SSIM指数均偏低,与原始无雾图像有较大差距;AOD-Net的PSNR指标基本在20 dB左右,SSIM约为0.85,去雾图像存在一定的失真和噪声;与AOD-Net相比,RefineDNet虽然仅在PSNR上提高了3 dB,但在SSIM上有了明显提升,表明RefineDNet去雾后的图像与原图相似度更高;GCANet、FFA-Net、DehazeFormer-T和GridDehazeNet去雾效果明显优于RefineDNet,PSNR提升了近10 dB,SSIM均约为0.98,表明它们去雾后的图像质量较高并且更加清晰,与原始图像相比失真较小;本文方法在PSNR指标上达到了37.93 dB,SSIM指标达到0.99,与其他方法相比具有更好的去雾效果和更小的失真。

由图7可以看出:尽管DCP能够有效去雾,但是导致图像颜色加重;AOD-Net在去雾后仍然存在大量薄雾,去雾效果不理想;GCANet的去雾效果较好,但在天空场景或大片空白场景下出现了明显的色彩加重和加深现象;在复杂场景或极端天气条件下,GridDehazeNet的去雾效果不佳;在恢复图像细节和颜色时,RefineDNet存在不均匀性和模糊问题;与上述方法相比,FFA-Net和DehazeFormer-T的去雾效果得到大幅提升,但是在细节还原、亮度恢复等方面不及本文所提网络;本文网络能够有效消除浓雾,恢复清晰的图像,并保留纹理和颜色信息。

3.3.2 HSTS测试集上的结果

为确保本文网络同样适用于实际场景,采用HSTS数据集进行对比实验,将本文方法与经典去雾方法(DCP、AOD-Net、GCANet、FFA-Net、GridDehazeNet、RefineDNet和DehazeFormer-T)进行对比,结果如图8所示。

图8 HSTS测试集上的去雾效果Fig.8 The dehazing effect on the HSTS test set

由图8可见:在真实场景中,DCP存在严重的失真问题,特别是在处理大片空白区域(如天空、湖面等)时表现不佳,细节信息丢失严重;AOD-Net会加重天空的颜色,同时部分图像存在雾气现象;与AOD-Net相反,GCANet在部分区域颜色会变淡或变亮,尤其是在图像中不同物体的交界处会出现光晕现象;虽然FFA-Net在合成数据集中表现出色,但是对于真实场景处理能力较差,存在较多薄雾现象;GridDehazeNet同样存在大量雾霾现象,并且细节恢复效果较差;RefineDNet存在颜色失真问题,生成的去雾图像颜色偏深;DehazeFormer-T去雾图像颜色偏深,且色彩对比度较弱;本文方法的去雾效果更符合真实场景,还原度更好。

鉴于篇幅限制,图9和图10展示了剩余部分HSTS数据集的测试结果。从中可以看出:图9(b)的树木细节信息恢复完整,图片边缘界限清晰且无雾;图9(d)的云朵纹路明显,色彩饱满,立交桥、房屋建筑等细节清晰;图10(b)去雾效果明显,图像对比度增强;图10(d)去雾效果符合人眼观感,还原了真实的场景。

图9 去雾效果1Fig.9 Dehazing effect 1

图10 去雾效果2Fig.10 Dehazing effect 2

3.3.3 运行时间对比

将本文方法与其他方法在SOTS测试集中处理一张图片的平均时间进行对比,结果如表4所示。可以看出,DCP的处理速度最慢,DehazeFormer-T的处理速度最快,本文方法的处理速度虽然次于FFA-Net和DehazeFormer-T,但是去雾效果明显优于其他7种对比方法。

表4 不同方法处理一张图片的平均时间对比Table 4 Comparison of average time for processing an image using different methods 单位:s

3.4 消融实验

3.4.1 网络结构

为证明FD-CA dehaze网络提出的每个组件和模块的必要性,在SOTS测试集中进行消融实验。在消融实验中,本文网络模型的训练设定为700 000次迭代,在相同实验条件的情况下,分别添加FD模块、ECA模块和D-CA模块进行消融研究,实验结果如表5、图11所示,训练过程中的各项指标对比如图12~图14所示。

表5 网络结构消融实验定量结果Table 5 Quantitative results of network structure ablation experiments

图11 网络结构消融实验对比Fig.11 Comparison of network structure ablation experiments

图12 网络结构消融实验中的PSNR指标Fig.12 PSNR index in network structure ablation experiments

图13 网络结构消融实验中的SSIM指标Fig.13 SSIM index in network structure ablation experiments

图14 网络结构消融实验中的训练loss Fig.14 Training loss in network structure ablation experiments

从表5可以看出:不使用FD模块、ECA模块和D-CA模块的模型去雾效果最差;添加FD模块的模型PSNR指标约提升1 dB,SSIM也有小幅提升;添加ECA模块的大部分模型在PSNR和SSIM指标上有所提升;在添加D-CA模块的4组对比实验中有3组去雾效果得到了提升。综合来看,虽然实验5中将第一阶段中ECA模块替换成CA和PA的组合形式获取了SSIM中的最大值,即0.991 0,但是PSNR明显低于本文网络。

由图11可以看出,大部分不含FD模块的图像颜色恢复效果偏深,特别是对于湖面和天空区域,细节处理效果不佳,尤其是在模型4中,即在没有FD模块、ECA模块和D-CA模块的情况下,网络的去雾能力表现最差,颜色严重失真,并伴有大量雾霾现象。在增加ECA模块和D-CA模块后,湖面倒影中的树木细节更完善,同时增强了图像的对比度,实现了真实自然的还原效果,提高了图像的清晰度,细节更加明显。

从图12~图14可以看出,本文网络性能明显优于其余对比网络,因此,本文使用的FD模块、ECA模块和D-CA模块均具有实际作用。

3.4.2 损失函数

为进一步验证本文提出的损失函数的可行性和有效性,对其不同组合方案进行消融实验,着重研究L1损失和感知损失对网络性能的影响。本实验在合成数据集中进行,除损失函数改变外其余实验细节均不变,最终结果见表6。由表6可以看出,在分别使用L1损失函数和感知损失函数的情况下,网络去雾效果相差不大,PSNR和SSIM分别约为35 dB和0.98;在将两者组合的情况下,即本文提出的L1损失和感知损失共同使用时,PSNR和SSIM分别约提升2 dB和0.01,去雾效果达到最高,这表明本文所提损失函数具有有效性。

表6 损失函数消融实验结果Table 6 Results of loss function ablation experiments

3.4.3 注意力机制

为进一步验证本文提出的ECA注意力机制的有效性,将多种不同的注意力方式放置于网络第一阶段的ECA位置处,对比实验结果如表7所示。从表7可以看出,与其余注意力对比,本文提出的ECA注意力模块去雾效果最佳。

表7 注意力机制消融实验结果Table 7 Results of attention mechanism ablation experiments

4 结束语

本文提出一种基于特征差异的多尺度特征融合去雾网络。设计一种ECA模块,以减轻特征融合时的位置信息丢失问题,同时提出D-CA模块,更好地利用空间和通道信息。在此基础上,通过引入特征差异模块FD,实现雾霾分离同时恢复图像的细节和清晰度。在RESIDE数据集上进行训练和测试,将所提网络与FFA-Net、GridDehazeNet等多种方法进行对比,实验结果表明,该网络取得了更加出色的去雾效果,在实际应用中也展现出更好的去雾性能。下一步将融入先验知识,或将所提网络与大气散射模型相结合,进一步降低训练成本,使得本文网络能够更好地适应真实去雾场景。

猜你喜欢

注意力损失卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
从滤波器理解卷积
玉米抽穗前倒伏怎么办?怎么减少损失?
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
一般自由碰撞的最大动能损失
损失