资讯专栏INFORMATION COLUMN

slam十四讲各章内容概述

canger / 2477人阅读

摘要:代表第一章下的代表各章下的小细节内容。描述了李群的局部性质,是单位元附近的正交空间。否则,一个群可能存在多个李代数注意点旋转矩阵的导数,可以由旋转向量指定。误差项是将点的投影位置与观测位置做差,所以称为重投影误差。

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个单词的字典

步骤二:一幅图像出现了哪些单词(要对区分性和重要性进行评估),向量进行描述

步骤三:相似度计算,相似度处理(取一个先验相似度,表示某时刻关键帧图像与上一时刻的关键帧的相似性),关键帧处理(稀疏一点)

步骤四:检测验证(缓存机制或者一致性检测)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124481.html

相关文章

  • ubuntu20.04 18.04编译视觉SLAM四讲slambook2/ch5/imageBas

    摘要:下面的程序是书里的源代码,其中可以用这两种方式,具体看能不能编译成功,如果有报错的话可以用下面这种方式。 下面的程序是书里的源代码,其中 #include #include //#include //#include 可以用这两种方式,具体看能不能编译成功,如果有报错的话可以用下面这...

    animabear 评论0 收藏0
  • 自动驾驶车辆在结构化场景中基于HD-Map由粗到精语义定位

    摘要:最后,为了使规划模块获得更平滑的姿态,提高定位系统的鲁棒性,采用了带有滑动窗口的姿态图,优化窗口中包含跟踪良好的帧数据,如果滑动窗口的大小超过阈值,历史记录中的一帧将根据车辆状态从滑动窗口中剔除。 点云PCL免费知识星球,点云论文速读。 文章:Coarse-to-fine Semanti...

    Honwhy 评论0 收藏0
  • AI学习路线

    摘要:针对公司样本不足,采用小样本技术和深度学习技术结合,是项目落地的解决方案。深度学习作为当前机器学习领域最热门的技术之一,已经在图像处理领域获得了应用,并且展现出巨大的前景。旨在帮助同学们快速上手如何使用库来完整机器学习案例。 阶段一、人工智能基础 - 高等数学必知必会 本阶段主要从数据分析、概率论和线性代数及矩阵和凸优化这四大块讲解基础,旨在训练大家逻辑能力,分析能力。拥有良好的数学基...

    xuweijian 评论0 收藏0
  • Ubuntu18.04配置ORB SLAM3

    摘要:可以其中中的改为或,加快速度测试修改,将其中的改为放置数据集的地方,比如我的。我只保留了一个我下载的数据集对应的代码,其余的都删除了。最后运行然后结果就出来了待办事项在中调用深度相机上述相关配置的具体教程参考资料 ...

    王陆宽 评论0 收藏0
  • 基于光流跟踪和功能匹配(称为LK-ORB-SLAM2)融合的立体视觉气味测量算法

    摘要:功能检测后是立体声匹配过程。初始化后,使用光流跟踪功能点以获取特征对应。功能点在相机运动期间不断丢失,然后我们建议的匹配帧插入方案将在正确的时间插入匹配帧。流程图功能提取算法特征点的性能对视觉气味学有指数级的影响。 目录 1、如何解决光流跟踪过程中丢失特征点的问题 2、ORB-SLAM2的...

    godlong_X 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<