《视觉SLAM十四讲》学习笔记

第一讲:预备知识
第二讲:经典视觉SLAM框架,传感器 前端VO 后端优化 回环检测 地图构建
第三讲:三维刚体运动,主要了解旋转矩阵,欧拉角,四元数,练习使用Eigon
第四讲:学习李群和李代数,定义及使用方式;练习使用Sophus操作
第五讲:针孔相机模型,图像在计算机中的表达;用OpenCV调用相机内外参
《视觉SLAM十四讲》学习笔记_第1张图片《视觉SLAM十四讲》学习笔记_第2张图片《视觉SLAM十四讲》学习笔记_第3张图片

焦距f:光心到成像平面的距离
相机内参:f_x、f_y、c_x、c_y
--->f_x, f_y表示像素坐标在u,v轴上缩放了多少倍 * 焦距f
--->c_x,c_y表示像素坐标平移了多少
--->单目相机有:c_x≈image_width/2, c_y≈image_height/2
相机外参:R、t
双目相机基线:两相机光心距离
视差:uL-uR
RGBD:不适用于室外,遇到透视不会反射,且很容易被干扰。

第六讲:非线性优化,包括状态估计理论基础,最小二乘问题,梯度下降法;使用Ceres和g2o进行曲线拟合实验

状态估计问题
(1)最大后验与最大似然
(2)最小二乘法
非线性最小二乘
(1)一阶和二阶梯度法
(2)高斯牛顿法
(3)列文伯格--马夸尔特方法

第七讲:基于特征点法视觉里程计,特征提取与匹配,对极几何约束的计算、PnP和ICP等。利用以上方法估计两个图像之间的运动。

1、特征点法(提取和匹配):
(1)特征点
(2)ORB特征
(3)特征匹配

最小化重投影误差:
22D-2D:(已知两张图像中一对匹配好的特征点)
矩阵自由度分析
-本质矩阵
	-3x3矩阵,6个独立参数(3个线元素,3个角元素),自由度6
	-尺度等价,自由度-1
	-自由度=5
-基础矩阵
	-3x3矩阵,至少14个独立参数(4+4+6),自由度9
	-尺度等价,自由度-1
	-矩阵秩=2,自由度-1
	-自由度=7
-单应矩阵
	-3x3矩阵,自由度9
	-尺度等价,自由度-1
	-自由度=8

(1)对极几何模型:本质矩阵E/基础矩阵F
--->五点法估计E:E=t^R共有6个自由度(x,y,z,r,p,y),但由于尺度等价性,故E实际上有5个自由度,最少5个点求解问题
--->八点法估计E:但是E内在性质是一种非线性性质,使用5点法需要线性化,最好只考虑尺度等价性,使用8对点来估计E

(2)单应矩阵H模型
--->四点法估计H:自由度为8(尺度等价性)的单应矩阵H可以通过4对匹配特征点计算(公式只在特征点共面时成立)

注意:
--->**特征点共面,或者相机发生纯旋转**的时候,基础矩阵的自由度下降,出现**退化现象**。现实中的数据总包含一些噪声,这时候如果继续使用八点法求解基础矩阵,基础矩阵多余的自由度将会主要由噪声决定。为了能够避免退化现象造成的影响,通常我们会同时估计基础矩阵F和单应矩阵H,选择重投影误差比较小的那个作为最终的运动估计矩阵。
--->主要用E分解运动,H需要假设特征点在平面上。
--->E本身具有尺度等价性,通常对t进行归一化,令它的长度为1,因此会有尺度不确定性。
--->尺度不确定性:对t的归一化相当于固定了尺度,导致单目视觉的尺度不确定性,厘米还是米。对t乘以任意常数,对极约束依然成立
--->初始化:用于初始化的两帧之间需要有一定程度的平移t,而后的轨迹和地图都将以此步的平移为单位。
--->初始化的纯旋转:纯旋转导致t为0,这样E也是0,无法求解R。单目初始化不能只有纯旋转,必须要有一定平移。
--->多余8点的情况:倾向于用RANSAC

(3)三角测量:估计空间点深度,需要一定平移,这样才有对极几何中的三角形
--->x1 X s1x1 = 0 = x1 X (s2Rx2+t)
--->此时尺度还是不确定的(即只知道地图比例,不知道具体尺寸单位)。因为此时代入的R和t还是尺度丢失的
--->三角化的矛盾:平移太大特征匹配会失败,平移太小由于分辨率太小会使三角化精度不够大
--->尺度要由Sim(3)求解

https://blog.csdn.net/LittleEmperor/article/details/105212252
33D-2D:PnP(已知3D空间点及其投影位置)
--->单目vo中,必须先进行初始化,然后才能使用PnP·
(1)直接线性变换(DLT):六点法,3x4矩阵每个点提供2个约束。
(2)P3P(3点计算,1点验证)、EPnP、UPnP等
(3)BA(Bundle adjustment):https://www.cnblogs.com/Jessica-jie/p/7739775.html

43D-3D:ICP (已知一组配对好的3D点)
--->ICP:Iterative Closest Point
(1)ICP求解SVD
(2)BA

5、相机测距
(1)单目相机:通过移动相机之后进行三角化测量像素的距离(三角测量或三角化)。
(2)双目相机:利用左右目的视差计算像素的距离。
(3)RGB-D相机:直接获取像素距离。

第八讲:直接法视觉里程计,学习光流法和直接法原理,利用以上方法实现简单的直接法运动估计。

基本假设:灰度不变假设
1、光流法
(1)稀疏光流:以LK光流为代表
(2)稠密光流
2、直接法:最小化光度误差
(1)稀疏法
(2)半稠密法
(3)稠密法

第九讲:后端优化,主要对Bundle Adjustment(BA)深入讨论,利用稀疏性加速求解过程,利用Ceres和g2o分别书写BA程序。

前端:负责特征匹配。
后端:负责优化整个问题。

第十讲:后端优化中的位姿图,介绍SE(3),Sim(3)位姿图,使用g2o对一个位姿球进行优化

位姿图定义的误差,左乘扰动推导雅克比矩阵???

第十一讲:回环检测,介绍以词袋模型为主的回环检测,使用DBoW3书写字典训练程序和回环检测程序
第十二讲:地图构建,使用单目进行稠密深度图的估计,讨论RGB-D的稠密地图构建过程

稠密地图可以用于避障。

第十三讲:工程实践,搭建双目视觉里程计框架,综合运用之前的知识,利用Kitti数据集测试性能
第十四讲:介绍当前开源SLAM方案以及未来的发展方向


总结

提示:这里对文章进行总结:
高翔博客:高翔博客
前五章笔记:视觉SLAM十四讲笔记(超级通俗易懂哦~)
李群与李代数:添加链接描述
笔记

你可能感兴趣的:(人工智能)