论文部分内容阅读
基于视觉的同时定位与地图构建(Simultaneous Localization and Mapping,SLAM),是自主移动机器人的核心功能之一。然而,现有视觉SLAM算法大多为了计算方便,常将外部场景作为静态假设,其所构建的静态系统模型对外部环境独立运动物体敏感,导致SLAM系统在动态场景中具有较大误差而无法应用于实际生产生活。鉴于此,本文以ORB-SLAM2 RGB-D框架为基础,研究一种针对室内动态场景下的鲁棒视觉SLAM算法,涉及的核心问题有ORB特征点均匀化提取、动态特征点检测及滤除和静态三维地图构建。基于ORB-SLAM2构建了一种多线程SLAM框架。添加了语义检测线程,用于识别场景中的先验动态目标。新增三维地图构建线程,用于构建场景中的静态三维点云和八叉树地图。在跟踪线程中,改进了原始系统特征提取模块,新添加特征滤除模块用于滤除场景中的动态特征。针对 ORB-SLAM2 中基于四叉树的 ORB 算法(Quadtree-based ORB algorithm,Qtree_ORB)存在对提取的特征点过均匀化现象,提出一种改进四叉树ORB特征点提取算法。通过限制四叉树分割深度,在各节点中按照Harris响应值保留特征点,解决了标准算法特征提取过均匀问题;提出一种基于网格划分的ORB特征点均匀化算法(Grid-Based ORB algorithm,Grid_ORB)。构建了一种网格划分模型,通过在图像金子塔每层进行网格划分,采用一种自适应阈值的FAST特征点检测算法,对图像金子塔每层网格进行特征点提取,按照特征点Harris响应值大小保留网格内特定数目的特征点。实验表明,Grid_ORB算法提取的特征点相较于Qtree_ORB算法具有较高的特征匹配数量和正确率。针对动态特征点对SLAM算法定位精度的影响,提出一种基于运动一致性的动态特征点滤除算法(Motion consistency-based algorithm,MC),依据帧间运动一致性构建了一种运动约束几何模型粗滤除动态特征点,使用改进RANSAC算法计算稳定帧间基本矩阵,通过极线几何精滤除动态特征点;提出一种融合深度学习网络和多视图几何的语义和几何约束算法(Semantic and geometric constraints algorithm,SGC)来滤除场景中的动态特征点,利用 YOLO v3对当前帧图像进行先验动态目标检测,首先滤除先验动态目标上特征点,再通过极线约束方法滤除场景中真正的动态特征点。实验结果表明,MC算法和SGC算法可以有效滤除高动态特征点,提高SLAM系统定位精度。构建了静态三维点云地图和八叉树地图。针对利用关键帧构建地图有信息冗余以及会出现地图鬼影导致地图无法复用的问题,提出一种新的绘图关键帧筛选策略。通过滤除绘图关键帧上动态信息,利用深度数据和位姿估算矩阵对静态像素进行空间位姿计算,完成静态三维点云地图及八叉树地图构建。相比于其他传统方法,所构建地图信息冗余量小,不包含动态目标,具有重复使用价值。