基于条件对抗网络的单幅霾图像深度估计模型

2022-09-25 08:43张文涛王园宇李赛泽
计算机应用 2022年9期
关键词:梯度损失注意力

张文涛,王园宇,李赛泽

(太原理工大学信息与计算机学院,山西晋中 030600)

0 引言

近年来,深度估计一直是计算机视觉的热点研究课题,作为场景感知的一部分,旨在从场景的特定视点产生像素级深度图。在没有光流、立体图像、点云等额外线索的情况下,从二维图像中提取出的深度信息对于场景的三维结构解析具有重要的意义,可以显著提高其他计算机视觉任务的决策能力,例如同步定位与建图(Simultaneous Localization And Mapping,SLAM)[1]、姿态识别[2]、室内定位[3]、三维重建[4]等。单目深度估计是从单张二维图像估计出图像中物体与摄像机距离的研究方法;但由于单幅RGB(Red,Green,Blue)图像不对应于唯一深度图,因此单目深度估计是不适定问题。使用物理设备和传统图像算法,如雷达扫描[5]和立体匹配算法[6]进行深度估计存在采集密度低、速度慢、易受环境干扰等缺点。而得益于神经网络强大的参数学习能力,数据驱动的基于深度学习的单目深度估计可以使用相对较少的资源和时间,在保证精度的前提下得到场景的深度图。

文献[7]最早利用卷积神经网络(Convolutional Neural Network,CNN)进行深度估计,提出的多尺度网络由全局粗尺度网络和局部细尺度网络组成;但该模型只能生成1/4 分辨率的深度图。文献[8]中提出了全卷积残差神经网络,该网络去除全连接层并加入了残差上采样模块,减少了模型参数,提高了预测结果的分辨率。深度图的像素值具有连续性,而条件随机场(Conditional Random Field,CRF)可以借助相邻像素之间的连续性进行深度估计,于是文献[9]中提出了分级CRF 细化方法,首先对图像进行超像素分割,然后使用CNN 提取超像素的深度信息,最后使用分级CRF 将超像素细化到像素级;但其预测结果的边缘粗糙。文献[10]中将深度值离散化并将深度估计看作有序回归问题,提出了空间增量离散化,减小对较大深度值的惩罚,有着更快的收敛速度。文献[11]中使用级联条件生成对抗网络(Conditional Generative Adversarial Network,CGAN),将RGB 帧和一级生成网络输出的深度图连接起来作为二级生成网络的输入,映射到更精细的深度图。文献[12]中提出了深度卷积神经场模型,将CNN 与连续CRF 结合,同时引入了超像素池化,保证了物体边缘的清晰度,缩减了训练时间。

上述模型在清晰条件下可以取得良好的预测深度图,这是因为场景中物体与物体之间的结构关联可以反映出场景的全局层次结构,而这种全局层次的结构关联特征又有利于深度估计模型对场景中深度信息的提取;但考虑到大气光照、天气、环境的影响,尤其是近年来频繁出现的恶劣霾天气,图像采集设备受到空气中大量悬浮颗粒的干扰,浑浊的介质会造成大气光线的散射和吸收,这些都会使图像产生较为严重的降质现象;同时由于图像中的结构特征被霾遮挡,霾干扰下的图像往往存在对象丢失、伪像、边缘信息丢失和纹理区域不准确等结构丢失问题。对于基于神经网络的深度估计模型,使用严重降质的图像会对模型的性能产生较大的干扰,网络无法从模糊的霾图中提取关键特征,于是上述模型无法在霾环境中解析出霾图像的深度信息,也就无法得出效果较好的深度图;对霾环境下的单幅霾图深度估计缺乏适用性。

