APP下载

基于多尺度注意力导向网络的单目图像深度估计

2020-02-05刘杰平温竣文梁亚玲

关键词:深度图解码器编码器

刘杰平 温竣文 梁亚玲

(华南理工大学 电子与信息学院,广东 广州 510640)

深度估计对理解三维场景具有重要的影响,可以帮助完成三维重建、自动驾驶、即时定位与地图构建(SLAM),以及增强现实(AR)等任务[1- 3]。传统的获取高精度的目标深度信息通常是采用深度传感器实现,包括激光雷达、基于结构光的深度传感器和立体相机等,然而通过这些设备获取的深度图成本较高,受环境变化影响较大,且多用于技术研发和测试阶段,尚未能大规模应用。相比之下,基于图像进行深度估计的方法成本低,并可以有效克服上述传感器的不足,因此,研究对单目图像进行深度估计具有一定的实用价值。

近年来,随着卷积神经网络(CNN)在图像领域的成功应用,研究人员开始大量地尝试应用CNN来处理单目图像的深度估计问题[4- 6]。Eigen等[7]首先使用CNN从双尺度架构中进行深度预测,从粗、细两个尺度分别提取图像的全局信息和局部信息,再将两者进行融合得到高分辨率的深度图;后来,他们又在原有的基础上把网络扩展为三尺度架构,实现了能够同时预测表面法线和物体标签的多任务模型[8]。Laina等[9]提出了一个基于深度残差网络的模型,使用全卷积网络并结合他们提出的快速上采样模块,使预测的准确率有了较大的提升。Liu等[10]结合CNN与条件随机场来学习CNN的一、二元势函数,将深度估计转化为优化问题,并提出了一种超像素分割方法来进行超像素水平的深度预测。Xu等[11]将级联的条件随机场添加到CNN中,通过条件概率建模的方法提高了物体的预测质量。为了提高效率,Fu等[12]引入了一种增加间距的离散化策略来离散化深度,并将深度估计从回归转换为分类任务,获得了较好的结果。Hao等[13]使用膨胀卷积提取多尺度特征,并且将注意力机制与CNN相结合,提高了深度预测的精度。Hu等[14]提出了一种有效的多尺度特征融合模块,改善了生成深度图中边缘粗糙的区域,该方法尽管通过融合多尺度特征已经取得了不错的效果,但是对于复杂场景仍然有着预测不准确的问题。

上述算法极大地促进了深度估计技术的发展,但是生成的深度图仍然存在空间分辨率不高和容易丢失边缘结构信息的问题,以及对于微小物体的预测出现失真的情况。对于上述问题,本文提出了一种基于多尺度注意力导向的网络结构,以便能够充分利用图像多个尺度的特征信息,在提取网络深层细节信息的同时融入浅层的空间结构信息,使生成的深度图能够保持良好的深度连续性,实现场景深度估计精度的提高;同时提出了一种改进的特征融合模块,通过引入空间注意力以利用不同的CNN层中学习的不同的深度边界线索来恢复丢失的细节;此外,在网络中引入全局上下文信息,并且融合通道注意力,有效地学习特征图上不同部分的权重分布,提高模型的识别能力,改善对微小物体预测失真的问题。

1 算法描述

1.1 算法框架

场景深度估计问题可以描述为对图像的每个像素点进行深度值的回归估计,即通过学习图像特征和场景深度值之间的映射关系,使用深度模型学习具有层次化的局部结构特征,从而实现场景深度值的回归估计。考虑到多尺度特征和注意力机制在场景估计中具有各自的优势,本文设计了新的深度模型结构来实现更高精度的场景深度估计。

本文算法的网络结构中主要包含4个部分:基于多尺度特征提取的编码器、基于残差通道注意力融合的解码器、边界增强模块以及优化模块,如图1所示。其中,concate表示按通道进行拼接,up-sample表示双线性上采样。对于一幅输入图像,首先通过编码器提取多尺度特征,然后通过残差通道注意力融合的解码器将特征中的高级语义信息解码为深度信息;同时,为了充分利用所提取的多尺度特征,设计了边界增强模块以提取出更精细的图像局部特征,最后通过优化模块对解码器和边界增强模块所提取的信息进行融合细化,生成最终的深度图。

图1 文中所提算法的网络结构Fig.1 Network structure of algorithm in this paper

1.2 基于多尺度特征提取的编码器

本文采用SENet[15]作为编码器的基本框架。该网络中的注意力模块(SE-Block)采用全局平均池化的方法计算通道维度的注意力,通过学习获取每个特征通道中的重要程度,实现不同特征的加权表达,从而减少了冗余信息,有效地提高了网络对特征的捕捉与选择能力。编码器用多个尺度提取特征,提取的特征图包含5种不同的分辨率,分别为输入图像的1/2、1/4、1/8、1/16和1/32,这些不同尺度的特征含有图像的全局场景布局信息和结构细节信息。将提取的多尺度特征图同时输送到解码器以及边界增强模块,并对这些特征进行加工优化,以实现对深度图更准确的估计。

1.3 基于残差通道注意力融合的解码器

在当前流行的编码器-解码器结构[16- 17]中,利用了多尺度的感受野以及金字塔结构,通过融合多尺度特征取得了不错的效果,但是它们忽略了全局背景,所以对于复杂场景的深度预测仍然不够准确。本文受到判别特征网络(DFN)[18]的启发,提出了基于残差通道注意力融合的解码器,包括残差优化模块和通道注意力模块两部分,其将编码器输出的特征图从特征空间映射到图像深度空间,通过结合全局背景信息,对预测的深度图逐步进行优化。

首先,解码器在网络底层(Block 5)嵌入了一个上下文模块,依次进行了全局平均池化、1×1卷积和上采样操作,向网络引入全局上下文信息,以增强物体相同类之间一致性的约束,如图2(a)所示。其次设计了残差优化模块,对编码器生成的具有不同尺度和通道的特征图进行统一尺度和维度匹配,并且减少计算量。如图2(b)所示,该模块使用一个1×1的卷积层对特征图的通道信息进行压缩,两个3×3的卷积层组成的残差结构则可以增强每个阶段的识别能力,对降维后的特征图进行像素级优化。

为了结合各通道的信息,自适应地调整各通道的特征权重,增强网络的特征提取能力,引入了通道注意力模块。与SENet中的注意力模块相比,通道注意力模块增加了两项操作:在输入部分对上下层级的特征进行拼接,充分利用通道间的联系和层级之间的图像特征信息,增加了对上下文信息的有效利用;由于单纯地堆叠注意力模块存在反复的特征加权运算操作,使特征值越来越小,特征表达能力变弱,从而导致网络性能下降,因此添加了残差单元,保留主要的图像特征,并解决了深度神经网络随着层数加深难以优化和收敛的问题。具体操作如图2(c)所示,将当前阶段的特征图Xnow∈RH×W×C(H、W、C分别为特征图的高、宽和通道数)和上一阶段产生的特征图Xpre∈RH×W×C拼接(concate)起来,然后通过全局平均池化和1×1卷积得到一个R1×1×C的通道注意力张量Wc,此张量中的值表示特征图对应通道中的权重。将Wc经过Sigmoid函数归一化后与Xnow相乘,将每个通道特征图与其对应权重值相乘,使网络能够自适应地选择有效特征。同时,为增强特征图的全局信息量,将加权后的特征图与Xpre相加,生成最终的结果Xc∈RH×W×C,保留整体结构信息的同时增强了边缘细节特征。计算过程如下:

Xc=Xpre⊕Xnow⊗(σ(Wc))

(1)

式中:Xc为经过通道注意力模块输出的特征图;σ为Sigmoid激活函数;⊕表示对应元素相加,⊗表示对应元素相乘。

图2 解码器中不同模块的具体结构Fig.2 Specific structure of different modules in decoder

将得到的特征图Xc再次输入到残差优化模块以实现特征图的尺寸与维度匹配,并且进一步提炼细化。

1.4 边界增强模块

经过多次下采样后编码器所提取的特征已经丢失了较多原始图像中物体的边缘轮廓信息,因此设计了边界增强模块,利用不同的CNN层中学习的不同的深度边界线索来恢复丢失的细节。该模块中引入了空间注意力模块,可以学习到不同区域对目标的增益,相似的特征会互相受益,不同物体的类间对比度随之提升,有效地增强了图像的边缘细节。

空间注意力模块如图3所示,将经过上采样得到的特征图Xnow∈RH×W×C进行一个两路的池化操作(包括全局平均池化和全局最大池化),压缩图像特征的信息,生成两个空间特征图。对其拼接后进行7×7的卷积,产生一个RH×W×1的空间注意力张量Ws,此张量中的每个元素都是来自所有位置的特征和原始特征的加权和,因此能够有选择地集成上下文信息。将Ws通过Sigmoid激活函数归一化后与Xnow相乘生成最终的结果Xs∈RH×W×C。计算过程如下:

Xs=Xnow⊗(σ(Ws))

(2)

图3 空间注意力模块Fig.3 Spatial attention module

最后,将4个不同层级的输出特征图Xs合并为一个输出到优化模块。优化模块融合解码器和边界增强模块的多尺度特征,再通过3层3×3卷积层以增强模型的非线性表达能力,经过进一步细化后生成最终的深度图,如图4所示。

图4 优化模块Fig.4 Optimization module

1.5 损失函数

本文采用了文献[14]中提出的损失函数,由深度值损失、深度梯度损失和表面法线损失3个方面组成。

深度值损失使用预测深度值di与真实深度值gi之间的差来表示。因为物体更多地集中在深度较浅区域,深度较深的区域在图像中会比较少,所以使用深度差的对数作为损失函数以降低深度较深的区域对预测的影响:

(3)

式中,n为每张图片中像素点的个数。上述损失仅考虑点对点关联而没有考虑深度结构信息,仅使用这种损失会在预测复杂场景上产生失真的不良效果。由于场景深度通常是离散的,并且在边界的位置上会发生很大变化,因此利用边界处深度离散明显的梯度信息,定义深度梯度的损失函数:

(4)

对于微小结构的误差,采用表面法线损失函数,通过预测深度图的表面法线来减少物体表面的波动对于深度估计的影响。用以下方法来测量两个法线之间的差异:

(5)

将三者加权结合在一起组成最终的损失函数L,如式(6)所示:

(6)

2 实验结果与分析

为验证本文算法的有效性,采用纽约大学(NYU)构建的公开的室内图像数据集NYU-Depth V2[19]进行模型的训练和测试。首先,对本文提出的不同创新点进行了详细的对比试验以验证其有效性;其次,将本文算法与当前主流的算法,包括文献[7]中算法(称为Eigen算法)、文献[9]中算法(称为Laina算法)、文献[11]中算法(称为Xu算法)、文献[12]中算法(称为Fu算法)、文献[13]中算法(称为Hao算法)、文献[14]中算法(称为Hu算法)进行实验对比,以验证本文算法的优越性。

2.1 实验设置及评价指标

NYU-Depth V2数据集由Microsoft Kinect拍摄,场景深度的数值从0到10 m,包含464个不同室内场景的图像和深度图。原始的彩色图片以及对应的深度图大小为480像素×640像素,为加速训练将图像下采样到240像素×320像素,然后通过中心裁剪获得228像素×304像素的图像作为网络输入。最终使用NYU官方划分的具有654张图像的测试数据集对模型进行测试。训练过程中,使用以下3种方式对数据集进行扩充:①随机翻转,彩色图像和深度图随机水平翻转,概率设置为50%;②随机旋转,彩色图像和深度图同时旋转r(r∈[-5°,5°]);③色彩抖动,彩色图像的亮度、对比度和饱和度随机缩放c(c∈[0.6,1.4])。

(7)

(8)

(9)

(10)

其中,N表示测试集中所有图像的总像素点的个数。

2.2 网络消融分析

本文算法包含3个消融因素,分别为编码器端网络的通道注意力、基于残差通道注意力融合的解码器和边界增强模块。为了验证本文算法的有效性,采用如下的方式进行消融分析:①采用ResNet- 152网络作为编码器,并使用文献[9]中的基础上采样模块(up-Projection)作为解码器,即编码器和解码器网络都没有通道注意力模块,称此编码器-解码器结构为ResNet-Ⅰ;②将ResNet-Ⅰ中的解码器替换为残差通道注意力融合的解码器,即编码器没有通道注意力模块,解码器网络有通道注意力模块,称此结构为ResNet-Ⅱ;③采用SENet-154网络作为编码器,基础上采样模块作为解码器,即编码器有通道注意力模块,解码器网络没有通道注意力模块,称此结构为SENet-Ⅰ;④将SENet-Ⅰ中的解码器替换为残差通道注意力融合的解码器,即编码器和解码器网络都有通道注意力模块,称此结构为SENet-Ⅱ;⑤对SENet-Ⅱ添加边界增强模块,即为本文算法网络结构。

