APP下载

双视觉注意网络的联合图像去雾和透射率估计

2021-07-03冯燕茹

光学精密工程 2021年4期
关键词:透射率解码图像

冯燕茹

(防灾科技学院 信息工程学院,河北 三河065201)

1 引言

受空气中悬浮颗粒(如雾,霾)的影响,捕获的户外图像会出现对比度低,色彩饱和度差,颜色偏移等图像退化问题,严重了影响了户外计算机视觉技术,如目标检测、目标识别、目标跟踪的发挥,进而增大了户外机器视觉任务的难度。因此,对雾天场景下获取的退化图像实施去雾处理具有重要的现实意义和应用场景[1-2]。

目前常用的图像去雾方法主要分为两类:一类为基于先验的去雾算法,一类为基于神经网络的去雾算法。基于先验的去雾算法利用先验信息估计大气散射物理模型中的透射率和大气光,从而求得清晰的去雾图像[3-4]。如He及韩昊男等人利用暗通道先验(Dark Channel Prior,DCP)在局部区域内计算透射率值[1,5]。Berman等人发现图像中的像素点在RGB空间中可聚集成数百个颜色线,利用此非局部先验(Non Local Prior,NLP)估计透射率[6]。Meng等人利用边缘及纹理的约束先验(Boundary Constraint and Contex⁃tual Regularization,BCCR)来计算透射率[7]。然而统计获取的先验信息无法适用于所有的雾天场景,导致算法鲁棒性差,透射率估计存在误差。

随着深度学习的快速发展,基于神经网络的图像去雾算法广受关注[8]。如Cai等人提出了Dehazenet网络模型,学习雾图与透射率之间的映射关系[9]。Li等人提出了端到端的All-in-One Dehazing Network(AODN)网络模型直接从雾图中估计清晰图[10]。Qu等人提出了Enhanced Pix2pix Dehazing Network(EPDN)网络模型,利用生成器估计去雾结果,使用辨别器监督EPDN模型的中间过程[11]。Liu等人提出了GridDeha⁃zeNet(Grid DN),它模仿传统图像处理算法,在网络模型中加入预处理模块及后期处理模块来实施图像去雾[12]。虽然上述网络模型较基于先验的去雾算法具有更好的鲁棒性,但网络的构建缺乏物理约束,未将大气散射物理模型融入到网络的构建中,限制了网络的性能。Zhang等人提出了Densely Connected Pyramid Dehazing Net⁃work(DCPDN)模型,它利用生成器生成透射率和大气光,再利用辨别器细化大气散射模型估计的去雾结果[13]。随后,Zhang等人提出的Joint Transmission Map Estimation and Dehazing Net⁃work(JTED)联合网络模型,将U型网络估计的透射率视为雾浓度先验,以引导后续网络注意浓雾区域,有效实施去雾[14]。

虽然上述网络模型的构建嵌入了大气散射物理模型,但透射率估计与图像去雾的相互关系并未深入探索。实际上,透射率的估计过程和图像的去雾过程相互依赖,从透射率估计过程中获得的雾浓度信息可用于图像去雾。反之,去雾过程中获得的无雾场景信息又可以进一步指导与场景深度相关的透射率估计。受注意机制的启发,本文提出了双视觉注意网络模型,它包含两个结构相同的单循环注意网络层,分别为图像去雾层及透射率估计层。对于每个单循环注意网络又包含循环注意网络和编码解码网络。考虑到雾气可以看成不同深度的雾层累积而成,对于图像去雾层,可在真实透射率图的监督下,利用循环注意网络估计雾浓度注意图,将其注入到后续的编码解码网络以引导网络感知雾的信息,准确实施去雾。同样,对于透射率估计层,在真实无雾图像的监督下,可利用循环注意网络估计场景注意图,注入到编码解码网络,以引导网络感知场景信息,准确估计透射率。其中,为了更深入地探索和挖掘透射率估计与图像去雾过程中捕获信息的相关性,在图像去雾层及透射率估计层的循环注意网络间实施信息交互,使得雾浓度注意图和场景注意图在信息互补的方式下生成。