本文发现霾图像的直接传输率图中包含着场景的深度信息和结构信息,同时条件生成对抗网络在高维数据分布建模和不同数据域扩展等领域有着良好的效果[13],故可以利用CGAN 从霾图的直接传输率图中提取深度信息。针对从低质量的霾干扰图像估计出高质量的深度图这一任务,本文包含以下工作:1)根据霾图像的直接传输率图包含的场景深度信息和结构信息,将直接传输率图作为CGAN 的约束条件,通过对抗学习,获取保持良好场景结构和边缘轮廓的预测深度图;2)提出融合双注意力模块的DenseUnet,作为生成器的网络结构,在保留场景结构特征的同时,提取直接传输率图中的深度信息,提高了霾干扰下预测深度图的精度;3)提出新的结构保持损失函数,将像素级的L1损失、对抗损失、梯度损失、感知损失作为复合损失函数,利用图像梯度信息和图像高级语义特征指导生成器生成清晰边缘轮廓的深度图,提高了霾环境下深度估计的质量。

1 模型框架

针对霾天气下图像的成像原理,文献[14]中提出了大气散射模型,如式(1)所示:

其中:J(x)为无霾图像;t(x)为直接传输率图;A为全局大气光值;I(x)为有霾图像。该模型表明,霾条件下成像系统捕获的图像由目标物体的反射光和整体场景的全局大气光构成。直接传输率图t(x)是未被散射的光线穿过雾霾后到达成像设备的比率,如式(2)所示:

其中:d(x)为场景深度;β(β>0)为大气散射系数。由式(2)可知,直接传输率图包含场景的深度信息,离摄像头越远的物体受雾霾影响更大,当深度值趋于无穷时,t(x)趋于零;当β为常数时,直接传输率图与场景深度呈指数关系。

综上所述,本文将霾条件下的深度估计作为图像到图像的转化任务,提出了基于条件对抗网络的单幅霾图像深度估计模型。模型结构如图1,在生成器和鉴别器中不引入随机噪声,仅将直接传输率图作为CGAN 生成器和鉴别器的约束条件,利用生成器完成直接传输率图域到深度图域的映射,再使用鉴别器判断预测深度图和真实深度图的分布一致性,通过生成器和鉴别器的交替迭代训练,完成单幅霾图像的深度估计。

图1 条件生成对抗网络结构Fig.1 Structure of CGAN

2 模型设计

2.1 生成器

2.1.1 融合双注意力模块的DenseUnet

文献[15]表明,结构信息对泛化深度估计起着重要的作用,所以从直接传输率图中提取的结构信息可以提高霾环境下深度估计的效果。生成器的作用是将霾图的直接传输率图映射为预测深度图,直接传输率图和深度图共享深度信息和结构信息,二者具有类似的底层结构。深层的神经网络可以提取出直接传输率图中的高级特征(深度信息),但是随着网络层数的增加,梯度消失问题不利于网络收敛,网络的深层信息无法回传,会使预测深度图的质量降低,边缘和形状等底层结构信息也会在反向传播过程中丢失。为了充分利用直接传输率图中的结构信息来辅助深度信息的获取,对于生成器的网络结构,本文提出了融合双注意力模块的DenseUnet,如图2 所示。

为了解决网络层数加深带来的梯度消失和浅层特征丢失问题,本文将密集连接网络(Densely Connected Convolutional Network)[16]和U-net[17]结合为DenseUnet。利用密集连接网络提取直接传输率图的深度特征,并使用跳跃连接加强底层结构信息的流动。DenseUnet 将密集块(Dense Block)作为U-net 编码和解码过程中的基本模块,如图2 所示。通过这样的方式,可以将反向传播过程中的梯度信息和原始的输入信息送入每一层网络。DenseUnet 不仅增加了网络的层数,同时也缓解了梯度消失带来的模型退化问题。在密集块内,采用密集连接的方式,将每一层的特征与前面所有层的特征在通道维度进行拼接,使得深层的网络也可以获取到底层的特征,实现了底层特征复用,加强了深层信息的流动。在密集块之间,跳跃连接将编码器的信息传入解码器,保留了编码过程中不同分辨率的像素级信息,实现了编解码过程中浅层特征和深层特征的融合,解决了浅层特征无法在解码过程中被有效利用的问题。总之,DenseUnet 在提取直接传输率图深度信息的同时有效地利用了结构特征,有利于生成精细局部细节和边缘轮廓清晰的深度图。

图2 生成器的网络结构Fig.2 Network structure of generator

