首页 » 技术分享 » VINet 翻译|导读|解析

VINet 翻译|导读|解析

 

VINet:将视觉惯性里程计作为一个序列到序列的学习问题

英国牛津大学计算机科学系

摘要:

本文提出了一种基于流形的序列到序列的学习方法,用于视觉和惯性传感器的运动估计。据我们所知,对于视觉惯性里程计而言,这是第一个端到端可训练的方法,它在中间特征表示水平上进行数据融合。与传统方法相比,我们的方法有许多优点。特别是,它消除了相机和IMU之间繁琐的手动同步和校准。更进一步,我们的模型自然而优雅地合并了领域特定的信息,这极大地减轻了漂移问题。当准确的校准数据可用时,我们的方法与SOTA的方法相比也极具亮点,并且可以在校正和同步误差存在的情况下训练得比它们更好。

简介:

移动机器人自主的一个基本要求是能够在没有可用GPS信号的情况下精确导航。实现该目标的最有希望的方法之一是通过单目摄像机和惯性测量单元的图像融合。这种装置的优点是既便宜又普遍,并且通过传感器的互补特性,有潜力提供与更昂贵的立体声和激光雷达装置在精度方面相当的位姿估计。单目视觉惯性测程(VIO)方法在机器人领域受到了相当大的关注,目前最先进的VIO方法已然能够达到相当不错的精度。然而,这些方法仍然存在严格的校准和同步要求。

受到近来深度学习模型在处理原始、高维数据的成功的启发,我们在本文中提出了一种新的VIO方法:将其视为一个序列到序列的回归问题。最终得到的VINet方法是一个完全可训练的端到端模型,用于执行视觉惯性测程。我们的贡献如下:
1)我们提出了第一个完全端到端可训练的VIO辅助导航。
2)我们介绍一种新颖的递归网络结构和训练过程,以对模型参数进行最优的训练。
3)这包括一个新的可微分的姿势连接层,其使得网络的预测符合SE(3)流形结构。
4)我们仔细评估了该方法,并在真实数据上展示了它相对于传统方法的优势。

在这里插入图片描述

图1:标准的视觉惯性测程框架与我们基于学习的方法之间的比较。设置过程中需要指定蓝色的元素。VINet的参数对用户是隐藏的,完全从数据中学习。

相关工作:

在本节中,我们简要概述了在没有其他传感器(如立体声装置和激光测距仪)的情况下,专注于单目摄像机和惯性测量单元数据的工作。

视觉里程计: VO算法估计相机的增量自我运动。传统的VO算法,如图1所示,通过提取图像中的特征,匹配当前图像和后续图像的特征,然后计算光流。然后利用光流可以计算出运动。快速半直接单目视觉测程(SVO)算法是表现SOTA的VO算法样例。该算法不依赖于缓慢的特征提取,而是直接对图像小块进行操作,从而达到快速、鲁棒的目的。相反,它在图像本身的小块上使用概率深度过滤器。然后通过整个图像对齐来更新深度过滤器。该算法在嵌入式平台上实时运行,效率高。然而,它的概率公式使其难以调优,而且还需要一个引导过程来启动该过程。正如预期的那样,它的性能在很大程度上取决于硬件。为了防止跟踪故障,通常全球快门相机需要运行速度高于50 fps,以确保里程数估计保持准确。