综上,本文的主要贡献如下:(1)提出了双视觉注意网络模型,它包含图像去雾层及透射率估计层。(2)在图像去雾层中,循环注意网络生成的雾浓度注意图被注入到编码解码网络中,引导该网络感知雾浓度,实现去雾。在透射率估计层中,循环注意网络生成的场景注意图被注入到编码解码网络中,引导该网络感知场景,更好地估计透射率。(3)图像去雾层的循环注意网络及透射率估计层的循环注意网络通过循环单元实现信息交互,在信息互补的方式下生成雾浓度注意图和场景注意图。实验结果表明,本文算法较已有去雾算法具有更高的效率和精度。

2 双视觉注意网络的联合图像去雾和透射率估计

如图1所示,双视觉注意网络包含两层:用于估计透射率的lt层和用于预测去雾结果的ld层。lt层和ld层具有相同的网络结构,即均包含循环注意网络和编码解码网络。其中,红色和黑色的虚线均为省略循环操作中的连接(彩图见期刊电子版)。循环注意网络用于生成视觉注意图,以引导后续的编码解码网络预测相应的结果。这里,为了让ld层能感知雾的浓度,采用透射率来监督ld层的循环注意网络生成雾浓度注意图,并引导后续的编码解码网络实现去雾。相关操作如下:

图1 双视觉注意网络结构Fig.1 Architecture of dual vision attention network

其中:H d和Ed分别为ld层的循环注意网络函数和编码解码网络函数;[]为级联操作;I为初始雾图;I′为去雾结果;t n与t n-1为第n及第n-1次循环时H d输出;t为H d最终输出的雾浓度注意图。

另一方面,考虑到透射率与场景的深度相关,清晰的场景能为透射率的估计提供更准确的深度信息,利用清晰无雾图像监督lt层的循环注意网络产生场景注意图,并将其注入后续的编码解码网络,使其感知场景信息,估计透射率。操作如下:

其中:H t和Et分别为lt层的循环注意网络函数和编码解码网络函数;T′为透射率估计结果;b n与b n-1为第n次及第n-1次循环时H t的输出;b为H t最终输出的场景注意图。

值得一提的是,公式(3)不同于公式(1),H t不但输入了上次循环输出的b n-1及初始雾图I,还输入了H d在第n次循环时输出的t n。此设计充分挖掘了t n与b n的关联性,利用雾浓度注意图t n引导H t感知雾层的浓度,以有效估计背景注意图b n。此外,更利用lt层及ld层中LSTM循环单元实现H t及H d的信息交互(见图1中红线),使得在估计场景注意图的过程中能利用到雾浓度信息,在预测雾浓度注意图的过程中能学习场景信息,从而形成高效的双循环注意网络。

2.1 双循环注意网络

雾气可以看成不同深度的雾层累积而成,因此采用循环网络结构逐层提取雾的信息生产雾浓度注意图及场景注意图,不但符合物理假设,还能不断校正上次循环时的估计误差。

如图2所示,lt和ld层中的H t和H d均有相同的网络结构,并由以下模块组成:2个稠密残差模块Resblock[15],1个LSTM循环单元[16]及1个映射层Map,每个Resblock包含2个核为3×3的卷积层。为了使H t和H d能利用彼此捕获的信息帮助对方的循环网络生成准确的注意图,这里采用LSTM循环单元来实现双循环注意网络的隐藏信息交互。故公式(3)lt层中的循环注意网络H t可进一步表示为:

图2 双循环注意网络结构示意图Fig.2 Architecture of dual recurrent attentive network

其中:Frest,Flstmt和Fmapt分别为H t中稠密残差模块函数,LSTM函数及映射层函数;s nt为第n次循环时,Frest函数的输出;h nt和c nt为第n次循环时,H t中LSTM的隐藏状态及记忆单元信息;t n第n次循环时Fmapt的输出。从公式(6)可见,第n次循环时H d的隐藏状态h hd与H t产生的h n-1t,s nt级联,共同作为Flstmt的输入。

与此类似,公式(1)ld层中的循环注意网络H d可进一步表示为:

其中:Fresd,Flstmd和Fmapt分别为H d中稠密残差模块函数,LSTM函数及映射层函数;s nd为第n次循环时,Fresd函数的输出;h nd和c nd为第n次循环时,H d中LSTM的隐藏状态及记忆单元信息;b n第n次循环时Fmapd的输出。同样,采用第n次循环时H t的隐藏状态h nt与H d产生的h n-1d,s nd级联,共同作为Flstmd的输入。

