UnDeepVO: Monocular Visual Odometry through Unsupervised Deep Learning

摘要:本文提出了一种名为UnDeepVO的新型单目视觉里程计(VO)系统。UnDeepVO能够通过使用深度神经网络来估计单目相机的6自由度姿态和视野深度。所提出的UnDeepVO具有两个显著特点:一是无监督深度学习方案,二是绝对尺度恢复。具体而言,我们使用立体图像对对UnDeepVO进行训练以恢复尺度,但在测试时使用连续的单目图像。因此,UnDeepVO是一个单目系统。用于训练网络的损失函数基于空间和时间的密集信息。图1展示了系统概述。在KITTI数据集上的实验证明,我们的UnDeepVO在姿态精度方面表现出良好的性能。

图1:所提出的UnDeepVO的系统概述。在使用无标签的立体图像进行训练后,UnDeepVO能够同时使用单目图像进行视觉里程计和深度估计。估计的六自由度姿态和深度图都是经过缩放的,无需进行尺度后处理。

I. INTRODUCTION

视觉里程计(VO)通过仅使用低成本摄像机,使机器人能够在各种环境中进行定位。在过去的几十年里,基于模型的VO或几何VO得到了广泛研究,其两种范式,基于特征的方法和直接方法,都取得了巨大成功。然而,基于模型的方法往往对相机参数敏感,在具有挑战性的环境中容易受到影响,例如无特征的地方、运动模糊和光照变化。

近年来,基于数据驱动的VO或基于深度学习的VO引起了广泛关注,因为它具有学习能力和对相机参数和具有挑战性的环境的稳健性。Kendall等人首次提出使用卷积神经网络(CNN)对原始RGB图像进行6自由度姿态回归的方法,解决了基于监督学习的重定位问题。Li等人在此基础上将其扩展为适用于原始RGB-D图像的新架构,具有应对挑战性室内环境的优势。[9]中使用视频剪辑来捕捉重定位的时态动态。在给定预处理的光流的情况下,[10]报告了一种基于CNN的帧间VO系统。然后,Wang等人提出了基于循环卷积神经网络(RCNN)的VO方法,与基于模型的VO方法相比具有竞争性能。Ummenhofer提出了“DeMoN”,可以同时估计相机的自我运动、图像深度、表面法线和光流。还在[13]和[14]中开发了基于深度学习的视觉惯性里程计方法。

然而,上述所有方法都需要相机姿态或深度图像的真实数据来进行监督训练。目前在实践中获得真实数据集通常是困难且昂贵的,用于监督训练的现有标注数据集数量仍然有限。这些限制促使我们寻求各种无监督学习的VO方案,并且可以使用易于收集的无标签数据集对其进行训练,并将其应用于定位场景。

与VO相关的无监督深度学习研究主要集中在深度估计上,受到图像变换技术“空间变换器”[15]的启发。基于此,Garg等人[16]提出了一种利用立体图像对的左右光度约束的新型无监督深度估计方法。在[17]中进一步改进了该方法,通过在左右图像之间进行图像变换来提高深度预测的准确性。通过对左右光度损失进行惩罚,提高了深度预测的准确性。周等人[18]提出了使用连续的单目图像来训练和估计自我运动和深度,但该系统无法从学习的单目图像中恢复尺度。尽管如此,这些无监督方法仍然具有重要的研究意义,并在深度估计方面取得了一定的成果。

在本文中,我们提出了一种基于无监督深度学习方案的新型单目视觉里程计系统UnDeepVO(见图1)。我们的主要贡献如下:

• 我们展示了一种具有恢复绝对尺度的单目视觉里程计系统,通过利用空间和时间几何约束,在无监督的情况下实现了这一目标。

• 在训练过程中,由于使用了立体图像对,我们不仅能够生成估计的姿态,还能生成具有绝对尺度的密集深度图。

• 我们使用KITTI数据集对我们的视觉里程计系统进行评估,结果显示UnDeepVO在单目相机的姿态估计方面取得了良好的性能。

