slam十四讲各章内容概述
Posted 继续向前。2020
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了slam十四讲各章内容概述相关的知识,希望对你有一定的参考价值。
1)代表第一章
1)下的1.2代表各章下的小细节内容。层次按1. ——1.1——1.1.1 的层次划分
本文内容,出自视觉十四讲
1)三种相机的区别
单目相机
效果:将拍摄到的场景在相机的成像平面上留下一个投影,以二维记录三维
处理:移动相机形成视差,估计相机的运动,也估计场景中物体的远近和大小
问题:具有尺度不确定性。用视差分析出物体的远近,也无法定量分析。
双目相机
效果:通过两个相机之间的距离(基线),估计每个像素的空间位置
问题:配置和标定较为复杂,切非常消耗计算资源
深度相机
效果:通过向物体发射光并接收回来的光,测出物体与相机之间的距离(红外结构光或Time of flight原理)
问题:测量范围窄,噪声大,视野小,容易受光照影响
2)SLAM框架
视觉里程计(特征提取,匹配)(提供待优化的数据,以及数据的初始值)
效果:通过相邻帧的图像估计相机的运动,并恢复场景的结构
进一步效果:
1.将相邻时刻的运动串起来,构成机器人的运动轨迹(定位问题)
2.根据每个时刻的相机位置,计算像素对应的空间点的位置(建图问题)
问题:会存在累计漂移带来的累计误差
后端优化(滤波,非线性优化)(整体的优化过程,面对数据,不关心数据来源)
效果:从带有噪声的数据中估计整个系统的状态,并分析状态估计的不确定性有多大(处理SLAM中的噪声问题)
回环检测:(解决位置随时间漂移的问题)(计算图像相似性的算法)
效果:通过判断图像间的相似性,将轨迹和地图调整到符合回环检测结果的样子。
地图
度量地图:(强调精确性)
1.稀疏地图:由路标组成的地图,不需要表达所有物体。定位用稀疏地图
2.稠密地图:建模所有看到的东西,由许多小块组成,小块含有占据,空闲,未知三种状态。导航用稠密地图
拓扑地图:强调地图元素之间的关系,由节点和边组成,只考虑节点间的连通性。
3)三维空间刚体运动
概念点:点和向量,反对称矩阵(反对称矩阵和向量φ一一对应)旋转矩阵,特殊正交群(n维旋转矩阵的集合,旋转矩阵(行列式为1的正交矩阵)),变换矩阵,特殊欧式群,旋转向量,欧拉角(奇异性问题:3个实数表达三维旋转,不可避免遇到奇异性问题),四元数(i对于180度,i^2=-1意味着绕i轴旋转360度)
变换:旋转向量和旋转矩阵(罗德里格斯公式),四元数可以转换到旋转向量和旋转矩阵,
4)李群和李代数(使用李代数,主要是为了进行优化)
群:一种集合加上一种运算的代数结构
李群:具有连续(光滑)性质的群
李代数:由三维向量组成的集合(反对称矩阵和向量φ一一对应)。描述了李群的局部性质,是单位元附近的正交空间。由一个集合,一个数域和一个二元运算符组成
指数映射:李代数实际上是由旋转向量(三维的或者六维的)组成的空间,指数映射为罗德里格斯公式,可以把李代数的任意一个向量对应到一个旋转矩阵(旋转矩阵或者正交矩阵)。
对数映射:是把矩阵转化为向量。(旋转固定在正负pi,李群李代数一一对应。否则,一个群可能存在多个李代数)
注意点:旋转矩阵的导数,可以由旋转向量指定。
BCH公式与近似公式:描述了李群李代数的加法与李群的乘法的对应关系
李代数求导:一般用来求解误差的最小值。方法由李代数的求导模型和扰动模型
sophus是一个较好的李代数库
5)相机与图像
单目相机的成像模型:
相机的内参数:世界的空间点P通过针孔相机模型得到成像平面的点P',再由平移和缩放关系得到像素坐标(相机的内参数就是中间量组成的矩阵K)
相机的外参数:相机的位姿R,t
标定:确定相机的内参
畸变:
径向畸变(桶形畸变,枕形畸变)——坐标点沿着长度方向发生变化
切向畸变——坐标点沿着切线方向发生改变(水平夹角发生改变)
畸变的纠正:(通过5个畸变系数求出点在像素平面的正确位置)
1.三维空间点投影到归一化图像平面
2对归一化平面上的点计算径向畸变和切向畸变
3.畸变后的点通过内参数矩阵投影到像素平面,得到该点在图像上的正确位置
具体的单目相机成像过程见书102页
双目相机模型:见书103页
RGB—D:原理有红外结构光,ToF(脉冲光)
图像与数组对应关系:数组的行数对应图像的高度,列数对应图像的宽度。所以由image(y,x)=I(x,y)
6)非线性优化
1.处理状态估计的方法(两种)
增量/渐进的方法(滤波器)——持有一个当前时刻的估计状态,然后用新的数据来更新它
批量方法:数据攒起来,一并处理
折中的办法:滑动窗口法,固定一些历史轨迹,仅对当前时刻附近的一些轨迹进行优化
贝叶斯法则:最大后延概率等于最大化似然和先验的乘积(不知道位姿或路标的时候,就没有了先验)
最大似然估计含义:在什么样的状态下,最可能产生现在观测到的数据
最小化所有时刻估计值与真实读数之间的马氏距离(最小化误差的二次型),等价于最大似然估计。也就是最小二乘问题等价于状态的最大似然估计
2.非线性最小二乘
自己的理解:这里的优化问题相当于求累计误差的最小值。转化为增量的方法后,则成了求满足条件的最小deltax。
一阶和二阶梯度法(最速下降法,牛顿法),高斯牛顿法,列文伯格——马尔夸特方法(这个相当于在高斯牛顿法的基础上加了一个信赖区域)
7)视觉里程计1
作用:根据相邻图像的信息估计出粗略的相机运动,给后端提供较好的初始值。
方法:特征点法,直接法
人工设计的特征点性质:可重复性,可区别性,高效率,本地性
特征点组成:关键点,描述子
关键点:是指特征点在图像里的位置,有些特征点还有朝向,大小等信息
描述子:通常是一个向量,按照某种人为设计的方式,描述了该关键点周围像素的信息
ORB特征:
FAST关键点:主要检测局部像素灰度变化明显的地方。(检测过程,预测试,非极大值抑制操作见书155)
解决FAST的方向性和尺度问题:金字塔,灰度质心法
特征匹配:确定当前看到的路标与之前看到的路标之间的对应关系(通过对图像与图像,图像与地图之的描述子进行准确匹配,可以为后续的姿态估计,优化等操作减轻大量负担)————方法:暴力匹配,快速近似最近邻
1 特征提取和匹配
1.1 提取和匹配ORB:
步骤:读取图像,初始化参数,检测角点,根据角点计算描述子,根据两幅图像的描述子进行匹配,计算最小距离和最大距离,根据匹配的Hamming距离进行筛选评估(筛选评估的条件为:Hamming距离小于最小距离的两倍)
1.2 手写ORB特征(还有些没有完全弄懂)
2——5 计算相机运动
方法:对级几何,ICP,PnP。根据不同的条件,方法不同
涉及到的概念:本质矩阵E,单应矩阵H,基础矩阵F
2.1 对极约束(这里具有尺度等价性,E实际只有5个自由度)()
对极约束同时包含了平移和旋转
方法:根据配对点的像素位置求出E或者F,再根据E或者F求出R,t。(估计E的方法有八点法求出E,若匹配的点多余8对,可能存在误匹配,这时候使用RANSAC的随机采样一致性来处理带有误匹配的数据。求出E后再去求出R,t)
单应矩阵:单应矩阵的方法用于两个平面的映射关系,场景的点落在同意平面上,可以用单应矩阵来进行求取。(自由度为8的单应矩阵可通过4对匹配特征点来进行求取)
3 三角测量(用相机的运动估计特征点的空间位置)(已知运动R,t,求两个特征点的深度)
方法:通过不同位置对同一个路标点的观察,从观察到的位置推断路标点的距离
作用:三角测量可以得到两帧下点的深度,确定他们的空间坐标
4 PnP
作用:描述了知道n个3D空间点及其投影位置时,如何估计相机的位姿(估计相机运动)
求解方法有:P3P,DLT,非线性优化的BA
4.1 P3P
条件:3对3D—2D的匹配点(3D点为世界坐标系下的坐标,2D点为相机成像平面上的投影)(3D点的相机坐标系下的坐标能够知道,就成了3D—3D的问题),一对验证点
作用:可以得到相机坐标系下的3D坐标,然后可以用3D—3D的方法求取R,t
4.2 最小化重投影误差求解PnP(BA,把相机和三维点放在一起进行最小化)
方法:把误差求和,构建最小二乘问题,然后寻找最好的相机位姿,使他最小化。误差项是将3D点的投影位置与观测位置做差,所以称为重投影误差。
4.3 opencv的EPnP可以求解PnP问题,得到相机的运动参数R,t
4.4 g2o的部分代码没有看懂》》》》》》
5 ICP
特点:仅考虑两组3D点之间的变换时,和相机没有关系,ICP的计算结果也是R,t(这里的R,t是第二帧到第一帧的变换)
方法:利用线性代数的求解(主要是SVD,利用非线性优化方法的求解(类似于BA)
具体方法流程见书:197
8 )直接法(直接法这部分,由于不一定会用到,值了解了下原理和优缺点,没有具体再去看代码了)
特点:
根据像素的亮度信息估计相机的运动和点的投影,可以完全不用计算关键点和描述子
特征点法只能重构稀疏特征点,直接法还具有恢复稠密或半稠密结构的能力
光流:描述像素随时间在图像之间运动的方法。
光流法特点:光流法能够直接得到特征点的对应关系,类似描述子的匹配(光流法不需要描述子了),通过光流追踪的特征点可以用PnP,ICP,对极几何来估计相机运动
直接法:特征匹配用的是最小化光度误差来进行,然后使用高斯牛顿法或者列文伯格—马尔夸特方法方法来计算增量
9) 后端1
9.1.1
问题变换:拥有某些运动数据z,观测数据z,确定状态量x,y的分布(位姿x,路标y看做服从某种概率分布的随机变量)————当存在一些运动数据,观测数据时如何估计状态量的高斯分布(状态量和噪声项服从高斯分布)
对应的数学内容:批量状态估计问题转化为最大似然估计问题,使用最小二乘法求解
9.1.2和9.1.3讲述了,线性系统和非线性系统的状态量的一个求法。并且对EKF滤波器的方法和非线性优化的方法进行了一个比较
9.2 BA和图优化
BA:从视觉图像中提取最优的3D模型和相机参数
9.2.3 稀疏化和边缘化(矩阵H的稀疏结构,并用图优化来表示)
这里讲述了借用稀疏化和边缘化的思想,求解出位姿和路标的增量
9.2.4 鲁棒核函数:保证每条边的误差不会大得没边而掩盖其他的边
11 回环检测
关键:有效的检测出相机经过同一个位置
意义:关系我们估计的轨迹和地图在长时间下的正确性。回环检测提供了当前数据和所有历史数据的关联,可以利用回环检测进行重定位(帮助自身在轨迹上的位置)
方法:词袋模型
步骤一:生成字典
词典结构:K叉树(多组目标环境的数据生成)
方法:例如k-means,把已经提取的大量特征点聚类成一个含有k个单词的字典
步骤二:一幅图像出现了哪些单词(要对区分性和重要性进行评估),向量进行描述
步骤三:相似度计算,相似度处理(取一个先验相似度,表示某时刻关键帧图像与上一时刻的关键帧的相似性),关键帧处理(稀疏一点)
步骤四:检测验证(缓存机制或者一致性检测)
以上是关于slam十四讲各章内容概述的主要内容,如果未能解决你的问题,请参考以下文章