视觉SLAM的方案总结

MoNoSLAM:https://github.com/hanmekim/SceneLib2

以扩展卡尔曼滤波为后端,追踪前端非常稀疏的特征点,以相机的当前状态和所有路标点为状态量,更新其均值和协方差。

优点:在2007年,随着计算机性能的提升,以及该系统用稀疏的方式处理图像,使得该方案使得SLAM系统能够在线运行。(之前的SLAM系统是基本不能在线运行的,只能靠机器人携带相机采集的数据,再离线进行定位和建图。)

缺点:MoNoSLAM存在应用场景窄,路标数量有限,系数特征点非常容易丢失等缺点,现在已经停止了对其开发。

PTAM( Parallel Tracking And Mapping )http://www.robots.ox.ac.uk/~gk/PTAM

主要原理是: 从摄影图像上捕捉特征点,然后检测出平面,在检测出的平面上建立虚拟的3D坐标,然后合成摄影图像和CG。其中,独特之处在于,立体平面的检测和图像的合成采用并行处理。

优点:提出并实现了跟踪与建图过程的并行化,将前后端分离,使用非线性优化方案,既可以实时的定位与建图,也可以在虚拟平面上叠加物体。

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

ORB-SLAM(继承并改进PTAM)http://webdiis.unizar.es/~raulmur/orbslam/

优点:泛用性:支持单目,双目,RGB-D三种模式。整个系统围绕ORB特征进行计算,在效率与精度之间做到了平衡,并围绕特征点进行了优化。其回环检测算法可以有效地防止误差的积累。使用三个线程完成SLAM,取得了较好的跟踪和建图效果,能够保证轨迹和地图的全局一致性。

缺点:对于每幅图像都需要计算ORB特征耗时大。三线程给CPU带来较大负担,在一直到嵌入式设备上有一定的困难,ORB-SLAM的建图为稀疏特征点,只能满足定位功能。

LSD-SLAM(Large Scale Direct monocular SLAM)

将单目直接发应用到了半稠密的单目SLAM中,不需要计算特征点,还能构建版稠密地图.

优点:直接法是针对像素进行的;对特征缺失区域不敏感,半稠密追踪可以保证追踪的实时性和稳定性;在cpu上实现了半稠密地图的重建。

缺点:对相机内参和曝光非常敏感,并且在相机快速运动时容易丢失,在回环检测部分,没有直接基于直接发实现,依赖特征点方程进行回环检测,尚未完全摆脱特征点的计算。

SVO( Semi-direct Visual Odoemtry )

基于稀疏直接法的视觉里程计,在实现中,使用了4x4的小块进行块匹配,估计相机资自身的运动。

优点:速度极快,在低端计算平台上也能达到实时性,适合计算平台受限的场合。

缺点:在平视相机中表现不佳;舍弃了后端优化和回环检测部分,SVO的位姿估计存在累计误差,并且丢失后不太容易进行重定位。

RTAB-MAP(RGB-D传感器上的SLAM方案)

给出了一套完整的RGB-D SLAM方案,目前可以直接从ROS中获得其二进制程序,在Google Project Tango上可以获得其APP直接使用。

优点:原理简单;支持RGB-D和双目传感器,且提供实时的定位和建图功能。

缺点:集成度高,庞大,在其上进行二次开发困难,适合作为SLAM应用而非研究使用。

原文地址:https://www.cnblogs.com/wongyi/p/8203312.html

时间: 2024-10-08 09:38:24

视觉SLAM的方案总结的相关文章

初识视觉SLAM:用相机解决定位和建图问题

引言:视觉SLAM 是指用相机解决定位和建图问题.本文以一个小机器人为例形象地介绍了视觉SLAM的功能及特点.本文选自<视觉SLAM十四讲:从理论到实践>. SLAM 是Simultaneous Localization and Mapping 的缩写,中文译作"同时定位与地图构建".它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动.如果这里的传感器主要为相机,那就称为"视觉SLAM". 假设我们组装

视觉SLAM漫淡(二):图优化理论与g2o的使用

视觉SLAM漫谈(二):图优化理论与g2o的使用 1    前言以及回顾 各位朋友,自从上一篇<视觉SLAM漫谈>写成以来已经有一段时间了.我收到几位热心读者的邮件.有的希望我介绍一下当前视觉SLAM程序的实用程度,更多的人希望了解一下前文提到的g2o优化库.因此我另写一篇小文章来专门介绍这个新玩意. 在开始本篇文章正文以前,我们先来回顾一下图优化SLAM问题的提法.至于SLAM更基础的内容,例如SLAM是什么东西等等,请参见上一篇文章.我们直接进入较深层次的讨论.首先,关于我们要做的事情,你

