视觉SLAM——特征点法与直接法对比以及主流开源方案对比 ORB LSD SVO DSO_非线性优化方法的slam方法效果要好于滤波的方法(2)

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

4)难以实现地图复用回环检测、丢失后的重定位等:除非存储所有的关键帧图像,否则很难利用先前建好的地图;即使有办法存储所有关键帧的图像,那么在重用地图时,我们还需要对位姿有一个比较准确的初始估计——这通常是困难的。

数据关联和位姿估计,在直接法中是耦合的,而在特征点法中则是解耦的。耦合的好处,在于能够更整体性地处理数据关联;而解耦的好处,在于能够在位姿不确定的情况下,仅利用图像信息去解数据关联问题。所以直接法理应更擅长求解连续图像的定位,而特征点法则更适合回环检测与重定位。此外,稀疏直接法更适用于实时性较高而计算资源有限的场合。

常用开源方案对比

MonoSLAM

2007年提出,是第一个实时单目SLAM系统。
前端:追踪非常稀疏的特征点(Shi-Tomasi角点);
后端:扩展卡尔曼滤波,以相机当前状态和所有路标点为状态量,更新其均值和方差。

缺点:应用场景很窄;路标数量有限;稀疏特征点容易丢失;存在EKF所存在的局限性。

PTAM

2007年 Parallel Tracking and Mapping
前端线程(Tracking):通过匀速运动模型预测当前帧方位,搜索FAST角点,并根据匹配关系优化帧方位,若跟踪失败开始重定位,跟踪成功则判断是否满足关键帧条件。
后端线程(Mapping):沿极线匹配不同关键帧之间的图像特征点,通过三角化恢复三维位置,并对所有关键帧和三维点运行BA。

特点:
1、提出并实现了跟踪和建图过程的并行化,首次区分出前后端的概念。
2、第一个使用非线性优化,引入了关键帧机制:把几个关键图像串起来,然后优化其轨迹和地图。
3、PTAM同时是一个增强现实软件:根据估计的相机位姿,可以在虚拟的平面上放置虚拟物体。

缺点:场景小,跟踪容易丢失。

ORB-SLAM

2015年提出。
关于ORB-SLAM更多的分析将单独开一个博客来讨论。

三线程的SLAM方案:
Tracking线程:对新来的图像提取ORB特征点,并与最近的关键帧进行比较,计算特征点的位置并粗略估计相机位姿;
Local Mapping线程:求解BA问题,包括局部空间内的特征点和相机位姿;
Loop Closing (and Full BA)线程:对全局的地图与关键帧进行回环检测,消除累计误差,优化只有相机位姿组成的位姿图。

特点:
1、支持单目、双目、RGBD,具有良好的泛用性;
2、ORB特征:不像SIFT和SURF那样费时,相比Harris角点又具有良好的旋转和缩放不变性;ORB提供描述子,在大范围运动时能进行回环检测和重定位;
3、单目具有自动选择系统初始化方案:基于对极几何还是基于单应性;双目和RGBD的初始化很快,且原地不动就能完成
4、关键帧的选取:先用宽松的判断条件加入新的关键帧和三维点以保证后续帧的鲁邦跟踪,再删除冗余关键帧和不稳定三维点以保证BA效率和精度。
5、回环检测防止累计误差。在运行前必须加载一个很大的ORB字典文件;

优点:
1、在静态环境下定位准确,系统非常稳定, 单目和双目版本都可以达到实时;
2、代码可读性强,易扩展, 网上也有实现和imu融合的版本。

缺点:
1、计算ORB特征耗时,三线程结构,cpu消耗大,难以移植到嵌入式设备;
2、稀疏特征点地图;
3、对动态物体很敏感,有动态物体时非常容易跟踪失败;
4、纯旋转也容易丢失。

LSD-SLAM

2014年 Large Scale Direct monocular SLAM

将直接法应用到了半稠密的单目SLAM中
1、提出了地图梯度与直接法的关系,以及像素梯度与极线方向在稠密重建中的角度关系;
2、在CPU上实现了实时半稠密场景的重建;
3、具有回环检测功能;
4、一些技巧保证追踪的实时性与稳定性:
在极线上等距离取5个点,度量其SSD;深度估计时,首先用随机数初始化深度,在估计完后又把深度均值归一化以调整尺度;度量深度不确定性时,不仅考虑三角化的几何关系,还考虑了极线与深度的夹角,归纳成一个光度不确定项;关键帧之间的约束使用了相似变换群及与之对应的李代数显式表达出尺度,在后端优化中可以将不同的尺度的场景考虑进来,减小尺度漂移现象。

缺点:
1、对相机内参和曝光非常敏感
2、在相机快速运动时容易丢失
3、依赖于特征点的方法进行回环检测

SVO

2014年 Semi-direct Visual Odemetry
基于稀疏直接法的视觉里程计:
SVO跟踪了一些关键点(角点),然后像直接法那样根据关键点周围的信息(4*4小块进行块匹配)估计相机运动及其位置 。

优点:
1、速度极快,适用于计算平台受限的场合
2、提出了深度滤波器的概念,推导了基于均匀-高斯混合分布的深度滤波器,用于关键点的位置估计,并使用了逆深度作为参数化形式。

缺点:
1、误差大,不准确
2、目标应用平台为无人机,相机运动主要为水平和上下移动,在平视相机中表现不佳。如单目初始化时使用了分解H矩阵,需要假设特征点位于平面上;在关键帧选择时,使用了平移量作为确定新的关键帧的策略,而没有考虑旋转量。
3、舍弃了后端优化和回环检测功能,没有建图功能。

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

如果你需要这些资料,可以戳这里获取

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值