视觉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. Java 操作 Json

    1. 使用Gson构建Json 初始化 JsonObject jsonObject = new JsonObject(); 添加属性 jsonObject.addProperty("name ...

  2. RandomAccessFile多线程下载、复制文件、超大文件读写

    最近在准备面试,翻了翻自己以前写的Demo,发现自己写了不少的工具包,今天整理了一下,分享给大家. 本文包含以下Demo: 1.常用方法测试 2.在文件中间插入一段新的数据 3.多线程下载文件 4.多 ...

  3. KVM 虚拟机 安装配置

    原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...

  4. 原生javascript选项卡

    js选项卡是一个常用的实现.这里我们将用原生js来将其给予实现. 首先html代码: <div id="container"> <input type=" ...

  5. Elasticsearch中Head插件的使用

    在学习Elasticsearch的过程中,必不可少需要通过一些工具查看es的运行状态以及数据.如果都是通过rest请求,未免太过麻烦,而且也不够人性化.此时,head可以完美的帮助你快速学习和使用El ...

  6. windows配置git

    每次要使用git指令的时候都要去打开git bash 操作,太麻烦,要想直接在dos窗口下使用git指令需要再进行如下环境变量配置. 1.系统环境变量path添加:D://programFiles/g ...

  7. Linux下如何彻底删除MySQL

    1.查找以前是否装有mysql 命令:rpm -qa|grep -i mysql可以看到如下图的所示: 说明之前安装了:MySQL-client-5.5.25a-1.rhel5MySQL-server ...

  8. mybatis中使用if标签比较两个字符串是否相等

    <!-- 此处使用if比较是否相等 --> 范例一: <select id="findClientIds" parameterType="map&quo ...

  9. Entity Framework Code First+SQL Server,改变聚集索引,提高查询性能

    .net Entity Framework(调研的是Entity Framework 4.0) code first方式生成数据库时,不能修改数据库表的索引,而SQLServer默认会把数据表的主键设 ...

  10. Reminders在电商推荐中的价值

    原论文在UMAP'16.文章并没有太高深的模型,比较接地气:但其观点与结论很独到,并且在工业界具有很强的实际操作价值. 针对推荐系统的研究大多关注在挖掘用户并不知道但是却与其兴趣相关的物品.不过每个推 ...