[SLAM](7):视觉里程计知识点纲要(特征点,对极几何,三角测量,PnP,ICP)

结合 高翔老师的著作《视觉SLAM十四讲:从理论到实践》,加上小白的工程经验共同完成。建议作为笔记功能反复使用。


一. 特征点法

  1. 特征点;(特征点 = 关键点 + 描述子 )
    关键点:特征点在图像里的位置;描述子:通常是一个向量,描述了该关键点周围像素的信息。
  2. ORB 特征;(FAST角点提取 和 BRIEF 描述子)
    FAST 是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。
    BRIEF 是一种二进制描述子,它的描述向量由许多 0 和 1 组成。
  3. 特征匹配。(通过图像与图像,或者图像与地图之间的描述子进行准确的匹配)

描述子距离表示了两个特征之间的相似程度,我们往往使用汉明距离做为度量——两个二进制串之间的汉明距离指的是它不同位数的个数。

二. 实践:特征提取和匹配

目前主流的集中图像特征在 OPenCV 开源图像库中都已经集成完毕。

相机为单目时:问题是两组2D点估计运动,用对极几何来解决。

相机为双目、RGB-D时:问题是两组3D点估计运动,通常用 ICP来解决。

有3D点和它们在相机的投影位置,该问题通过PnP来解决。

三. 2D-2D:对极几何

  1. 对极约束;(基础矩阵(Fundamental Matrix) F 和 本质矩阵(Essential Matrix) E)
    对极约束简洁地给出了两个匹配点的空间位置关系。
  2. 本质矩阵;(八点法)
  3. 单应矩阵。( 处于共同平面上的一些点,在两张图像之间的变换关系)
    避免退化现象,同时估计基础矩阵F和单应矩阵H,选择重投影误差比较小的那个作为最终的运动估计矩阵。

四. 实践:对极约束求解相机运动

使用 OpenCV 提供的算法求解

  1. 尺度不确定性;(单目初始化不能只有纯旋转,必须有一定程度的平移)
  2. 多于八对点的情况;(使用随机采用一致性求解)

五. 三角测量

三角测量是指,通过在两处观察同一个点的夹角,确定该点的距离。

六. 实践:三角测量

  1. 三角测量代码。(调用 OpenCV提供的trangulation函数进行三角化)
  2. 讨论。
    增加三角化的精度:提高特征点的提取精度;增大平移量。

七. 3D-2D:PnP

PnP描述了当我们知道n个3D空间点以及它们的投影位置时,如何估计相机所在的位姿。因此,在双目或RGB-D的视觉里程计中,我们可以直接使用PnP估计相机运动。它是一种重要的位姿估计方法。

  1. 直接线性变换(DLT);(这里的x使用了归一化平面坐标,去掉了内参矩阵K的影响)
  2. P3P;(使用三对匹配点ABC)
    我们知道的是A,B,C在世界坐标系中的坐标,而不是在相机坐标系中的坐标。一旦3D点在相机坐标系下的坐标能够算出,我们就得到了3D-3D的对应点,把PnP问题转换为了ICP问题。
  3. Bundle Adjustment。(最小化重投影误差)
    重投影误差:将像素坐标(观测到的投影位置)与3D点按照当前估计的位姿进行投影得到的位置相比较得到的误差。

在SLAM当中,通常的做法是先使用P3P/EPnP等方法估计相机位姿,然后构建最小二乘优化问题对估计值进行调整(Bundle Adjustment)。

八. 实践:求解PnP

  1. 使用 EPnP求解位姿;(首先使用 OpenCV提供的 EPnP求解 PnP问题,然后使用g2o对结果进行优化)
  2. 使用 BA优化。(g2o提供了很多BA的节点和边。在使用 g2o之前,我们要把问题建模成一个最小二乘的图优化问题)

程序流程:

扫描二维码关注公众号,回复: 5425585 查看本文章

首先,声明 g2o的图优化,配置优化求解器和梯度下降的方法;

然后,根据得到的特征点,将位姿和空间点放到图中。

最后,调用优化函数进行求解。

九. 3D-3D:ICP(迭代最近点)

仅考虑两组 3D点之间的变换时,和相机并没有关系。ICP的求解也分为两种方式:线性代数的求解(SVD)与 非线性优化求解。

  1. SVD方法;(先定义第i对点的误差项,然后构建最小二乘问题,求使误差平方和达到极小的R,t )
  2. 非线性优化方法。(以迭代的方式去寻找最优解,ICP求解可以随意选定初始值)

混合着使用 PnP和 ICP优化:

对于深度已知的特征点,用建模它们的 3D-3D误差;对于深度位置的特征点,则建模3D-2D的重投影误差。于是,可以将所有的误差放到一个问题中考虑,使得求解更加方便。

十. 实践:求解ICP

  1. SVD方法;(调用 Eigen进行SVD,然后计算R,t矩阵)
  2. 非线性优化方法。(与 SVD思路不同的地方在于,在优化中我们不仅考虑相机的位姿,同时会优化3D点的空间位置)

《视觉SLAM十四讲:从理论到实践》 PDF资源

下载链接:https://download.csdn.net/user/robot_starscream/uploads  仅供各位研究员试读,请购买纸质书籍。

猜你喜欢

转载自blog.csdn.net/Robot_Starscream/article/details/87909623