由此,H t和H d进行了信息交互,H t通过LSTM引入h d来补充学习估计背景注意图b时所需的雾浓度信息,而H d通过LSTM引入h t来补充学习估计雾浓度注意图t时所需的场景信息,从而形成信息充分挖掘和利用的双循环注意网络。

这里选用卷积LSTM循环单元来实现Flstmt及Flstmd。以Flstmt为例,其卷积LSTM如图3所示,包含输入门P,输入门控制单元G,遗忘门控制单元R,输出门控制单元O和记忆单元C,且P,O,G,R均利用3个卷积层来处理接收的特征。其中,输入门P和输入门控制单元G共同控制进入记忆单元的信息C;遗忘门控制单元R控制着记忆单元C中的信息被保留或被删除;输出门控制单元O控制从卷积LSTM中输出信息。Flstmt可进一步表示为:

图3 LSTM循环单元结构示意图Fig.3 Architecture of LSTM recurrent unit.

与此类似,Flstmd可进一步表示为:

在训练的过程中,使用真实无雾图监督H t产生场景注意图b,使用真实透射率监督H d产生雾浓度注意图t。H t和H d均使用标准的L2损失函数,故双循环网络的损失函数L r定义如下:

其中:t n及b n为第n次循环时双循环网络输出的雾浓度注意图和场景注意图;J为对应的真实无雾图;T为真实透射率。如公式(23),实验中设置双循环注意网络循环次数n为3。

2.2 编码解码网络

由双循环注意网络生成的雾浓度注意图t及场景注意图b被视为视觉注意先验,分别注入后续的编码解码网络,以便网络感知雾的浓度及场景信息,更准确地预测去雾图像及透射率。如图1所示,ld层的编码解码网络Ed及lt层的编码解码网络E t具有相同的网络结构,即编码器包含4个核为3×3,步长分别为5,2,2,2的卷积层Conv,解码器包含3个核为1×1,步长为2的反卷积层Deconv,以及1个核为3×3,步长为1的卷积层。故公式(2)中Ed函数可进一步表示为:

式 中:Fconvdx,x=1,2,...,4分 别 为ld层 编 码 器 中4个 卷积函数;Fconvd5代表ld层解码器中最后的卷积函数;Fconvdx,x=1,2,3代 表ld层 解 码 器 中3个 反 卷 积 层函数;e d为ld层编码器的输出;I′为最终的去雾结果。

同理,公式(4)中Et函数可进一步表示为:

其 中:Fconvdx,x=1,2,...,4分 别 为lt层 编 码 器 中4个 卷积函数;Fconvd5代表lt层解码器中最后的卷积函数;Fconvdx,x=1,2,3代 表lt层 解 码 器 中3个 反 卷 积 层函数;e t为lt层编码器的输出;T′为透射率估计结果。

3 损失函数

模型的训练通过最小化L2函数来计算网络估计结果与真实结果间的差异。假设I′i和J i,i=1,2,...,m为一组合成雾图和真实无雾图。T′i和T i,i=1,2,...,m为一组合成图像的透射率和真实透射率,则对应的损失函数为L e可表示为:

结合双循环注意网络的损失函数L r,双视觉注意网络的总损失函数L定义如下:

其中:a和b为L r和L e两项的平衡系数,默认设置a=1,b=1。

4 实验结果与分析

本文算法在NVIDIA RTX 2080 Ti GPU的硬件环境下,应用Pytorch深度学习框架搭建网络实现。优化算法选用β1=0.999,ε=10-8的随机梯度下降算法。为验证本文算法的有效性,在合成雾图及真实雾图上对算法的性能进行验证,并将本文算法与基于先验的去雾算法和基于神经网络的去雾算法相对比。

4.1 数据集