对于DenseUnet 的网络结构,下采样过程包括4 个密集块,密集块之间由过渡层连接。密集块之内,使用3×3 卷积对相同尺寸的特征图进行特征提取,卷积之前采用批归一化(Batch Normlization,BN)和修正线性单元ReLU(Rectified Linear Unit)函数提高模型的训练速度,同时使用1×1 卷积的瓶颈层实现降维。密集块之内,后一层(BN+ReLU+Conv)的输入为前面所有层的输出;密集块之间,过渡层使用2×2 平均池化将特征图下采样到原特征图的1/2 大小,并使用瓶颈层将密集块的输出通道维度降到输入通道维度的1/2。在上采样过程中,相同尺寸的密集块与上采样块在维度上拼接。本文的上采样块与密集块使用相同的密集连接结构。最后使用最邻近插值(Nearest Interpolation)逐渐将特征图上采样到256×256 大小。

DenseUnet 虽然整合了直接传输率图的不同层次特征,但仍缺乏对不同尺度全局特征的提取。为了充分提取直接传输率图的全局信息,使用金字塔池化(Pyramid Pooling)[18]进行不同比例的池化操作,获取图像不同尺度的全局特征。本文分别采用1/4、1/8、1/16、1/32 四种金字塔尺度,对DenseUnet 解码后的输出特征图进行平均池化,然后将不同尺度的特征上采样到原始大小,再与原始特征图拼接。经过不同尺度的特征融合,提高了网络对直接传输率图全局信息的获取能力,可以更好地指导生成器学习深度特征。

2.1.2 双注意力模块

在霾干扰导致的图像降质情况下,图像中局部特征的依赖关系对预测结果中的深度值连续性尤为重要。虽然跳跃连接和金字塔池化分别实现了不同层次和不同尺度的特征融合,但3×3 的卷积核大小依然限制了网络对局部特征依赖关系的获取能力,导致生成图像中的局部特征发生偏移[19],预测深度图会出现伪影和深度值不连续问题。为此,本文使用注意力机制来获取场景中物体与物体之间的连续深度特征。

本文提出的双注意力模块结构如图3 所示,与文献[20]类似,本文模型采用空间注意力和通道注意力的并联结构。空间注意力模块和通道注意力模块分别对DenseUnet 中经过金字塔池化后生成的特征图在空间和通道维度进行建模,学习出像素之间和通道之间的注意力权重。通过汇集局部特征的上下文信息,双注意力模块使得网络可以自适应地调整深度特征的全局依赖关系,在保证深度值连续的前提下,提高霾图深度估计的准确性。

1)通道注意力模块(Channel Attention Module)。

在DenseUnet 中,虽然卷积核的堆叠在一定程度上增大了感受野,但具体到特定的卷积层,卷积操作的感受野依然是有限的,这一问题限制了网络对全局特征依赖的提取。而全局信息的依赖关系对于直接传输率图到深度图的映射具有重要作用。本文在通道注意力中引入了非局部思想[21],如图3(a)所示,通过计算通道特征的加权平均来得到通道注意力权重B,建立起通道之间的长距离依赖关系,从而汇聚了更多的通道依赖信息。

首先对原特征图F∈RC×H×W在空间维度上进行压缩,得到通道特征A∈RC×N,然后将A与其转置AT相乘并经过Softmax 函数计算得出通道注意力权重B∈RC×C,计算过程如式(3)所示:

其中:Ai和Aj代表压缩后的特征图;Bij为通道注意力权重B的元素,表示通道i与通道j之间的依赖关系,反映了通道之间的相关性。

然后将通道注意力权重与原特征图相乘,并乘以学习率α,作为残差与原特征图相加得到新的特征图F″ ∈RC×H×W,如式(4)所示:

其中:Fi为特征图F的元素;α从0 开始学习。通过通道注意力模块,生成器整合了所有通道之间的依赖关系,使网络更加关注全局信息,实现了通道特征优化。

2)空间注意力模块(Spatial Attention Module)。

