目的
初始化的目的是获得初始准确的帧间相对位姿,固定尺度,并通过三角化恢复出初始地图点。整个过程包括:1)估计初始帧位姿;2)新建地图;3)新建关键帧。
主要方法:
方法一:
计算两张图像的平移t,令此时的t为单位1。(初始化时,两张图像之间必须有一定程度的平移,而后的轨迹和地图都将以此步的平移为单位。PS.在实践当中,如果初始化时平移太小,会使得位姿求解与三角化结果不稳定, 从而导致失败。相对的,如果把相机左右移动而不是原地旋转,就容易让单目 SLAM 初始化。因而有经验的 SLAM 研究人员,在单目 SLAM 情况下,经常选择让相机进行左右平移以顺利地进行初始化)
方法二:
初始化时所有的特征点平均深度为1,也可以固定一个尺度。该方法可以控制场景的规模大小,使计算在数值上更稳定。
ORBSLAM2方案:
整体方案:
1:并行地计算基础矩阵和单应性矩阵,选取其中一个模型,恢复出最开始两帧之间的相对姿态以及点云;
2:得到初始两帧的匹配、相对运动、初始MapPoints。
- step 1:得到用于初始化的帧,初始化需要两帧(连续两帧提取特征点数量大于100);
mCurrentFrame.mvK