基于金字塔分割注意力网络的单目深度估计方法

2023-07-03 14:11李文举李梦颖储王慧
计算机应用 2023年6期
关键词:深度图集上像素

李文举,李梦颖,崔 柳,储王慧,张 益,高 慧

(1.上海应用技术大学 计算机科学与信息工程学院,上海 201418;2.上海应用技术大学 艺术与设计学院,上海 201418)

0 引言

深度信息往往应用于三维(Three-Dimensional,3D)重建、自动驾驶、虚拟现实等多个领域,然而单目相机无法获得三维场景中物体的深度信息,需要在一定时间序列内才能有前后帧的估算深度,因此深度信息的预测是计算机视觉研究的重点问题之一。

单目深度估计比较经典的算法有运动恢复结构(Structure From Motion,SFM)信息法[1]、光照恢复结构(Shape From Shading,SFS)信息法[2]等,这些算法主要从运动和阴影中恢复形状,但是精度不高,无法满足实际的要求。近年来,深度学习不断应用于各行各业。它包含各种网络模型,如深度置信网络、自编码(Auto Encoder,AE)网络、卷积神经网络(Convolutional Neural Network,CNN)等,利用深度学习强大的建模优势以及网络模型对内在数据相关性的强大学习能力可以对单目图像进行较为精确的深度估计[3]。随着各种网络在图像领域的成功应用,越来越多的学者使用编码器-解码器解决单目图像深度预测问题[4-6],然而编码器网络在下采样过程中会严重扭曲三维重建中深度预测的准确性。为了解决该问题,文献[7]中将包含更多细节信息的浅层特征与深层特征进行融合。虽然在减少深度误差方面具有很好的性能,但受到场景不稳定的限制,仍然会错误地估计三维场景中的相对深度,或者对一些数据集(包含多张占据整个平面的图片)预测效果较差[8]。

目前基于单目图像深度估计依然存在两大问题:1)对深度梯度变化剧烈的边缘预测不准确;2)错误预估深度最深区域。本文提出一种基于金字塔分割注意力(Pyramid Split Attention,PSA)网络的单目深度估计方法(monocular depth estimation method based on Pyramid Split attention Network,PS-Net),通过向网络中输入RGB(Red Green Blue)图,利用新设计的网络结构学习特征进行训练,有效提高深度估计的精度。本文方法如下:PS-Net 基于边界引导和场景聚合网络(Boundary-induced and Scene-aggregated Network,BS-Net)[8]的结构,引入PSA 模块,改进解码器中的激活函数。新的网络通过添加PSA 模块将低级特征作为输入,提取出更多的细节信息,通过新的Mish 激活函数[9],有效提升网络的性能,获得精确的深度图。

本文的主要工作如下:

1)提出基于金字塔分割注意力网络的单目深度估计方法,用于估计单目图像的深度信息。通过该网络提取出的多尺度信息具有更好的像素级注意力,在预测边缘深度和深度最深的区域表现出了较好的性能。

2)在解码器中使用Mish 激活函数,利用它的平滑性、无上界、有下界、非单调性等特点提高网络的性能。

3)在NYUD v2(New York University Depth dataset v2)和iBims-1(independent benchmark images and matched scans v1)数据集上进行了大量实验,结果表明相较于对比方法,本文方法具有更好的效果,验证了本文方法的有效性。

1 相关工作

单目图像的深度估计方法可分为两大类:基于特征线索的深度估计算法和基于机器学习的深度估计算法。

基于特征线索的深度估计算法在估算深度时需要相机捕获各种启发式线索,常用的单目特征线索有阴影、线性透视、相对高度、遮挡和运动线索等。此外还可以从纹理[10]恢复深度,但是该方法仅适用于纹理信息明显的物体,主要通过外部的纹理线索预测物体表面的形状。最早的估计图像深度的方法就是采用这些辅助的线索特征,但是这些线索的获取对光照的要求十分严格,因为重建图像的三维形状主要通过光照反射模型利用图像中的亮度信息计算法向量,在复杂场景下难以实现,并且得到的特征都不稳定。

随着人工智能技术的不断涌现,机器学习的方法不断应用于各个领域,在深度估计方向也得到了很好的效果。基于传统的机器学习方法[11-13]尝试解决深度估计问题,Saxena等[11]利用马尔可夫随机场(Markov Random Field,MRF)学习输入图像特征与输出深度之间的对应关系,实现对深度的预测。之后深度估计有了新的研究方向,基于深度学习的深度估计方法逐渐成为研究重点,主要分为无监督的深度学习方法和有监督的深度学习方法。