空间注意力作为通道注意力的补充,需要在全局范围捕获空间特征的依赖关系。如图3(b)所示,为了使生成器自适应学习到关键的空间特征。对金字塔池化之后的特征图F∈RC×H×W在通道维度上分别进行全局平均池化(Global Average Pooling,GAP)和全局最大池化(Global Max Pooling,GMP),GAP 和GMP 可在空间维度获取上下文信息的同时保留空间结构信息。之后将二者在通道维度拼接为新的特征图,并经过卷积和Sigmoid 函数压缩,得到空间注意力权重f∈R1×H×W。最后将原始特征图与空间注意力权重经过元素级相乘来完成注意力加权,得到最终的特征图F'∈RC×H×W。由于F'中每个位置的元素都来自其他位置元素的加权,因此获取了更广泛的全局上下文信息,实现了空间特征优化。

图3 双注意力模块Fig.3 Dual attention module

2.2 鉴别器

传统的鉴别器为二分类器,经过卷积和最后的全连接层将整幅图片映射为0~1 的概率值,通过此概率值来表示预测图像是否来源于真实分布(1 代表真,0 代表假)。生成器和鉴别器在对抗学习中达到稳定,直至鉴别器无法判断预测图片的真实性,网络停止训练。对于深度估计来说,传统鉴别器的缺点是直接对整幅图片进行判断,无法对局部细节进行评判,不利于生成高精度、高保真的深度图。

本文的鉴别器采用PatchGAN[13]结构,如图4,其中n 为通道数,k 为卷积核大小,s 为步长。相较于传统鉴别器,PatchGAN 不直接对整幅图片打分,而是对图片的不同局部区域进行判断,从而实现了图像局部特征的提取,保留了高频细节,有利于生成高分辨率的深度图。同时,由于PatchGAN 去除了全连接层,网络的参数量减少,使得运算速度提高。PatchGAN 采用全卷积网络,经过五层卷积运算,最后通过Sigmoid 函数得到32×32 的特征图,其中每一个元素的分值,代表原图70×70 局部区域的真假概率。

图4 鉴别器的网络结构Fig.4 Network structure of discriminator

2.3 结构保持损失函数

不同的损失函数会对网络的训练速度和深度估计性能产生显著影响。在生成对抗网络中,对抗损失和传统损失的结合可以使网络朝着更有利的结果进行[22]。为了指导生成器生成丰富细节信息的深度图,提高霾环境下深度估计的质量,本文提出了新的结构保持损失函数:将L1损失、感知损失、对抗损失和梯度损失融合为生成器的损失函数,如式(5):

其中:LS为总的结构保持损失为L1损失;LA为对抗损失;LP为感知损失;LG为梯度损失。、λA、λP、λG分别为L1损失、对抗损失、感知损失和梯度损失的权重。

2.3.1 像素损失

对于图像转化任务,输入和输出之间共享底层信息[13]。本文使用L1损失度量像素空间中预测深度图和真实深度图的差异,以此来重建低频信息,如式(6)所示:

其中:d代表真实深度图,G(t)代表生成深度图,E 代表数学期望。

2.3.2 感知损失

使用像素级损失,通过最小化深度值差异来重建深度图的同时会产生模糊问题,这是因为像素损失的解是像素空间中所有分布的平均值,故使用最小绝对值(L1)损失作为网络的唯一优化目标会导致图像在全局结构上出现细节丢失和物体边缘不清晰的问题。为了解决此问题,引入了感知损失[23]。感知损失将CNN 隐含层作为特征提取器,本文使用预训练的VGG-19 网络提取真实深度图和生成深度图的高级特征,通过最小化高级特征之间的欧氏距离来约束生成器,进而提升深度图的视觉质量,如式(7)所示:其中:V代表VGG-19 模型;C代表特征图的维度;W、H分别代表特征图的宽和高。

2.3.3 梯度损失

CGAN 在生成丰富高频细节的同时,也存在物体形状结构畸变的问题。梯度信息已被证明在深度估计和超分辨率图像复原中取得了较好的效果[24-25]。直接传输率图的梯度图如图5(c)所示,可以看出,图像的一阶微分(梯度)对应着灰度强烈变化的区域,梯度图很好地反映出了场景中物体的边缘轮廓结构。

图5 梯度可视化Fig.5 Gradient visualization

