Cheng, Junhao, Zhi Wang, Hongyan Zhou, Li Li, and Jian Yao. “DM-SLAM: A Feature-Based SLAM System for Rigid Dynamic Scenes.” ISPRS International Journal of Geo-Information 9, no. 4 (April 2020): 202. https://doi.org/10.3390/ijgi9040202.
1 Introduction
本文做出的贡献:
- 提出一个完整的视觉SLAM 系统——DM-SLAM,该系统结合实例分割网络和光流信息,可在高动态环境中消除动态物体对位姿估计的影响,且本系统适用于单目、双目和RGB-D 相机;
- 针对RGB-D/双目和单目相机,分别提出两种高效提取动态点的策略;
- 在公开数据集上进行测试,证明了本算法的有效性。
3 System Introduction
3.2 Proposed Method
DM-SLAM 包含四个模块:语义分割、自运动估计、动态点检测,以及基于特征的SLAM 架构。
3.2.1 Overview of the Proposed Approach
本方法的整体架构如Fig. 2所示:
Fig. 3展示了本方法的细节,Mask R-CNN 处理过的图片包含像素级的语义信息,本系统暂时舍弃属于先验动态物体的特征点,利用剩余的特征点进行粗略的自运动估计;因为更少的特征点参与位姿解算,而且没有使用局部BA ,所以当前模块获取的初始位姿是不准确的。
然后,针对双目/RGB-D 和单目相机采用不同的动态点检测策略:
- 针对单目相机,使用对极几何约束实现对动态点的检测:计算匹配点距离极线的距离,然后进行判断;
- 对于双目/RGB-D 相机,可利用三角化或深度图获取特征点的深度信息,将前一帧上的特征点重投影到当前帧,计算重投影偏差。
之后,利用检测到的动态特征点判断所属物体是否属于动态物体。
3.2.3 Ego-Motion Estimation
在暂时剔除掉先验动态特征点之后,本系统采用一个轻量级的跟踪算法进行位姿估计,该算法与ORB-SLAM2 不同,不进行局部BA 和新关键帧筛选,只与历史帧的特征点进行匹配,并将关联的地图点投影到当前帧,利用最小化重投影误差来获取粗略的初始位姿。
3.2.4 Dynamic Feature Points Extraction
针对RGB-D/双目相机,作者首先利用LK 光流算法获取两帧之间的匹配特征点,然后利用初始位姿估计将前一帧的特征点投影至当前帧,由于初始位姿估计的精度问题,必然会存在一定的重投影偏差向量,如Fig. 5、Fig. 6所示。
可以看到,即便初始位姿估计精度较差,但仍然可以从重投影偏差向量识别出静态点与动态点。基于此,作者使用静态区域(去除掉先验动态物体区域)的特征点,经加权平均求得阈值:
其中,$\epsilon$ 表示偏差向量的模值;$\theta$ 表示角度。
根据计算出的阈值,判断先验动态物体区域内的特征点是否属于动态点:
对于单目相机,简单地使用对极约束来提取动态点:
其中,$q_i, p_i$ 分别是当前帧和历史帧的匹配特征点;F 是基础矩阵。对当前帧的每一点计算其与极线之间的距离:
利用该距离判断是否属于动态点。
在得到动态点之后,根据物体掩码内的动态点数量判断该物体是否是动态的。
作者比较了本方法与DS-SLAM、DynaSLAM 的优势:
- DS-SLAM 只将人类作为典型的动态物体代表,而本方法将20种物体作为潜在动态物体;且DS-SLAM 不能处理立体相机数据;
- DynaSLAM 直接将潜在动态物体判定为动态的,与现实不符;且该方法只适用于RGB-D 数据采用多视角几何进行动态点检测。