Liu, Yubao, and Jun Miura. “RDS-SLAM: Real-Time Dynamic SLAM Using Semantic Segmentation Methods.” IEEE Access 9 (2021): 23772–85. https://doi.org/10.1109/ACCESS.2021.3050617.
1 Introduction
本文的贡献如下:
- 提出一个基于语义的实时动态vSLAM 算法——RDS-SLAM,该算法的跟踪线程不需要等待语义结果,可在保持实时的情况下高效利用语义分割结果进行动态物体检测和外点剔除;
- 作者提出了一种关键帧选取策略,使得在利用任意语义分割方法的情况下,尽可能使用最新的语义信息进行外点剔除;
- 在TUM 数据集上证明了本方法的实时性能。
Fig .2 是利用语义信息进行动态特征点检测方法常用的模式,该模式会为了获取语义信息而阻挡跟踪、制图等线程,作者称这种模式为blocked model。
3 System Overview
本系统的架构如Fig. 3所示,语义线程与其他线程并行运行,因此不会阻挡跟踪线程的运行,并将语义信息保存至atlas 中。语义标签用于产生先验动态物体的掩码,并利用语义信息更新与关键帧特征点相匹配的地图点的移动概率,最终,使用atlas 中的语义信息优化相机位姿。
atlas 管理两种地图:动态地图 active map 与非动态地图 non-active map,当相机跟踪失败且数帧重定位失败时,动态地图转换为非动态地图,并初始化一个新的地图。在atlas 中,利用共视图和spanning tree 管理关键帧和地图点。
4 Semantic Thread
语义线程的过程如Fig. 4所示,作者将选取关键帧序列KF 中的关键帧去请求语义标签的过程称为semantic keyframe selection 语义关键帧选取过程。
语义线程的实施细节如算法1所示:
4.1 Semantic Keyframe Selection Algorithm
作者定义semantic delay 语义延迟来表示具有最新语义信息的帧id 与当前帧id 的距离:
Fig. 7展示了本系统的关键帧选取策略,作者选取关键帧序列KF 中的头尾关键帧进行语义信息获取:选取KF 尾部的关键帧进行语义获取可以使得系统可以获取相对新的语义信息;选取KF 头部关键帧的原因在于,与blocked model 不同的是,本系统会缺失前面几帧图片的语义信息,由于跟踪线程处理速度远快于语义分割线程速度,因此前期会因为动态物体的存在而积累大量的误差,因此需要利用前期关键帧中的语义信息来矫正相机位姿。
4.3 Semantic Mask Generation
本系统将实例分割的二维掩码图片融合进一张掩码图片中,如Fig. 8所示,然后利用该掩码图片计算地图点的先验移动概率;为了减小因分割精度不足导致部分边缘动态点检测失败的情况,作者使用掩码膨胀策略将属于物体边缘的特征点也囊括进去,如Fig. 9所示。
4.4 Moving Probability Update
本系统利用移动概率来将语义信息从语义线程传递至跟踪线程,该移动概率被用于跟踪线程的外点检测和剔除。
4.4.1 Definition of Moving Probability
由于CNN 存在准确性、鲁棒性的问题,所以不能简单使用单帧图片的结果进行判定;针对该问题,作者考虑使用多帧图片的空间-时间一致性来实现对动态特征点的精确检测,因此,使用移动概率来利用连续关键帧的语义信息。
4.4.2 Definition of Observed Moving Probability
由于分割结果不是100%准确的,因此,作者定义观测移动概率:
其中,$\alpha, \beta$ 的值是与语义分割网络的精度相关的。本系统中,将两者的值设定为0.9,即认为语义分割的结果是相对可靠的。
4.4.3 Moving Probability Update
当前时间的移动概率 $bel(m_t)$ 是基于语义观测 $z_{1:t}$ 和初始状态 $m_0$ 进行预测的,利用贝叶斯滤波器进行更新:
5 Tracking Thread
算法2展示了在跟踪上帧模型中的数据关联方法,系统会设定一个阈值 $\tau$ ,优先使用静态特征点进行位姿解算;如果静态特征点的数量小于该阈值,会进一步使用未知状态的特征点进行位姿解算。
6 Optimization
本系统使用语义关键帧选取策略给定的关键帧来优化相机位姿:根据地图点的运动概率该修改ORB-SLAM3 的误差项,优化过程中只使用静态特征点。
其中,X 表示地图点的3D 位姿;T 表示待优化关键帧位姿;x 表示关键帧中的匹配特征点。