针对有监督的学习方法,Eigen等[14]通过两个尺度的神经网络的方法对RGB 图像进行深度预测:第一个尺度预测图像的全局信息,第二个尺度更精细地预测局部信息。Eigen等[15]根据上述的研究引入了一个统一的多尺度网络,该网络以VGG(Visual Geometry Group)网络为基础,在文献[14]的基础上,改进第一尺度和第二尺度的网络,引入第三个尺度提取图像更多的细节信息,通过CNN 提高特征图的分辨率。同时,Liu等[16]为了提高深度估计的精度,提出将连续条件随机场与深度神经网络相结合的思想,之后经过研究人员的不断探索,逐渐演变出CNN 改进模型[17-18]。Ali 等[19]针对大型网络往往会扭曲低分辨率层中的边缘细节,导致物体边缘附近的深度预测较差,提出一种显示解耦图像低频和高频区域对应的物体和边缘的深度特征方法。该方法使用一个具有自适应卷积单元和多元融合单元的轻量级编码器-解码器框架,极大减少了参数量并且没有任何显著的性能损失。基于有监督学习方式的单目深度估计方法往往需要大量的真实数据进行对照训练,对于数据集中真实数据的获取成本较高,往往需要一些精密的仪器设备,并且这些设备采集的深度值受物体移动和反光的环境影响,导致深度预测不准确,因此,有人提出无监督的深度学习方式。

无监督学习通过图像对之间的几何关系重新构建对应的图像,然后通过图像重建损失监督网络的训练。Garg等[20]提出利用立体图像对的方法进行无监督单目深度估计,通过双目立体理论和像素点之间的对应关系间接获得单目图像深度。Godard等[21]通过对极几何约束对上述方法进行了改进,使输入图像生成视差图,通过左右视差一致性优化性能。虽然无监督的学习方式能够避免有监督学习中数据采集的缺点,但是没有真实数据的对照学习,一定程度上降低了深度估计的精度。

2 PS-Net深度估计网络

2.1 网络结构

有监督学习方式的深度估计网络通过对输入RGB 图片和对应真实的深度值进行学习训练,得到最优的网络模型,通过将新的图片输入到该模型中就可以得到图片对应的深度值。图1 为本文设计的PS-Net 深度估计网络结构,PS-Net以BS-Net 为基础。该网络使用传统的编码器-解码器(Encoder-Decoder)结构,融合了深度相关模块DCE(Depth Correlation Encoder),添加了条纹细化(Stripe Refinement,SR)模块和 多层边 界融合(Bottom-Up Boundary Fusion,BUBF)模块。本文在此基础上引入PSA 模块,并使用Mish 激活函数替换解码器中的ReLU(Rectified Linear Unit)函数。网络整体采用ResNet50(Residual Network)作为基础的骨干网络,下采样的第4、5 阶段采用空洞卷积替换原有3×3 卷积的方式,所以获得较大的感受野并减少计算量,并且自下而上地依次输入BUBF。BUBF 将浅层的信息逐层传入网络深处,便于提取出下采样中深度的变化信息以及高分辨率中存在的信息,获得丰富的细节信息,BUBF 模块的输出送入SR中。深度相关模块以编码器的输出作为输入,利用空洞卷积和金字塔场景编码器捕获长距离像素和多尺度区域的相关性,输出解码器中。解码器中主要包括四步:前两步通过大核细化块(large-kernel Refinement Block,l-RB)压缩通道并保持分辨率,本文在l-RB 中使用Mish 激活函数,如图2 所示;后两步采用l-RB 和上采样结合的方式,类似文献[22]中的向上投影。PSA 模块的输入为数据集下采样之后得到的114×152×64 的图片,将浅层图片作为输入,增强了特征图中细节的表征能力,提高深度预测的精度,输出与BUBF 一同送入SR 模块。SR 将解码器的输出结果与BUBF 和PSA 模块的输出进行融合,输出最终需要的深度图。按照上述方法获得的深度图深度误差较小。

图1 PS-Net深度估计网络结构Fig.1 Structure of PS-Net depth estimation network

图2 大核细化块Fig.2 Large-kernel refinement block

2.2 金字塔分割注意力模块

在深度估计中受场景以及数据集的影响,在估计深度边缘梯度变化剧烈和深度最大的区域往往无法达到理想的效果。为了解决这些问题,本文提出PS-Net,保留了原有网络的优势,并在此基础上融合PSA 模块,该模块通过使用多尺度卷积核和全局平均池化的操作增强了多尺度和跨信道之间的信息相关性[23],提高了边缘和最远距离预测的精度。

