V-SLAM重读(1): SVO: Fast Semi-Direct Monocular Visual Odometry
有时间会复习回顾V-SLAM的一些比较重要的论文, 并记录保存.
1.摘要
提出一种 半稠密-直接视觉里程计算法.
这种方法消除了用于运动估计的特征提取和鲁棒匹配技术的成本代价需求.
该方法直接作用于像素的强度, 这样可以在高速率情况下获取次像素级精度.
该方法可以以55Hz~300Hz的速率在无GPS的环境下运行.
2. SVO系统概述
SVO可以分为两个并行线程, 一个相机运动估计线程, 一个是地图构建线程;
-
Motion estimation Thread
该线程实现了半稠密-直接法的相对位姿估计:
1.位姿初始化, 基于模型的稀疏图像校准, 通过极小化3D点在相邻图像帧下的投影点的光度误差来估算相机的相对位姿.
2.特征校准: 2D坐标相对应的反投影点(3D点)
运动估计包含: 通过极小化反投影误差来获取位姿和场景结构.
-
Mapping Thread
对每一个2D特征初始化一个深度滤波器, 与之相对应的3D点进行估计.
1.深度滤波器初始化: 当几个3D-2D的对应点找到时, 一个新的关键帧将会被创建;
2.初始化的深度滤波器在深度上具有较大的不确定性
, 对每一个帧的深度估计将会有贝叶斯估计
来更新.3.当深度滤波器的
不确定性足够小
时, 一个新的3D点会被插入到地图中且会被应用于运动估计线程中.
3. 运动估计和深度滤波器
对运动估计, 通过极小化3D点在2D平面像素的投影残差, 来获取相机位姿; 然后对2D特征位姿校准(加入3D局部地图点), 来实现对相机位姿优化.
利用贝叶斯概率分布, 估计深度值, 结合高斯-均匀混合物模型分布实现深度的估计.
4. 实现的VO轨迹对比
经过实地调试和优化, 利用高帧率相机可以使得该算法具有较高的准确度和稳定性.