ORB-SLAM2单目初始化学习笔记
一、为什么要进行单目初始化
- 获得初始位姿、地图点用于后续跟踪。
- 尺度归一化
- 初始化为场景的平均深度
刚开始什么都没有,根据两帧之间匹配好的特征点进行三角化求得三维点,然后利用这些三维点作为地图,用地图去跟踪下一帧。
进入tracking线程:
step1:初始化
判断传感器类型,双目和RGB相机初始化共用一个初始化函数,单目单独初始化。
二、单目初始化
Step1 创建单目初始器
如果单目初始器还没有被创建,则创建。后面如果重新初始化时会清掉这个。
需要注意的是,单目初始帧的特征点数必须大于100
Step2 重新构造初始器
如果当前帧特征点数太少(不超过100),则重新构造初始器。
删除原先初始化器delete mpInitializer
Step3 寻找匹配的特征点对
1、在mInitialFrame
与mCurrentFrame
中找匹配的特征点对。
ORBmatcher matcher(
0.9, //最佳的和次佳特征点评分的比值阈值,这里是比较宽松的,跟踪时一般是0.7
//(越低特征点越好,但是太低就会把很多正确的匹配去掉)