孔慧芳,房 亮
(合肥工业大学 电气与自动化工程学院,安徽 合肥 230009)
图像的深度包含了场景的三维结构信息,能为语义分割[1]、目标检测[2]等计算机视觉任务提供重要的信息。而目前广泛使用的嵌入式设备,例如手机、平板、微型机器人等大多采用单目摄像头,因此,研究单目图像的深度快速估计问题,具有重要的研究意义和广阔的应用前景[3-5]。
目前关于单目图像深度估计的研究主要从深度图的精度和网络的推理速度2个方面进行。在深度图的精度方面,文献[6]首次利用卷积神经网络提取的特征和双尺度深度网络拟合训练图片与其对应的深度值之间的关系;文献[7]利用多尺度融合和同尺度内部剔除图像中的噪声来提高深度图的精度;文献[8]受ResNet启发,设计了编码器的多层级融合结构来提升深度图的细节;文献[9]考虑到图像中不同物体的尺寸,使用尺度特征汇集策略来提升深度图的精度。以上几种方法使得深度图精度有很大提高,但是也导致深度估计模型的参数量和计算量急剧增加,从而导致模型实时性差,难以应用到实际中[3]。在网络的推理速度方面,文献[3]以MobileNet[10]为基础提出了一种适合在嵌入式系统上使用的网络FastDepth,大大提高图像深度估计网络毅力的速度,但是因为解码模块使用的是简单的最邻近插值,所以得到的深度图细节不够丰富[11]。
基于以上分析,本文设计了基于多尺度特征融合的快速单目图像深度估计网络。采用浮点运算(floating point operations,FLOPs)更小的GhostNet[12]作为解码网络对RGB图像进行特征提取,加快网络的编码速度;采用反卷积和双线性插值设计解码模块,通过跨层连接将编码器和解码器的同尺度特征融合;采用多尺度损失函数,保护深度图里物体的边缘细节。
本文设计的基于多尺度特征融合的快速单目图像深度估计网络架构如图1所示。其中:Conv表示卷积;UP表示向上采样。该网络主要包含基于GhostNet的编码网络和多尺度特征融合的解码网络。本节将逐一介绍各模块设计思路及方法,最后阐述网络设计的细节。
为了能进一步减小深度估计网络的复杂度,本文使用选择GhostNet作为编码网络。相较于MobileNet、ShuffleNet[13]等其他典型的轻量型网络,GhostNet采用一种新颖的Ghost模块,可以使用更少的参数来生成更多的特征图。Ghost模块如图2所示。
图2 Ghost模块
Ghost模块利用一些线性操作,对卷积生成的原始特征图y′进行进一步分解,并利用下式来产生更多本质特征图:
yi,j=φi,j(yi′),
∀i=1,…,m;j=1,…,s
(1)
其中:yi′为原始特征图的第i层;φi,j为产生第j层本质特征图yi,j的第j个线性操作。
每个原始特征图yi′都可以产生1个甚至多个本质特征图yi,j(j=1,…,s),最后一个yi,s为原始特征图。
假设有一系列RGB原始特征图和m×(s-1)=(n/s)×(s-1)个线性操作,每个线性操作卷积核的平均尺寸为d×d,本文选用的均为3×3的线性卷积。因此,相对于传统卷积,Ghost模块的加速比为:
(2)
其中:d×d与k×k大小一致;s≪c。本文将Ghost Net全连接层上一层的输出作为解码器的输入。
1.2.1 解码网络模块设计
根据Fast Depth[3]可知,解码网络推理时间占整个网络推理的绝大部分时间,同时解码网络也是特征图到深度图的映射,因此,必须合理地设计解码网络。
为了弥补因卷积造成的图像纹理的损失,同时尽可能地减小计算量,本文设计了一种基于反卷积和双线性插值的解码操作,相比于FastDepth使用的最邻近插值,双线性插值能更好地保留深度图的细节,具体操作可以写为:
Dout=B(C(Din))
(3)
其中:Din、Dout分别表示上一尺度的深度图和经过操作之后的深度图;C表示反卷积;B表示双线性插值。
1.2.2 编码和解码网络的多尺度特征融合
为了使输出的深度图更好地保留RGB图像中物体的边缘信息[8],本文通过跨层连接将编码器的特征图与同尺度的解码器输出整合后输入到下一个解码模块,使特征图与输出的深度图之间路径变短,从而避免模型在训练时陷入局部最优解[14],具体操作如下:
Dout=B(C(fen+fde))
(4)
其中,fen、fde分别表示编码网络和解码网络生成的同尺度特征图。
为了加快网络的收敛速度,分别在深度图的最后4个尺度将解码网络中的输出进行关联,将上一层的输出进行卷积后生成本尺度深度图,与下采样后的同尺度真实深度值比较计算深度误差,再将此深度图进行上采样操作输入到下一个解码操作中去,加快下一个尺度深度图的优化。根据文献[15-16]的研究,本文选用的多尺度损失函数如下:
Lj(d,d*)=
(5)
总的损失函数为:
(6)
本节中,将在NYU Depth V2室内典型的深度数据集上进行实验,计算相应的评价指标,并与现有的一些方法进行对比。
本文的网络结构是通过PyTorch搭建的,训练和测试是在内存10 GiB的NVIDIA GeForce GTX1080Ti显卡上进行的。根据本文设计的网络模型结构以及显卡的性能,将batch size设置为8,初始学习率设置为0.000 1,权重衰减率为0.000 1, 网络参数采用动量为0.9的随机梯度下降(stochastic gradient descent,SGD)方法优化。实验所采用的是常用的室内深度数据集NYU Depth V2,其原始数据集图像尺寸均为640×480,涵盖了464个场景,其中训练场景249个,测试场景215个,数据集中的深度图是通过Microsoft Kinect深度相机采集到的。训练时对原始图片所做的预处理包括左右反转、颜射变换、尺度变换。
本文实验中阈值参数设置为:
δ1<1.25,δ2<1.252,δ3<1.253。
针对图像深度估计网络结构设计一系列对比实验,验证本文使用GhostNet作为编码网络的合理性以及本文多尺度特征融合解码网络的有效性。本节所有实验均在单卡GTX1080Ti GPU上进行。
2.2.1GhostNet作为编码网络的消融实验分析
为了验证采用GhostNet作为编码网络对整个网络推理速度提升的有效性,以GhostNet为编码网络,以反卷积配合最邻近插值为解码网络,将利用单尺度损失函数进行训练的本文网络GDS与FastDepth进行对比。
利用2.1节所列的评价指标和网络推理时间评价各网络,结果见表1所列。
表1 GhostNet作为编码网络的消融实验结果
从表1可以看出,相较于 文献[3]的FastDepth,采用更少FLOPs的网络GhostNet后,本文方法的网络推理时间减少了7%,但图像精度略有下降。
2.2.2 解码网络的消融实验分析
为了验证本文多尺度特征融合的解码网络,以GhostNet为编码网络,以反卷积配合双线性插值作为模块的解码网络为基础,利用多尺度损失函数网络(GDMB)进行实验。解码网络的消融实验结果见表2所列。
由表2可知,采用本文设计的多尺度特征融合后解码网络后,深度图精度有所提升。
表2 解码网络的消融实验
NYU Depth V2数据集上各方法得到的深度图如图3所示。
从图3可以看出,本文设计的网络得到的深度图细节更加丰富。但由于解码网络使用了计算量更大的双线性插值后,网络的推理时间相对于FastDepth增加了80%。
图3 NYU Depth V2数据集上得到的深度图
本节中,将本文所设计的网络与其他主流方法进行对比,以NYU Depth V2标准数据集为参
照,从2.1节所列的评价指标和推理时间上进行比较。
本文网络与其他网络实验结果的对比见表3所列。
从表3可以看出:本文设计的基于多尺度特征融合的快速单目图像深度估计网络得到的深度图精度高于FastDepth,但推理时间相对于FastDepth增加80%;相较于文献[8]和文献[16]的方法,本文方法深度图精度有所下降,但是推理时间分别减少了40%和28%。
表3 本文网络与其他网络实验结果的对比
分析主要原因可知,虽然GhostNet提高了网络的编码速度,但是提取的特征不如ResNet等经典网络丰富,因此得到的深度图精度不如其他主流方法;同时由于解码模块采用了双线性插值,增大了解码网络的计算量,降低了网络的推理速度。
本文选择快速编码网络GhostNet作为编码器,加快了对图像特征的提取;采用反卷积和双线性插值设计构成的解码模块设计解码网络,同时通过跨层连接将编码网络的特征与解码网络的特征融合,保护深度图里物体的边缘细节。
在公用数据集上的测试结果表明,本文设计的基于多尺度特征融合的快速单目图像深度估计网络相对于FastDepth有实质性进步。虽然本文网络最终得到的深度精度与其他优秀算法相比仍有一定的差距,但是网络的推理速度快,因此仍具有重要的研究意义和较广阔的应用前景。