文献[15]表明,空间结构在解析场景深度方面起着基础性的作用,而直接传输率图包含着场景的大量结构信息,这对于霾图像的深度估计具有重要的作用。为了让模型提取到直接传输率图的结构信息,本文使用直接传输率图的梯度信息为生成器提供监督,通过最小化生成深度图和真实深度图在水平、垂直两个方向的梯度特征差异,使模型从梯度空间中学习深度值变化明显的边缘区域,从而改善预测深度图中物体的结构细节,提高物体边缘轮廓的清晰度。本文定义的梯度损失如式(8)所示:

其中:∇h和∇v分别代表水平和垂直方向的梯度运算;p代表像素索引。

2.3.4 对抗损失

对于对抗损失,本文不引入随机噪声,仅将直接传输率图作为条件送入生成器和鉴别器。生成器和鉴别器交替迭代,二者极大极小博弈的目标函数如式(9)所示:

其中:G为生成器,D为鉴别器。

3 实验结果及分析

3.1 数据集及预处理

为了验证本文模型的泛化能力,分别使用室内和室外两种环境下的数据集对模型进行训练和测试。对于室内环境,本文使用纽约大学创建的NYU v2(NYU Depth v2)数据集[4],官方提供了带有密集标注的1 449 对RGB 图像和真实深度图,图像尺寸为640×480。对于室外环境,使用了DIODE 数据集[26]的18 206 对图像,分辨率为1 024×768。在预处理过程中,首先将NYU v2 和DIODE 数据集的原始图像大小调整为286 像素×286 像素,按照官方的划分策略对数据集进行训练和测试,并使用随机裁切的方式扩充数据集,每次读取图片的某部分。为了模拟真实的霾环境,本文利用大气散射模型并结合文献[27]的暗通道先验方法对数据集中的清晰图像反向加霾(假设大气光值为常数),大气光值通过随机采样获取。使用文献[28]的基于图像饱和度的去霾算法获取霾图直接传输率图。

3.2 实验环境和网络设置

本文模型基于Pytorch 框架实现,编程语言为Python3.6,使用显存为20 GB 的NVIDIA 2080Ti 显卡训练。在训练过程中,生成器和鉴别器保持相同的参数设置,均采用自适应动量估计优化算法(Adam),动量参数β1=0.5,β2=0.999。使用随机裁剪来增强数据,将图片大小调整为256×256,总共训练300 个epoch。训练时,前150 个epoch 保持初始学习率,后150 个epoch 的学习率线性衰减至0;设置初始学习率为2 × 10-4;batchsize 设置为16;生成器和鉴别器交替迭代训练。对于损失函数的权重,通过实验获取最佳参数设定:λL1为100;λP为10;λG为20。模型在NYU 数据集上的训练时间为24 h,在DIODE 数据集上的训练时间为28 h。

3.3 评价指标

对于定量评估,本文使用两个方面(误差、精确度)的指标来评估预测深度图和真实深度图之间的差异:

平均相对误差(Mean Relative Error,MRE):

均方根误差(Root Mean Square Error,RMSE):

对数均方根误差(Root Mean Square logarithmic Error,RMSElog):

对数平均误差(Logarithmic Mean Error,LME):

精确度:

其中:N为测试图像的像素数量总和为像素i的预测值;di为像素i的真实值。对于误差指标,结果越小越好;对于精确度指标(δ<1.25i,i=1,2,3),结果越大越好。

3.4 NYU Depth v2数据集实验对比

对于本文提出的结构保持损失函数,图6 显示了各分量在训练过程中的收敛情况,L1损失、梯度损失和感知损失在模型训练开始时就逐渐趋于收敛,L1损失和感知损失在约前50 个训练批次(epoch)的收敛速度最快,并在300 个epoch 时趋于稳定,表明结构保持损失函数对生成器的训练起到了监督作用。

图6 NYU v2 数据集上损失函数的收敛情况Fig.6 Convergence of loss function on NYU v2 dataset

