zl程序教程

您现在的位置是:首页 >  Java

当前栏目

基于空洞补全的动态SLAM方法

2023-02-18 16:43:21 时间

余启凯, 罗斌, 王晨捷. 基于空洞补全的动态SLAM方法[J]. 信息与控制, 2022, 51(3): 330-338,360.

00 引言

同步定位和制图(SLAM)一直被认为机器人定位导航以及无人驾驶的核心技术,而利用摄像头作为传感器的视觉SLAM在近几十年也得到了广泛的研究,在这期间涌现了大量优秀的SLAM方法,为后人对SLAM技术的研究打下了坚实的基础。

视觉SLAM按照传感器的不同可以分为两类:一类是单目SLAM,一类是双目SLAM。MonoSLAM、PTAM、LSD-SLAM、DSO都是以单目为主的SLAM系统。

MonoSLAM是第一个实时的单目视觉SLAM系统,被认为是许多SLAM工作的基础,但是该方法存在路标数量有限、稀疏特征点容易丢失等缺点;PTAM是第一个使用了非线性优化的实时SLAM系统,但是其存在工作场景小,跟踪容易丢失等缺陷;LSD-SLAM利用直接法实现了半稠密地图的构建,但其对相机内参和曝光非常敏感,在相机快速运动时容易丢失。RGB-D SLAM和DTAM都是双目SLAM系统。RGBD-SLAM是基于特征点法的实时构建稠密的三维点云的地图系统,但是该方法提取特征较为耗时、效率较低;DTAM首次利用直接法实现了稠密三维地图的构建,但是其基于灰度不变的假设容易受到光照影响而失效。

然而以上方法都是假设场景为静态的,但现实场景中会不可避免地出现动态物体对其产生干扰,比如行人、汽车等。对此,众多学者对动态场景下的SLAM问题做了大量研究。比较经典的方法是利用语义分割和几何方法检测出运动区域,然后使用静态区域的特征点进行相机位姿估计。DS-SLAM采用语义分割结合光流的方法来减小动态物体对系统的影响,并且构建出了语义八叉树地图。STDyn-SLAM也是采用语义分割和运动一致性检测来剔除外点,降低动态物体的影响从而实现三维场景重建。但是剔除动态物体后场景留有的空洞依然会对相机定位精度、地图构建产生不小的影响,如何补全空洞以及背景填充将对SLAM精度的提高有比较大的意义。

为解决上述问题,本文通过语义分割网络和运动一致性检测来处理潜在的动态对象,随后逐帧对剔除动态对象的空洞进行补全,获取被动态物体遮挡的特征信息,最后逐帧输入到ORB-SLAM2系统中从而得到更为精确的位姿估计结果。

01 系统介绍

在本节,将详细介绍本文的系统框架,其中包括4个部分。首先给出了本文基于特征点法的空洞补全视觉SLAM的结构图,其次简要地介绍了实时的语义分割方法,然后介绍运动检测一致性算法,并联合语义分割来剔除动态特征,最后介绍空洞补全方法。

1.1 系统框架

在现实动态的环境中,精确地估计机器人和相机的位姿是机器人自主定位导航的关键因素,基于特征点法的ORB-SLAM2在大多数场景下都能得到比较好的效果。因此本文方法是基于ORB-SLAM2的框架进行修改,其概述如图1所示。

图 1 本文方法概述

由于双目相机的深度值可以直接用来估计物体的距离,因此本文的输入数据均是采用双目相机拍摄的RGB-D数据。如图2所示,本文的方法包含5个线程:语义分割线程、空洞补全网络线程、追踪线程、局部建图线程以及回环检测线程。

图 2 本文系统框架

