论文部分内容阅读
SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)是计算机视觉领域中非常重要的一个研究课题,在增强现实、机器人导航、自动驾驶等场景中发挥了重要的作用。在众多SLAM方法中,单目SLAM方法由于采集设备轻便,成本低且不受场景大小的限制,成为了近年来研究的热点问题。相机位姿估计是单目SLAM中的核心模块之一,对地图的构建有重要影响。近些年,深度学习发展十分迅速,广泛应用在图像处理、目标跟踪等多个领域中,将深度学习应用于单目SLAM的研究逐渐成为发展的趋势。本文主要采用无监督学习的方式对单目SLAM中的相机位姿估计问题进行研究,对现有的深度学习网络的损失函数进行了优化,提高了相机位姿估计的精度,并提出了一种由相机的帧间相对位姿生成全局位姿的方法。本文的主要工作和创新点如下:(1)针对利用传统帧间光照误差作为损失函数估计相机位姿时容易陷入局部最优解的问题,本文提出了梯度光照误差的概念,在传统的帧间光照误差中增加了梯度光照误差项,提高了网络对相机位姿的估计能力。在用直接法求解相机位姿的过程中,代价函数的整体梯度主要和两个因素有关,图像的梯度和经过位姿变换后点的坐标对位姿的导数。当图像梯度值较小时,会导致整体梯度较小,在迭代求解过程中容易导致整体梯度的丢失,从而陷入局部最优解。为了改善该弊端,本文在传统的帧间光照误差中增加了梯度值较大的点的光照强度误差,以增加图像梯度对整体梯度的引导作用。实验结果表明,通过在KITTI数据集上训练,并以09和10序列作测试,本文的结果和Zhou(2017)使用帧间光照误差作为损失函数的方法相比,相机位姿的ATE误差分别降低了21.4%和33.0%。(2)针对相机位姿的误差累积问题,提出了基于分摊策略的帧间光照误差,为网络提供了更强的帧间约束条件。如果神经网络能够有效地学习到相机的位姿变换,则通过该位姿变换将其中任意两帧图像投影到另外一帧图像中的光照强度误差都应该最小。本文基于误差分摊的思路,将总的帧间光照误差分为三个部分,分别为投影到前一帧、中间帧和后一帧的总和,为网络提供了更强的约束条件,进一步提升了网络对相机位姿的估计能力。实验结果表明,在KITTI数据集的09和10序列上,通过将光照误差进行分摊相比于未分摊的结果,相机位姿的ATE误差分别降低了4.7%和5.7%。(3)针对相机轨迹可视化问题,提出了一种由相机的帧间相对位姿生成全局位姿的方法。由于用深度学习方法估计相机位姿输出的为帧间相对位姿,为了更直观的展示相机在全局坐标系下位置情况,本文采用动态规划的思路,用优化之后的第k-1帧和第k帧的全局位姿和输出的帧间相对位姿来分别估计第k+1帧的全局位姿,然后用两者的结果作四元数的球面插值来优化第k+1帧的全局位姿,并通过实验验证了该算法的有效性。