由于UnDeepVO只需要用立体图像进行训练,而无需标记的数据集,因此可以利用大量未标记的数据集对其进行训练,不断改进其性能。

本文的其余部分安排如下。第二节介绍了我们提出的系统的架构。第三节描述了用于促进系统无监督训练的不同类型的损失函数。第四节呈现了实验结果。最后,在第五节中得出结论。

II. SYSTEM OVERVIEW

我们的系统由姿态估计器和深度估计器组成,如图2所示。这两个估计器都以连续的单目图像作为输入,并分别生成经过缩放的6自由度姿态和深度作为输出。

对于姿态估计器,它采用基于VGG的CNN架构[19]。它以两个连续的单目图像作为输入,预测它们之间的6自由度变换。由于旋转(用欧拉角表示)具有较高的非线性,与平移相比,通常更难进行训练。对于有监督训练,一个常见的解决方案是给予旋转损失[7]更大的权重,以进行归一化。为了更好地通过无监督学习训练旋转,我们在最后一个卷积层之后使用两组单独的全连接层来解耦平移和旋转。这使我们能够引入一个权重来归一化旋转和平移的预测,以获得更好的性能。姿态估计器的具体架构如图2所示。

深度估计器主要基于编码器-解码器架构来生成密集的深度图。与其他深度估计方法[17]、[18]通过网络产生视差图(深度的倒数)不同,UnDeepVO的深度估计器设计为直接预测深度图。这是因为训练实验表明,以这种方式进行训练时整个系统更容易收敛。

对于大多数单目视觉里程计方法,需要应用预定义的尺度。我们的UnDeepVO的一个特点是恢复6自由度姿态和深度的绝对尺度,这要归功于我们的训练方案,如图3所示。在训练过程中,我们将左图像和右图像输入网络,分别获得左侧图像序列和右侧图像序列的6自由度姿态和深度。然后,我们使用输入的立体图像、估计的深度图像和6自由度姿态构建损失函数,考虑立体相机组的几何关系。

如图3所示,我们利用立体图像序列的空间和时间几何一致性来构建损失函数。一个图像中的红色点在另一个图像中都有对应的点。空间几何一致性表示左右图像对应点之间的几何投影约束,而时间几何一致性表示两个连续单目图像中对应点之间的几何投影约束(更多细节见第四节)。通过使用这些约束构建损失函数并将其一起最小化,UnDeepVO学习以端到端的无监督方式估计缩放的6自由度姿态和深度图。

图3:UnDeepVO的训练方案。姿态估计器和深度估计器以立体图像作为输入,分别估计6自由度姿态和深度图。然后,可以基于原始RGB图像、估计的深度图和姿态计算总损失,包括空间损失和时间损失。

III. OBJECTIVE LOSSES FOR UNSUPERVISED TRAINING

UnDeepVO通过反向传播训练损失函数。由于损失是建立在几何约束上而不是标记数据上的,因此UnDeepVO是以无监督的方式进行训练的。其总损失包括空间图像损失和时间图像损失,如图3所示。空间图像损失通过使用立体图像对推动网络恢复缩放的深度图,而时间图像损失通过使用两个连续的单目图像来最小化相机运动的误差。

A. Spatial Image Losses of a Stereo Image Pair

空间损失是从左右立体图像之间的几何约束构建的。它由左右光度一致性损失、视差一致性损失和姿态一致性损失组成。UnDeepVO依靠这些损失来恢复单目视觉里程计的绝对尺度。

1)光度一致性损失:左右投影光度误差被用作光度一致性损失来训练网络。具体而言,对于两个立体图像之间的重叠区域,其中一幅图像中的每个像素可以在另一幅图像中找到其对应的像素,二者之间的水平距离为Dp [16]。假设pl(ul, vl)是左图像中的一个像素,pr(ur, vr)是其在右图像中对应的像素。那么,我们有空间约束ul = urvl = vr + DpDp可以计算为:

