具有条件约束的金字塔视野扩张网络去雾算法

2022-09-27 06:13杨德明吴青娥安紫明
无线电通信技术 2022年5期
关键词:大气卷积特征

杨德明,吴青娥,谢 添,陈 虎,安紫明

(1.郑州工业技师学院,河南 新郑 451150;2.郑州轻工业大学 电气信息工程学院,河南 郑州 450002)

0 引言

大气污染造成的雾霾恶劣天气大大降低了能见度,严重影响着机器视觉正常工作,如目标检测和识别。当今社会迫切需要有效的去雾算法[1-4]消除雾霾对机器光学视觉系统的影响。单幅图像去雾是一个病态问题,去雾研究面临着诸多严峻的挑战。近年来,科研人员提出了许多有效去雾方法用于消除雾霾对机器视觉的影响,当今流行的去雾方法大致可以分为基于先验的方法和基于机器学习的方法。这两种方法之间最明显的区别在于,前一种是手工制作的,后一种是自动学习的。在传统的基于先验的方法中,许多图像统计先验被用作额外的约束条件去雾,如Narasimhan等人[5-6]提出的大气散射模型,以补偿破坏过程中的信息丢失。He等人[7]提出的暗通道先验(DCP)算法,是基于先验算法去雾效果较为突出的成熟算法。He等人对大量室外无雾图像研究后,提出室外无雾图像块通常在至少一个颜色通道中具有低强度值的假设,即暗通道先验。但是,由于室外环境复杂,基于先验的方法会导致传输图的估计不准确,缺乏暗原色的大面积白色物体及天空区域的图像去雾时,去雾图像存在颜色失真现象。近期其他基于暗通道先验的改进算法[8-10]在先验估计的基础上做了大量改进工作,取得不错的去雾结果。

伴随着神经网络技术的日臻成熟,采用机器学习中的深度学习去雾算法不断涌现。具有开创性神经网络去雾工作的是Cai等人[11]提出用于介质透射率估计的可训练端到端去雾系统(DehazeNet),该算法非真正的端对端去雾,因此去雾图像存在比较大的失真现象。Ren等人[12]提出了一种用于单图像去雾的多尺度深度卷积神经网络(MCNN),由粗尺度网络和局部细化结果的细尺度网络用于预测有雾图像透射图。Li等人[13]提出端到端一体化去雾网络算法(AOD-Net),该轻量级算法首次提出端到端的神经网络去雾算法,并取得不错的去雾效果。然而由于去雾网络模型过小,该算法同样存在去雾失真现象。Chen等人[14]提出了一个端到端的门控上下文聚合网络(GCANet)直接恢复最终的无雾图像,并采用可以去除网格伪影的平滑扩张技术[15],用来获得上下文信息。Zhang等人[16]提出了一种密集连接金字塔去雾网络(DCPDN)的单幅图像去雾端到端系统,采用具有多级金字塔池化模块[17]进行金字塔视野扩张[18],及边缘保留密集连接的编码器-解码器结构估计传输图,同时采用U-net[19]结构还原出图像的全局大气光矩阵,然后依据大气散射模型还原出无雾图。

针对上述问题,本文提出一种端到端具有条件约束的金字塔视野扩张网络(CCPVEN)去雾算法。本文算法采用金字塔视野扩张模块可以有效提取图像的上下文信息,采用大气散射模型为约束条件的去雾网络,并对去雾网络添加非线性组件,强化网络对非线性去雾任务的学习能力,有效解决单幅图像去雾的诸多病态问题,较精确估计出无雾图。

1 本文算法去雾模型

为了去除雾霾天气对计算机光学视觉采集图像的影响,研究雾霾天气下的大气散射模型有助于图像精确去除雾霾。 McCartney作为去雾研究的先驱,最先提出大气散射模型构想,而Narasimhan等人[5-6]在不同天气条件下研究大气粒子特性,通过大量实验结果提出并完成了大气散射模型,其模型如式(1)所示。依据式(1)可知,有雾图像中隐含景物图像透射图t(x)和全局大气光值A:

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

(1)

该模型包含物体反射光衰减模型以及环境大气光模型两部分,其中x为二维图像像素值,有雾图像用I(x)表示,无雾图像用J(x)表示,大气光值用A表示,大气透射率t(x)定义如式(2)所示。

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

(2)

式中,β代表大气散射系数,d(x)代表景深。景深越深,大气透射率越小,前景物体反射的光线被散射越严重。为了实现利用大气散射模型单幅有雾图像有效去雾,式(1)变形为式(3)。

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

(3)

依据式(3)可知,若能够利用单幅有雾图像信息估计出大气透射图t(x)和全局大气光值A,可以利用式(3)实现有雾图像有效去雾。传统去雾算法难以解决单幅有雾图像准确去雾问题,面临着诸多病态问题。

借助深度学习算法能够较好地还原图像隐含有t(x)和A的特征图数据,有效解决单幅图像去雾诸多病态问题。Li等人[13]提出AOD-Net算法,其提出算法如式(4)所示。由于该算法属于轻量级去雾网络,面对单幅图像去雾任务这一病态问题,该去雾算法得到的去雾图像J(x)仍存在一定的去雾图像失真问题。为了进一步提高去雾图像品质,有效克服单幅图像去雾面临的诸多病态问题,本文提出CCPVEN去雾算法对J(x)进一步精细处理,将有雾图I(x)和J(x)相减,得到差值D(x),如式(5)所示。然后对D(x) 进行非线性处理得到差值特征图(D(x))′。最后将I(x)和(D(x))′相减得到比较精确无雾图(J(x))′,如式(6)所示。

J(x)=K(x)I(x)-K(x)+b,

(4)

D(x)=I(x)-J(x),

(5)

(J(x))′=I(x)-(D(x))′。

(6)

2 大气散射模型约束的金字塔视野扩张网络去雾算法

采用深度学习算法估计出无雾图是近年来去雾算法研究的热点。单幅图像去雾任务面临诸多病态问题,当今诸多神经网络去雾算法缺乏去雾模型条件约束,较难解决单幅图像去雾出现的诸多病态问题,导致去雾图像常常出现去雾斑块、色彩畸变等失真现象。同时视野尺寸较小的卷积核难以提取图像的上下文信息,而图像的上下文信息是解决单幅图像去雾所面临的诸多病态问题的关键因素。为此本文提出一种端到端的具有大气散射模型条件约束的金字塔视野扩张网络去雾算法,在去雾模型的约束的基础上,增加非线性去雾模块,能够准确去雾。本文算法整体结构如图1所示。

图1 CCPVEN算法整体结构图

2.1 CCPVEN神经网络结构

根据大气散射模型可知,有雾图像隐含图像透射率和全局大气光值。传统去雾方法难以准确估计图像透射图及全局大气光值,去雾效果存在瑕疵。近年来随着科技的发展,神经网络去雾算法成为当前图像去雾的研究热点。本文提出算法是从单幅有雾图像中还原出其隐含有图像透射率和全局大气光值的数据,并以大气散射模型为条件约束,增加非线性去雾模块,估计出无雾图像,较好地克服单幅图像去雾的诸多病态问题。本节详细解释CCPVEN算法结构和多分量损失函数。本文提出算法网络结构如表1所示,其中卷积层设置栏(Layer setting)中3×3,32,1,1,Relu依次表示为卷积核尺寸为3×3,神经元个数为32,stride为1,padding为1,采用Relu激活函数。其他卷积层设置同理。

2.1.1 CNN1网络模块结构

本文算法中的CNN1网络模块,输入有雾图像,提取多维图像特征图,为还原出有雾图像中隐含有透射率和全局大气光值的特征图数据做准备。CNN1网络结构如表1所示。

表1 CCPVEN算法结构

CNN1网络中的卷积神经网络M1_conv1和M1_conv2对有雾图像初步提取特征图,将该提取特征图送入由M1_Block1、M1_Block2和M1_Block3组成的三级堆叠网络提取多维特征图,后经M1_conv3卷积层提取出多维特征图Coarse_map1。为下一步从有雾图像中还原出隐含有前景图像透射率和全局大气光值的特征图提供数据。

2.1.2 PVEM模块

利用去雾模型还原无雾图像,准确获取隐含有图像的透射图和全局大气光值数据,需要获得图像上下文信息。由于一般卷积核比较小,造成神经网络感受视野范围比较小,无法获取相邻事物图像的上下文信息。为增大神经网络感受视野,获取图像的上下文语义信息,本文提出金字塔视野扩张模块(PVEM),其模块结构如图2所示,PVEM网络结构如表1所示。PVEM模块接收来自CNN1输出的Coarse_map1多维特征图,首先经P1_conv1卷积层进行特征提取。PVEM模块中视野扩张部分由二级池化kernel 2×2的P1_ pooling1、kernel 4×4的P1_ pooling1以及二级多尺度卷积kernel 5×5的P1_ conv2、 kernel 7×7的P1_ conv3形成空间金字塔结构。每级池化模块组成包含最大池化层、上采样层和卷积层。P1_ conv1卷积层输出的特征图经空间金字塔网络进行视野扩张提取特征处理后,得到B×C×H×W维度的4组特征图,并按C维度组合特征图Concat_map1,后经Fusion1模块的P1_conv4 和P1_conv5二级卷积网络融合处理得到Fusion_map1特征图。特征图Fusion_map1和CNN1模块输出的特征图Coarse_map1按C维度组合特征图Concat_map2,特征图Concat_map2经Fusion2模块的P1_conv6一级卷积网络融合处理得到Fusion_map2特征图。Fusion_map2特征图数据为下一步还原出隐含有图像透射率和全局大气光值的特征数据提供数据支持。