表1所示为网络消融分析的实验结果。从表1中可以看出,ResNet-Ⅱ和SENet-Ⅰ网络的实验结果与ResNet-Ⅰ网络比较,误差减小,准确率提高,这是因为前者使用了通道注意力模块,在不需要大量增加网络参数的情况下,通过学习通道重要性的方式,能自适应地校准特征图,从而提高了模型的识别精度;SENet-Ⅱ网络的实验结果比ResNet-Ⅱ和SENet-Ⅰ网络的误差小、准确率高,这是因为编码器和解码器注意力模块的堆叠使用,进一步增强了网络的特征提取能力。其中残差通道注意力融合的解码器能够通过对上下层级特征的拼接,提高对上下文信息的利用,弥补了单一层级特征表达力的不足,并使用残差单元保留主要的特征,不仅避免了过拟合,还增强了解码器的鲁棒性。本文算法相比于SENet-Ⅱ网络,进一步降低了误差,提高了准确率。这是因为使用了边界增强模块,通过学习深度图中物体的位置关系,提高物体的类间对比度,进一步地对深度图的边缘细节等信息进行细化。因此,本文模型中3个消融因素都可以提高网络的性能,在多种评价指标中都能够起到有效作用。

表1 网络消融分析1)Table 1 Ablation analysis of network

图5所示为消融实验的结果对比图,其中,深度图是伪彩色图像,深度值越大越接近红色,深度值越小越接近蓝色。从图5可以看出,与其他算法生成的深度图比较,本文算法生成的深度图能较好地呈现图像的深度信息,更接近真实深度图。以第1行的单车图像为例,与真实深度图比较,ResNet-Ⅰ网络生成的深度图像只能模糊地区分出单车和后面的柜子,而单车的车头部分与墙融为一体;ResNet-Ⅱ网络使用了残差通道注意力融合解码器,生成的深度图能够显示单车车头处的大致形状;SENet-Ⅰ网络在编码器端采用了通道注意力,生成的深度图能较好地区分单车车头和墙,但是车头与车尾则没能很好地连接在一起;SENet-Ⅱ网络在编码器与解码器端都使用了注意力模块,生成的深度图能够较好地显示出单车的轮廓,但靠近车头的横梁处存在不连续的现象,后面柜子上的物体较模糊;本文算法生成的深度图单车轮廓清晰,后面柜子上的物体棱角较清楚,更接近真实深度图。因此,消融实验的主观效果也表明本文模型中3个消融因素都可以提高网络的性能。

2.3 主观效果对比

为了验证生成深度图像的质量,对不同算法生成图像的质量进行了主观效果比较,图6所示为彩色图像及其真实深度图和7种算法生成的深度图Image1、Image2至Image6。其中,第1行图像为包括多种场景的室内图像,如包含沙发的图像、人物图像和包含室内桌椅的图像等。从图6中可以看出,与真实深度图相比,Eigen算法生成的深度图比较粗糙(如图6(c)中红框所示),这是因为该算法的网络较为简单,没有足够的网络深度来提取更多的深度信息;Laina算法生成的深度图边界处出现一定的失真,同时大部分深度图中物体的边缘细节较为模糊(如图6(d)中红框所示),这是因为该算法网络没有利用不同层级之间的深度线索;Xu算法利用CRF改善了深度图的整体结构,但大部分图像的细节很差(如图6(e)中红框所示);Fu算法整体表现良好,但过于注重像素精度,导致深度图的部分复杂区域出现失真(如图6(f)中红框所示);Hao算法虽然保证了网络的深度但是丢失了浅层的特征信息,生成的深度图出现了色彩失真且清晰度较低(如图6(g)红框所示);Hu算法对于绝大部分不同场景生成的深度图像效果都比较好,但由于全局背景信息的缺乏,部分复杂场景的边缘细节比较平滑(如图6(h)红框所示);本文算法通过多个尺度提取图像的结构,引入上下文信息逐步对深度图进行更新,因此生成的深度图像具有更锐利的边缘,同时具有丰富的纹理信息。因此,本文算法生成的深度图与真实深度图最为接近,在主观视觉效果上优于其他6种算法。