不同于已有的去雾网络[17],本网络模型的训练集需要包含雾图,清晰图及透射率,故利用RESIDE数据集[18]和NYU-depth2数据集[19]创建包含室内和室外图像的数据集。对于室内雾图,从NYU-depth2中选取5000张图,并在大气光A∈[0.5,1],散射系数β={0.4,1.6}的范围内合成数据集。对于室外图像,从RESIDE数据集中选取5000张图,并在A∈[0.8,1.0],β∈{0.04,0.06,0.08,0.1,0.12,0.16,0.2}范围内合成相应的雾图及透射率。其中,5000张室内图像对和5000张室外图像对构成训练集。1000张室内图像对和1000张室外图像对构成测试集A。另一方面,包含500张室内图像及500张室外图像的公共测试集SOTS[17]也用来测试算法鲁棒性。

4.2 模型参数分析

模型中双循环注意网络的循环次数n,总损失函数中平衡系数a和b的选取尤为重要,它将直接影响模型去雾的精度及收敛效率。此小节将讨论n,a和b取值的合理性。首先,在保持a和b值为1的基础上,设置循环次数n分别为2,3,4,5,对应模型在SOTS测试集上测得去雾结果的SSIM值如表1所示。从中可见,随着n的增长,SSIM值逐渐提高,但在n为3时,模型的性能趋于稳定。为了平衡模型的去雾精度及计算成本,本文中循环次数n设置为3。在此基础上,进一步分别设置a和b值为0.5,1和1,0.5,从表3可见,这两种参数设置下的SSIM值均小于n为3,a和b均为1时模型的SSIM值0.974。图4为a和b不同设置下对应的模型,在训练0到180时期时,SOTS测试集上测得的SSIM曲线,从中可见当a=1,b=1,网络模型在40时期时开始收敛,而当a=0.5,b=1和a=1,b=0.5时,模型分别在75时期和94时期开始收敛,故a=1,b=1时模型收敛更快。因此本文设置n为3,a和b均为1。

表1 不同参数设置的SSIM值对比Tab.1 Comparison of parameters setting with different values in terms of SSIM

图4 不同参数设置时SSIM值对比Fig.4 Comparison of SSIM values with different settings of parameters.

4.3 透射率结果对比

为验证双视觉注意网络估计透射率的有效性,本文不但选用了DCP[5],BCCR[7],JTED[14],DCPDN[13]算法进行结果对比,还将双视觉注意网络的ld层去除,获得仅有lt层的单视觉注意网络模型进行性能对比。不同算法在测试集A的室内和室外图像上估计透射率的平均SSIM值如表2所示,从中可见本文算法无论在室内图像还是室外图像上均具有最高的SSIM值,透射率估计的准确度较高。

表2 不同算法的透射率SSIM值对比Tab.2 Comparison of transmission map by different al⁃gorithms in terms of SSIM

4.4 合成图像去雾结果对比

为验证本文算法去雾的有效性,选用JT⁃ED[14],EPDN[11],GridDN[12],DCPDN[13]算法及ld层的单视觉注意网络模型进行对比。视觉结果如图5所示,从中可见,JTED的结果仍存在雾残余,如图5(b)的第2行中,桌椅区域仍存在去雾不彻底的现象。EPDN及Grid DN算法虽能有效去除雾气,但部分区域存在颜色失真,如图5(c)第2行的墙面及图5(d)第1行的天空区域均出现了颜色较深的色块。DCPDN算法的去雾结果亮度较高,导致图5(e)第1行的天空区域颜色过白,与真实结果(图5(h))的色调差异明显。本文算法与ld层的单视觉注意网络较其他去雾算法具有更好的去雾效果,但仔细观察仍可发现,本文算法的去雾结果图5(g)较ld层的单视觉注意网络(图5(f))更接近真实图像(图5(h)),例如图5(f)第2行的椅背颜色略黑,而图5(g)第2行的椅背颜色更接近真实图像。表3进一步展示了各算法在不同测试集上的量化结果。从中可见,本文算法除在室外图像测试集A及测试集SOTS上的平均SSIM值略低于Grid DN以外,其余情况均优于对比算法,由此证明,本文算法借助于信息交互的双视觉注意网络能有效实现去雾。

表3 不同算法去雾结果的SSIM值和PSNR值对比Tab.3 Comparison of dehazing methods by different al⁃gorithms in terms of SSIM and PSNR

图5 合成图去雾结果对比Fig.5 Comparison of dehazing results on synthetic images

4.5 真实图像去雾结果对比

