资源经验分享自动驾驶(四十一)---------视觉SLAM(视觉里程计)

自动驾驶(四十一)---------视觉SLAM(视觉里程计)

2019-12-30 | |  73 |   0

原标题:自动驾驶(四十一)---------视觉SLAM(视觉里程计)

原文来自:CSDN      原文链接:https://blog.csdn.net/zhouyy858/article/details/102523886


       视觉里程计主要介绍什么是特征点,如何提取和匹配特征点,以及如何根据配对的特征点估计相机运动。

1. ORB特征点

      FAST是一种角点检测方法:如果一个像素与它邻域的像素差别较大(过亮或过暗), 那它更可能是角点。

      FAST:在图像中选取像素 p,假设它的亮度为 Ip;设置一个阈值 T(比如 Ip 的 20%); 以像素 p 为中心, 选取半径为 3 的圆上的 16 个像素点; 假如选取的圆上,有连续的 N 个点的亮度大于 Ip + T 或小于 Ip − T,那么像素 p 可以被认为是特征点;循环以上步,对每一个像素执行相同的操作。

2. BRIEF描述子

      BRIEF:向量由许多个 0 和 1 组成,这里的 0 和 1 编 码了关键点附近两个像素(比如说 p 和 q)的大小关系:如果 p 比 q 大,则取 1,反之就 取 0。如果我们取了 128 个这样的 p, q,最后就得到 128 维由 0,1 组成的向量。

3. 特征匹配

      快速近似最 近邻(FLANN)算法更加适合于匹配点数量极多的情况。由于这些匹配算法理论已经成 熟,而且实现上也已集成到 OpenCV,所以我们这里就不再描述它的技术细节了。

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

      假设我们从两张图像中,得到了一对配对好的特征点,需要恢复出在两帧 之间摄像机的运动。通过这些匹配好的点,存在一定的约束关系,最优化出两帧的运动信息:下面我们介绍对极几何约束:

                                                           03.png

       连线 O1p1 和连线O2p2 在三维空间中会相交于点 P。这时候点 O1, O2, P 三个点可以 确定一个平面,称为极平面。O1O2 连线与像平面 I1, I2 的交点分别 为 e1, e2。e1, e2,称为极点,O1O2 被称为基线。称极平面与 两个像平面 I1, I2 之间的相交线 l1, l2 为极线,对极约束简洁地给出了两个匹配点的空间位置关系。

5. 3D-2D: PnP

      PnP是求解 3D 到 2D 点对运动的方法。它描述了当我们知道 n 个 3D 空间点以及它们的投影位置时,如何估计相机所在的位姿。在双目或 RGB-D 的视觉里程计中, 我们可以直接使用 PnP 估计相机运动,3D-2D 方法不需要使用对极约束,又可以在很少的匹配点中获得较好的运 动估计,是最重要的一种姿态估计方法。

      考虑某个空间点 P,它的齐次坐标为 P = (X, Y, Z, 1)T。在图像 I 中,投影到特征 点 x1 = (u1, v1, 1)T(以归一化平面齐次坐标表示)。

                                                                  04.png

       用最后一行把 s 消去,得到两个约束:05.png

      令:06.png得到:07.png08.png

      假设一 共有 N 个特征点,可以列出线性方程组: 09.png,即可实现矩阵 T 的线性求解。

6. 3D-3D: ICP

       假设我们有3D点之间的匹配关系,求欧氏变换 R, t,在激光 SLAM 中碰到 ICP,由于激光数据无从知道点集之间的匹配关系,只能认为距离最近的两个点为同一个, 所以称为迭代最近点。而在视觉中,特征点为我们提供了较好的匹配关系,所以问题就变得更简单了。线性代数的求解(主要是 SVD),以及非线性优化方式的求解。

      1. SVD:  定义第 i 对点的误差项:10.png 求使误差平方和达到极小的 R, t:11.png

         a. 计算两组点的质心位置 p, p ′,然后计算每个点的去质心坐标:12.png

         b. 根据以下优化问题计算旋转矩阵:13.png

         c. 根据第二步的 R,计算 t:14.png

       2. 非线性优化方法:  极小化误差平方和:11.png

          使用李代数扰动模型即可:16.png在非线性优化中只需不断迭代,我们就能找到极小值。

 

 

 

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:自动驾驶(四十)---------视觉SLAM(非线性优化)

下一篇:自动驾驶(四十二)---------视觉SLAM(后端优化)

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...