PSA 模块如图3 所示,主要通过以下几步内容实现:首先将输入图像通过拆分和融合(SPlit and Concat,SPC)模块按照通道划分为S组,通过不同大小的卷积核得到通道级别上的含有多尺度信息的特征图;然后将SPC 模块的输出送入权重模块获得不同通道上的权重,进而得到每个尺度特征图的注意力权值,并对S组的注意力权值进行归一化;最后通过上述的操作将多尺度的空间信息和跨通道注意力整合到每个分割特征组的块中,产生更好的像素级注意力。

图3 PSA模块Fig.3 PSA module

SPC 模块如图4 所示,为了得到不同的空间分辨率和深度,将输入张量X从通道级别上划分成S组,取S=4,每组Xi进行不同尺度的卷积ki=2 × (i+1)+1(i=0,1,…,S-1),以便于获得较大的感受野。为了避免由于卷积核尺寸的增加导致的计算量变大,对每一组的特征进行分组卷积,分组数量为G=2(ki-1)/2,最后对得到的不同尺度的特征图在通道Fi上进行拼接,拼接函数如式(1)所示:

图4 SPC模块Fig.4 SPC module

其中F表示特征图。

然后将SPC 模块的输出作为挤压和激励(Squeeze-and-Excitation,SE)权重的输入如图5 所示,对SPC 模块得到的多尺度特征图进行挤压操作Fsq(·),通过全局平均池化的操作编码全局的信息,如式(2)所示;然后进行激励操作Fex(·,Wi),通过两层全连接和激活函数以自适应校准通道关系,如式(3)所示,获得信道注意权重信息;最后对不同通道拼接的注意力值进行归一化,与SE 模块的输入进行加权融合Fscale(·,·)。

图5 SE权重模块Fig.5 SE weight module

其中:H和W分别表示特征图的高和宽,gc表示第c通道对特征图进行全局平局池化操作后得到的信息,wc表示第c通道特征图通过两层全连接和激活函数之后得到的信息,δ表示ReLU 激活函数的操作,W0和W1表示全连接层操作。

2.3 Mish激活函数

本文使用Mish 激活函数[9]代替解码器中l-RB 中的ReLU激活函数。Mish 是一种新的平滑且非单调的激活函数,被定义为:

其中δ(x)=ln(1+ex)是一个softplus 激活函数。Mish 函数的图像如图6 所示。

图6 Mish函数图像Fig.6 Mish function image

与ReLU 相比,Mish 函数具有下界、无上界、平滑、非单调的特点,性能比较高。具体地,有下界无上界:无上界避免在训练过程中因为饱和导致的梯度消失,负值部分保证信息的流动,优于ReLU 中的硬零边界;非单调性:很小的负值,有助于稳定网络的梯度流;平滑性:每个点都具有平滑性,使得梯度下降的效果优于ReLU 函数,具有很好的泛化能力。但是与ReLU 函数相比,Mish 也具有计算量大的特点,不宜大量使用,所以本文只在解码器中进行小范围使用,并取得了不错的效果。

2.4 损失函数

其中α是一个超参数,本文取值为0.5。网络的整体损失为:

3 实验与结果分析

本文在NVIDIA 2080Ti GPU 上进行实验,使用Ubuntu 系统,PyTorch 1.8 框架。使用iBims-1 和NYUD v2 两个数据集进行多次实验,取平均值评估提出的方法性能。在NYUD v2数据集上训练和测试,在iBims-1 数据集上进行评估。

根据以前的研究工作[5-6],本文选取NYUD v2 数据集中50 000对RGB-D图像进行训练,654对进行测试。实验设置20个epoch 训练模型,batch_size=8,使用Adam 优化器,采用的参数为(β1,β2)=(0.9,0.999),权重按照10-4衰减。设置0.000 1为初始学习率,每5个epoch减少10%。为了训练模型,所有的图像和标签使用双线性插值将640×480 的原始图像下采样到320×240,再从中间进行裁剪到304×228[24]。为了对齐网络输出,对裁剪后的标签进行下采样到152×114。此外为了评估模型,在测试过程中网络的输出被上采样到304×228。

本文使用以前研究[24]中常用的精度评价指标平均绝对相对误差(mean absolute ReLative Error,REL)、均方根误差(Root Mean Squared error,RMS)、均方对数误差(mean Log10 error,Log10)和阈值td下的准确性,计算公式如下:

预测深度的边界精度通过准确率和召回率评估,本文设定阈值t(t∈{0.25,0.5,1}),大于阈值t的像素视为边界,tp是预测正确边界像素的数量,fp是将错误的边界像素预测为正确边界像素的数量,fn是将正确边界像素的数量预测为错误边界像素的数量,计算公式如下,准确率:P=tp/(tp+fp),召回率:R=tp/(tp+fn),综合指标:F1=(2 ×P×R)/(P+R)。

还有一些新的评价指标[25]用于评估iBims-1 数据集,深度边界误差(Depth Boundary Error,DBE)用于衡量预测深度图中边界的完整性和准确性,分别用DBE_com和DBE_acc表示;平面性误差(Planarity Error,PE)用于衡量三维空间中的深度精度,分别用PE_plan和PE_ori表示平面误差和定向误差;定向深度误差(Directed Depth Error,DDE)衡量过远或过近预测深度像素的比例,分别用DDE_0、DDE_m、DDE_p表示正确预测深度像素的比例、高度预估深度像素的比例和低估深度像素的比例(高度预估深度像素的比例和低估深度像素的比例分别表示高估了正确像素的比例和低估了正确像素的比例)。另外还有用于评估深度最深区域的距离误差,计算式如式(13)所示:

其中:Pmax表示预测深度图中平均深度最大的区域,Gmax表示真实深度图中平均深度最大的区域,m用来表示不同分辨率,取值为6,12,24。

3.1 数据集

iBims-1 数据集是一个新的高质量的RGB-D 数据集,专门用来测试单目深度估计效果。通过由数码单反相机(Digital Single Lens Reflex,DSLR)和高精度激光扫描仪组成的特殊装置拍摄得来,记录了各种高分辨率的室内场景图和高精度的深度图。与其他相关的RGB-D 数据集相比,iBims-1 数据集具有无遮挡、深度范围大和噪声水平低等特点。该数据集包含100 对RGB-D 图像对用于测试,测试的所有模型都是在NYUD v2 数据集上进行训练得到的。由于实验环境不同,部分实验数据不同于原论文中的数据。NYUD v2 数据集有51 342 对彩色图像及对应的深度图,它们采集于3 个城市的464 个场景,由微软Kinect 拍摄获得。

3.2 定量分析

表1 是在iBims-1 数据集上的一些新的衡量指标,虽然相较于重骨干网络[26]不是最好的,但总体来看本文方法相较于其他对比方法依然具有显著的优势。衡量定向深度误差方面与文献[8]的方法相比DDE_m降低了1.42 个百分点,正确预测深度像素的比例达到81.69%。

表1 在iBims-1数据集上的平面性误差、深度边界误差和定向深度误差Tab.1 Planarity errors,depth boundary errors,directed depth errors on iBims-1 dataset

在衡量边界完整性、准确性以及平面误差方面,表现出了较好的效果,原因是本文在金字塔结构中通过多尺度卷积核得到了不同的空间分辨率和深度,并通过全局平均池化将全局信息嵌入到通道描述符中,从而实现不同尺度上下文信息的融合。

表2 是一些常用的衡量指标的性能,是本文方法与对比方法在像素级精度和计算误差之间的比较。前3 个参数表示预测深度图与真实深度图之间的误差,越小精度越高;后3 个参数衡量预测深度图在不同阈值下的像素级精度,参数值越大越好。结果表明,在iBims-1 数据集上,相较于文献[27,22,5,8]方法,本文方法的各项指标都有一定的提升。另外从表2 中可以看出,在NYUD v2 数据集上,本文方法在一定程度上取得了较好的效果,获得的精确值较高,误差较小,效果优于文献[8,22,27-30]方法,因为本文保留了原有深度估计网络的优势,同时融合PSA 增强多尺度的空间信息,提取更多的细节信息,使得在边缘预测和预测深度最深的区域具有更高的精确度。

表2 在iBims-1和NYUD v2数据集上的相关深度误差和精度Tab.2 Relative depth errors and accuracies on iBims-1 and NYUD v2 datasets

表3 表示不同方法在两个数据集上预测深度最深区域的误差。在iBims-1 数据集上,与文献[8,27]方法相比,本文方法归一化误差更小,在m=24 时本文方法也优于文献[22,5]方法,表明本文方法在预测深度最深区域时具有更高的准确性;在NYUD v2 数据集上也优于其他对比方法。从表3 中可以看出,与文献[27,22,8]方法相比,本文方法在预测深度最深区域上收获了较好的性能,因为本文引入的PSA模块可以将跨信道注意力和多尺度的空间信息融合到每个块中,有效增强了不同区域的上下文关系,突出了物体之间的相对深度。

