Yu, Chao, Zuxin Liu, Xin-Jun Liu, Fugui Xie, Yi Yang, Qi Wei, and Qiao Fei. “DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments.” In 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 1168–74. Madrid: IEEE, 2018. https://doi.org/10.1109/IROS.2018.8593691.
1 Introduction
本文的贡献:
- 提出一个基于ORB-SLAM2 应用于动态环境中的语义SLAM 系统——DS-SLAM,在公开数据集上进行测试,证明了本系统在动态环境中的精度与鲁棒性;
- 添加一个实时语义分割网络线程,结合语义分割和运动一致性检验来滤除场景中的动态区域;
- 创建了一个构建稠密3D 语义八叉树地图的线程。
3 System Introduction
3.1 Framework of DS-SLAM
本章介绍五个部分的内容:
- DS-SLAM 的整体架构;
- 本算法中使用的实时语义分割方法;
- 特征点运动一致性检验;
- 外点剔除方法:结合语义分割和运动一致性来滤除动态物体;
- 构建语义八叉树地图的方法。
3.1 Framework of DS-SLAM
由于ORB-SLAM2 在实际应用中的优良表现,作者使用ORB-SLAM2 作为本算法的基本架构,来提供一个基于特征的全局SLAM 算法架构。系统整体架构如Fig. 1所示,DS-SLAM 运行5个线程:跟踪,语义分割,局部制图,回环检测和稠密建图。
系统框架如Fig. 2所示,整体流程如下所示:
- RGB 图片同时被跟踪线程和语义分割线程处理;
- 跟踪线程首先提取ORB 特征点,然后粗略检验特征点的运动一致性,并保存潜在的外点;
- 待像素级语义分割结果生成后,基于语义分割结果和上步检测到的潜在外点,识别出动态物体,并剔除位于动态物体内的ORB 外点;
- 最后,利用剩余的稳定特征点来计算转换矩阵。
3.3 Moving Consistency Check
本系统认为,如果一个分割物体内的一些点被识别为动态的,那么就判定该物体是动态物体。
运动一致性检验步骤如下:
- 首先,计算光流金字塔来获取当前帧中的匹配特征点;
- 然后,如果特征点匹配对太靠近图片边缘,或者两帧图片以特征点中心的3*3 图像块的像素差异过大,那么该匹配对也会被舍弃;
- 接着,利用RANSAC 策略计算基础矩阵,在此基础上计算当前帧中的极线;
- 最后,根据匹配点对与极线之间的距离来判断该匹配点对是否是动态的。
基础矩阵将上一帧的特征点投影至当前帧上,得到对应的搜索区域,即极线。假设相邻两帧的匹配点对齐次坐标与像素坐标为:
然后,利用下式计算对应的极线:
其中,$[X,Y,Z]^T$ 表示极线向量;F 表示基础矩阵。在此基础上,计算当前帧匹配点与极线之间的距离:
运动一致性检验算法整体流程如算法1所示:
3.4 Outliers Rejection
利用几何方法难以确定动态区域的轮廓,因此DS-SLAM 结合语义分割结果来得到动态物体的轮廓:利用运动一致性检验得到动态特征点集合,然后判断物体轮廓内动态特征点的数量是否超过阈值,若超过阈值,则判定该物体属于动态物体,然后剔除掉属于该物体的所有特征点。
作者的实验证明,本系统ORB 特征提取时间+移动一致性检验的时间,与语义分割线程所需的时间基本一致。
由于人类活动会在大部分真实场景中影响机器人的定位,所以作者以人类作为一个典型示例,展示DS-SLAM 的效果,但理论上DS-SLAM 可以应用于多种不同的动态物体检测。
作者判断动态物体的策略为:如果语义分割结果中没有人类,则使用所有的ORB 特征点直接进行匹配与位姿解算;如果有人类被检测到,则结合运动一致性来检验动态物体。