视觉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. ionic3中NavController类push setRoot相关问题解决

    今天在测试app的时候发现,登录页跳转到首页后,会加载两次数据.百思不得其解,查看了所有代码也没能发现问题.最终抱着尝试的态度,动了如下代码: if (suc) { //this.navCtrl.pu ...

  2. 认识 var、let、const

    我们通过声明.初始化.值的可变性.作用域.变量提升以及在工作中如何使用等多个方面来详细了解var.let.const等关键字功能与特点. 声明 var,let:可以先声明,后赋值(初始化),默认值是 ...

  3. web管理kvm ,安装webvirtmgr

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

  4. 自动化运维工具——ansible详解(二)

    Ansible playbook 简介 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本. 通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机 ...

  5. golang关于一些新手不注意会出现的小问题

    前言 最近在整理之前写程序,学习时所记录的有道云笔记,发现一些有意思的小点跟大家分享一下.如有错误请大家给指出 一.闭包 defer 闭包(匿名函数) func test(){ i, n := ,; ...

  6. 利用python web框架django实现py-faster-rcnn demo实例

    操作系统.编程环境及其他: window7  cpu  python2.7  pycharm5.0  django1.8x 说明:本blog是上一篇blog(http://www.cnblogs.co ...

  7. 查找算法(Java实现)

    1.二分查找算法 package other; public class BinarySearch { /* * 循环实现二分查找算法arr 已排好序的数组x 需要查找的数-1 无法查到数据 */ p ...

  8. POJ3624--01背包

    Charm Bracelet Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 34013   Accepted: 15087 ...

  9. 深入研究-webkit-overflow-scrolling:touch及ios滚动

    1. -webkit-overflow-scrolling:touch是什么? MDN上是这样定义的: -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效 ...

  10. Pyhton爬虫实战 - 抓取BOSS直聘职位描述 和 数据清洗

    Pyhton爬虫实战 - 抓取BOSS直聘职位描述 和 数据清洗 零.致谢 感谢BOSS直聘相对权威的招聘信息,使本人有了这次比较有意思的研究之旅. 由于爬虫持续爬取 www.zhipin.com 网 ...