图2 PVEM结构图

2.1.3 CNN2网络还原K(x)及去雾模块

为还原出隐含有雾图像中的透射图和全局大气光值的特征数据,本文提出CNN2网络算法。CNN2网络结构如表1所示。PVEM模块输出的Fusion_map2融合特征图送入CNN2网络模块,经两级卷积神经网络M2_conv1和M2_conv2进一步提取特征图。将P1_conv6卷积网络输出的特征图和M2_conv2卷积网络输出的特征图按C维度上拼接组成特征图Concat_map3。组合特征图Concat_map3经M2_conv3、M2_conv4、M2_conv5三级卷积神经网络进行特征提取、特征图正则化和维度变换后得到隐含有t(x)和A的K(x)。将K(x)代入式(4)得到去雾图J(x)。

2.1.4 CNN3网络非线性处理和无雾图像还原模块

单幅图像去雾面临诸多病态问题,利用去雾模型还原无雾图是远远不够的。为增加神经网络对非线性去雾任务学习能力,产生较好的去雾效果,本文提出CNN3网络算法。初步得到的去雾图J(x)送入CNN3网络进行非线性处理,以期得到较好的去雾效果。CNN3结构如图3所示,CNN3网络结构如表1所示。有雾图I(x)和去雾图J(x)相减,得到差值D(x)。D(x) 送入CNN3网络中的三级卷积网络M3_conv1、M3_conv2和M3_conv3进行提取差值特征图,然后将M3_conv2输出的特征图和M3_conv3输出的特征图按C维度拼接组成组合特征图Concat_map4,然后将Concat_map4送入M3_conv4、M3_conv5和M3_conv6进行提取特征图和调整维度,得到差值特征图(D(x))′。最后将I(x)和(D(x))′相减最终得到精确去雾图(J(x))′。

图3 CNN3模块结构图

2.2 损失函数

通常神经网络去雾算法采用单一均方误差(MSE)[20]损失函数训练网络。为了使本文提出的去雾网络能够更多还原出无雾图像的细节,本文定义多分量损失函数,用于训练所提出的CCPVEN网络。一分量是用MSE损失衡量预测去雾图像和真实无雾图像间的像素相似性;二分量是用小波[21]感知损失衡量预测去雾图像和真实无雾图像间的结构相似性;三分量是采用HSV[22]类似人眼感知损失衡量预测去雾图像和真实无雾图像间的色彩相似性。本文提出的多分量损失函数如式(7)所示。式(7)中LMSE(Θ)代表含义为从像素层面角度预测无雾图像。

(7)

式中,LMSE(Θ)、LWP(Θ)和LHSV(Θ)分别表示为:

(8)

WAVELET(Ji(x))=2,

(9)

HSV(Ji(x))=2。

(10)

3 实验结果与分析

为验证本文提出去雾算法的有效性和鲁棒性,采用RESIDE[23]合成雾霾数据集训练本文提出的去雾网络,并进行去雾对比实验。实验平台采用 CPU i5-7500 处理器、显卡采用 GTX 1080Ti、内存为16 G、操作系统为ubuntu16.04的台式计算机,并运用Python3.5及Pytorh0.4.1对本文所提去雾算法进行编程实验。训练网络采用的多分量损失函数系数α、β及神经网络权值约束惩罚系数λ分别采用0.5、0.5及0.001。

3.1 本文算法与当今流行去雾算法对比去雾实验

为了验证本文CCPVEN去雾算法的有效性和鲁棒性,与当今流行去雾算法进行对比去雾实验。对比实验评价数据采用户外真实场景数据集(O-HAZE)[24],主观评价去雾图像是否存在色彩及图像结构失真现象,客观评价利用PSNR 和 SSIM 图像相似性评价指标[25]进行对比实验,从主观和客观角度评估各去雾算法的优劣。

3.1.1 本文算法与其他流行去雾算法主观评价对比去雾试验

本文算法和DCP[7]、AOD-Net[13]、GCANet[14]近年来流行的去雾算法进行主观评价对比实验,主观评估本文算法的可行性与有效性。主观评价对比去雾试验如图4所示。

其中图4(a)、图4(g)、图4(m)为3张有雾图像,图4(b)、图4(h)、图4(n)采用DCP[7]算法的3张去雾图像,图4(c)、图4(i)、图4(o)为采用AOD[13]算法的3张去雾图像,图4(d)、图4(j)、图4(p)为采用GCA[14]算法的3张去雾图像,图4(e)、图4(k)、图4(q)为本文去雾算法的3张去雾图像,图4(f)、图4(l)、图4(r)为3张真实无雾图像。

首先,对比图4(f)、图4(l)、图4(r) 3张真实无雾图像,观察图4(b)、图4(h)、图4(n)3张DCP算法去雾图像,红色圆标记部分均存在天空和前景物体图像交界处图像颜色失真现象,这是因为该算法存在先天不足,由于天空区域缺乏暗原色,该算法过低估计图像天空及其交界过渡区域透射率,造成天空及过渡区域图像过度去雾,致使图像颜色及图像结构较大失真。通过主观评价对比实验可知,DCP算法去雾图像存在较大失真现象。

其次,对比图4(f)、图4 (l)、图4 (r)3张真实无雾图像,观察图4(c)、图4(i)、图4 (o)3张AOD算法去雾图像,红色圆标记部分的前景物体图像均出现色饱和度较大失真现象。这是由于该算法用一变量K(x)代替图像全局大气光值和透射率函数关系,无法准确利用去雾模型去雾,致使去雾图像存在色饱和度较大失真现象。通过主观评价对比实验可知,AODnet算法去雾图像存在图像色饱和度较大失真现象。

再次,对比图4(f)、图4 (l)、图4 (r) 3张真实无雾图像,观察图4(d)、图4 (j)、图4 (p)3张GCA算法的去雾图像,红色圆标记部分前景物体图像均出现严重图像色调失真现象。由于该算法没有采用去雾模型条件约束,该算法网络难以胜任存在诸多病态问题的去雾任务。通过主观评价对比实验可知,GCA算法去雾图像存在色调较大失真现象。

最后,对比图4(f)、图4(l)、图4(r) 3张真实无雾图像,观察图4(e)、图4 (k)、图4 (q) 3张本文去雾算法的去雾图像,红色圆标记部分均未出现较大图像色调和色饱和度以及结构失真现象,去雾图像接近于真实无雾图像。这是由于本文算法采用大气衰减模型作为约束条件,增加非线性去雾模块及采用多分量代价函数训练本文去雾网络,去雾图像还原较好,接近真实无雾图像。与其他流行算法的去雾图像主观对比观察,本文算法去雾效果优于对比算法。

图4 主观和客观评价对比去雾试验

3.1.2 本文算法与其他流行去雾算法客观评价对比去雾试验

为了验证本文去雾算法的有效性和鲁棒性,本节进行客观评价对比去雾试验。本文采用PSNR和SSIM相似性评价指标[25]客观评价对比去雾实验结果。客观评价对比去雾试验如图4和图5所示,其中图片下面括号中,第一个数据为对比图片和相应真实无雾图之间的PSNR值(单位为dB)。第二个数据为对比图片和相应真实无雾图之间的SSIM值,值域在闭区间[0,1]。将图4、图5对比算法去雾图像的客观评价指标实验数据按图中次序填入客观对比实验数据表,如表2所示。表2中DCP minus CCP表示算法DCP算法去雾图客观评价数据减去本文CCPVEN算法去雾图客观评价数据,AOD minus CCP及GCA minus CCP含义同理。

结合图4、图5中去雾图像及其相对应客观评价指标数据,分析表2中客观评价对比实验数据。依照表2客观数据可知,DCP算法去雾图的客观评价数据和本文CCPVEN算法去雾图客观评价数据相比较可知,DCP minus CCP一列栏数据中两算法间PSNR差值在-8.1~-5.2 dB区间分布,二者间SSIM差值在区间在-0.01~0.01分布,说明本文算法去雾图像在像素级图像质量方面优于DCP算法,在图像结构评价指标上两算法不分伯仲。通过对比数据可知,本文去雾算法优于DCP去雾算法。由表2客观数据可知,AOD算法去雾图的客观评价数据和本文CCPVEN算法去雾图客观评价数据相比较可知,AOD minus CCP一列栏数据中两算法间PSNR差值在-7.0~-3.0 dB区间分布,两算法间SSIM值差值在-0.29~-0.23区间分布,说明本文算法去雾图像在像素级图像质量方面优于AOD算法,在图像结构方面上同样优于AOD算法。通过对比数据可知,本文去雾算法优于AOD去雾算法。