为了证明结构保持损失函数的有效性,在保持相同实验环境和模型参数设置的情况下,本文对损失函数进行了如下消融实验:1)对抗损失(LA)和L1损失;2)对抗损失(LA)、L1损失和感知损失(LP);3)对抗损失(LA)、L1损失和梯度损失(LG);4)对抗损失(LA)、L1损失、感知损失(LP)和梯度损失(LG),其中,对抗损失LA和L1损失作为消融实验的基准,不单独对二者进行消融实验。结果如图7 所示。通过对比发现,图7(c)中,仅使用像素损失(L1损失)和对抗的损失生成的预测深度图效果最差,边缘模糊的问题较严重,例如椅子、台灯和投影仪等边缘细节不能被有效地识别;图7(d)中,加入感知损失后,预测深度图场景的整体内容更加丰富,更贴近于真实深度图,但出现了严重的伪影(天花板和靠椅处);图7(e)中,桌子、台灯和沙发的边缘都较为清晰,这是因为梯度损失可以指导网络利用直接传输率图的结构信息生成预测深度图,但依然存在噪声(相框、墙壁处);图7(f)中,相比以上消融实验,使用边缘保持损失(有双注意力模块)生成的预测深度图更好地展现了图像的结构信息(椅子靠背、台灯、投影仪)和场景的细节,局部结构也更精细,在定性消融实验结果中取得了最好的效果。

图7 NYU v2数据集上损失函数的对比结果Fig.7 Comparison results of loss functions on NYU v2 dataset

对于双注意力模块,在相同实验条件下进行了消融实验,实验结果如图8 所示。在没有加入注意力模块的图8(c)中,沙发和椅子处的深度值发生了偏移,表明深度值的连续性遭到了破坏,且存在伪影问题;加入注意力模块的图8(d)中,物体的轮廓更清晰,场景中物体的深度值更平滑,说明注意力模块利用了特征之间的长距离依赖,使得每个位置都能充分利用上下文信息,从而确保了预测深度图中深度值的连续性和准确性。

图8 NYU v2数据集上有无双注意力模块结果对比Fig.8 Comparison of results with and without dual attention modules on NYU v2 dataset

为了进一步验证本文方法的有效性,将本文方法与文献[7]方法、文献[8]方法、文献[9]方法进行对比实验,所有实验在相同的设置下进行。NYU v2 数据集上的实验结果如图9 所示,定性分析结果表明,本文的预测深度图保留了物体的清晰轮廓和场景结构,如例图A 中的台灯、例图B 中柜子和例图D 中的冰箱,这些区域的局部细节和结构更完整,深度值更准确。在例图C 中的沙发区域,本文方法也保留了更精细的几何结构和物体边界,而其他方法均有不同程度的失真问题。以上分析进一步表明了本文方法可以有效提取直接传输率图中的结构信息和深度信息,生成高质量的预测深度图。

图9 NYU v2数据集上的实验结果对比Fig.9 Comparison of experimental results on NYU v2 dataset

对于NYU Depth v2 数据集的定量分析结果如表1,其中最优数据加粗表示。与文献[8]方法相比,LME降低了7%,RMSE降低了10%,精确度(δ<1.25)提高了4%。而就MRE而言,文献[8]方法具有更低的误差,这是由于其使用了预训练的残差网络(ResNet)和Berhu 损失函数,更关注像素级的精度。但是从定性分析结果中可以看出,本文方法的结果仍具有更精细的场景结构。对此现象的解释是,预测图中场景细节的提升不能完全体现在MRE这类像素级误差上。在损失函数的定量消融实验中,仅使用L1损失和对抗损失LA的结果最差,各项指标均低于其他组合。这是因为在生成对抗网络中,L1损失在重建低频信息时也会产生大量的伪影,同时对抗损失也会使得结构发生畸变,且对场景结构和细节的重建能力较弱。在分别加入感知损失和梯度损失后,各项指标有了不同程度的提升,而使用结构保持损失取得的结果均优于其他对比方法。

表1 NYU v2数据集上的评价指标对比Tab.1 Comparison of evaluation metrics on NYU v2 dataset

3.5 DIODE数据集实验对比

对于室外数据集,结构保持损失各项分量的收敛情况如图10 所示。对于L1损失,在前150 个epoch 训练后基本达到收敛;对于梯度损失LG在训练过程中,从第25 个epoch 到225 个epoch 过程中出现波动,这是因为相较于室内场景,室外场景具有更复杂的空间结构和更多样的场景布局,但在150 个epoch 之后,随着学习率的下降,梯度损失最终趋于稳定;感知损失LP在前50 个epoch 的训练中收敛速度最快,之后趋于稳定。总之,L1损失、梯度损失LG和感知损失LP在训练到300 个epoch 时都趋于收敛,证明了结构保持损失函数对生成器起到了监督作用。

