视觉里程计-SLAM十四讲学习笔记

一个SLAM系统分为前端和后端,其中前端也称为视觉里程计。视觉里程计根据相邻图像的信息估计出粗略的相机运动,给后端提供较好的初始值。视觉里程计的算法主要分为两个大类:特征点法和直接法。

经典SLAM模型中以相机位姿-路标来描述SLAM过程:
—路标是三维空间中固定不变的点,可以在特定位姿下观测到
—在视觉SLAM中,可利用图像特征点作为SLAM中的路标 

特征点是图像当中具有代表性的部分,如轮廓点,较暗区域中的亮点,较亮区域中的暗点等。
—可重复性:相同的区域可以在不同的图像中找到—可区别性:不同的区域有不同的表达
—高效率:同一图像中,特征点的数量应该小于像素的位置—本地性:特征仅与一小片图像区域有关

特征点信息
关键点:指该特征点在图像的位置,大小,朝向等信息。
描述子:特征点周围的周围信息。(通常是一个向量)

常用人工设计更加稳定的局部图像特征:SIFT,SURF, ORB等。简单介绍其原理:

SIFT
SIFT即尺度不变特征变换,是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。
具体可以参考这篇文章:

SIFT原理介绍

ORB

​​​​​​ORB算法介绍

计算相机运动

对极几何 2D-2D

对极约束

假设从两张图像中得到一对配对好的特征点,以图7-9为例,我们希望求取两帧图像I_{1},I_{2}之间的运动,设第一帧到第二帧的运动为R,t。两个相机中心分别为O1,O2。现在考虑I_{1},中有一个特征点P_{1},它在I_{2}中对应着特征点P_{2}。我们知道两者是通过特征匹配得到的。如果匹配正确,说明它们确实是同一个空间点在两个成像平面上的投影。

s \boldsymbol{p} \simeq \boldsymbol{p}

 代数分析:在第一帧的坐标系下,设P的空间位置为:

视觉里程计-SLAM十四讲学习笔记_第1张图片

 根据相机模型,我们可以知道两个像素点P_{1},P_{2}的位置为:(这里K为相机内参矩阵,R,t为两个坐标系的相机运动)

 尺度意义相等:在使用齐次坐标时,一个向量将等于它自身乘上任意的非零常数,这通常用于表达一个投影关系。这种关系意义为尺度意义下相等。记作:s\boldsymbol{p} \simeq \boldsymbol{p}.那么上述投影关系可以写成:\boldsymbol{p}_{1} \simeq \boldsymbol{K P}, \quad \boldsymbol{p}_{2} \simeq \boldsymbol{K}(\boldsymbol{R} \boldsymbol{P}+\boldsymbol{t}).

现在我们取\boldsymbol{x}_{1}=\boldsymbol{K}^{-1} \boldsymbol{p}_{1}, \quad \boldsymbol{x}_{2}=\boldsymbol{K}^{-1} \boldsymbol{p}_{2}(这里两个像素点为归一化平面上的坐标)带入上式可得:\boldsymbol{x}_{2} \simeq \boldsymbol{R} \boldsymbol{x}_{1}+\boldsymbol{t}

两边同时左乘t^{\wedge },这相当于两侧同时与t做外积:

视觉里程计-SLAM十四讲学习笔记_第2张图片

 让后两边同乘以\boldsymbol{x}_{2}^{\mathrm{T}}

 化简得:

视觉里程计-SLAM十四讲学习笔记_第3张图片

 重新带入 P_{1},P_{2},有:

 这两个式子都成为对极约束,其几何意义O_{1}, P, O_{2}三者共面。对极约束中同时包含了平移和旋转,我们把中间部分记作两个矩阵:基础矩阵F和本质矩阵E,于是进一步简化得:

于是,相机位姿估计问题变为以下两步:1.根据配对点的像素位置求出E或者F。2.根据E或者F求出R,t。

本质矩阵:(E=t^{\wedge }R)

·性质1:E满足对极约束。由于对极约束是等式为零的约束,所以对E乘以任意非零常数后,对极约束依然满足。则称为E在不同尺度下是等价的(尺度等价性)。
·性质2:根据E= t^R,可以证明3],本质矩阵E的奇异值必定是[o,o,0]T的形式。这称为本质矩阵的内在性质。
·性质3:另外,由于平移和旋转各有3个自由度,故tR共有6个自由度。但由于尺度等价性,故E实际上有5个自由度。

如何求本质矩阵E呢,我们采用经典的八点法(使用八个点来估计E)

考虑一对匹配点,它们的归一化坐标为\boldsymbol{x}_{1}=\left[u_{1}, v_{1}, 1\right]^{\mathrm{T}}, \boldsymbol{x}_{2}=\left[u_{2}, v_{2}, 1\right]^{\mathrm{T}},根据对极约束,有:

视觉里程计-SLAM十四讲学习笔记_第4张图片

 我们把矩阵E展开,写成向量的形式:

 那么,对极约束可以写成与e有关的线性形式::

 

视觉里程计-SLAM十四讲学习笔记_第5张图片

 接下来问题,已估得本质矩阵E,通过奇异值分解计算出相机的运动R,t.设E的SVD 为

视觉里程计-SLAM十四讲学习笔记_第6张图片

 奇异值分解(SVD)原理详解及推导

其中U,V为正交阵,习为奇异值矩阵。根据E的内在性质,我们知道\boldsymbol{\Sigma}=\operatorname{diag}(\sigma, \sigma, 0)[对角矩阵]。在SVD分解中,对于任意一个E,存在两个可能的t,R与它对应:

视觉里程计-SLAM十四讲学习笔记_第7张图片

 


 

你可能感兴趣的:(slam,计算机视觉,人工智能)