到目前slam前端部分基本快结束了~在这里再补上光流法与直接法。
我们之前介绍的都是基于特征点并计算描述子匹配的思路找到同名像点,然后通过射影几何的方法计算相机姿态。这种方法大体上已经很完善了,当然还是存在一些问题:特征点的提取、描述、匹配仍是slam里最耗时的部分;在一些特征稀疏的场景下(如白墙),可能找不到足够的匹配点;
于是,人们希望找到其他的方法来克服这种问题,有了以下的思路:
一、LK光流法
回顾一下基于特征点的方法,我们计算出特征点的描述子之后会进行匹配找到点对,而我们希望简化计算,于是有了光流法。
具体思路为:找到特征点后,我们不再计算描述子,而是通过光流估计特征点在图像上的运动,从而估计出特征点在下一帧上的位置,从而确定点对。所以光流法的核心是如何估计特征点的运动。
基于两个假设:
- 灰度不变假设:同一个空间点的像素灰度值,在各个图像中是不变的。
- 图像上某一个窗口内的像素具有相同的运动。
于是有以下推导: