视觉SLAM中相机详解
视觉SLAM中,通常是指使用相机来解决定位和建图问题。
SLAM中使用的相机往往更加简单,不携带昂贵的镜头,以一定的速率拍摄周围的环境,形成一个连续的视频流。
相机分类:
单目相机:只是用一个摄像头进行SLAM的做法成为单目SLAM。
单目相机的数据就是照片,照片就是拍照时的场景在相机的成像平面上留下的一个投影,它以二维的形式反映了三维的世界,在这个过程中丢掉了一个维度即深度(距离)。我们无法通过单张照片计算场景中的物体与我们之间的距离。(照片:近小远大原理)
如果想要通过单目相机拍摄的照片恢复三维结构,必须改变相机的视角(移动相机,才能估计它的运动和场景中物体的远近与大小)。
通过移动,我们知道“近处的物体移动快,远处的物体移动慢”从而得知物体的远近,但这仍然是相对值。
单目SLAM无法仅凭图像确定物体的真实尺寸。即尺度不确定性。
平移之后,可以计算深度,但无法确定真实尺寸。这给单目SLAM的应用造成了很大的麻烦。
双目相机:有两个摄像头,由两个单目相机组成(两个相机之间的距离叫“基线”是已知的),通过这个基线(进行大量计算并且是不太可靠的)来估计每个像素的空间位置来测量物体与我们之间的距离,客服单目相机无法知道距离的缺点。
双目相机测量到的深度范围和基线有关,基线距离越大,能够测量到的就越远。可用于室内也可用于室外。
缺点:配置与标定较为复杂,其深度和精度受双目的基线或者分辨率所限,并且视差的计算非常消耗计算机资源,在现有的条件下,计算量是双目的主要问题之一。
RGB-D(深度相机):携带多个摄像头,可以采集到彩色图片,还可以读出每个像素与相机之间的距离。
最大的特点:可以通过红外结构光或Time-of-Flight原理,像激光传感器那样,通过主动向物体发射光并接收返回的光,测量物体与相机之间的距离。这是通过物理测量的方法来计算距离,相比双目相机通过软件计算距离来说深度相机可以节省大量的时间。
缺点:大多数深度相机的测量范围窄,噪声大,视野小,易受日光干扰,无法测量投射材质等。
在SLAM中,主要用于室内,室外则较难应用。
在相机的运动过程中,我们可以得到一些列连续变化的图像,视觉SLAM的目标就是通过这样的图像进行定位和地图重建。SLAM需要一个完善的算法框架,现在框架已经相对成熟了。
视觉SLAM中相机详解的更多相关文章
- 第六篇 视觉slam中的优化问题梳理及雅克比推导
优化问题定义以及求解 通用定义 解决问题的开始一定是定义清楚问题.这里引用g2o的定义. \[ \begin{aligned} \mathbf{F}(\mathbf{x})&=\sum_{k\ ...
- 视觉SLAM中的数学基础 第二篇 四元数
视觉SLAM中的数学基础 第二篇 四元数 什么是四元数 相比欧拉角,四元数(Quaternion)则是一种紧凑.易于迭代.又不会出现奇异值的表示方法.它在程序中广为使用,例如ROS和几个著名的SLAM ...
- winxp计算机管理中服务详解
winxp计算机管理中服务详解01 http://blog.sina.com.cn/s/blog_60f923b50100efy9.html http://blog.sina.com.cn/s/blo ...
- cocos2dx常见的46中+22中动作详解
cocos2dx常见的46中+22中动作详解 分类: iOS2013-10-16 00:44 1429人阅读 评论(0) 收藏 举报 bool HelloWorld::init(){ ///// ...
- Android中Context详解 ---- 你所不知道的Context
转自:http://blog.csdn.net/qinjuning/article/details/7310620Android中Context详解 ---- 你所不知道的Context 大家好, ...
- iOS中-Qutarz2D详解及使用
在iOS中Qutarz2D 详解及使用 (一)初识 介绍 Quartz 2D是二维绘图引擎. 能完成的工作有: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成 ...
- 【转】declare-styleable的使用(自定义控件) 以及declare-styleable中format详解
原文网址:http://www.cnblogs.com/622698abc/p/3348692.html declare-styleable是给自定义控件添加自定义属性用的 1.首先,先写attrs. ...
- Python中dict详解
from:http://www.cnblogs.com/yangyongzhi/archive/2012/09/17/2688326.html Python中dict详解 python3.0以上,pr ...
- 【转】 java中HashMap详解
原文网址:http://blog.csdn.net/caihaijiang/article/details/6280251 java中HashMap详解 HashMap 和 HashSet 是 Jav ...
随机推荐
- Android APK反编译 apktool使用教程
2017年棋牌游戏突然就火了,正所谓春江水暖鸭先知本猿处在软件行业中就能清晰的感受到市场的变化,最近老家那边也是玩的风生水起,于是最近闲暇时光想到反编译下这些棋牌软件,看看代码实现的思路 (注:反编译 ...
- Unity灯光烘焙
Unity3D烘焙技术 一.Light灯光场景烘焙1.理论理解:(1)烘焙背景:在一个场景中,由于灯光组件起到实时渲染的效果,并直接与计算机硬件GPU渲染器进行交互作用,因此对计算机显卡性能不良,以至 ...
- smali语法(二)
一.smali的包中信息 .class public Lcom/aaaaa; .super Lcom/bbbbb; .source "ccccc.java" 1.它是com.aaa ...
- 75、django之ORM补充
本篇导航: QuerySet 中介模型 查询优化 一.QuerySet 1.可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. > ...
- Java计算字符串中字母出现的次数
话不多说,直接上代码........... public static void main(String[] args) { String str="I'm go to swimming&q ...
- Python入门 - 容器类型
python的容器有四种:列表List,元祖Tuple,字典Dictionary和集合Set. 一.列表List a = [1, 2, 3, 'a', 'b', 'c'] b = 1.5 a.appe ...
- 理论篇:关注点分离(Separation of concerns, SoC)
概念 关注点分离(Separation of concerns,SOC)是对只与"特定概念.目标"(关注点)相关联的软件组成部分进行"标识.封装和操纵"的能力, ...
- openstack pike 创建vxlan网络
#openstack pike 创建vxlan网络 openstack pike 集群高可用 安装部署 汇总 http://www.cnblogs.com/elvi/p/7613861.html # ...
- HTTPS原理浅析
HTTPS(Hypertext Transfer Protocol Secure)协议用于提供安全的超文本传输服务. 其本质上是SSL/TLS层上的HTTP协议, 即所谓的"HTTP ove ...
- 下拉菜单被挡住了,DIV置于最底层的方法
网站常会用到一些 下拉菜单,,幻灯片,,,飘浮广告等. 但经常会发现.幻灯片会挡住下拉菜单或者飘浮广告等.解决办法有下 第一,可将幻灯片所在DIV 置于最底层.添加CSS如下 style=" ...