图6给出了不同算法的真实图像去雾结果。为更好地观察色调及细节信息,图6的第2行和第4行放大了图6第1行和第3行的局部区域。从中可以看出,JTED[14]及EPDN[110]算法的去雾结果偏暗,如图6(b)(c)的第2行细节放大图的色调明显暗于初始雾图(图6(a))的色调。Grid⁃DN[11]算法的去雾结果在部分区域出现了明显的色彩失真,如图6(d)第4行图像中深色的水面和陆面。DCPDN算法[13]结果(图6(e))存在亮度过大的问题,如图6(e)第3行图像的天空区域因亮度过大而转变为白色。相比而言,ld层网络和本文算法的去雾结果均能较好地去除真实图像中的雾气,但仔细观察发现,ld层网络的去雾结果(图6(f))仍有雾残余,如图6(f)的第4行图像,而本文算法的去雾结果(图6(g))不但无雾残余,还能最大程度上保留图像原有的色调及细节信息。

4.6 用户视觉评价

本节进一步采用用户视觉信息作为评价指标对各算法的去雾结果进行判断。选取不同年龄,不同性别,不同领域的用户100人,对100张图像的去雾结果进行评分,其中包含50张合成雾图,50张真实雾图。评价采用5分制,5分为去雾质量优,无失真;4分为去雾质量良好,有些许失真;3分为去雾质量一般,失真明显;2分为去雾质量差,失真严重;1分为去雾质量很差,无法接受。

表4为用户对各算法评价分数的平均值。从中可见,本文算法分值最高为4.4分,而在合成雾图的去雾结果量化评价表3中,不占优势的EP⁃DN算法,分值位于第二,4.3分。Grid DN,DCP⁃DN和JTED算法则位于第三,第四和第五。这主要是由于EPDN算法结果虽有失真,但具有较强的对比度,用户视觉感受下雾残余较少,主观判断失真不明显,去雾质量好。而本文算法结果虽失真少,但去雾结果的色彩对比度不强,部分用户给予的评分较EPDN算法低,因此综合评分与EPDN算法结果差距不大。为此,在未来的研究中,可在本文算法中添加后期处理模块,以进一步提高去雾结果的色彩对比度。

表4 用户视觉评分Tab.4 User visual evaluation

4.7 运行时间对比

本节在SOTS数据集上比较本文算法与基于 深 度 学 习 去 雾 算 法JTED[14],EPDN[11],Grid⁃DN[12],DCPDN[13]和基于先验去雾算法DCP[5]的平均运行时间。从表5可见,本文算法对单张雾天的平均处理时间仅为0.043 s,不但明显优于DCP算法,还优于其他深度学习的算法,具有较高的运行效率。

表5 不同算法的平均运行时间对比Tab.5 Average running time of different methods(s)

5 结论

为充分探索和挖掘透射率的估计过程和图像的去雾过程中捕获信息的相关性,提高网络的性能。本文提出了双视觉注意网络的联合图像去雾和透射率估计模型。模型包含图像去雾层和透射率估计层,且每层网络均包含注意循环网络和编码解码网络。在图像去雾层,循环注意网络在透射率的监督下生成雾浓度注意图,以引导后续的编码解码网络感知雾的浓度,实现图像去雾。同样,在透射率估计层,循环注意网络在真实无雾图的引导下生成场景注意图,以引导编码解码网络感知场景信息,生成透射率。值得一提的是,为了更准确,高效地生成雾浓度注意图和场景注意图,图像去雾层及透射率估计层更利用其循环注意网络的循环单元实现信息交互,从而形成相互协作的双循环注意网络,在信息互补的方式下生成注意图。在合成图及真实图上的测试表明,本文算法采用的图像去雾层与透射率估计层的信息交互方式能有效地提高网络性能,在公共合成数据集上测得的算法精度及运行效率明显优于已有算法,单张雾图的平均处理时间仅为0.043 s,可用于图像去雾的工程实践中。

猜你喜欢

透射率解码图像
改进的LapSRN遥感图像超分辨重建
等离子体随机分布对THz波传输特性的影响
《解码万吨站》
有趣的图像诗
解码eUCP2.0
一种改进的场景透射率修正图像去雾算法
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
纯色太阳镜镜片耐日光辐照性能试验研究
光子晶体耦合缺陷的透射特性研究