论文网址:https://arxiv.org/pdf/2005.11052.pdf
源码网址:https://github.com/halajun/vdo_slam
将实时定位和建图(SLAM)估计与动态场景建模相结合,可以极大地促进机器人在动态环境中的自主性。机器人的路径规划和避障任务依赖于对场景中动态物体运动的准确估计。本文介绍了VDO-SLAM,这是一个健壮的视觉动态对象感知SLAM系统,它利用语义信息来实现对场景中动态刚性对象的精确运动估计和跟踪,而无需事先了解对象的形状或几何模型。该方法识别和跟踪环境中的动态对象和静态结构,并将这些信息集成到一个统一的SLAM框架中。最终获得高度精确的估计机器人的轨迹和物体的完整SE(3)运动,以及环境的时空地图。该系统能够从物体的SE(3)运动中提取线速度估计,为复杂动态环境中的导航提供了重要功能。我们在许多真实的室内和室外数据集上展示了所提出的系统的性能,结果显示出与最先进的算法相比,一致性和实质性的改进。源代码的开放源代码版本是可用的。
下图1为视觉动态对象感知SLAM系统的框架。
本文的主要贡献为:
目前,在不同的研究目的下,对于动态场景下的SLAM的研究主要分为以下3类
时期 | 方法 | 结果 |
---|---|---|
早期 | 检测和删除动态场景中提取到的信息 | 降低SLAM性能 |
发展 | 移除动态前景+修复获重建被遮挡的静态场景 | |
DynaSLAM | 经典几何+深度学习——>检测和移除动态对象多视角信息——>修复被遮挡的背景 | |
Light Field SLAM | 通过合成孔径成像(SAI)重建被遮挡的静态场景对重建的静态背景上的特征也进行了跟踪与利用 | 较好的SLAM性能 |
所有的方法几乎都是将动态信息丢弃,但是这些被丢弃的信息对SLAM也许会有潜在的好处;
除了SLAM之外,理解动态信息对机器人的其他任务(如:规划、控制和避障)也至关重要
时期 | 方法 | 结果 |
---|---|---|
最新 | 将估计问题分解为两个独立的估计器以便实时更新两个滤波器并行解决运动中的结构和运动物体的跟踪问题系统输出统一包含静态结构和运行物体轨迹的的三维动态地图 | 解决了动态物体的SLAM物体 |
随后 | 整合语义约束进一步赶紧3D重建 | |
最近 | 基于立体的密集映射算法 | 具有大规模动态环境中,准确高效地重建静态背景和运动物体的优势 |
证明了将多目标跟踪与SLAM相结合的可行性,适用于动态场景的探索。
通过适当的开发和建立机器人与静态背景、静态和动态物体之间的时空关系。证明了SLAM和多目标跟踪问题是相互有益的。
这种算法通常需要对三维物体进行特定的建模和表示,有三维形状、曲面或体积模型、几何模型等,提取高级原语并整合到SLAM框架中。
类型 | 方法 | 效果 |
---|---|---|
SLAM++ | 该范式在物体表层表示杂乱的场景在相机和物体姿态之间构建显示图实现联合姿态图优化 | |
密集SLAM的同时重建、分割和识别 | 提出一种新颖的3D物体识别算法 | 保证系统的鲁棒性提高估计物体姿态的准确性 |
MaskFusion | 采用表面表示对场景中的物体进行建模和重建 | 无需预先了解对象模型 |
MID-Fusion | 采用基于八叉树的体积模型 | |
构建多目标动态SLAM系统 | 无需预先了解对象模型 |
类型 | 方法 | 效果 |
---|---|---|
最近 | 使用基本集合来表示对象 | 复杂度低、易于集成到SLAM框架中 |
Quadric-SLAM | 紧凑参数化物体的大小和三维姿态将检测到的物体表示为椭球体将二次参数直接约束为几何误差并与相机位姿一起在因子图SLAM中进行联合估计 | |
CubeSLAM | 将二维和三维目标检测与SLAM相结合多视图捆绑调整与点和相机一起优化 |
仍然存在的问题:
以上方法都能证明被检测对象和SLAM之间的利用关系,但是主要关注的都是静态场景下的对象检测和SLAM,本文沿着这一方向,在SLAM框架内解决动态目标跟踪的挑战性问题,并利用动态目标与智能机器人、静态和动态结构之间的关系来获得潜在的优势。
对于论文还没有进行公式推理,所以此处先进行的系统分析。
这篇论文建立的SLAM系统可以稳健的估计相机和物体的运动以及环境的静态和动态结构。主要由预处理、跟踪、建图三部分组成。
为了充分利用基于图像的语义信息,采用了基于学习的单目系统。将单目或者双目的RGB图像和深度图像。
此模块的主要分为两部分:
方法:实例语义分割
+光流估计
使用的是稠密光流
包含两个模块:
模块一:特征检测+相机位姿估计
模块二:动态目标追踪+目标运动估计
- 检测一组稀疏的焦点特征,利用光流跟踪它们。
- 每一帧中,只有与估计的相机运动相匹配的内层特征点被保存到地图中,并用于跟踪下一帧中的对应点。
- 如果内部轨迹的数量低于一定水平(默认为1200),则检测和添加新的特征。
- 这些稀疏特征是在静态背景上检测的,即不包括被分割对象的图像区域。
- 计算所有检测到的3D-2D静态点对应的相机位姿。
- 生成两个模型,并基于重投影误差比较内点数 通过相机之前的运动产生
- 通过使用RANSAC和P3P算法进行新的运动变换生成
- 选择生成的大多数内点的运动模型进行初始化
第一步,从背景中分离对象
(虽然该算法可以估计所有分割对象的运动,但动态对象识别有助于减少所提出的系统的计算成本)
获取相机位姿–>描述场景流(理想情况下应该为0)
第二步,只提供单个图像对象标签的实例级对象分割
运动模型随着时间推移而逐渐推进,所以需要跨帧进行对象追踪。
这里采用光流来关联跨帧的点标签。
点标签与点被采样的唯一对象标识符相同。
理想情况下,对于第k帧中检测到的每个物体与k-1帧中它们对应的标签唯一对齐。
实际实践中,受到噪声、图像边界和遮挡的影响。
解决:给所有的点分配标签 前一帧出现最多的标签是0,意味着该对象即将移动。 在边界处出现、从这当中重新出现,会被重新分配一个新的跟踪标签。
目标通常以小块的形式出现在场景中,使得很难获得足够的稀疏特征来鲁棒的跟踪和估计其运动。
方法:
构建并维护一个全局地图,同事从全局地图提取一个局部地图。
从相机运动、物体运动和速度以及物体跟踪性能等方面对VDO-SLAM进行了评估。对室内场景的Oxford Multimotion数据集和室外场景的KITTI Tracking数据集进行了评估,并与其他最先进的方法(包括MVO、ClusterVO、DynaSLAM II和CubeSLAM)进行了比较。由于系统运行的不确定性,例如RANSAC处理,将每个序列运行5次,并将中值作为演示结果。所有结果都是通过在默认参数设置下运行所提出的系统得到的。开放源代码实现包括演示YAML文件和在两个数据集中运行系统的指令。
与MVO相比,本文提出的方法在相机位姿估计和摆动box和左下方面效果比较好。
与ClusterVO相比,本文在相机位姿估计和右下旋转框的平移方面的性能略差。
本文在估计物体方面比ClusterVO实现了两倍以上的改进。
下图是本文算法在Oxford Multimotion数据集上的轨迹输出结果。摆动盒子上的动态特征轨迹在视觉上与盒子的实际运动相对应。
(左) 相机的3D轨迹(红色)和四个方框的中心。(右)静态背景和物体体上的检测点。黑色对应于静态点,每个物体上的特征以不同的颜色显示。
下表中展示了9个序列的相机位姿和运动结果的估计。与DynaSLAM II和CubeSLAM在KITTI数据集中提取的九个运动物体序列上的相机姿态和物体运动估计精度的比较。加粗的数字表示更好的结果。
与DynaSLAM II相比,本文在相机位姿估计方面具有竞争力和较高的精确度,旋转误差略低,平移误差较高
与CubeSLAM相比,本文的RGB-D在相机位姿上的误差更低一些,单目的略高,此处认为是因为单目输入无法准确捕捉深度尺度。
单目和RGB-D在目标运动估计中都有持续较低的误差。
CubeSLAM的平移和旋转误差都在3米和3度以上,极端情况下误差分别达到32米和5度。然而,在RGB-D情下,我们的平移误差在0.1-0. 3米之间,旋转误差在0.2-1.5度之间,在基于学习的单目情况下,我们的平移误差在0.1-0.3米之间,旋转误差在0.4-3. 1度之间,这表明我们的目标运动估计在大多数情况下都实现了数量级的提高。
色条表示在对数尺度上对应于左y轴的平移误差。圆圈表示旋转误差,对应于线性尺度的右y轴。
结果表明,基于点的物体运动/位姿估计方法比使用高级几何模型的方法更鲁棒和准确,这可能是因为几何模型提取可能导致信息丢失并引入更多的不确定性。
下图展示了所有测试序列中一些选定对象(跟踪超过 20帧)的对象跟踪长度和对象速度的结果。本文的系统能够跟踪序列中80%以上出现的大多数物体。此外,本文估计的物体速度总是始终接近于地面真实值。
由于空间有限,部分选定目标(跟踪了 20帧以上)的目标跟踪长度和目标速度的结果。颜色条表示对象轨迹的长度,对应于左y轴。圆圈表示物体的速度,对应于右y轴。GT表示真值,EST.表示估计值。
下图显示了本文系统对三个KITTI序列的输出。所提出的系统能够在时空地图表示中输出相机姿态,以及场景中每个检测到的移动对象的静态结构和动态轨迹。
带有相机姿态、静态背景结构和动态物体轨迹的动态地图。KITTI序列的VDO-SLAM样本结果。黑色代表静态背景,每个检测到的物体都以不同的颜色显示。左上图代表Seq.01和序列末尾交叉口的放大图,右上图代表Seq.06,右下图代表Seq.03。
定义了旋转,平移的误差项,还有速度的计算方法,这里主要是讨论了作者这么设计这个系统的一些好处:
联合光流的优化使得更多的点能被连续追踪,这就使得通过这些点求出来值的精度能有小幅提升(15%~20%)。
增强了对非直接遮挡情况的鲁棒性:对于语义分割,他可能会在发生直接遮挡以及非直接遮挡(光照变化)时失效, 在非直接遮挡的情况下,把之前的语义mask传播到当前帧可以解决这个问题。下面用图来举一个具体例子:
序列一共有88帧,要追踪其中的白色车子,从第33帧开始,语义分割失效,但是追踪仍然可以进行。可以看到序列的后半段平均误差较大,这是因为此时有局部的直接遮挡(有车子局部是看不到的),以及物体离相机太远。
右下角白车上的点是把之前追踪的特征点传播到了当前帧
对物体运动的全局精确化:从下面的图可以看出来,速度估计是不平滑的,而且在后半段有很大的误差,这主要是因为物体距离相机越来越远,只在整个场景中占据了一小部分。这时,如果只靠传感器的测量值来做运动估计是很困难的,所以就使用了前面的因子图优化,可以看到结果更加平滑且提升明显。
实时性:帧率在5-8帧,会受到场景中移动物体的数目的影响。全局优化的耗时受相机帧总数,每帧移动物体数目的影响
在本文中,提出了VDO-SLAM,这是一种新的基于动态特征的SLAM系统,它利用场景中基于图像的语义信息,而不需要额外的物体姿态或几何知识,来实现动态物体的同步定位、建图和跟踪。该系统在室内和具有挑战性的室外数据集上始终显示出鲁棒和准确的结果, 并在对象运动估计方面取得了最先进的性能。在对象运动估计中实现的高性能精度是由于系统是一个基于特征的系统。在SLAM系统中,特征点仍然是最容易检测、跟踪和集成的,并且不需要前端对对象模型有额外的了解,也不需要明确地提供有关其姿态的任何信息。
一个重要问题是具有动态对象的SLAM的计算复杂度需要减少。在长期应用中,可以应用不同的技术来限制图的增长。
本文的系统分别在室内和室外进行了实验,并进行了评估讨论。在需要深度信息时,RGB-D相机要比单目效果好一些。针对动态场景中特征点的检测和追踪的处理相较之前的方法是一个较新的点;并针对观测到的动态物体有一个速度上的估计。总体来说收获颇多。