2.4 客观指标对比

表2给出了图6所示的7种算法生成的深度图像的客观指标值的比较。从表中可以看出,本文算法的均方根误差、平均相对误差、对数平均误差和不同阈值下的准确率大部分情况下是最好的,说明本文算法生成的深度图像具有更加精确的空间分辨率和更丰富的边缘细节,更接近真实深度图。以Image2图像为例,本文算法、Fu算法、Hao算法和Hu算法在平均相对误差、对数平均误差和不同阈值下的准确率几个指标上都优于另外3种算法,说明以上4种算法能够准确预测深度图的整体结构。而从主观效果上看,本文算法描绘出了更多的桌椅细节轮廓,这一点能够在本文算法的均方根误差比其他几种算法更小上体现出来。

表2 不同深度估计算法客观指标比较Table 2 Comparison of indexes of different depth estimation algorithms

(续表2)

为了进一步验证本文算法的有效性,与当前主流的算法处理测试集中的654张图像生成的深度图的各项客观指标均值进行比较,结果如表3所示。从表中数据可以看出,本文算法生成的深度图的客观指标中平均相对误差、对数平均误差和不同阈值下的准确率的均值都是最好的。其中Fu算法的均方根误差最小,考虑这是由于该算法在设计网络和损失函数时更加注重绝对像素精度,忽略了目标场景的细微结构,因此在均方根误差中实现了更高的性能,但导致了在其他客观指标上表现一般。本文算法的平均相对误差和对数平均误差的平均值最小,表明与其他算法相比,本文算法生成的深度图对比度更高、边缘细节更加丰富。本文算法的不同阈值下的准确率的平均值最高,说明与其他算法相比,本文算法生成深度图像的整体空间结构更好。

表3 不同深度估计算法客观指标均值的比较Table 3 Comparison of mean indexes of different depth estimation algorithms

为了考察生成深度图的边界细节效果,采用文献[14]中计算边缘像素的精确率(P)、召回率(R)和F1分数的客观指标进行评价。表4所示为本文算法与边界细节较好的3种算法的比较结果。从表中可以看出,3种不同阈值下,本文算法的F1分数超过了其他所有算法。这表明本文算法生成的深度图能够表现出更细致的物体轮廓、边界细节,实现了更高精度的场景深度估计。

表4 不同深度估计算法边界精度的比较

上述网络的消融分析和与其他深度估计算法的主客观效果对比充分证明了本文算法的有效性。最终实验结果表明,本文所提出的基于多尺度注意力导向网络的单目图像深度估计算法充分考虑了图像的空间结构与深度信息之间的对应关系,相对于其他算法的主客观效果均较为理想,与真实深度图更为接近。

3 结论

本文提出了一种基于多尺度注意力导向网络的单目图像深度估计算法。算法考虑了图像的基础分层场景结构,首先通过编码器提取多尺度特征,再使用残差通道注意力融合解码器对提取的特征引入上下文信息进行加工细化,强化特征图结构信息的同时保持更好的深度连续性;并且设计了边界增强模块,能够自适应地优化特征图的边界细节信息。实验结果表明,本文算法可以实现端到端的单目图像深度估计,且生成的深度图像具有清晰的边缘以及较多的纹理细节。在以后的工作中,将继续完善该框架以期获得更好的预测精度,并且希望能够将此输出的深度图应用到其他领域中。

猜你喜欢

深度图解码器编码器
融合CNN和Transformer编码器的变声语音鉴别与还原
科学解码器(一)
设定多圈绝对值编码器当前圈数的方法
一种基于WMF-ACA的深度图像修复算法
转炉系统常用编码器选型及调试
科学解码器(二)
科学解码器(三)
舞台机械技术与设备系列谈(二)
——编码器
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
基于深度图的3D-HEVC鲁棒视频水印算法