在追踪和语义分割线程中同时处理来自双目相机的RGB-D图像,追踪线程首先提取ORB特征点并粗略计算特征点的运动一致性且保存潜在的异常值。然后该线程等待由语义分割线程预测的像素语义标签的图像,通过分割结果和追踪线程检测到的潜在异常值对比来剔除图像中动态特征点。随后将剔除后的图像和原始的RGB-D图像数据送往网络补全线程,最后通过匹配补全后的图像的稳定特征点来完成变换矩阵的计算、BA优化以及整个回环检测。

1.2 语义分割

考虑到本文SLAM系统的实时性,需要在剔除动态物体的准确性和效率上保持平衡,所以本文采用基于Caffe框架的实时语义分割网络SegNet进行分割。在PASCALVOC训练的SegNet网络总共可以被划分为20个类。在实际的生活中,人、车最有可能是动态对象,所以本文假定位于人、车上的特征点最有可能是异常值,训练后的网络分割结果如图3所示。

图 3 语义分割结果

1.3 运动检测一致性

图 4 内外点实例

1.4 空洞补全及位姿计算

在图像经过语义分割以及运动一致性检测剔除动态特征后,图像上会产生空洞掩码,如图5所示,因此本文的目标是用来自不同帧的像素来修补该帧的空洞,这样就可以在不需要动态物体的情况下合成一副真实且逼真的图像。这种包含环境静态结构的合成图像对于虚拟和增强现实等实际应用,以及提高相机位姿估计精度等有比较大的意义。

图 5 掩码空洞

由于对视频序列中单帧的图像进行补全会导致时间伪影和抖动,难以保证时间的一致性并且需要一个很大的模型来绘制整个视频序列,内存消耗很大,且大多数现有的视频补全算法沿用传统的图像补全流程:主要是将空洞补全问题视为一个基于图像中像素块的优化任务,该任务通过已知图像区域中的时空像素块来填补缺失区域。

这些传统的视频补全算法主要有以下两点缺点:第一,通常这些方法假设缺失区域存在的都是光滑且均匀的运动场,因此它们不能处理复杂运动的视频;第二,基于优化方法的计算复杂度很高,因此该方法在实际应用中不可取。

对于缺失的区域,计算该区域的光流场比直接用像素填充该区域容易的多,并且光流引导像素传播可以很自然地保持时间上的相干性。此外,由于场景中大多数的物体具有可跟踪的运动,其光流可以很容易得到。因此本文采用基于光流引导的视频补全算法。该方法首先提出一种粗到细的光流补全网络(DFC-Net),该网络由3个类似的子网络(DFC-S),通过第一子网络得到相对粗糙的估计流场,随后被送到第二和第三子网络进一步细化;随后在获得比较细的光流场后,大多数缺失的区域可以被通过不同帧的光流引导传播已知区域的像素来填充;最后利用传统的图像补全来处理剩余区域。其中核心主要包括光流引导像素传播、硬流挖掘机制,下面将逐一介绍。

光流引导像素传播

由于估计的光流在某些位置可能是不准确的,故首先需要检查光流的有效性。对于一个前向流f^3_{i\rightarrow(i+1)}(x_i+1) 和位置x_i 给出了基于光度一致性的条件,如式(1)所示,其中\varepsilon 是一个很小的阈值。如果不满足该条件,就认为该光流是不可靠的,在传播中忽略它,后向光流条件也与此类似。该条件意味着像素在光流的前向传播和后向传播后应该回到像素原来自身的位置,传播过程如图6所示。

图 6 光流引导像素传播过程( 前向传播和后向传播)

硬流挖掘机制

由于大部分光流区在视频序列中是平滑的,但在边界区域却有很大差别,并且在训练过程主要以光滑区域为主,就导致预测中的边界区域模糊,更糟糕的是会导致光流引导像素传播出现严重伪影。因此,本文引入硬流挖掘机制,具体就是按照损失的降序对所有像素进行排序,其中顶部p%像素被标记为硬样本,把损失函数的定义如式(2)所示,其中M表示平滑区域的二进制掩码,M^h 表示硬区域的二进制掩码,f是光流。为了让模型更加关注硬区域,在该区域的损失加上一个权重\lambda