视觉惯性里程计: 无论算法如何,传统的单目VO解都无法观察到场景的尺度,容易产生尺度漂移和尺度模糊。专用的循环闭合方法(如FAB-MAP)集成以减少规模漂移。然而,规模模糊不能通过使用闭环来解决,需要外部信息的整合。这通常采取的形式是检测场景中的缩放对象或融合来自惯性测量单元(IMU)的信息,创建一个视觉惯性里程计。融合惯性和视觉信息不仅解决了尺度模糊问题,而且提高了VO本身的精度。从理论上讲,IMU的惯性测量和视觉数据之间的互补性应该能够在任何情况下实现高精度的自我运动估计:视觉定位技术完全依赖于观察环境中的独特特征,而在室内情况下,这些技术受到间歇性遮挡的困扰。另一方面,IMU设备的位姿可以通过加速度数据的双重积分或更复杂的方案来跟踪,如Forster等人提出的基于流形的预积分策略,然后与视觉测距方法(如SVO)相结合,形成一个VIO系统,其中的IMU漂移仍然受到限制。在最先进的系统中,融合是通过基于过滤器或基于优化的过程来实现的。基于过滤器的方法,如多态约束卡尔曼滤波器(MSCKF),尽管更加鲁棒,但是表现差于基于优化的情况,如滑动窗口滤波(SWF)和开放的关键帧VISual-inertial测程法(OK-VIS)的准确性。Forster等人的研究表明,使用预集成策略的系统在精度方面略优于OK-VIS。然而,Forster等人的系统依赖iSAM2作为后端优化,SVO作为前端跟踪系统,我们发现它比OK-VIS更容易失败。因此,我们在本文中比较了OK-VIS和MSCKF的鲁棒性。

深度学习: 一些深度学习方法已经被提出用于视觉测程,然而据我们所知,神经网络方法从未用于任何端到端形式的单目视觉惯性测程。Konda和Memisevic提出了一种Stereo-vo方法,通过检测立体帧之间的同步性来提取运动。Costante等人利用CNN从光流帧中提取增量自我运动的可行性。DeTone, Malisiewicz,及Rabinovich展示了使用CNN提取帧对之间的单应性关系的可行性。最近,Rambach 等人使用RNN融合标准的基于标记的视觉位姿系统和IMU的输出,从而消除了统计滤波的需要。

背景:递归和卷积网络

递归神经网络(RNNs)是一种一般类型的神经网络,它的层不仅对输入数据进行操作,而且对隐藏层的延迟版本和输出也进行操作。通过这种方式,网络具有一个内部状态,可以将其用作内存,以跟踪过去的输入及其相应的决策。然而,RNN有一个缺点,即如果使用标准的训练技术,它们便无法学会存储和操作输入的长期趋势,因此,与标准的前馈网络相比,不能提供太多的好处。因此,引入了长短时记忆(LSTM)体系结构,以便RNN能够了解更长期的趋势。这是通过包含门控细胞来实现的,门控细胞允许网络选择性地存储和忘记记忆。

LSTM架构有许多变体。然而,在现实世界的数据中,这些数据也显示出类似的表现。存储单元的内容存储在Ct中。输入门it控制输入在当前步进入记忆单元的内容的方式。遗忘门(ft)根据产生的0到1范围的控制信号来决定何时清空内存单元。最后,输出门Ot决定在当前时间步是否应该使用内存单元的内容。

网络的操作都是在训练中学到的。为了处理高维输入数据(如图像),可以在RNN结构中集成卷积层。在每个卷积层上,应用多个卷积操作从上一层的输出映射中提取大量的特征。滤波核及卷积所得图都在训练中得到。具体来说,卷积层的输出计算为
在这里插入图片描述
yl;f x;y 是f的特征图在第l层x; y的位置上的输出值, bl;f 是一个在训练过程中学得的常数偏差, wl;f;m p;q 是p,q位置上的核心值; and Pi; Qj 是核的关键高度和宽度。

我们的方法

我们的视觉惯性里程计的序列-序列的学习方法–VINet,如图2所示,该模型由一个为视觉惯性测程任务所定制的CNN-RNN网络构成。整个网络是可微的,因此可以通过端到端的训练来估计自我增量运动。网络的输入是单目的RGB图像和IMU数据,IMU是一个用陀螺仪测量x,y,z轴的加速度和角速度的6维向量。该网络的输出是一个7维向量:一个3维平移和4维的方向四元数,以此表示机器人从序列开始时的姿态变化。本质上,我们的网络学习以下映射,将输入序列的图像和IMU数据转换成位姿。
在这里插入图片描述
图2:提出了一种用于视惯性测程的VINet体系结构。该网络由一个以摄像速率处理位姿输出的核心LSTM和一个以IMU速率处理数据的IMU LSTM组成。

