视觉SLAM中,通常是指使用相机来解决定位和建图问题。

SLAM中使用的相机往往更加简单,不携带昂贵的镜头,以一定的速率拍摄周围的环境,形成一个连续的视频流。

相机分类:

单目相机:只是用一个摄像头进行SLAM的做法成为单目SLAM。

单目相机的数据就是照片,照片就是拍照时的场景在相机的成像平面上留下的一个投影,它以二维的形式反映了三维的世界,在这个过程中丢掉了一个维度即深度(距离)。我们无法通过单张照片计算场景中的物体与我们之间的距离。(照片:近小远大原理)

如果想要通过单目相机拍摄的照片恢复三维结构,必须改变相机的视角(移动相机,才能估计它的运动和场景中物体的远近与大小)。

通过移动,我们知道“近处的物体移动快,远处的物体移动慢”从而得知物体的远近,但这仍然是相对值。

单目SLAM无法仅凭图像确定物体的真实尺寸。即尺度不确定性。

平移之后,可以计算深度,但无法确定真实尺寸。这给单目SLAM的应用造成了很大的麻烦。

双目相机:有两个摄像头,由两个单目相机组成(两个相机之间的距离叫“基线”是已知的),通过这个基线(进行大量计算并且是不太可靠的)来估计每个像素的空间位置来测量物体与我们之间的距离,客服单目相机无法知道距离的缺点。

双目相机测量到的深度范围和基线有关,基线距离越大,能够测量到的就越远。可用于室内也可用于室外。

缺点:配置与标定较为复杂,其深度和精度受双目的基线或者分辨率所限,并且视差的计算非常消耗计算机资源,在现有的条件下,计算量是双目的主要问题之一。

RGB-D(深度相机)携带多个摄像头,可以采集到彩色图片,还可以读出每个像素与相机之间的距离。

最大的特点:可以通过红外结构光或Time-of-Flight原理,像激光传感器那样,通过主动向物体发射光并接收返回的光,测量物体与相机之间的距离。这是通过物理测量的方法来计算距离,相比双目相机通过软件计算距离来说深度相机可以节省大量的时间。

缺点:大多数深度相机的测量范围窄,噪声大,视野小,易受日光干扰,无法测量投射材质等。

在SLAM中,主要用于室内,室外则较难应用。

在相机的运动过程中,我们可以得到一些列连续变化的图像,视觉SLAM的目标就是通过这样的图像进行定位和地图重建。SLAM需要一个完善的算法框架,现在框架已经相对成熟了。

视觉SLAM中相机详解的更多相关文章

  1. 第六篇 视觉slam中的优化问题梳理及雅克比推导

    优化问题定义以及求解 通用定义 解决问题的开始一定是定义清楚问题.这里引用g2o的定义. \[ \begin{aligned} \mathbf{F}(\mathbf{x})&=\sum_{k\ ...

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

    视觉SLAM中的数学基础 第二篇 四元数 什么是四元数 相比欧拉角,四元数(Quaternion)则是一种紧凑.易于迭代.又不会出现奇异值的表示方法.它在程序中广为使用,例如ROS和几个著名的SLAM ...

  3. winxp计算机管理中服务详解

    winxp计算机管理中服务详解01 http://blog.sina.com.cn/s/blog_60f923b50100efy9.html http://blog.sina.com.cn/s/blo ...

  4. cocos2dx常见的46中+22中动作详解

    cocos2dx常见的46中+22中动作详解 分类: iOS2013-10-16 00:44 1429人阅读 评论(0) 收藏 举报 bool HelloWorld::init(){    ///// ...

  5. Android中Context详解 ---- 你所不知道的Context

    转自:http://blog.csdn.net/qinjuning/article/details/7310620Android中Context详解 ---- 你所不知道的Context 大家好,  ...

  6. iOS中-Qutarz2D详解及使用

    在iOS中Qutarz2D 详解及使用 (一)初识 介绍 Quartz 2D是二维绘图引擎. 能完成的工作有: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成 ...

  7. 【转】declare-styleable的使用(自定义控件) 以及declare-styleable中format详解

    原文网址:http://www.cnblogs.com/622698abc/p/3348692.html declare-styleable是给自定义控件添加自定义属性用的 1.首先,先写attrs. ...

  8. Python中dict详解

    from:http://www.cnblogs.com/yangyongzhi/archive/2012/09/17/2688326.html Python中dict详解 python3.0以上,pr ...

  9. 【转】 java中HashMap详解

    原文网址:http://blog.csdn.net/caihaijiang/article/details/6280251 java中HashMap详解 HashMap 和 HashSet 是 Jav ...

随机推荐

  1. Activity切换动画---点击哪里从哪放大

    emmmm,这次来梳理一下 Activity 切换动画的研究.首先,老规矩,看一下效果图: 效果图 这次要实现的动画效果就是类似于上图那样,点击某个 view,就从那个 view 展开下个 Activ ...

  2. 从CentOS安装完成到生成词云python学习日记

    欢迎访问我的个人博客:原文链接 前言 人生苦短,我用python.学习python怎么能不搞一下词云呢是不是(ง •̀_•́)ง 于是便有了这篇边实践边记录的笔记. 环境:VMware 12pro + ...

  3. debug断点调试

    debug断点调试  1,虫子启动2,F6   执行断点的下一步,下一个语句     F5    进入方法     F8   执行到结束    查看表达式的值:选中查看的表达式,接着按   ctrl ...

  4. 来自朝鲜的问候 golang入坑系列

    鸿渐于陆 本想着写满十八式,但按照目前的进度来看,是很难凑够十八式了.所以还是那句话,量力而行,适可而止.能写多少就写多少,我没法保证看完这本golang脱口秀,一定能成为golang大拿.但入了门, ...

  5. Nodejs的运行原理-科普篇

    前言 Nodejs目前处境稍显尴尬,很多语言都已经拥有异步非阻塞的能力.阿里的思路是比较合适的,但是必须要注意,绝对不能让node做太多的业务逻辑,他只适合接收生成好的数据,然后或渲染后,或直接发送到 ...

  6. win10解决乱码问题

    Unicode是Unicode.org制定的编码标准,目前得到了绝大部分操作系统和编程语言的支持.Unicode.org官方对Unicode的定义是:Unicode provides a unique ...

  7. Kotlin 一个好用的新功能:Parcelize

    在开发中,如果有需要用到序列化和反序列化的操作,就会用到 Serializable 或者 Parcelable,它们各有优缺点,会适用于不同的场景. Serializable 的优点是实现简单,你只需 ...

  8. mysql数据库插入数据获取自增主键的三种方式(jdbc PreparedStatement方式、mybatis useGeneratedKeys方式、mybatis selectKey方式)

    通常来说对于mysql数据库插入数据获取主键的方法是采用selectKey的方式,特别是当你持久层使用mybatis框架的时候. 本文除此之外介绍其它两种获取主键的方式. 为了方便描述我们先建一张my ...

  9. Cairo-Dock 系统关机无效

    正文 背景 Cairo-Dock 设置为开机自己主动启动后.系统菜单条里的关机选项就无效了,命令行里能够使用命令关机. 搜索过程 这次google找到的结果让我非常失望,于是仅仅好百度了. 在百度贴吧 ...

  10. SSH中的免password登录

    1:运行命令  ssh-keygen -t rsa 产生秘钥 ,位于~/.ssh目录下(假设在这期间有什么提示.一路敲击enter下去,什么都不用输入) 2:运行命令 cp  ~/.ssh/id_rs ...