梳理了一下ORB-SLAM论文
一、系统架构
1、ORB特征
整个SLAM系统使用改进后的ORB特征(256维二进制描述符的带方向的多尺度FAST角点)
2、三个线程
A、TRACKING跟踪线程:主要负责对每帧图像的相机位置进行定位和关键帧的插入
B、LOCAL MAPPING局部地图构建模块:处理关键帧并对周围相机位姿进行局部BA
C、LOOP DETECTION回环检测: 对每个关键帧进行闭环检测,利用相似性约束对位姿图进行优化
3、地图点云与关键帧
A、地图点云包括信息:3D坐标、视图方向、ORB描述子、可观测点云的最大最小距离
B、关键帧包括信息:相机位姿、所有的ORB特征、相机内参
4、Covisibility Graph和Essential Graph
A、每个关键帧为一个节点,共同观测到15个点云则连一条边构成一张图Covisibility Graph
B、进行全局位姿优化加快优化速度,构建一张Essential Graph,其包含所有关键帧,但边缘更少
5、使用DBoW2执行闭环检测
二、详细流程
1、地图初始化
A、提取ORB并匹配双视图
B、并行计算H、F矩阵
C、模型选择:场景近平面或存在低视差使用H矩阵求解;非平面场景与足够视差情况下使用F矩阵求解;
D、运动到结构:H矩阵提取八种运动假设并测试出有效解;F矩阵使用K矩阵转化为E矩阵,然后分解出4个解;测试解的正确性,若没有一个优胜解则从头执行地图初始化