三维重建:SLAM算法的考题总结
参考英文维基:https://en.wikipedia.org/wiki/Slam
参考文档:视觉slam研究分析的一点认识
1、 请简单描述您对机器人的SLAM的概念理解?
答: 机器人需要在自身位置不确定的条件下,在完全未知环境中创建地图, 同时利用地图进行自主定位和导航。这就是移动机器人的同时定位与地图创建(simultaneous localization and mapping (SLAM) ) 问题。
算法上一般分为 相机定位跟踪 和 场景地图构建 两个高度相关的部分。场景地图构建是指 构建相机所在场景的三维地图;相机定位跟踪是指 利用相机自身姿态的估计值和通过传感器得到的观测值来确定相机在环境中的位置。
2、 请描述常见的SLAM算法及原理?
答:常见的SLAM方法有单目SLAM方法和双目SLAM方法.
单目SLAM方法用帧与帧之间的运动距离和运动角度来估算深度信息,传统的视觉SLAM方法多采用特征提取
匹配和数据关联的方式来完成。
根据单目SLAM方法在是否引入概率框架方面 划分为 基于概率框架的方法和基于非概率框架的方法。基于概率框架的方法把SLAM问题描述为滤波问题,代表方法有基于kalman滤波的方法、基于粒子滤波的方法等; 非概率框架的方法 主要方法为使用关键帧和稀疏绑定调整优化(BA),使用的数值优化方法 直观描述形式为图优化。
3、 SLAM的常用概率解法有哪几类?分别有什么优缺点?
答:采用概率框架的方法的思路大致为:假设从初始时刻到当前 时刻的观测数据和控制输入已知,那么就可以联合后验概率来构建一个后验概率密度函数,这个函数用来描述相机姿态 和 地图中的特征的空间位置,进而通过递归的贝叶斯滤波算法 来对构建的概率密度函数进行估计,从而完成SLAM问题的解决。
在基于KF的方法中,假设满足高斯分布并且系统的非线性较小时可以得到不错的效果,另外从后验概率的不同可以分为EKF-SLAM方法、扩展信息滤波(EIF)方法、UKF-SLAM方法、SEIF方法等,例如,Davison等提出的单目视觉SLAM系统(MonoSLAM)和Roussillon[提出的实时单目视觉SLAM系统(RTSLAM)就是建立在扩展卡尔曼滤波(EKF)的基础上的。
再基于PF的方法中,主要有Doucet[7]提出的基于Rao-Blackwellized粒子滤波器(RBPF)的方法 和在此基础上Montemerlo[8]提出的 FastSLAM方法等,其中FastSLAM方法可以用于非线性的系统。
优点: 基于概率框架的方法的计算框架类似,其中基于EKF的单目视觉,一般可以分为运动模型和观测模型并在HMM 的假设下可以实现系统状态的预测和观测更新。地图也可以在线更新。
缺点:但是这种方法多采用增量式的地图创建方法,故在系统不稳定和观测的不确定性的影响下造成误差的累积,在大规模场景时会导致最终地图的不一致性,难于保持准确度和鲁棒性。
4、 SLAM中回环检测(闭环检测)的目的是什么?简述一下SLAM中可以使用的回环检测方法?
答:参考维基:Loop closure :Loop closure is the problem of recognizing a previously-visited location and updates the beliefs accordingly. This can be a problem because model or algorithm errors can assign low priors
to the location. Typical loop closure methods apply a second algorithm to measure some type of sensor similarity, and re-set the location priors when a match is detected. For example, this can be done by storing and comparingbag
of words vectors of SIFT features from each previously visited location.
回环检测/闭环检测 是一个 场景识别的问题,若slam完成闭环检测,则可以大大得减少检测误差。因此,SLAM中的闭环检测则是为了减少SLAM中的累积误差。
参考文章:SLAM系统的研究点介绍
闭环检测一般使用词袋模型作为场景匹配方法。而作为一个场景识别问题,闭环检测可以看做是一个视觉系统的模式识别问题。所以可以使用各种机器学习的方法来做,比如什么决策树/SVM,也可以试试CNN方法。不过实际当中要求实时检测,没有那么多时间训练分类器。所以SLAM更侧重在线的学习方法。
在线的视觉机器学习方法有在线SVM和在线随机森林 等工具。
5、 SLAM算法中的机器人“绑架”问题是什么?可以用哪些方法解决这样的问题?
解决方案: 暂时没有详细考虑结果!!!
方案一:使用替代传感器,比如在 视觉机器人中 使用 惯导系统。
参考知乎文章:http://www.zhihu.com/question/29453727
三维重建:SLAM算法的考题总结的更多相关文章
- 三维重建7:Visual SLAM算法笔记
VSLAM研究了几十年,新的东西不是很多,三维重建的VSLAM方法可以用一篇文章总结一下. 此文是一个好的视觉SLAM综述,对视觉SLAM总结比较全面,是SLAM那本书的很好的补充.介绍了基于滤波器的 ...
- 转:SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势
SLAM(Simultaneous Localization and Mapping)是业界公认视觉领域空间定位技术的前沿方向,中文译名为“同步定位与地图构建”,它主要用于解决机器人在未知环境运动时的 ...
- [SLAM]Karto SLAM算法学习(草稿)
Karto_slam算法是一个Graph based SLAM算法.包括前端和后端.关于代码要分成两块内容来看. 一类是OpenKarto项目,是最初的开源代码,包括算法的核心内容: https:// ...
- SLAM学习笔记(2)SLAM算法
SLAM算法分为三类:Kalman滤波.概率滤波.图优化 Kalman滤波方法包括EKF.EIF:概率滤波包括RBPF,FastSLAM是RBPF滤波器最为成功的实例, 也是应用最为广泛的SLAM方法 ...
- 对比几种在ROS中常用的几种SLAM算法
在此因为要总结写一个文档,所以查阅资料,将总结的内容记录下来,欢迎大家指正! 文章将介绍使用的基于机器人操作系统(ROS)框架工作的SLAM算法. 在ROS中提供的五种基于2D激光的SLAM算法分别是 ...
- SLAM概念学习之随机SLAM算法
这一节,在熟悉了Featue maps相关概念之后,我们将开始学习基于EKF的特征图SLAM算法. 1. 机器人,图和增强的状态向量 随机SLAM算法一般存储机器人位姿和图中的地标在单个状态向量中,然 ...
- 视觉SLAM算法框架解析(1) PTAM
版权声明:本文为博主原创文章,未经博主允许不得转载. 本系列文章旨在总结主流视觉SLAM算法的框架,对比各个算法在子模块的差异,最终提炼出融合各个算法优点的架构. PTAM[1]是视觉SLAM领域里程 ...
- 2D激光SLAM算法比较+cartographer
Hector slam: Hector slam利用高斯牛顿方法解决scan-matching问题,对传感器要求较高. 缺点:需要雷达(LRS)的更新频率较高,测量噪声小.所以在制图过程中,需要rob ...
- SLAM算法中提取特征总结
我们要知道三维空间中的点在图像中的位置,就需要提取特征与特征匹配了. 1.检测特征点 2.计算描述子 3.特征匹配 1.检测特征点 我们用到的检测特征点的方法是FAST算法,最大的特点就是快! 算法原 ...
随机推荐
- 手写DAO框架(二)-开发前的最后准备
-------前篇:手写DAO框架(一)-从“1”开始 --------- 前言:前篇主要介绍了写此框架的动机,把主要功能点大致介绍了一下.此篇文章主要介绍开发前最后的一些准备.主要包括一些基础知识点 ...
- 关于PyQt5,在pycharm上的安装步骤及使用技巧
前序 之前学习了一款GUI图形界面设计的Tkinter库,但是经大佬的介绍,PyQT5全宇宙最强,一脸的苦笑 毫不犹豫的选择转战PyQT5,在学习之前需要先安装一些必须程序,在一番查阅后,发现PyQt ...
- 【codeforces 514D】R2D2 and Droid Army
[题目链接]:http://codeforces.com/contest/514/problem/D [题意] 给你每个机器人的m种属性p1..pm 然后r2d2每次可以选择m种属性中的一种,进行一次 ...
- Tensorflow人工智能入门(一)
前言: 作为一个程序员,已经离开开发岗好多年,最近突然迷茫了,不知道自己何去何从.互联网技术发展的速度已快得难以想象,许久不码代码的手也越来越僵直,需求沟通中的套话和空话却越发的熟练,这和当年入行时的 ...
- ReportNG 替换testng获得测试报告
1.导入reportng相关jar包
- 清北学堂模拟赛d3t1 a
[问题描述]你是能看到第一题的friends呢.——hja 怎么快速记单词呢?也许把单词分类再记单词是个不错的选择.何大爷给出了一种分单词的方法,何大爷认为两个单词是同一类的当这两个单词的各个字母的个 ...
- springCloud学习-断路器(Hystrix)
1.问题分析 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用.为了保证其高 ...
- Spring MVC的@RequestMapping多个URL映射到同一个方法
@RequestMapping可以是一个URL对应一个方法,也可以多个URL对应同一个方法,写法如下: @RequestMapping(value={"url","res ...
- SpringMVC项目
一.说明该项目是为了演示SpringMVC框架中涉及到的一些知识点,相对独立,掌握这些,基本上就能够解决工作中遇到的一些问题.整个项目的构建规划如下: 1.创建一个标准的Maven Web项目;2.使 ...
- Atom编辑器折腾记_(15)JS代码片段补全(插件:javascript-snippets)
题外话 这款插件就比較重量级了-.用熟悉了写原生JS的效率要提升非常多--并且,不仅支持JS还包括了nodejs snippet javascript-snippets 插件作者: zenorocha ...