视觉惯性里程计和SLAM算法广泛应用于服务机器人、无人机和自动驾驶汽车等领域。大多数SLAM算法都是基于假设地标是静态的。然而,在现实世界中,存在着各种各样的动态物体,它们降低了姿态估计的精度。此外,临时静态对象(在观察期间是静态的,但在视线之外时移动)会触发误报循环关闭。为了克服这些问题,我们提出了一种新的视觉惯性SLAM框架,称为DynaVINS,它对动态目标和临时静态目标都具有鲁棒性。在我们的框架中,我们首先提出了一个鲁棒的束调整,它可以通过利用IMU预集成估计的姿态先验来拒绝来自动态对象的特征。然后,提出了关键帧分组和基于多假设的约束分组方法,以减少临时静态对象对闭环的影响。随后,我们在包含许多动态对象的公共数据集中评估了我们的方法。最后,实验结果证实,与其他先进的方法相比,我们的DynaVINS具有良好的性能,成功地拒绝了动态和暂时静态物体的影响。
开源:https://github.com/url-kaist/dynaVINS
与视觉slam不同,来自IMU的运动先验有助于VI-SLAM算法在一定程度上容忍具有动态对象的场景。但是,如果如图1(b)所示,主要动态对象遮挡了大部分视图,则无法仅使用运动先验来解决问题。此外,在实际应用中,临时静态对象在被观察时是静态的,但在不被观察时是运动的。如图1(c)所示,这些对象可能会导致环路关闭过程中出现误报,从而导致关键故障。为了处理临时静态对象,提出了鲁棒的后端方法,以减少优化中假阳性循环闭包的影响。然而,由于它们关注的是瞬时误报循环闭合,因此无法处理由临时静态对象引起的持久误报循环闭合。
图1:我们的算法,DynaVINS,在各种动态环境中。(a) - (b) 在VIODE数据集city_day序列的特征拒绝结果。 (c)将特征匹配结果在我们数据集的E形序列中分离成多个假设
在本研究中,为了解决上述问题,我们提出了一个鲁棒的VI-SLAM框架,称为DynaVINS,它对动态和临时静态对象具有鲁棒性。我们的贡献总结如下:
(1)提出了鲁棒的VI-SLAM方法来处理无法仅通过基于学习或仅基于视觉的方法解决的未定义动态对象。
(2)提出了一种新BA通道,用于同时估计相机姿态并丢弃与运动先验显著偏离的动态对象的特征。
(3)提出了一种鲁棒全局优化方法,将约束分组到多个假设中,以拒绝来自临时静态对象的持久循环闭合。
通过反映IMU先验和特征跟踪信息,不仅在图结构中采用B-R对偶性,而且在BA框架中采用B-R对偶性,对VI-SLAM进行改进,使动态对象和临时静态对象的影响最小化。
图2:我们的鲁棒视觉惯性SLAM pipeline。在单或双目图像中跟踪特征,并在传感器预处理步骤中预积分IMU数据。然后,利用鲁棒分类算法丢弃动态对象的跟踪特征,只保留静态对象的跟踪特征。使用跟踪特征的数量对关键帧进行分组,在当前关键帧组中检测到的循环闭包被聚类到假设中,每个有权重的假设在选择性优化中被使用或拒绝。利用所提出的框架,可以获得对动态和暂时静态目标的鲁棒轨迹。
在常规的视惯性状态估计器中,视惯性BA公式定义如下:
存在问题:
(1)一旦离群值的比例增加,Huber损失就不能成功地工作了。
(2)redescending M估计器,如Gemanmcclure (GMC),由于残差的零梯度,一旦残差超过特定范围,就可以完全忽略异常值。不幸的是,这种截断引发了一个被认为是异常值的特性永远不会出现的问题。
为了解决这些问题,我们的BA方法由两部分组成:
(1)利用IMU预积分的正则化因子
(2)考虑每个权重的先前状态的动量因子,以覆盖预积分暂时不准确的情况.
首先,为了在稳健估计姿态的同时剔除离群特征,我们提出了一个受B-R对偶性启发的新的损失项,如下:
之后,采用(2)中的代替(1)中目视重投影项中的Huber范数。因此,BA公式表示为:
在优化W时,除了权重之外,所有项都是常量。因此,优化权重的公式可表示为:
由于权重wj是相互独立的,所以(5)可以针对每个wj独立优化如下:
由于式(6)中的项为二次型w.r.t. wj,故最优wj可推导为:
图3:各种参数下损失函数的变化
当运动变得剧烈时,IMU预积分变得不精确,从而导致估计状态变得不准确。在这种情况下,静态对象的特征重投影残差变大,为了解决这个问题,提出了一个额外的因素,即权重动量因素,使先前估计的特征权重不受攻击运动的影响。因为特征是连续跟踪的,每个特征fj用它之前的权重w¯j进行了nj次优化。为了使当前权值趋于保持在w¯j,并随着nj的增加而增加这种趋势的程度,将权值动量因子Ψ(wj)设计如下:
将(9)与(2)相加,可得到修正后的损失项:
式中λm∈R +表示一个常数参数,用于调节动量因子对BA的影响。
综上所述,所提出的鲁棒BA如图4所示。在权重动量因子中使用之前跟踪特征的权重,在正则化因子中使用当前窗口中所有特征的权重。因此,鲁棒BA表示为:
图4:鲁棒的BA框架。每个特征都有一个权重,用于视觉残差。通过正则化因子和权重动量因子对每个权重进行了优化。IMU残差项采用预积分IMU数据。所有参数都在鲁棒BA中进行了优化。
与单独处理循环闭合的传统方法不同,在本研究中,来自相同特征的循环闭包被分组,即使它们来自不同的关键帧。因此,每个组只使用一个权重,从而实现更快的优化。
如图5(a)所示,在对循环闭包进行分组之前,必须对共享至少最小数量的跟踪特征的相邻关键帧进行分组。从相机第i帧Ci开始的组定义如下:
图5:多假设聚类的过程。(a)对共享最小跟踪特征数量的关键帧进行分组;(b)有两种类型的特征用于匹配:静态和临时静态特征;(c)暂时的静态特征从先前的位置移动;最后,基于欧氏距离对TiW相似的特征匹配结果进行聚类。
根据选择的闭环聚类不同,图优化得到的轨迹结果也不同。
因此,每个聚类都可以称为一个假设。为了减少计算成本,通过比较假设内循环闭包的基数,采用了前两个假设。将当前组Gi的这两个假设记为H0i和H1i。然而,还不可能区分真或假的积极假设。因此,在候选假设中确定真正假设的方法将在下一节中描述。
大多数最近的可视化SLAM算法使用图优化。设C、T、L和W分别表示关键帧、姿态、循环闭包和所有权重的集合,则图优化可表示为:
对于组Gi的两个假设,权值分别记为w0i和w1i,权值之和记为wi,假设集记为h。使用与III.C节类似的程序,对(15)应用Black-Rangarajan对偶性,如下所示:
为了评估所提出的算法,我们将我们的算法与SOTA算法进行了比较,即vin - fusion、ORBSLAM3和DynaSLAM。每个算法在单目惯性(-M-I)和双目惯性(-S-I)模式下进行测试。
首先,我们分析了所提出的因素对BA时间成本和精度的影响,如表1所示。
之后,如表2和图6所示,SOTA方法在静态环境下显示出精确的姿态估计结果。
图6:最先进的算法和我们在VIODE数据集的city_day序列上的ATE结果。请注意,y轴是以对数尺度表示的。与其他最先进的方法相比,我们的算法表现出良好的性能,性能退化较小。
在如图7(a) - (b)所示的parking_lot high sequence中,即使其他算法受到动态对象的影响,我们的算法也能进行稳定的姿态估计。
图7:最先进的算法和我们在VIODE数据集的parking_lot高序列上的结果。(a)各算法在三维特征图中的轨迹,这是我们提出的算法的结果。权重较低的特征用红色表示。(b) (a)的放大视图。除我们的算法外,所有其他算法在观察动态对象时都丢失了轨迹或有噪声轨迹,并且在(c)我们算法的特征加权结果中,来自动态对象的特征(红叉)的权重较低,而鲁棒特征(绿圈)的权重较高。
这证实了我们的方法克服了动态对象带来的问题,因为我们的方法是健壮的BA方法,这也得到了表III的支持。
图8:算法在e形序列上的结果。(a)弹道结果。其他算法由于假正循环闭包而不准确。
(b)我们算法的闭环拒绝结果。低权重约束(红线)对优化轨迹没有贡献