特征点法的缺点:
1. 关键点的提取与描述子的计算非常耗时。实践当中,SIFT目前在CPU上是无法实时计算的,二ORB页需要近20ms的计算。如果整个SLAM以30毫秒/帧的速度运行,那么一大半实践都花在计算特征点上。
2. 使用特征点时,忽略了除特征点以外的所有信息。一张图像有几十万个像素,而特征点只有几百个。只使用特征点丢弃了大部分可能有用的图像信息。
3. 相机有时会运动到特征缺失的地方,往往这些地方没有明显的纹理信息。例如,有时我们会面对一堵白墙,或者一个空荡荡的走廊。这些场景下特征点梳理会明显减少,我们可能找不到足够的匹配点来计算相机运动。
优化的方法:
1. 保留特征点,但只计算关键点,不计算描述子。同时,使用流光法来跟踪特征点的运动。这样可以回避计算和匹配描述子带来的时间,但光流本身的计算需要一定时间。
2. 只计算关键点,不计算描述子。同时,使用直接法来计算特征点在下一时刻图像的位置。这同样可以跳过描述子的计算过程,而且直接法的计算更加简单。
3. 即不计算关键点,也不计算描述子,而是根据像素灰度的差异,直接计算相机运动。
- 第一种仍然使用特征点,只是把匹配描述子替换成了光流跟踪,估计相机运动时仍使用对极几何、PnP或ICP算法。而后两个方法中,根据图像的像素灰度信息来计算相机运动,成为直接法。
- 不使用特征匹配的思路:
• 通过其他方式寻找配对点:光流