本节主要介绍前端:提取匹配特征点和光流跟踪,关键帧和三角化
(很多大部分框架都是在前端优化改进的,前端对最终定位精度的影响起着决定性作用)
1. 特征点提取和匹配
https://www.cnblogs.com/skyfsm/p/7401523.html
要关注SLAM的实时性问题,.一般采用速度较快的算子,精度可能不会很高。SIFT等虽然精度高,目前还不能实时。
再就是,直接法不依赖角点,但实现效果根据选点数量变化较大.
2. 光流跟踪
光流法抗光照干扰弱,比较依赖角点。目前常用的是FAST+光流。
光流是图像亮度的运动信息描述。
将二维速度场与灰度相联系,引入光流约束方程,得到光流计算的基本算法.光流计算基于物体移动的光学特性提出了2个假设:
①运动物体的灰度在很短的间隔时间内保持不变;
②给定邻域内的速度向量场变化是缓慢的。
https://blog.csdn.net/u014568921/article/details/46638557
3. 关键帧和三角化
- 对于非关键帧,只执行前端算法,不参与后端优化. 因此,对于非关键帧,它的误差会逐渐累积。直接该帧被作为关键帧插入后端,BA 才会保证窗口内的一致性
关键帧选取的策略:在计算量允许范围内,且不引起退化时,应尽可能多地插入关键帧。
-
在单目SLAM中,通常在插入关键帧时计算新路标点的三角化。
有的SLAM系统在关键帧时提取新Feature(DSO、SVO),也有的方案对每个帧都提取新的Feature(VINS、ORB)。
前者节省计算量,后者效果好(在单目里需要防止三角化Landmark数量不够)。