LSD主要分为三个线程:跟踪、深度地图估计、地图优化
流程图:

在整体线程开始之前先进行初始化:初始化一个有随机深度图和大方差的关键帧即可。在第一秒内给出足够的相机运动,算法就可以“lock”到某个确定的的配置,经过几个关键帧的传递之后,就会收敛到正确的深度配置。
1.初始化完成之后就开始进行帧间跟踪(Tracking):
帧间跟踪主要是通过最小化归一化光度误差完成的,具体的优化模型是:

这里位姿的求解是通过加权的高斯牛顿法进行的(推导过程在论文2.2部分)
2.在跟踪线程中对当前帧的位姿进行估计后,当前帧就被送到建图线程用于估计其参考关键帧的深度图(Depth Map Estimation)。主要是通过
(1)极线搜索在图像帧中找到与参考关键帧匹配的图像点
(2)通过新匹配的观测点对逆深度进行更新。
参考帧的选取:找到匹配点之前要寻找和关键帧做极限匹配的图像帧(即参考帧),这里尽可能选取视差和观测角度都比较小的两帧图像
点的匹配:即在选取的参考帧上找到需要更新深度的当前关键帧上的点的对应点,这里主要是通过极线搜索寻找对应点,已知两帧间的位姿之后,关键帧上的一点就对应参考帧上的一条对极线,如果关键帧上点的深度已经有先验值(就是有一个大概的范围了),就把逆深度的搜索范围定

LSD SLAM分为跟踪、深度地图估计和地图优化三个线程。初始化后,通过帧间跟踪最小化光度误差确定位姿。接着,通过极线搜索和匹配更新深度图,并估计不确定性。在地图优化阶段,通过调整深度图尺度确保平均逆深度一致,实现全局位姿优化。回环检测和外观相似性用于检测和校正闭环错误。

6716

被折叠的 条评论
为什么被折叠?



