小觅智能 | SVO 学习笔记(持续更新中)
SVO 基本介绍
SVO 是苏黎世大学机器人感知组的克里斯蒂安.弗斯特(Christian Forster)等人于 2014 年 ICRA 会议上发表的工作,随后在 github 开源:https://github.com/uzh-rpg/rpg_svo。
VO 主要分为特征点法和直接法,SVO 混合了直接法和特征点法,全称是半直接视觉里程计(Semi-direct monocular Visual Odometry),半直接法和直接法不同的在于利用特征块的配准来对直接法估计的位姿进行优化,SVO 通过对图像中的特征点图像块进行直接匹配获取相机位姿,而非像直接法对整个图像使用直接匹配。
SVO 整体系统框架图
整个过程分为两个部分:跟踪与建图。
- 跟踪(Tracking)
主要任务是估计当前帧的位姿。
又分为两步:先把当前帧和上一个追踪的帧进行比对,获取粗略的位姿。然后根据粗略的位姿,将它与地图进行比对,得到精确的位姿并优化见到的地图点。随后判断此帧是否为关键帧。如果为关键帧就提取新的特征点,把这些点作为地图的种子点,放入优化线程。否则,不为关键帧的时候,就用此帧的信息更新地图中种子点的深度估计值。
2. 建图(LocalMapping)
主要任务是估计特征点的深度。因为单目 SLAM 中,刚提特征点是没有深度的,所以必须用新来的帧的信息,去更新这些特征点的深度分布,也就是所谓的「深度滤波器 Depth Filter」。当某个点的深度收敛时,用它生成新的地图点,放进地图中,再被追踪部分使用。
SVO 把像素的深度误差模型看做概率分布,使用 高斯——均匀混合分布的逆深度(深度值服从高斯分布,局外点的概率服从 Beta 分布),称为「深度滤波器 Depth Filter」,每个特征点作为种子 Seed(深度未收敛的像素点)有一个单独的深度滤波器。
SVO 优缺点
优点:
- 速度极快,和 ORB-SLAM 比,线程短,架构简单,在低端计算平台上也能达到实时性,适合计算平台受限的场合。
缺点:
- 在平视相机中表现不佳;舍弃了后端优化和回环检测部分,SVO 的位姿估计存在累计误差,并且丢失后不太容易进行重定位。
参考:
视觉SLAM国际上主流开源框架
能否具体解释下svo的运动估计与深度估计两方面?
关于 SVO 更多的内容可查看我们 SLAM 组同事对此的详细代码解析哟~
初始化 | SVO 论文与代码分析分讲最后不要忘了点赞,手留余香呀~??
推荐阅读: