论文部分内容阅读
视觉SLAM是一种以相机作为传感器,进行同时定位和建图的技术。在无人驾驶、自主移动机器人和虚拟现实等领域发挥着关键作用。基于点特征的视觉SLAM利用图像中的点特征进行定位,在实时性和定位精度方面表现良好,具有较高的实用价值。然而在弱纹理环境下,点特征数量不足而且分布不均,导致了这类SLAM算法的可靠性变差。考虑到弱纹理环境通常是在人造建筑物内,具有较为丰富的线特征,近年来,利用直线进行定位的SLAM逐渐成为研究热点。为了提高SLAM在弱纹理环境下的稳定性,本文在传统基于点特征的SLAM中融入了线段特征;为了改善额外增加线段特征带来的速度下降问题,对传统的线段特征处理算法进行改进,提出了半直接线段跟踪算法,主要研究内容如下:(1)设计了新的基于点特征和线段特征的双目视觉里程计。在每一帧中通过特征的双目对齐,计算出点特征和线段特征的空间位置;然后基于帧间的特征匹配,通过最小化点特征和线段特征的重投影误差来估计相机位姿。为了降低线段跟踪误差带来的影响,线段的重投影误差表示为当前帧内线段的两个端点与对应投影线段的距离。(2)改进了线段特征的跟踪算法。对关键帧和非关键帧执行不同的处理方式:在关键帧中采用传统方法提取和匹配线段特征;而在非关键帧中对已知线段执行半直接线段跟踪算法,并且进行离群线段的剔除和关键帧的判断。由于半直接线段跟踪算法避免了线段检测和线段匹配,因此能够提高视觉SLAM的总体运行速度。(3)对视觉SLAM的后端结构进行设计。在局部建图部分,采用了稀疏特征地图以降低内存占用;通过共视图进行地图中路标的数据关联,从而建立局部地图;在插入关键帧之后执行局部地图的BA优化,以进一步降低轨迹误差。在回环检测部分,采用基于Bo W的回环检测算法;当发生回环闭合时,利用图优化方法修正回环误差。(4)分别在KITTI双目数据集和Eu Ro C双目数据集下对本文改进的SLAM算法进行测试,并且在现实场景下利用ZED双目相机和Vicon动作捕捉系统进行了多组对比实验。实验结果表明本算法不仅在轨迹精度和环境适应性方面有较好的表现,而且运行速度有了明显提高。