SE(3) 转换级联
摄像机相对于初始起点的姿态通常表示为特殊的欧几里德群SE(3) 变换的一个元素。SE(3)是一个可微的流形,其元素由特殊正交群SO(3)的旋转和一个平移向量组成,
在这里插入图片描述
生成属于SE(3)的转换估计并不简单,因为SO(3)组件需要是一个正交矩阵。而se(3)的李代数se(3)表示瞬时变换:
在这里插入图片描述
可以用不受正交性约束的分量来描述。se(3)和SE(3)之间的转换很容易使用指数映射来完成。
在我们的网络中,CNN-RNN对图像的单目序列进行处理,从而对摄像机帧与帧之间的运动进行估计。因此,CNN-RNN执行从输入数据到李代数se(3)的映射。利用指数映射将其转化为特殊的欧几里德群SE(3),其中单个运动可以组成SE(3),形成轨迹。通过这种方式,当摄像机所经历的帧与帧之间的运动由平台在轨迹过程中的动态(尽管很复杂)定义时,网络所需要近似的函数在一段时间内保持有界。我们使用RNN的目标是学习平台的复杂运动动力学,并解释很难手工建模的顺序依赖关系。
在这里插入图片描述
图3:SE(3)合成层的说明:一个无参数的层,它将SE(3)上的帧之间的转换连接起来。

此外,在传统的LSTM模型中,隐藏状态被转移到下一个时间步,但是输出本身并不反馈给输入。在里程数估计的情况下,前一状态的可用性是特别重要的,因为输出本质上是每一步增量位移的积累。因此,对于我们的模型,我们直接将SE(3)级联层产生的输出位姿作为下一个时间步中核心LSTM的输入。

多速率LSTM
在视觉惯性里程计问题中,我们面临的挑战是数据流是多速率的,即IMU数据通常比视觉数据快一个数量级(通常是10倍)(100hz)。为了在我们的网络中适应这一点,我们使用一个小的LSTM以IMU速率处理IMU数据。IMU-LSTM的最后隐藏层激活随后被转移到Core-LSTM。

光流量初始化
与IMU LSTM类似,CNN将两个连续的图像作为输入,并生成一个单独的特征向量,该特征向量描述设备在两个帧的传递过程中所经历的运动,这两个帧被用作Core LSTM的输入。我们最初尝试将两帧图像直接输入到在imagenet数据集上预先训练的CNN中,然而,这表现出了难以置信的缓慢训练收敛性和令人失望的测试性能。因此,我们使用一个训练后的网络作为我们的基础来预测来自RGB图像的光流。我们的CNN模仿Flownet结构直到Conv6层,我们删除了产生高分辨率光学流输出的层,用1024 X 6 X 20的向量作为输入,在将IMU-LSTM产生的特征向量输入之前,我们连接生成的特征向量IMU-LSTM。Core-LSTM融合了视觉和惯性数据的中间特征级表示来生成姿态估计

计算消耗
里程计预测所需的计算量和模型所需的存储空间直接受到用于定义模型的参数数量的影响。对于我们的网络,在图2中,参数是IMU LSTM和Core LSTM的权值矩阵,以及处理图像的CNN网络的权值矩阵。对于我们的网络,我们使用2层的LSTMs,每层包含1000个单元。我们的CNN总共有55兆可训练的参数量。在一辆特斯拉k80上,通过CNN网络部分的图像转发平均需要160ms (约为10Hz)。LSTM更新的计算成本要低得多,在特斯拉k80上可以以高于200Hz的频率运行。

训练
整个网络使用时间反向传播(BPTT)进行训练。我们使用标准的BPTT,它的工作原理是对选定的时间步长T展开网络,然后应用标准的反向传播学习方法,该方法涉及两个传递—前向传递和后向传递。对于BPTT的前向部分,从式(1)到式(6),依次计算t = 1到t的每一个时间步的网络激活度。使用产生的激活,向后传递从时间t = t到t = 1,计算每个输出单元对层输入(xl)和层权值(wl)的导数。最后的导数是通过对时间步长的求和来确定的。利用具有RMSProp自适应学习速率的随机梯度下降法(SGD)更新由BPTT确定的网络权值。SGD是一种简单而流行的方法,在使用大型数据集训练各种机器学习模型方面表现得非常好。使用SGD,网络的权值更新如下:
在这里插入图片描述
Wl代表索引为l, 学习率为λ的网络的一个参数(权重或偏差),学习率λ决定了在SGD的每次迭代中,导数对权重更新的影响程度。我们所有的训练中都采用最佳学习率。

使用高维图像作为输入来训练长且连续的序列需要大量的内存。为了减少所需内存,但在训练过程中仍然保持连续性,我们使用了基于滑动窗口的训练方式。如图4所示,LSTM的隐藏状态在窗口之间执行。最后,我们发现通过SE(3)累积直接训练网络是特别困难的,因为训练过程受到许多局部极小值的影响。为了克服这个困难,我们考虑两个损失:一种是基于se(3)帧对帧(F-2-F)的预测,另一个是相对于序列开始的SE(3)完整连接位姿。前者的计算方式为:
在这里插入图片描述
对于SE(3)中的完整级联姿态,我们使用四元数表示方向,损失为:
在这里插入图片描述

我们考虑三种类型的训练:只有Lse(3)损失; LSE(3);联合损失。联合训练的权值更新如算法1所示。
在这里插入图片描述
其中niter为每次训练迭代,w 1:j为各层的可训练权值,SE(3)级联层,wi:n为n层网络中所有层的权值。训练中我们开始一个比较高的学习率与λ2 se(3)损失/λ1 100,然后减少到一个非常低的数值λ2 /λ1=0.1,在后面的训练中调整级联姿态估计。

结果
在本节中,我们给出了在校准和同步误差的准确性和鲁棒性方面对所提出的方法进行评估的结果,并与传统方法进行了比较。在我们的实验中,我们使用Theano库实现了我们的模型,并在特斯拉k80上进行了所有的训练。我们为每个数据集训练了200个epoch的模型,平均每个数据集耗时6小时。除了设置适当的学习率外,培训过程不需要任何用户干预。

无人机:挑战室内轨迹
我们首先在室内公开的EuRoC微型空中交通工具(MAV)数据集上评估我们的方法。该数据集的数据是使用AscTec Firefly MAV捕获的,该MAV带有一个前置的视觉惯性传感器单元,相机和IMU的时间戳之间具有紧密的同步。这些图像是由全局快门相机以20hz的频率拍摄的,IMU在200hz时测量加速度和角速率。这个6-D的真值姿势是使用Vicon运动捕捉系统在100赫兹下拍摄的。为了对文献中最接近的相关方法进行客观比较,本文采用基于优化的OK-VIS方法进行比较。由于我们对评估这些方法的里程表性能很感兴趣,所以没有执行环闭包。我们测试了我们的方法对相机传感器校准误差的鲁棒性。我们介绍校准错误通过添加随机选取大小和角度的旋转RSC ~ vMF(·|,κ) 到相机IMU旋转矩阵RSC。对于我们的VINet,我们提供了两组结果:一组是通过人为错误校准的训练数据来扩充训练集,另一组是仅使用校准的数据来训练网络。
在这里插入图片描述
图5:与OK-VIS相比,使用该神经网络重建的6D MAV轨迹。

图5所示为不同误校水平下经OK-VIS和VINet估计的MAV轨迹的比较。很明显,即使在不使用任何增强训练的情况下,神经网络在面对错误校准的传感器数据时也会组件下降。鲁棒测试的数值结果如表1所示:
在这里插入图片描述