其中,B是立体相机的基线(baseline),f是焦距,Ddep是对应像素的深度值。我们可以使用从网络估计得到的深度构建一个Dp映射,以定义左右图像之间的约束关系。通过这个空间约束和计算得到的Dp映射,我们可以通过“空间变换器”(spatial transformer)从一个图像合成另一个图像[15]。为构建左右光度一致性损失,采用了L1范数和SSIM项的组合[20]:

其中,IlIr分别是原始的左图像和右图像,是从原始右图像Ir合成的左图像,是从原始左图像Il合成的右图像。LSSIM是在[21]中定义的带有权重λs操作,而Ll1是L1范数操作。

2)视差一致性损失:类似地,左右视差图(深度的倒数)也受到Dp的约束。UnDeepVO使用的视差图是:

IW是原始图像的宽度,定义左图和右图视差图为,我们可以使用Dp来从中合成。视差一致性损失是:

3)姿态一致性损失:我们在训练过程中使用左右图像序列分别预测相机的6自由度(6-DoF)变换。理想情况下,这两个预测的变换应该基本相同。因此,我们可以通过惩罚它们之间的差异来进行:

其中,λp是左右位置一致性的权重,λo是左右方向一致性的权重,分别是左右图像序列预测的姿态。

B. Temporal Image Losses of Consecutive Monocular Images

       时序损失是根据两个连续的单目图像之间的几何约束定义的。它是恢复相机的6自由度运动的重要组成部分。它包括光度一致性损失和三维几何注册损失。

1)光度一致性损失:光度损失是根据两个连续的单目图像计算的。与DTAM [4]类似,为了估计6自由度的变换,采用了投影光度误差作为损失进行最小化。将IkIk+1分别表示为第k帧和第(k + 1)帧的图像,pk(uk, vk)表示Ik中的一个像素,pk+1(uk+1, vk+1)表示Ik+1中的相应像素。然后,我们可以通过以下方式从pk推导出pk+1:

其中,K是相机的内参矩阵,Ddep是第k帧像素的深度值,Tk,k+1是从第k帧到第(k+1)帧的相机坐标变换矩阵。我们可以使用估计的姿态和“空间变换器”[15]从Ik+1Ik合成。因此,单目图像序列之间的光度损失为:

2) 3D几何注册损失:3D几何注册损失通过对齐两个点云来估计变换,类似于迭代最近点(ICP)技术。假设Pk(x,y,z)是第k帧相机坐标系中的一个点。通过使用Tk,k+1,它可以被转换为(k + 1)帧相机坐标系中的。类似地,(k + 1)帧中的点可以被转换为第k帧。然后,两个单目图像之间的3D几何注册损失为:

总结起来,我们系统的最终损失函数将之前的空间和时间损失结合在一起。左右光度一致性损失已经在[16]和[17]中用于估计深度图。[18]介绍了单目图像序列的光度损失,用于自我运动和深度估计。然而,据我们所知,UnDeepVO是第一个通过将所有这些损失与3D几何注册和位姿一致性损失结合在一起来恢复缩放的相机位姿和深度图的方法。

IV. EXPERIMENTAL EVALUATION

       在本节中,我们评估了提出的UnDeepVO系统。网络模型采用TensorFlow框架实现,并使用NVIDIA Tesla P100 GPU进行训练。在测试中,我们使用了一台配备有NVIDIA GeForce GTX 980M和Intel Core i7 2.7GHz CPU的笔记本电脑。用于位姿估计的GPU内存需求小于400MB,实现了40Hz的实时性能。

       我们采用Adam优化器对网络进行训练,最多进行20-30个epoch,参数β1 = 0.9和β2 = 0.99。学习率从0.001开始,在总迭代次数的1/5处减半。输入到位姿估计器的图像序列长度为2。网络输入的图像大小为416×128。我们还将输出图像调整为更高的分辨率以计算损失并进行网络微调。我们使用了不同类型的数据增强方法来提高性能并减轻可能的过拟合,例如图像颜色增强、旋转数据增强和左右姿态估计增强。具体而言,我们随机选择20%的图像进行颜色增强,随机亮度范围在[0.9, 1.1],随机gamma范围在[0.9, 1.1],随机颜色偏移范围在[0.9, 1.1]。对于旋转数据增强,我们增加了旋转数据的比例,以获得更好的旋转估计性能。左右图像的姿态估计一致性也用于左右姿态估计增强。

