LSD-SLAM论文总结

(一)相关slam方案的优缺点

  • 基于RGB-D和双目方法:

直接获取精度较高的深度信息;定尺度,不能使用尺度变化范围大的场景。

  • 基于单目相机:

由于尺度不确定,需要通过平移运动获取深度信息;但由于尺度不确定,可以灵活应用于尺度范围变化大的场景。

  • 基于特征点:

只用到了环境中许多信息的一小部分人工特征点。

  • 基于直接法:
  • pose graph optimization(位姿图优化方法)

(二)创新点及实现

  • 创新点:

  1. 不只是跟踪局部相机位姿,而是建立全局大尺度优化
  2. 使用直接法与特征点法结合,并运用基于滤波的深度估计实现半稠密建图
  3. 用基于3D相似变换的位姿图优化,优化关键帧,进而优化地图
  4. 利用相似变换代替空间刚性变换,加入变尺度方法(scale-aware formulation),检测并克服尺度漂移,能够精准估计小的细节和大尺度几何外观。
  • 主要结构(main component):

1、Tracking of new frames:用之前一帧的位姿作为初始值,跟踪获得每一新帧相对于当前关键帧的se(3)。

2、Depth map estimation:

  • 如果新帧跟关键帧变化较小,就通过small-baseline stereo comparison方法更新关键帧深度图;
  • 若变化较大就创建新关键帧,此新关键帧通过与最近的关键帧匹配来初始化。

3、Map optimizition:

  • Keyframe -to-keyframe tracking:跟踪两两邻近关键帧间的sim(3),作为下一步全局优化的edge;
  • Map optimizition:位姿图优化+闭环检测+尺度漂移检测。

 【注】第一帧深度图随机初始化,通过在第一秒内给相机充足的平移运动,并锁定算法配置,在数帧迭代更新后深度图会收敛正确。

  • 实现步骤:

1、Tracking new Frames(by DIRECT se(3)):最小化方差归一化的光度误差,其中要注意几个要点:

LSD-SLAM论文总结

  • 这里用的核函数|| · || δ是Huber norm(有利于弱化outlier点对优化的影响):

    LSD-SLAM论文总结

  •  残差(residual)不像传统直接法中只有rp,而是包含了rp的不确定度,公式(14)(通过当前帧的光度不确定度与关键帧深度估计不确定度导致的光度不确定度之和来计算);通过方差归一化后优化过程中会减小不确定度大的点的约束力;
  • 单目相机是通过平移运动来估计深度,故rp的不确定度是与相机运动相关的:纯旋转运动对其没影响,z向运动对中间像素影响小,x向运动则只对对x向梯度大的像素点有影响;RGB-D相机的rp不确定对就是恒定的。
  • 由于跟踪阶段新图片没有深度图,故它也没有明确的尺度大小,所以用不了sim(3)(因为sim(3)里边含有尺度因子s,他是一张图到另一张图的尺度缩放比例,需要两张图的尺度去约束求解),故选用se(3)作为优化量。

2、Depth Map Estimation:

  • 通过一个阈值T,来确定新帧是否成为关键帧(直接用李代数计算两帧相对位姿变化,同时加入权重W,且W与每一帧的尺度有关):

LSD-SLAM论文总结

  • 若大于阈值就创建新关键帧:与上一关键帧匹配初始化深度图;运用空间交错正则化和外点剔除,将深度图缩放到逆深度平均值为一的范围,并将缩放因子S加入到sim(3)中,供之后用。
  • 若小于阈值就更新当前关键帧:小基线立体比较+深度滤波更新当前帧深度。

3、Constraint Acquisition(获得全局优化的约束项:edge)

  • 直接法在sim(3)上对齐两关键帧作为之后优化的约束(edge):

LSD-SLAM论文总结

 残差项包含两项:之前方差归一化后的光度残差rp;深度残差rd。由于优化量是sim(),包含着缩放因子,故需要加入深度残差去约束(只有光度残差不能约束S)

  • 闭环检测约束的寻找:利用基于外形的映射算法查找相似帧,然后用reciprocal tracking check方法检查是否是闭环项:

LSD-SLAM论文总结

  • 提升优化时(尤其在闭环检测时)sim(3)跟踪的收敛半径 :由于直接法存在非凸性,所以需要精确的初始值,对于帧间跟踪来说用前一帧的pose去初始化是足够的,但是在闭环检测时就不行了,解决方法:一种是用特征点去跟踪;另一种是用提升收敛半径解决。提升方法:1.Efficient Second Order Minimization (ESM);2.Coarse-to-Fine Approach。

4、Map optimization(全局优化)

本论文中的Map是由关键帧和跟踪的sim(3)约束组成。全局优化的方法就是:对Map使用pose graph optimization(位姿图优化)。其中的误差函数是:

LSD-SLAM论文总结

其中的W表示世界帧,最后优化效果图:

LSD-SLAM论文总结

  • 实验方法:

1、SLAM性能评判点:

  • 含有很多旋转变换场景下的性能表现;
  • 大范围尺度(景深)变化场景下的性能表现;
  • 大回环检测,或者无回环场景下的性能表现;
  • 长时间、长距离轨迹下的性能表现;
  • 相机快速运动时的性能表现;
  • 动态场景下的性能表现;

2、本文实验方式:

  • 基于公开数据集:基于RGB-D dataset(TUM RGB-D benchmark),这一数据集含有快速旋转运动、很强的运动模糊及滚动快门效应,所以对于单目SLAM来说难度很大。
  • 基于手持单目相机的室外场景 

3、本文实验结果:

  • 整体效果:

LSD-SLAM论文总结

  •  横向对比其他SLAM:

LSD-SLAM论文总结

表的第一列是不同数据集 ,第一行是不同SLAM;评价标准是:绝对轨迹偏差——absolute trajectory RMSE (cm)。

  • sim(3)跟踪时的收敛半径提升方法实验结果:

LSD-SLAM论文总结

由结果可知:ESM方法和增加金字塔层数可以增大收敛半径,但是不能提高跟踪精度。 

(三)新知识点

1、深度图估计(参考J.engle的另一篇论文):

  • filtering over many per-pixel(过滤单独像素)
  • small-baseline stereo comparison(小基线立体对比)
  • expected stereo accuracy is sufficiently large(期望立体精度足够大)
  • interleaved spatial regularization(交错空间正则化)

2、单目相机尺度不定,具有灵活适应不同尺度场景的优势(本质原因?)

上一篇:【定位问题】基于matlab GUI SLAM模拟地图构建和定位【含Matlab源码 1120期】


下一篇:《SLAM十四讲》阅读笔记-《2D Grid Mapping and Navigation with ORB SLAM》