图10 DIODE数据集上损失函数的收敛情况Fig.10 Convergence of loss function on DIODE dataset

对于损失函数在DIODE 数据集上的消融实验,采用与NYU Depth v2 数据集相同的实验参数设置和消融实验设置,结果如图11 所示。需要注意的是,由于室外环境较为复杂,为了清晰地看出深度估计的效果,对室外结果进行了伪彩色处理。图11(c)中,楼房、天空和地面出现了大面积的模糊问题和深度值预测不准确问题,说明仅靠L1损失和对抗损失,本文模型无法生成准确的深度图。图11(d)和(e)分别为加入了感知损失和梯度损失后的实验结果,可以看出远处大楼、天空和地面的大面积模糊问题得到了改善,场景的细节和物体的轮廓(灌木丛和台阶)也更加清晰,但是在一些物体的细节处(天空和树木处)依然存在较为严重的伪影。最后,图11(f)为使用结构保持损失函数(有双注意力模块)训练和测试的预测结果。可以看出,无论是楼房的轮廓还是灌木的细节,在使用结构保持损失后,均取得了更好的结果,伪影问题也得到了有效的解决;物体的细节更加清晰;轮廓结构更加完整。表明了结构保持损失中的感知损失可以指导网络利用与真实深度更贴近的高级语义特征,同时梯度损失也使网络有效地捕获场景的局部细节结构。

图11 DIODE数据集上损失函数的对比结果Fig.11 Comparison results of loss functions on DIODE dataset

双注意力模块的消融实验如图12 所示。

图12 DIODE数据集上有无双注意力模块结果的对比Fig.12 Comparison of results with and without dual attention modules on DIODE dataset

从图中可以看出,在未加入双注意力模块时,如图12(c)所示,第一张结果图中的汽车结构出现了明显的退化,还有部分深度信息缺失现象(车门处)。第二张图的楼梯区域出现了明显的深度值偏移现象,天空中也出现了严重的伪影。加入了双注意力模块后,如图12(d)所示,上述区域的结构更加完整,预测精度更高,证明双注意力模块可以更好地捕获全局深度信息。

在相同实验环境和设置下,本文将文献[10]方法、文献[11]方法和文献[12]方法在DIODE 数据集上进行了对比实验,如图13 所示。定性结果表明:本文方法相较于其他方法取得了更好的结果,本文方法可以恢复清晰的对象边界,如汽车、树木甚至微小树枝的结构,这表明跳跃链接在提取深度信息的同时能有效地利用底层结构信息;而对比其他方法,如例图A 中的汽车和例图C 中的树冠均存在不同程度的结构退化问题。对于平面区域,如例图B 中的地面、例图C中的楼房和例图D 中的房檐,本文方法在这些区域的预测深度图更平整,角落和边缘细节更完整;而文献[11]方法和文献[12]方法则存在预测不准确和伪影问题。进一步分析例图B 中,文献[10]方法和文献[11]方法在左侧的房屋处均出现了不同程度的深度值偏移现象;文献[12]方法在天空处出现了伪影。通过对比表明本文方法能够捕捉到直接传输率图中的结构特征,从而在霾干扰下生成细节较为清晰的预测深度图。

图13 DIODE数据集上的实验结果对比Fig.13 Experimental results comparison on DIODE dataset

对于定量分析,损失函数消融实验、双注意力模块消融实验、其他文献方法对比实验,在DIODE 数据集上的结果如表2 所示。本文方法(有双注意力模块)相较于文献[10]方法,MRE误差指标降低了1%,精确度(3 个阈值)分别提高了8%、2%和1%。对于损失函数消融实验,结构保持损失在各项指标上均优于其他对比实验,L1+LA的结果最差,加入感知损失和梯度损失后,各指标数据有不同程度的改善。最后,在加入双注意模块后,误差指标降低,精确度有所提高。

表2 DIODE数据集上的评价指标对比Tab.2 Evaluation metrics comparison on DIODE dataset