A. Trajectory Evaluation

       我们采用了广泛使用的KITTI Odometry数据集[22]来评估提出的UnDeepVO系统,并将结果与SfMLearner [18]、单目VISO2-M和ORB-SLAM-M(无环路闭合)进行了比较。为了进行公平的定性和定量比较,我们使用了与SfMLearner [18]相同的训练数据(序列:00-08)。不同方法产生的轨迹如图4所示,该比较显示了网络拟合的好坏,并对结构运动问题具有意义。请注意,所有方法都使用单目图像进行测试,我们对SfMLearner和ORB-SLAM-M进行了后处理以修复姿态和深度的尺度问题。VISO2-M采用了固定的相机高度进行尺度恢复。对于ORB-SLAM-M,我们禁用了局部建图和环路闭合,仅进行视觉里程计以进行比较。KITTI Odometry数据集仅提供了序列00-10的6自由度姿态的地面真值。如图4所示,UnDeepVO的轨迹在所有方法中与地面真值最接近。对于序列11-21,没有可用的地面真值,我们的方法和VISO2-M的轨迹如图5所示。我们提供了立体VISO2-S(图像分辨率1242×376)的结果作为参考。如图所示,我们系统的性能与VISO2-S相当。

详细结果(如图4所示)列在表格I中进行定量评估。我们使用与KITTI数据集提供的标准评估方法。采用了100m到800m长度范围内的平均平移均方根误差(RMSE)漂移(%)和平均旋转RMSE漂移(°/100m)。由于SfMLearner和ORB-SLAM-M无法恢复6自由度姿态的尺度,我们将它们的姿态与包含7自由度尺度的地面真值进行对齐。对于单目VISO2-M和没有环路闭合的ORB-SLAM,它们无法使用我们的输入设置(图像分辨率416×128),因此我们提供了这两个系统在高分辨率1242×376下的结果。所有方法都没有使用任何环路闭合技术。如表I所示,即使使用低分辨率图像并且没有尺度后处理,我们的方法在单目方法中实现了良好的姿态估计性能。

B. Depth Estimation Evaluation

我们的系统还可以使用深度估计器生成经过尺度处理的深度图。图6显示了一些原始RGB图像及其从我们的系统估计得出的深度图像。如图6所示,不同汽车和树木的深度被明确地估计出来,甚至干树的深度也被成功预测。详细的深度估计结果列在表II中。从表中可以看出,我们的方法优于有监督方法[23]和无尺度的无监督方法[18],但性能不如[17]。这可能有几个原因。首先,我们只使用了KITTI数据集的一部分(KITTI里程数据集)进行训练,而其他所有方法都使用完整的KITTI数据集来训练他们的网络。其次,[17]使用了更高分辨率(512×256)的输入和不同的网络(基于ResNet的架构)。第三,我们使用的时序图像序列损失可能会为深度估计引入一些噪声(例如移动物体)。

V. CONCLUSIONS

本文介绍了UnDeepVO,一种基于无监督深度学习的创新单目视觉里程计(VO)系统。该系统利用立体图像序列之间的空间损失和时间损失进行无监督训练。在测试阶段,该系统可以使用单目图像进行姿态估计和密集深度图估计。我们的系统在训练阶段恢复了尺度,这与其他基于模型或学习的单目VO方法有所区别。总体而言,基于无监督学习的VO方法在训练数据集规模增大的情况下有潜力提高性能。在下一步中,我们将研究如何使用大量数据集训练UnDeepVO以提高其性能,例如对图像模糊、相机参数或光照变化的鲁棒性。未来,我们还计划将我们的系统扩展为视觉SLAM系统以减小漂移。同时,我们也考虑开发一种基于无监督深度学习的具有立体摄像头或RGB-D摄像头的DeepVO系统。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值