表3 在iBims-1和NYUD v2数据集上不同划分率下的深度最深区域的距离误差Tab.3 Distance errors of the farthest region under different partition rates on iBims-1 and NYUD v2 datasets

边界精度在预测深度图中是一项重要的衡量指标,边界梯度很大程度上影响了生成深度图的可视化。表4 表示预测深度图中的边界精度,本文方法相较于文献[8,22,27-28]方法在恢复边界时都具有较高的准确率和召回率,并且对应的综合指标值也具有一定程度的提升,当进行深度可视化时具有较好的效果。

3.3 定性分析

对于背景复杂的深度预测,PS-Net具有相对准确的估计能力。图7展示的图片背景是带有柜子的书架,书架上放满了各种书籍和摆件。在真实深度图中,书架及其前面的书桌、沙发具有很多的噪点,与原图相比有相对较多的差距。而利用本文网络预测的深度图,可以清晰地呈现场景的布局和相对深度,沙发在前,其次是书桌,最后是书架在最后,整个图片边缘非常整洁,从图7中可以发现,相较于BS-Net的方法依然具有很好的效果。

图7 复杂背景的深度预测效果Fig.7 Depth prediction effects of complex background

图8展示了NYUD v2数据集上定性的结果,当预测大的完整的物体(如墙面)时,预测的效果更好。本文方法边缘预测的效果相较于BS-Net的方法更准确;而对小物体、色差不明显的物体的识别效果不太理想,如墙上白色的控制盒会被作为墙面的一个整体进行预测深度。从图8 中可以准确判断墙面、椅子、箱子之间的相对深度关系,椅子和箱子相对在前,墙面在后。

图8 大物体和小物体的深度预测效果Fig.8 Depth prediction effects of large objects and small objects

图9 展示了走廊的深度预测效果,从图9 中可以看出本文方法在预测深度最深的区域具有很好的效果,网络预测到了左前方的柜子深度较小,然后是左前方墙上的嵌入式书柜,走廊的尽头是深度最深的区域,相较于BS-Net 的方法,本文方法具有明显的优势。

图9 走廊深度预测效果Fig.9 Depth prediction effects of corridor

3.4 消融实验

为了阐明PSA 模块的有效性,本节在iBims-1 和NYUD v2 数据集上进行了消融实验。本文定义编码器、解码器和条纹细化模块为基线,另外构建了3 个变体进行评估,如表5、6所示。

表5 iBims-1数据集上消融实验的预测结果Tab.5 Prediction results of ablation experiments on iBims-1 dataset

如表5 所示,由于PSA 模块能够提取上下文的空间信息,建立通道间的长期依赖关系,变体基线+PSA 模块在所有评价指标上都表现出了较好的性能。表6 中3 个变体在恢复边界中相较于基线+DCE+BUBF 具有更高的准确性。通过结合PSA、DCE 和BUBF 之后形成的变体既提高了准确率也提高了召回率,在预测深度最深的区域以及深度突然变化的区域时取得了较好的效果。

表6 NYUD v2数据集上不同阈值下预测边界像素的精度Tab.6 Accuracies of predicted boundary pixels in depth maps under different thresholds on NYUD v2 dataset

4 结语

本文提出一种新的融合金字塔分割注意力的深度估计网络方法(PS-Net)。该网络使用传统的Encoder-Decoder 和DCE 结构,并结合SR 和BUBF 模块提取重要的边缘特征信息,在此基础上融合金字塔分割注意力,将低级特征作为该模块的输入,低级特征具有丰富的细节位置信息,通过该模块增强不同区域之间的相关性,使用Mish 激活函数,提高网络的性能,增强边缘和深度最大区域预测的准确性。该方法在NYUD v2 数据集和iBims-1 数据集上都表现出了良好的效果,与最新的方法相比性能具有一定的提升。下一步工作可考虑提高小物体嵌套在大物体上预测的准确性。

猜你喜欢
深度图集上像素
像素前线之“幻影”2000
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
“像素”仙人掌
基于深度图的3D-HEVC鲁棒视频水印算法
复扇形指标集上的分布混沌
ÉVOLUTIONDIGAE Style de vie tactile
一种基于局部直方图匹配的深度编码滤波算法
叠加速度谱在钻孔稀少地区资料解释中的应用
高像素不是全部