SLAM:
十四讲:
传感器约束了外部环境
测到的通常都是一些间接的物理量而不是直接的位置数据
只能通过一些间接的手段,从这些数据推算自己的位置
好处是没有对环境提出任何要求
camera:单目、双目、深度
Monocular、Stereo、RGB-D (红外光结构可 Time-of-flight TOF通过主动向物体发射光并接收返回的光,测出物体与相机之间的距离——这部分并不像双目相机那样通过软件计算来解决,而是通过物理的测量手段,所以相比于双目相机可节省大量的计算)—— 主要用于室内
运动:Motion
结构:Structure 同时估计场景中物体的远近和大小
视差:disparity 近处的物体移动快、远处慢
尺度:scale 单目SLAM估计的轨迹和地图将与真实的轨迹和地图相差一个因子——由于单目SLAM无法仅凭图像确定这个真实尺度,所以又称不尺度不确定性(scale ambiguity)
在视觉 SLAM 中,前端和计算机视觉研究领域更为相关,比如图像的特征提取与匹配,后端则主要是滤波与非线性优化算法;
度量地图 v.s. 拓扑地图
最基本的SLAM问题:
当知道运动测量的读数 u,以及传感器的读数 z 时,如何求解定位问题(估计 x)和建图问题(估计 y)?
状态估计:通过带有噪声的测量数据,估计内部隐藏状态变量
EKF:扩展卡尔曼滤波
非线性优化
SO(3)群
SE(3)群
欧拉角
四元数(用四元数表示旋转)
从真实世界到相机照片的变换是一个射影变换;如果相机的焦躁为无穷远,那么这个变换为仿射变换;
欧氏变换:保持了向量的长度和夹角,相当于我们把一个刚体原封不动地进行了移动或旋转,不改变自身的样子;
相似变换:旋转部分多了一个缩放因子——相似变换群 Sim(3)
仿射变换:只要求A可逆,而不必是正交矩阵;
射影变换:最为一般;
第4讲:
李群和李代数
在 SLAM 中,除了表示之外,我们还要对它 们进行估计和优化。因为在 SLAM 中位姿是未知的,而我们需要解决形如“什么样的相机位姿最符 合当前观测数据”这样的问题。一种典型的方式是把它构建成一个优化问题,求解最优的 R, t,使 得误差最小化。
如前所言,旋转矩阵自身是带有约束的(正交且行列式为 1)。它们作为优化变量时,会引入额 外的约束,使优化变得困难。通过李群—李代数间的转换关系,我们希望把位姿估计变成无约束的 优化问题,简化求解方式。
--------------------------------------
李群就是连续(光滑)的群
李代数对应李群的正切空间,描述了李群局部的导数;
罗德里格斯公式是表示从旋转向量至旋转矩阵的转换过程
小so(3)的李代数空间就是由旋转向量组成的空间,其物理意义就是旋转向量
小so(3)的李代数:三维向量的集合,每个向量的反对称矩阵都可以表达大SO(3)的李群上旋转矩阵的导数;
也就是说,李群空间的做任意一个旋转矩阵 R 都可以用李代数空间的一个向量的反对称矩阵指数来近似;
某个时刻小萝卜的位姿为 T 。它观察到了一个世界坐标位于 p 的点,产生了 一个观测数据 z。那么,由坐标变换关系知:
z = T p + w.
==> 最小二乘
求解此问题,需要计算目标函数 J 关于变换矩阵 T 的导数。我们把具体的算法留到后面再讲。 这里的重点是,我们经常会构建与位姿有关的函数,然后讨论该函数关于位姿的导数,以调整当前 的估计值。然而,SO(3), SE(3) 上并没有良好定义的加法,它们只是群。如果我们把 T 当成一个普 通矩阵来处理优化,那就必须对它加以约束。而从李代数角度来说,由于李代数由向量组成,具有 良好的加法运算。因此,使用李代数解决求导问题的思路分为两种:
1. 用李代数表示姿态,然后根据李代数加法来对李代数求导。
2. 对李群左乘或右乘微小扰动,然后对该扰动求导,称为左扰动和右扰动模型。 第一种方式对应到李代数的求导模型,而第二种则对应到扰动模型。
相比于直接对李代数求导,省去了一个雅可比 Jl 的计算。这使得扰动模型更为实用
Sophus 早期版本只提供了双精 度的李群/李代数类。后续版本改写成了模板类。模板类的 Sophus 中可以使用不同精度的李群/李代 数,但同时增加了使用难度
第五章 相机
相 机的内参在出厂之后是固定的,不会在使用过程中发生变化。有的相机生产厂商会告诉你相机的内 参,而有时需要你自己确定相机的内参,也就是所谓的标定。鉴于标定算法业已成熟(如著名的单 目棋盘格张正友标定法[25]
相机的位姿 R, t 又称为相机的外参数(Camera Extrinsics)。 相比于不变的内参,外参会随着相机运动发生改变,同时也是 SLAM 中待估计的目标,代表着机器 人的轨迹。
投影过程还可以从另一个角度来看。式(5.8)表明,我们可以把一个世界坐标点先转换到相机坐 标系,再除掉它最后一维的数值(即该点距离相机成像平面的深度),这相当于把最后一维进行归 一化处理,得到点 P 在相机归一化平面上的投影:
如果对相机坐标同时乘以任意非零常数,归一化坐 标都是一样的,这说明点的深度在投影过程中被丢失了,所以单目视觉中没法得到像素点的深度值。
径向畸变(透镜本身)
切向畸变(摄像头传感器不垂直)
在这一节中,我们对相机的成像过程使用针孔模型进行了建模,也对透镜引起的径向畸变和切 向畸变进行了描述。实际的图像系统中,学者们提出了很多其他的模型,比如相机的仿射模型和透 视模型等,同时也存在很多其他类型的畸变。考虑到视觉 SLAM 中一般都使用普通的摄像头,针孔 模型及径向畸变和切向畸变模型已经足够,因此,我们不再对其他模型进行描述。
值得一提的是,存在两种去畸变处理(Undistort,或称畸变校正)做法。我们可以选择先对整 张图像进行去畸变,得到去畸变后的图像,然后讨论此图像上的点的空间位置。或者,也可以从畸 变图像上的某个点出发,按照畸变方程,讨论其畸变前的空间位置。二者都是可行的,不过前者在 视觉 SLAM 中似乎更加常见一些。所以,当一个图像去畸变之后,我们就可以直接用针孔模型建立 投影关系,而不用考虑畸变了。因此,在后文的讨论中,我们可以直接假设图像已经进行了去畸变 处理。
虽然由视差计算深度的公式很简洁,但视差 d 本身的计算却比较困难。我们需要确切地知道左
眼图像某个像素出现在右眼图像的哪一个位置(即对应关系),这件事亦属于“人类觉得容易而计 算机觉得困难”的任务。当我们想计算每个像素的深度时,其计算量与精度都将成为问题,而且只 有在图像纹理变化丰富的地方才能计算视差。由于计算量的原因,双目深度估计仍需要使用 GPU 或FPGA 来实时计算
第七章 视觉里程计
比较重要核心的一章了, TBD
第8章:SLAM未来
常用开源 SLAM 方案
2007 年,Klein 等人提出了 PTAM(Parallel Tracking and Mapping)[66],这也是视觉 SLAM 发展 过程中的重要事件。PTAM 的重要意义在于以下两点: |
|
|
IMU 为快速运动提供了较好的解决方式,而相机又能在慢速运动下解决IMU 的漂移问题——在这个意义下,它们二者是互补的。
语义SLAM:
SLAM 和语义的结合点主要有两个方面[9]:
语义帮助 SLAM。传统的物体识别、分割算法往往只考虑一幅图,而在 SLAM 中我们拥有 一台移动的相机。如果我们把运动过程中的图片都带上物体标签,就能得到一个带有标签的 地图。另外,物体信息亦可为回环检测、BA 优化带来更多的条件。
SLAM 帮助语义。物体识别和分割都需要大量的训练数据。要让分类器识别各个角度的物 体,需要从不同视角采集该物体的数据,然后进行人工标定,非常辛苦。而 SLAM 中,由 于我们可以估计相机的运动,可以自动地计算物体在图像中的位置,节省人工标定的成本。 如果有自动生成的带高质量标注的样本数据,能够很大程度上加速分类器的训练过程。
SLAM:的更多相关文章
- SLAM:使用G2O-ORB-SLAM(编译)
前言: 没有新雪,看看自己所做的事情,有没有前人做过.果然,EKF_SLAM的版本出现了Android版本的OpenEKFMonoSLAM, G2O-ORB SLAM也出现了VS2012版本. 一.S ...
- SLAM:暑期学校
专门开个(大)坑: RGB-D SLAM:姜翰青,商汤 视觉SLAM:章国锋,浙大CAD&CG国家重点实验室
- BAD SLAM:捆绑束调整直接RGB-D SLAM
BAD SLAM:捆绑束调整直接RGB-D SLAM BAD SLAM: Bundle Adjusted Direct RGB-D SLAM 论文地址: http://openaccess.thecv ...
- SLAM:ORB-SLAM 位姿优化描述
只知道算法描述和代码,而不知道原理是比较扯的事情,还是把原理转载一下. 原文链接: http://www.cnblogs.com/luyb/p/5447497.html ORB-SLAM作为单目SLA ...
- 三维重建:SLAM的尺度和方法论问题
百度百科的定义.此文引用了其他博客的一些图像,如有侵权,邮件联系删除. 作为算法的SLAM,被称为同步相机位姿确定和地图构建.作为一个工程的SLAM,有众多的算法. 在计算机视觉中, 三维重建是指根据 ...
- 三维重建:SLAM算法的考题总结
参考英文维基:https://en.wikipedia.org/wiki/Slam 参考文档:视觉slam研究分析的一点认识 1. 请简单描述您对机器人的SLAM的概念理解? 答: 机器人需要在自身位 ...
- 泡泡一分钟:FMD Stereo SLAM: Fusing MVG and Direct Formulation Towards Accurate and Fast Stereo SLAM
FMD Stereo SLAM: Fusing MVG and Direct Formulation Towards Accurate and Fast Stereo SLAM FMD Stereo ...
- ORB-SLAM3论文阅读:ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM
简介 ORB-SLAM3是第一个能在单目.双目.RGBD鱼眼相机和针孔相机模型下运行视觉.视觉-惯导以及多地图SLAM的系统.其贡献主要包括两方面:提出了完全依赖于最大后验估计的紧耦合视觉-惯导SLA ...
- 视觉SLAM
SLAM:Simultaneous Localization And Mapping.中文:同时定位与地图重建. 它是指搭载特定传感器的主体,在没有实验先验信息的情况下,于运动过程中建立环境的模型,同 ...
随机推荐
- Apache 监听 ipv4
查看端口信息 ifconfig 发现只有 ipv6 的 80 端口被监听,ipv4 的 80 端口没有被监听 因此通过 ipv4 无法访问 tcp6 0 0 :::80 :::* LISTEN 221 ...
- linux 安装盘作为 repo
1) CentOS 7.7 安装完之后, /etc/yum.repos.d 下面有很多.repo. 其中有一个CentOS-Media.repo. 编辑文件把enabled 改成 1 . 然后把其他. ...
- 《计算机网络第7版》PDF+《计算机网络释疑与习题解答第7版》PDF
谢希仁 链接:https://pan.baidu.com/s/1_sM9bFL0y3S1NXBz5rLyvg 提取码:po3i 计算机网络(第7版)谢希仁 · 语雀 https://www.yuque ...
- 在Anaconda中使用linux的命令
在Anaconda中使用linux的命令 1.在anaconda中执行以下命令即可(要先activation 想用的环境): conda install m2-base 2.安装git.添加环境变量即 ...
- VS 插件 ReSharper 的个人习惯
个人习惯 1. 按 F12 恢复转到定义 很多时候,我个人不太喜欢一按 F12 就跳转到 ReSharper 自带的 查看代码浏览器,我还是喜欢 VS 默认的,于是点击菜单栏的 "RESHA ...
- My time is limited
Your time is limited, so don't waste it living someone else's life. Don't be trapped by dogma - whic ...
- DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- C#中的一些对话框问题处理
1. 对于打开文件对话框处理 #region 打开文件对话框 string StrPath; OpenFileDialog Flag = new OpenFileDialog(); Flag.Mult ...
- Unable to connect to web server 'IIS Express'(无法连接到Web服务器“IIS Express”)的解决方式-Jexus Manager
在运行微软示例工程eShopOnWeb时候, 在经过一段时间再运行启动报Error "Unable to connect to web server 'IIS Express'" ...
- word转html预览
#region Index页面 /// <summary> /// Index页面 /// </summary> /// <paramname="url&quo ...