3.6 真实霾图的实验对比

通过定性和定量的结果分析对比,在模拟霾环境中,使用合成霾图进行实验,本文在室内环境(NYU Depth v2 数据集)和室外环境(DIODE 数据集)中已取得了较好的深度估计效果,表明了本文方法的优越性;但是为了进一步验证本文方法在真实霾环境中的有效性和泛化能力,使用真实霾环境中的霾图对本文方法进行了进一步的评估,并将文献[10]方法、文献[11]方法、文献[12]方法与本文方法的实验结果进行了对比分析,所有实验保持相同实验设置。

由于在真实环境中,霾天气大多出现在室外,所以仅使用室外真实霾环境中的霾图进行测试和分析。定性分析结果如图14 所示,可以看出,由于受到霾的干扰,对比方法在例图A 中的树枝、例图B 中远处的房屋和例图C 的栅栏处这些局部细节出现了不同程度的深度值丢失问题,无论是文献[10]方法的增量离散化模型、文献[11]方法的级联条件生成对抗网络还是文献[12]方法的深度卷积神经场模型均出现了不同程度的退化。此外,例图A 中,本文方法在灌木处的预测结果具有更完整的局部结构和更精细的边缘轮廓,这是因为结构保持损失可以指导生成器从梯度空间中学习深度值变化明显的边缘区域;例图B 中,其他对比文献方法的结果在地面处均出现了深度值不连续现象,这是因为模型受霾干扰,导致网络无法捕获局部特征依赖;例图C 中,其他文献方法在左下角的地面处出现了深度值偏移问题和大面积的伪影问题。本文方法的预测结果如图14(e),可以看出,无论是深度值的准确性还是场景的细节结构,本文的预测结果都有明显的改进,也有效地缓解了深度值不连续问题。需要注意的是,由于真实霾环境中的霾图没有对应的真实深度图,所以无法通过MRE、RMSE、RMSElog和精确度进行定量分析。通过以上分析得出,本文方法能够在真实霾环境中取得良好的深度估计结果,这是因为DenseUnet 在加深网络深度的同时可以有效利用霾图直接传输率图的底层特征,而其他对比方法的模型受到霾干扰时,模型无法从降质的图像提取有效的特征。本文的双注意力模块可以捕获局部特征的长距离依赖,解决了深度不连续问题;此外,也证明了本文提出的结构保持损失函数可以对生成器提取场景结构信息提供有效的监督。

图14 真实霾图的实验结果对比Fig.14 Comparison of experimental results of real haze images

4 结语

本文针对霾环境下传统深度估计模型无法准确获取场景深度的问题,提出了一种基于条件生成对抗网络的霾图像深度估计方法,使用霾图像的直接传输率图作为网络的约束条件,通过对抗学习进行霾条件下的深度估计。对于生成器,为了应对卷积和池化造成的低级视觉特征丢失问题,本文将DenseNet 和U-net 结合,密集连接和跳跃连接使解码器可以利用低级结构特征更好地生成预测深度图;此外,加入了双注意力模块,分别在空间和通道维度自适应地捕获局部特征依赖,提高了预测深度图的质量;并提出结构保持损失函数,使得预测深度图具有更清晰的物体边界和更精细的局部细节。在室内数据集、室外数据集和真实霾图上的实验结果表明,本文方法无论在定量分析还是定性评价方面,均取得了较好的效果,证明了本文方法对恢复深度图清晰边界和精细局部细节的能力,也表明了本文方法的泛化能力。最后,提升直接传输率图的质量是提高本文模型深度估计质量的关键问题之一,在后续工作中,将考虑将直接传输率图的估计纳入到生成器中,设计单独的网络模型更准确地估计直接传输率图。

猜你喜欢
梯度损失注意力
洪涝造成孟加拉损失25.4万吨大米
让注意力“飞”回来
两败俱伤
一个具梯度项的p-Laplace 方程弱解的存在性
内容、形式与表达——有梯度的语言教学策略研究
航磁梯度数据实测与计算对比研究
A Beautiful Way Of Looking At Things
组合常见模型梯度设置问题
损失
那些损失上百万的演员