摘要
近年来,随着计算机相关领域的蓬勃发展,智能机器人逐渐进入人们的日常生活。目前,视觉SLAM(Simultaneous Localization and Mapping)技术逐渐成为智能机器人在未知环境下进行避障导航的主要技术之一。而多数视觉SLAM算法都基于静态环境假设,在动态场景下的鲁棒性并不好,且准确性较低。针对动态环境下视觉SLAM算法位姿估计准确度低、建图质量下降等问题,本文在ORB-SLAM3的架构基础上,提出了一种基于语义信息、场景流和地图动态概率更新的视觉SLAM算法。本文主要研究内容如下: (1) 构建一个可与SLAM其他线程并行运行的语义检测线程。语义检测线程首先通过轻量级目标检测网络 YOLO-FastestV2 及 K-Means 算法获取待检测帧中的语义信息,并将语义信息存储至当前帧的数据中;然后语义通过维护一个储存了若干语义帧的语义队列同SLAM其他线程进行信息交互。 (2) 通过语义信息和场景流对当前匹配信息进行动态识别。首先选取合适的参考语义帧与当前帧进行特征匹配,并构建局部场景流;接着依据先验的语义信息和场景流进行动态识别,同时更新地图点集的动态概率;根据当前地图点的动态概率和匹配对的临时动态概率选取值得信赖的静态地图点作为位姿计算的特征点对,随后进行位姿估计。 (3) 基于语义信息和动态信息的后端优化与地图构建研究。首先,通过前端获取的语义信息和动态信息,对后端优化环节中涉及到地图点信息的优化方式进行改进,结合地图点的动态概率信息选取可靠的静态地图点参与后端优化,提高定位精度和静态地图点的质量;随后根据可靠的相机轨迹数据及各帧语义信息进行语义地图构建,包括稠密语义点云地图的构建和语义八叉树地图的构建。 使用TUM中的动态数据集对本文算法进行验证,与ORB-SLAM3及RDS-SLAM方法进行定位精度对比,与ORB-SLAM3进行地图构建对比。经实验证实,本文方法在定位精度上优于ORB-SLAM3,与RDS-SLAM精度大致相当;在实时性上优于RDS-SLAM。在地图构建中相比ORB-SLAM3能够有效还原场景的环境信息,减少动态对象的影响。