室内动态场景下的视觉SLAM算法研究
作者单位:西安理工大学
学位级别:硕士
导师姓名:杨世强
授予年度:2021年
学科分类:08[工学] 080203[工学-机械设计及理论] 0802[工学-机械工程]
主 题:视觉SLAM 动态特征点滤除 语义信息 几何约束 点云地图 八叉树地图
摘 要:同时定位与建图(Simultaneous Localization And Mapping,SLAM)算法是移动机器人自主完成导航任务的基础。SLAM通过所携带的传感器来获取外部环境信息,当传感器为相机时,称之为视觉SLAM。虽然目前有很多优秀的视觉SLAM系统,很多系统都把外部环境假设为静态环境,忽视了动态物体对视觉SLAM定位精度和鲁棒性的影响。本文以ORB-SLAM2系统为基础,对室内动态场景下视觉SLAM的鲁棒性进行研究,主要包括均匀化提取特征点、动态特征点滤除、三维稠密地图构建三个方面的内容。改进了 ORB-SLAM2中的Qtree_ORB算法,使提取的特征点均匀度更好,减少了低质量特征点的提取。在视觉里程计中,原ORB-SLAM2算法基于四叉树划分来进行特征点的提取,所提取的ORB特征点存在过均匀的问题,而且提取了大量低质量的特征点。基于此,首先根据每层图像金字塔所需特征点的数目对四叉树的划分深度进行限制,减小迭代次数,然后对Harris响应值的最小值进行限制,减小低质量特征点的提取,最后通过在Mikolajczyk数据集和TUMRGB-D数据集进行测试。结果表明,改进算法可以有效提高均匀度,正确匹配数量和匹配正确率也优于原算法。在SLAM系统中对其定位精度进行测试,结果表明改进Qtree_ORB算法可有效提高SLAM系统的定位精度。研究了一种基于语义信息和几何约束的动态特征点滤除算法,减少动态目标对视觉SLAM系统定位精度和鲁棒性的影响。首先用YOLOv4对场景中的先验动态目标进行检测,滤除先验动态目标的特征点后,用光流法对剩余特征点进行匹配,结合对极几何约束来滤除场景中的动态特征点。通过TUMRGB-D数据集测试,结果表明基于语义信息和几何约束的动态特征点滤除算法可以有效滤除场景中的动态特征点,在高动态序列中对SLAM系统的定位精度提升明显,有效改善了视觉SLAM系统的漂移程度,鲁棒性较好;在低动态序列中虽然可以有效滤除动态特征点,但是其定位精度等提升不太明显,在低动态序列中并不敏感。研究了一种三维稠密地图构建方法,构建了静态的点云地图和八叉树地图。针对ORB-SLAM2中用关键帧构建的地图重叠度高,地图冗余信息过多和动态目标产生的重影导致地图可读性不高等问题进行改进,首先通过对原系统的关键帧进行重叠度检测,然后对图像深度信息检测,最后结合语义信息对场景中的动态信息进行滤除,构建了动态场景下的静态点云地图和八叉树地图。实验结果表明,所构建的点云地图和八叉树地图重叠度小,冗余信息少,基本滤除了场景中的动态物体,地图的可读性较好。在实际环境中对改进视觉SLAM系统的整体性能进行测试,验证改进SLAM系统的性能。在办公室场景、实验室场景、楼道场景三种场景分别对特征点的均匀度、动态特征点的滤除、三维稠密地图的构建进行测试。实验结果表明,改进SLAM系统特征点提取模块在实际环境中提取的特征点均匀度较好,没有产生过均匀现象;动态特征点滤除模块对实际环境中的动态特征点可以进行有效滤除;三维稠密地图构建模块构建的点云地图和八叉树地图可有效滤除实际环境中动态目标信息,地图冗余度小。