位姿计算对于空洞补全后的结果,如图7所示,其中影响位姿估计精度的动态特征已经被剔除并用周围的静态特征补全剔除后的空洞。假设n个三维空间点

和它们在图像中的投影像素点p_i=[u_i,v_i] ,则像素点p_i 和空间点P_i 的位置关系如式(3)所示,转换为矩阵形式如式(4)所示。其中s_i 为深度值、K 为相机的内参矩阵、\xi\text^ 为位姿变换的李代数反对称矩阵、e 为误差项。

构建最小二乘问题求误差,即为所求相机位姿,如式(5)所示:

图 7 补全结果

02 实验结果

在本节中,为验证本文方法的有效性,采用公开的室内低动态TUM RGB-D数据集以及室外高动态KITTI数据集分别进行测试。由于本文方法是基于目前较稳定开源ORB-SLAM2算法进行修改的,因此对它进行了比较。采用绝对轨迹误差(ATE)和相对姿态误差(RPE)进行定量评价,ATE指标代表轨迹的全局一致性,而RPE指标代表平移和旋转漂移,所有的实验均是在Intel i7 CPU、RTX2080 GPU和32GB内存的计算机上进行的。

2.1 TUM RGB-D数据集评估实验

TUM RGB-D数据集通过RGB-D相机采集了不同姿态的室内动态场景序列并且提供了对应的相机位姿真值,可供SLAM算法研究者们评估自己算法的性能。本文采用了数据集中两个室内高动态场景fr_walking_xyz、fr3_warking_static以及低动态性场景fr3_sitting_static进行测试。定量比较结果如表1所示,其中第一列是数据集的系列名称,分别代表着相机的运动姿态,第二列、第三列、第四列分别表示均方根误差(RMSE)、平均值和标准偏差(STD),其中RMSE和STD更重要,因为它们可以更好地表明系统的鲁棒性和稳定性。另外,还给出本文算法与原始ORB-SLAM2相比的提升率,表中的提升率计算如式(6),其中\eta 表示提升的效率,o表示ORB-SLAM2的值,i 表示本文算法的值。

表1 TUM 数据集绝对轨迹误差对比

从表1中可以看出,本文算法在对室内高动态场景下位姿估计精度对比经典的ORB-SLAM2的位姿估计精度有了一个数量级的提升,其中绝对轨迹误差方面的平均提升率可以达74%左右。表2展示了本文方法与其他同类算法对比,实验结果表明,本文的方法可以显著提高SLAM系统在高动态环境下的鲁棒性和稳定性,并且表现更优。但在低动态序列中,例如在fr3_sitting_static序列,性能的提升并不明显,原因可能是原始的ORB-SLAM2可以轻松地处理低动态场景,并实现良好的性能,因此可以提升的空间有限。图8和图9分别显示了在室内高动态场景fr_walking_xyz下ORB-SLAM2和本文方法的绝对轨迹误差以及相对姿态误差,可以直观地看到,本文方法的误差较ORB-SLAM2显著减少。

表2 同类算法结果对比
图8 ORB-SLAM2的ATE和RPE
图9 本文算法的ATE 和RPE

2.2 KITTI数据集评估实验

KITTI数据集主要包含市区、乡村和高速公路等场景采集的真实图像数据,每张图像中最多达15辆车和30个行人,属于室外高动态场景。为了评估本文方法在室外高动态场景下的效果,本文主要选择KITTI中的00到10序列进行实验并与ORB-SLAM2等先进的SLAM算法比较,使用EVO工具来评估绝对位姿误差(APE)以及对应的均方根误差(RMSE)、平均值(Meam)、最大值(Max)和最小值(Min)误差。

