ORB-SLAM简介之地图初始化
Posted 路游侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORB-SLAM简介之地图初始化相关的知识,希望对你有一定的参考价值。
单目SLAM地图初始化的目标是构建初始的三维点云。由于不能仅仅从单帧得到深度信息,因此需要从图像序列中选取两帧以上的图像,估计摄像机姿态并重建出三维点云。
地图初始化的一种方法为追踪一个已知物体。单帧图像的每一个点都对应于空间的一条射线。通过不同角度不同位置扫描同一个物体,期望能够将三维点的不确定性缩小到可接受的范围。
另一种方法基于假设空间存在一个平面物体,选取两帧不同位置的图像,通过计算Homography或者Essential matrix来估计位姿。这类方法在视差较小或者平面上的点靠近某个主点时效果不好。
第三种方法是根据两帧之间的特征点匹配计算Fundamental matrix,进一步估计位姿。这种方法要求存在不共面的特征点。
ORB-SLAM的作者提出了一种基于统计的模型选择方法。该方法优先选择第三种方法,并期望在场景退化情形下自动选择第二种方法。如果选取的两帧不满足要求,放弃这两帧并重新初始化。
第一步:提取特征点并匹配,若匹配点足够多,尝试第二步。
第二步:利用匹配的特征点分别计算方法二和方法三。在每步迭代中,根据symmetric transfer errors分别计算两个模型的得分。如果模型内点数不够多,则放弃该模型。
第三步:根据一定的准则选择模型。
第四步:根据选择的模型计算位姿。
第五步:Full bundle adjustment。
由于ORB-SLAM对初始化的要求较高,因此初始化时可以选择一个特征丰富的场景,移动摄像机给它提供足够的视差。另外,由于坐标系会附着在初始化成功的那帧图像的位置,因此每次初始化不能保证在同一个位置。
以上是关于ORB-SLAM简介之地图初始化的主要内容,如果未能解决你的问题,请参考以下文章