一、前言
结合 高翔老师的著作《视觉SLAM十四讲:从理论到实践》,加上小白的工程经验共同完成。建议作为笔记功能反复使用。
二、直接法的引出
根据像素灰度的差异,直接计算相机运动,可以完全不用计算关键点和描述子。
特征点法缺点:
- 关键点的提取与描述子的计算非常耗时。
- 使用特征点时,忽略了除特征点以外的所有信息。
- 相机有时会运动到特征缺失的地方,往往这些地方没有明显的纹理信息。
三、光流
光流是一种描述像素随着时间,在图像之间运动的方法。
- Lucas-Kanade光流。(LK光流通常被用来跟踪角点的运动)
四、实践:LK光流
使用 OpenCV提供的光流法来跟踪特征点。使用 LK的目的是为了跟踪特征点,对第一张图像提取 FAST角点,然后用LK光流跟踪它们,并画在图中。
相机运动较大时,光流法不适用。
五、直接法
在灰度不变假设下,使用 g2o实现直接法。
- 直接法推导;(目的是求第一个相机到第二个相机的相对位姿变换;优化目标是光度误差)
- 直接法讨论。(在 RGB-D相机下,我们可以把任意像素反投影到下一个图像中)
六、实践:RGB-D的直接法
- 稀疏直接法;(在 g2o方法中,优化变量是一个相机位姿,因此需要一个位姿顶点;误差项为单个像素的光度误差)
- 定义直接法的边;(边继承自g2o::BaseUnaryEdge)
- 使用直接法估计相机运动;(将节点和边组合成图,就可以调用 g2o进行优化了)
- 半稠密直接法;(在考察帧中,先提取梯度较明显的像素,然后用直接法,以这些像素为图优化边,来估计相机运动)
- 直接法讨论;(完全依靠优化来求解相机位姿,像素梯度引导着优化方向)
- 直接法优缺点总结。(缺点:非凸性;单个像素没有区分度;灰度值不变是很强的假设)
《视觉SLAM十四讲:从理论到实践》 PDF资源
下载链接:Robot_Starscream的资源 仅供各位研究员试读,请购买纸质书籍。