图5 客观评价对比去雾试验

依表2客观数据可知,GCA算法去雾图的客观评价数据和本文CCPVEN算法去雾图客观评价数据相比较可知,GCA minus CCP一列栏数据中两算法间PSNR差值在-5.3~-1.2 dB区间分布,两算法间SSIM值差值在-0.05~0.01区间分布,说明本文算法去雾图像在像素级图像质量方面优于GCA算法,在图像结构层面上略胜于GCA算法。通过对比数据可知,本文去雾算法优于GCA去雾算法。

表2 本文算法与流行对比算法客观评价数据表

以上客观评价对比实验数据表明,证明了本文CCPVEN去雾算法的可行性与有效性。

为了验证本文CCPVEN去雾算法的去雾的鲁棒性,实验采用户外真实场景数据集(O-HAZE)[24]作为测试数据集,与当今流行去雾算法在整个数据集进行去雾实验。根据对比实验结果,各对比算法去雾图像取PPSR和SSIM图像相似性评价指标[25]的均值,客观评价本文算法的去雾鲁棒性。评价本文算法去雾鲁棒性实验数据如表3所示。

由表3可知,本文提出CCPVEN算法在整个RESIDE数据集上去雾图像平均PPSR指标为18.1 dB,去雾图像平均SSIM指标为0.73,相较DCP算法去雾结果平均PPSR指标高6.6 dB,平均SSIM不分伯仲。相较AOD算法去雾结果平均PPSR指标高4.3 dB,平均SSIM高0.28。相较GCA算法去雾结果平均PPSR指标高2.4 dB,平均SSIM不分伯仲。表3鲁棒性去雾实验数据表明,本文算法去雾鲁棒性强,去雾结果优于对比算法。

表3 本文算法去雾鲁棒性实验数据表

3.2 本文算法网络消融去雾实验

为了证明本文CCPVEN去雾网络的优越性,进行CCPVEN网络的各模块消融去雾实验。本文主要关注这些因素:一是金字塔视野扩张模块(PVEM);二是CNN3中对差值D(x)的非线性处理模块CNN3_NL,包括M3_conv1- M3_conv6六级卷积层。采用RESIDE[23]合成雾霾数据集训练本文网络,采用户外真实场景数据集(O-HAZE)作为去雾实验测试数据集,测评不同模块组合去雾效果,CCPVEN网络结构评估实验数据如表4所示。

表4 本文算法CCPVEN网络结构评估实验数据

如表4所示,CCPVEN对PVEM消融去雾实验,其他结构保留,测试集去雾结果平均PPSR指标为16.9 dB。CCPVEN对CNN3中的对差值D(x)的非线性处理模块CNN3_NL消融去雾实验,其他结构保留,测试集去雾结果平均PPSR指标为14.1 dB。而保留CCPVEN网络全部模块,则测试集去雾结果平均PPSR指标为18.1 dB。由此可见,在CCPVEN网络基本框架下,PVEM以及CNN3中对差值D(x)的非线性处理模块都是本文提出网络算法不可或缺的重要组成部分,实验结果验证了本文去雾算法的优越性。

4 结论

本文提出了端到端具有条件约束的金字塔视野扩张网络算法,并和其他流行去雾算法进行了对比实验。实验结果表明,本文提出算法能够有效克服对比算法去雾图像色彩失真及图像结构失真等问题,去雾效果优于其他对比算法,具有去雾有效性和鲁棒性。由于本文算法采用的训练数据集是虚拟合成的,训练出的去雾模型仍存在不足,今后仍致力于去雾算法的研究,满足雾天生产生活的安全需求。

猜你喜欢
大气卷积特征
根据方程特征选解法
离散型随机变量的分布列与数字特征
基于3D-Winograd的快速卷积算法设计及FPGA实现
宏伟大气,气势与细腻兼备 Vivid Audio Giya G3 S2
如何“看清”大气中的二氧化碳
卷积神经网络的分析与设计
从滤波器理解卷积
不忠诚的四个特征
大气稳健的美式之风Polk Audio Signature系列
基于傅里叶域卷积表示的目标跟踪算法