视觉SLAM之RANSAC算法用于消除图像误匹配的原理

在基于特征点的视觉SLAM中,通常情况下,在特征匹配过程中往往会存在误匹配信息,使得计算获取的位姿精度低,易产生位姿估计失败的问题,因此,剔除这些错配点有很大的必要性.常会用到RANSAC算法进行消除两两匹配图像的误匹配点,如果只停留在应用的层面上很简单,直接调用opencv函数就行,看到效果时,感觉好神奇,到底怎么实现的啊,以前一直也没弄太明白,与图像结合的博客也比较少,在查阅了一些资料后,笔者似乎明白了一点,希望笔者的总结会对您的理解有帮助. 首先先介绍一下RANSAC算法(RANdom S

视觉SLAM之词袋(bag of words) 模型与K-means聚类算法浅析(1)

在目前实际的视觉SLAM中,闭环检测多采用DBOW2模型https://github.com/dorian3d/DBoW2,而bag of words 又运用了数据挖掘的K-means聚类算法,笔者只通过bag of words 模型用在图像处理中进行形象讲解,并没有涉及太多对SLAM的闭环检测的应用. 1.Bag-of-words模型简介 Bag-of-words模型是信息检索领域常用的文档表示方法.在信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法.句法等要素,将其仅仅看作是若

视觉SLAM中的数学基础 第三篇 李群与李代数

视觉SLAM中的数学基础 第三篇 李群与李代数 前言 在SLAM中,除了表达3D旋转与位移之外,我们还要对它们进行估计,因为SLAM整个过程就是在不断地估计机器人的位姿与地图.为了做这件事,需要对变换矩阵进行插值.求导.迭代等操作.例如,在经典ICP问题中,给定了两组3D点,我们要计算它们之间的变换矩阵.假设第一组的3D点为$\mathbf{P}=\{ \mathbf{p}_i | i = [1,2, \ldots, N] \}$,第二组3D点为$\mathbf{Q}=\{ \mathbf{q}

视觉SLAM中的数学基础 第二篇 四元数

视觉SLAM中的数学基础 第二篇 四元数 什么是四元数 相比欧拉角,四元数(Quaternion)则是一种紧凑.易于迭代.又不会出现奇异值的表示方法.它在程序中广为使用,例如ROS和几个著名的SLAM公开数据集.g2o等程序都使用四元数记录机器人的姿态.因此,理解四元数的含义与用法,对学习SLAM来说是必须的.本节我们就来讲讲四元数. 首先,请读者不要对四元数有什么神秘的感觉.四元数仅是3D姿态的一种表达方式,我们用一个单位四元数表达原本用旋转矩阵表示的三维旋转.这样做一个直接的好处是省空间.一

经典视觉SLAM框架

引言:通过前面的推送我们已经对SLAM有了个大体的认识.(初识视觉SLAM)下面来看经典的视觉SLAM框架,了解一下视觉SLAM究竟由哪几个模块组成.本文选自<视觉SLAM十四讲:从理论到实践>. 整体视觉SLAM流程图. 整个视觉SLAM流程包括以下步骤. 传感器信息读取.在视觉SLAM中主要为相机图像信息的读取和预处理.如果是在机器人中,还可能有码盘.惯性传感器等信息的读取和同步. 视觉里程计(Visual Odometry,VO).视觉里程计的任务是估算相邻图像间相机的运动,以及局部地图

浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM

下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/slambook 第二讲:初识SLAM 2.4.2 Hello SLAM(书本P27) 1.从github上下载源码,并解压 Ubuntu上,解压zip,先找到zip文件所在位置,然后运行下面代码,进行解压. unzip slambook-master.zip 解压后,找到ch2文件夹,在文件夹中找到helloSLAM.cpp文件 运行cpp文件 g++ helloSLAM.cpp 如未安

视觉SLAM实战(一):RGB-D SLAM V2

写在前面 首先打个广告.SLAM研究者交流QQ群:254787961.欢迎各路大神和小白前来交流. 看了前面三篇博文之后,是不是有同学要问:博主你扯了那么多有用没用的东西,能不能再给力一点,拿出一个我们能实际上手玩玩的东西啊?没错,接下来我们就带着大家,实际地跑一下视觉SLAM里的那些经典程序,给大家一个直观的印象——因此博文就叫"视觉SLAM实战"啦.这些程序包括: RGBD SLAM V2 SVO KinectFusion Orb-SLAM 如果你有什么建议,可以发我的邮件或来群里