从表3中可以看出,当场景中大多数的车辆在移动时,比如KITTI01和KITTI02序列,本文方法的APE误差要比ORB-SLAM2小得多。当场景中大多数车辆出于停放状态时,比如KITTI03和KITTI04序列,此时本文方法和ORB-SLAM2对该序列的处理精度大致相同,原因是该序列没有闭环且ORB-SLAM2处理低动态场景效果也比较好。从表4中可以看出,本文算法与STDyn-SLAM以及DynaSLAM同类算法相比,数据提升的并不是很明显,这是由于只有动态物体对相机估计的精度有较大的影响,补全后与补全前的结果在地图上都是没有动态物体的,但补全的结果可以应用于整个三维场景重建,对重建后的地图效果更加逼真。图10显示了在室外高动态场景KITTI01下ORB-SLAM2和本文方法的绝对位姿误差(APE),左图为ORB-SLAM2的APE图,右图为本文方法的APE图,可以直观地看到,在KITTI01序列下,本文方法误差比ORB-SLAM2显著减少。

表3 KITTI数据集绝对位姿误差对比
图10 ORB-SLAM2和本文算法的APE
表4 同类算法的绝对位姿误差对比

2.3 三维场景重建实验

RTAB Map是一种基于增量外观闭环检测的RGB-D、立体及激光SLAM方法,实现了基于特征的视觉里程计、基于词袋模型的回环检测、后端的位姿图优化以及点云和三角网格地图,且RTAB Map给出了一套完整的RGB-D SLAM方案,目前可以直接从ROS中获得其二进制程序,可以很方便地进行三维场景重建。因此本文利用RTAB Map并选取KITTI数据集中的序列4、序列6来进行场景的稠密三维重建。对比经典的三维场景重建结果,本文借助神经网络来对动态物体剔除后的空洞进行补全,从而可以在不需要动态物体的情况下合成一副真实且逼真的地图,它对于虚拟现实等实际应用,以及提高相机位姿估计精度等有比较大的意义。

它们三维重建的结果如图11和图12所示,其中左图为原始序列三维重建的效果地图,红色箭头指的是场景中的汽车,可以看到随着汽车的移动,重建效果出现一系列重影;中间图为采用经典方法后三维重建的局部图,其中蓝色箭头指的是动态物体剔除后的白色空洞,主要包括移动的汽车和行人;右图为采用本文空洞补全网络后三维重建的局部图,绿色箭头指的是对其白色空洞运用补全网络补全的效果,可以看出稠密的三维重建效果更加逼真。

03 结论

本文基于ORB-SLAM2提出了一种视觉SLAM系统,可以减少动态对象对位姿估计精度的影响。

在该系统中,一共包含5个线程:追踪、语义分割、网络补全、局部建图以及回环检测,其中语义分割和运动一致性检测相结合剔除场景中的动态特征点,从而提高动态场景中的鲁棒性和准确性,随后剔除动态物体的空洞掩码与原始图像被送往补全网络中用来自不同帧的静态像素进行空洞补全,最后进行局部建图以及回环检测来计算相机位姿。

在TUM RGB-D数据集和KITTI数据集中进行测试,结果表明,本文方法在高动态环境下的精度和鲁棒性明显优于ORB-SLAM2。

然而,本文方法仍然存在一些问题。例如,受到基于Caffe框架的实时语义分割网络SegNet可以识别的对象类型的限制,故其应用场景有限,而且本文的系统受空洞补全网络限制,不能实时运行。在未来,将通过构建动态对象剔除及补全于一体的网络来实现本文系统的实时性能。

精彩推荐

  1. 未来自动驾驶必须解决哪些感知问题
  2. 视觉3D目标检测,从视觉几何到BEV检测
  3. 两万字 | 视觉SLAM研究综述与未来趋势讨论
  4. 一文聊聊自动驾驶系统的传感器标定方法
  5. 基于SLAM的机器人自主定位导航全流程
  6. ECCV 2022 | 76小时动捕,最大规模数字人多模态数据集开源