跳转至

DynaVINS:用于动态环境的视觉惯性SLAM

0. 引言

动态环境下的SLAM系统一直都是一项具有挑战的问题,基于学习的方法在动态物体出现大面积遮挡时容易出现漏检,而基于几何的方法对于动态物体的位姿估计不是那么准确。在2022 IEEE RA-L论文"DynaVINS: A Visual-Inertial SLAM for Dynamic Environments"中,作者提出了一种动态环境下的VINS系统,笔者认为最大的创新在于解决了临时静态对象引起的假阳性回环问题。

1. 论文信息

标题:DynaVINS: A Visual-Inertial SLAM for Dynamic Environments

作者:Seungwon Song, Hyungtae Lim, Alex Junho Lee, Hyun Myung

来源:2022 IEEE RA-L

原文链接:https://arxiv.org/abs/2208.11500

代码链接:https://github.com/url-kaist/dynavins

2. 摘要

视觉惯性里程计和SLAM算法广泛应用于各种领域,如服务机器人、无人机和自主车辆。大多数SLAM算法都是基于静态环境假设。然而,在现实世界中,存在各种动态对象,并且它们降低了姿态估计精度。此外,暂时静止的对象(在观察期间是静止的,但当它们离开视线时会移动)会触发错误的回环检测。为了克服这些问题,我们提出了一种新的视觉惯性SLAM框架,称为DynaVINS,它对动态对象和暂时静态对象都具有鲁棒性。在我们的框架中,我们首先提出了一种鲁棒的BA,它可以通过利用IMU预积分估计的姿态先验来拒绝来自动态对象的特征。然后,提出了关键帧分组和基于多重假设的约束分组方法,以减少暂时静止物体对回环的影响。随后,我们在包含大量动态对象的公共数据集中评估了我们的方法。最后,实验结果证实了我们的DynaVINS通过成功地拒绝动态和暂时静态对象的影响,与其他最先进的方法相比具有良好的性能。

3. 算法分析

如图1所示是作者提出的Dyna-VINS的整体架构,算法的输入为单目/双目图像和IMU信息,并进行特征跟踪和IMU预积分。然后,经过鲁棒BA来从动态对象中丢弃跟踪的特征,只有静态对象的特征被保留。之后使用被追踪特征的数量对关键帧进行分组,并且聚类在当前关键帧组中检测到的回环假设。最后在选择性优化中使用或拒绝具有权重的每个假设,最终获得面向动态和暂时静态对象鲁棒的轨迹。

图1 Dyna-VINS架构总览

综上所述,作者所做工作的主要贡献如下:

1 提出了鲁棒的VI-SLAM方法来处理主要的、未定义的动态对象,这些对象不能仅通过基于学习或仅视觉的方法来解决。

2 提出了一种新的BA算法,用于同时估计相机姿态和丢弃动态对象中明显偏离运动先验的特征。

3 提出了一种鲁棒的全局优化方法,将约束分组为多个假设,以拒绝来自暂时静态对象的回环。

3.1 应用场景

图2所示是Dyna-VINS应用的主要场景。图2(a)和图2(b)是城市环境中遇到大面积遮挡的情况,这种情况下深度学习方法可能会出现漏检。图2©是作者自建的临时静态物体场景,如果一个物体当前被观测的时刻是静止的,但后期发生移动的话,传统的基于几何的SLAM算法会发生假阳性回环。

图2 主要测试的动态环境 (a)--(b) VIODE数据集的city_day序列,包含大量遮挡;© 自建数据集,包含暂时静态的对象

3.2 鲁棒BA

因为Huber损失并不完全拒绝异常值的残差,所以一旦外点比例增加,传统的Huber损失就容易失效。因此作者提出的BA方法由两部分组成:a)利用IMU预积分的正则化因子,b)考虑每个权重的前一状态的动量因子。作者所提出的鲁棒BA的流程如图3所示。

图3 鲁棒BA框架,每个特征都有一个权重用于视觉残差,每个权重通过正则化因子和权重动量因子进行优化

3.3 关键帧分组

在传统方法的回环检测中,面对临时静止的物体,假阳性闭环可能导致SLAM框架的失败。此外,来自临时静态对象的特征和来自静态对象的特征可能存在于同一个关键帧中。因此,在DynaVINS中,作者使用了关键帧分组的概念:来自相同特征的回环被分组,即使它们来自不同的关键帧。因此,每个组只使用一个权重,从而实现更快的优化。

如图4(a)所示,在对回环进行分组之前,必须对共享最少数量跟踪特征的相邻关键帧进行分组。从第i个相机帧Ci开始的组定义为:

α表示跟踪的最小特征数,Fki表示从Ci跟踪到Ck的特征集合。

之后。使用DBoW2识别与当前组Gi中的每个关键帧Ck相似的关键帧Cm,如果没有相似关键帧,则跳过Ck。在识别出k最多3个不同的m后,在Ck和这些关键帧之间进行特征匹配,可以得到相对位姿T。如果用于匹配的特征来自同一对象,即使匹配的Ck和Cm不同,匹配的估计位姿也会位于彼此接近的位置。因此,通过计算回环位姿之间的欧氏距离,可以将欧氏距离较小的相似闭环进行聚类,结果如图4©所示。根据所选的回环集群,图形优化的轨迹结果有所不同。

图4 多假设聚类的过程 (a)对共享所跟踪功能的最少数量的关键帧进行分组 (b) 用于匹配的特征有两类:静态特征和临时静态特征 © 临时静态特征从前一位置移动

4. 实验结果

作者分别比较了DynaVINS与VINS-Fusion、ORB-SLAM3、DynaSLAM。每种算法都在单目惯性(-M-I)和双目惯性(-S-I)模式下进行测试,由于DynaSLAM没有使用IMU,因此只在双目(-S)模式下进行进行。评估在VIODE数据集上进行,该数据集中存在一些大面积遮挡的数据。但由于VIODE数据集不包含由临时静态对象引起的错误回环情况,因此作者建立了自己的数据集,包括4个序列。

4.1 VIODE数据集

表1所示是关于BA时间成本和准确性的分析,结果显示仅使用正则化因子比VINS-Fusion有更好的ATE,但是加上动量因子以后,ATE进一步降低,还减少了所需要更少的时间。

表1 在VIODE数据集的parking_lot high序列中的消融实验

如表2和图5所示,目前的SOTA方法在静态环境中有精确的姿态估计结果,但在动态环境中性能变差。尤其是随着动态对象数量的增加,DynaSLAM会发散或输出较大的ATE。ORB-SLAM3和VINS-Fusion也有同样的问题。作者认为这种性能下降是由于整体遮挡,导致语义分割模块的失败和静态对象特征的缺失。

表2 动态环境下的SOTA方法对比

图5 在VIODE数据集的city_day序列上测试的SOTA算法

在如图6所示的停车场序列中,即使其他算法受到动态对象的影响,DynaVINS也能执行稳定的姿态估计。即使动态对象的数量增加,与其他方法相比DynaVINS性能下降仍然很小,这是因为DynaVINS提出了一个鲁棒的BA方法,表3也定量得验证了这一结论。实际上,这种方法是通过以自适应的方式调整权重来滤除所有动态特征。

图6 在VIODE数据集parking_lot high序列上的定性结果 (a) 3D特征图中每个算法的轨迹,低权重的特征用红色表示。(b) (a)的放大图,其他算法在观察动态对象时丢失轨迹或具有噪声轨迹 © 特征加权结果中,来自动态对象的特征(红叉)具有低权重,而鲁棒特征(绿圈)具有高权重

表3 性能降低比例的对比

此外,作者提出的BA方法通过拒绝不一致的特征(例如图6©中黑暗区域的低权重特征)来实现对光照变化的鲁棒性。因此,与其他SOTA方法相比,DynaVINS在城市夜晚场景中表现出显著的性能,其中不仅存在动态物体,而且缺乏光照。

4.2 自建数据集

如表2所示,在静态场景中所有算法的ATE均较低。但在动态跟随场景中,其他算法试图跟踪遮挡物体,BA和回环会出现问题。因此,除了DynaVINS外,其他算法都有较高的ATE。此外,在临时静态物体环境中,ORB3和VINS-Fusion的双目惯性模型可以正常运行,但单目惯性模式下由于深度估计不准确,出现了假阳性的闭环。

如图7所示,在E-shape情况下,由于存在假阳性闭环其他算法无法优化轨迹。然而,但DynaVINS优化了每个假设的权重,因此可以在优化中排除假阳性的回环。

图7 E形序列的算法轨迹结果,由于假阳性回环,其他算法是不准确的。

5. 结论

在2022 IEEE RA-L论文"DynaVINS: A Visual-Inertial SLAM for Dynamic Environments"中,作者提出了DynaVINS,这是一个基于动态环境中的鲁棒BA和选择性全局优化的鲁棒VI-SLAM框架。作者在VIODE数据集和自建数据集上分别对动态物体和临时静态物体进行了分析,结果显示DynaVINS性能在动态环境中比其他基于几何的算法工作得更好。此外作者提出,他们后续的工作是提高速度和性能,并将在激光-视觉-惯性SLAM框架中采用DynaVINS的概念。