Zhang, Qi, and Changdi Li. “Semantic SLAM for Mobile Robots in Dynamic Environments Based on Visual Camera Sensors.” Measurement Science and Technology 34, no. 8 (May 2023): 085202. https://doi.org/10.1088/1361-6501/acd1a4.
1 Introduction
本文的贡献:
- 提出一个可应用于室内外场景的实时动态语义vSLAM 算法,可应用于各种相机传感器,并不依赖深度信息;
- 受益于更多的检测类别,提出一个动态点剔除算法;
- 提出了一种几乎不受噪声点影响的移动bbox判断算法,该算法以所有物体均可能是动态的为假设,使用不同的方法来检测处于不同姿势的人或物体的运动状态。
3 System overview
本系统结合语义和几何信息来检测动态特征点:
- 首先,利用DNN 获取物体的bbox,同时使用运动一致性检验来获取图片中的外点;
- 然后,结合两种信息来高效检测、剔除动态特征点。
本系统是基于ORB-SLAM3 来搭建的,系统的语义模块参考CrowSLAM,几何模块参考DS-SLAM。
3.1 Semantic Module
本系统使用YOLOX 算法,在高精度的同时保证高速计算,并使用GPU 加速方法——TensorRT。与其他SLAM 系统不同的是,本系统认为在复杂环境中所有物体都有可能是运动的,为了识别出尽可能多的物体,作者使用COCO 数据集(80个种类)对YOLOX 进行训练;然后,本系统结合一个自适应阈值算法来对每一个bbox 进行运动一致性检验,来确定该物体是否是动态的。
3.2 Geometry Module
本系统采用DS-SLAM(Yu 等, 2018) 的运动一致性检验方法,实现对动态特征点的检测。
3.3 Judging moving boxes
本系统结合语义信息和几何信息来判定bbox 是否是动态的,
bbox 运动状态的判定步骤如下:
- 首先,使用独特的方法来处理人类的bbox——NHBC 算法来区分人类是坐着还是站着的,这里使用bbox 的长宽比进行确认,坐着的人的长宽比一般小于3;作者认为坐着的人只有上半身是动态的,而站着的人全身都是动态的。
- 然后,人类和其他物体的判断阈值需分别决定,因为人类与其他物体的运动方式差异较大,人类通常都是局部运动,如Fig. 4(a)所示,动态人类上只有几个特征点是动态的,所以对于人类bbox,只要其中有一个动态特征点,则视该bbox 为动态的;而其他物体则不尽然,需要bbox 内有足够多的动态特征点才能判定该bbox 是动态的;且部分物体检测到特征点少,部分物体检测到特征点多,因此,设定一个固定的阈值是不合适的。据此,作者提出了ATA (Adaptive Threshold Adjustment),即根据bbox 内外点所占的比例来确定该bbox 是否是动态的,因为false-negative 对SLAM 影响较大,所以作者设置了一个较低的阈值——40%,对于人类,则设置为一个动态特征点。
bbox 运动状态检测算法的过程如算法一所示:
3.4 Culling dynamic points
由于bbox 的模糊性,作者选择仅对同时属于动态bbox 内且在静态bbox 外的点进行剔除。