VINet未用增强的情况下的训练效果与OK-VIS相比也不差,并没有在校准误差上失败。在VINet使用校准增强训练后,结果表明随着测量误差的增大,精度方面存在明显的受阻下降。这表明,只要利用误校准数据对网络进行训练,就可以使网络对误校准误差具有鲁棒性。这个特性是基于网络的方法所特有的,并且令人相当惊讶,因为以这种方式增加传统方法的鲁棒性是非常困难的,并且不可能。时间同步是另一个重要的校准方面,严重影响了传统方法的性能。我们在这方面测试了VINet,发现它处理时间同步误差甚至比外部校准误差更好。当流完全不同步时,IMU数据将被忽略,网络将变成纯视觉的运动估计。图6中的训练性能显示了单独使用F-2-F位移训练、单独使用完整SE(3)位姿训练和使用我们的联合训练方法的区别。结果表明,联合训练使网络比训练和验证序列更快地收敛于低误差估计,而F-2-F训练收敛非常慢,全姿态训练收敛于高误差估计。
在这里插入图片描述
图6: 训练时网络的训练性能(1)仅训练帧对帧的转换,(2)联合训练SE(3)层和帧对帧的转换,(3)仅训练拼接位姿。KITTI Seq-00的训练进度显示了最佳的联合训练。

自动驾驶:结构化的户外轨迹
我们进一步使用KITTI里程计基准测试VINet的性能。KITTI的数据集由11个序列组成,这些序列是在一辆乘用车的车顶上收集的,这辆车在居民区周围行驶,从Velodyne激光扫描仪和GPS设备获得准确的地面实况。我们使用序列1-10进行训练,11进行测试。单目图像和地面真值在10hz采样,IMU数据在100hz记录。在室外的结构化道路上记录,这个数据集显示了可忽略的运动模糊和轨迹遵循非常规则的路径。然而,与室内EuRoC数据集相比,它具有不同的特点,这仍然使它非常具有挑战性。例如,车辆路径包含许多急转弯和杂乱的叶子区域,这使得传统的视觉测程方法难以实现帧间的数据关联。由于KITTI数据集没有提供相机和IMU之间的紧密同步,我们无法在该数据集上成功运行OK-VIS。为了进行比较,我们使用EKF将LIBVISO2的位姿估计值与惯性数据融合,从而模拟Weiss等人的系统。我们按照标准的KITTI评估指标计算100米、200米…500 米序列的误差。
在这里插入图片描述
图7:KITTI数据集上的平移和方向错误。方法A: VNet(仅图像数据),方法B: VINet(视觉惯性数据),方法C: Viso2

图7显示了在KITTI数据集上获得的平移和方向误差。与预期的一样,视觉-惯性网络(VINet)性能优于在单独使用视觉数据训练的网络。VINet在平移误差方面也超过了VISO2方法,但是它在估计方向方面有些困难,而IMU-Viso2方法在这方面表现更好。相对于VINet的方向估计,VINet具有较高的平移精度,这可能是由于VINet具有从图像数据和IMU数据中学习预测尺度的能力,而这在传统方法中是不可能的。

结论及未来工作
本文提出了一种用于单目视觉惯性辅助导航的端到端的可训练系统VINet。我们已经证明VINet的性能与传统方法相当,而传统方法需要在设置过程中进行大量的手工调优。与传统方法相比,VINet的关键优势是能够通过校准误差的学习使得自身更加鲁棒。我们相信VINet方法是迈向真正稳健的视觉-惯性传感器融合的第一步。在未来的工作中,我们打算研究如何将VINet集成到一个更大的系统中,通过环路关闭和地图构建,并对单目VO及其处理惯性数据场中的尺度问题的能力进行更深入的分析。

ROS作业记录

转载自原文链接, 如需删除请联系管理员。

原文链接:VINet 翻译|导读|解析,转载请注明来源!

0