当前位置:   article > 正文

V-SLAM中的2D-2D对极几何和三角测量基本原理(含C++代码)_视觉slam中三角测量原理

视觉slam中三角测量原理

若已经有匹配好的点对,要根据点对估计相机的运动,可以分为以下三种情况:

  • 2D-2D:即点对都是2D点,比如单目相机匹配到的点对。我们可以用对极几何来估计相机的运动。在估计完相机运动之后,我们还可以用三角测量(Triangulation)来估计特征点的空间位置(包括深度)。注意,是估计相机之间的运动
  • 3D-2D:点对一组为3D,一组为2D,可以通过PnP求解。注意,是估计相机的位姿
  • 3D-3D:通过双目或RGB-D或者某种方式得到了空间点的深度,即得到两组3D点,常用ICP解决。注意,得到的是相机之间的运动。

        本文主要介绍2D-2D对极几何和三角测量的基本原理,阐述它们在计算机视觉中的作用,并给出一些典型的C++实例。

1. 2D-2D对极几何(主要目的是:求解R和t的)

目的:通过二维图像点之间的对应关系恢复两之间摄像机的运动;

已知:匹配的特征点;

未知:相机的变换矩阵T( 即旋转矩阵R和平移向量t)。

对极几何约束原理示意图

        通过上述的推到得到了对级几何约束,下面介绍如何根据该约束求解相机位姿。

1.1 八点法

        利用八个特征点求解本质矩阵E:

1.2 本质矩阵求R,t

2.  三角测量(主要目的:求解3D点的空间位置)

原理:三角测量是计算机视觉中一种重构三维空间点坐标的技术。它利用两个或多个相机从不同视角观察同一场景,通过几何约束来计算空间点的三维坐标。

        最基本的情况是利用两个相机的视角。假设我们已经知道两个相机的内部参数(如焦距、光心等)以及它们之间的相对位置(旋转R和平移t),那么对于场景中的一个点,它在两个相机的成像平面上会产生两个不同的像点坐标。通过和已知的内外参数结合,我们可以建立约束方程,最终解出这个空间点的三维坐标(X,Y,Z)。

        这种三角化的过程利用了相机成像的几何约束:空间点、两个相机中心和像点必须共面。我们把这个约束方程几何化,就可以利用两个像点坐标和相机参数解出空间点坐标。这就是三角测量的基本原理。利用这种方法,我们可以从两个或更多视角的二维像点,重建出整个三维场景的结构。

Tip:三角测量是指,通过不同位置对同一路标点进行观察,从观察到的位置推断路标点的距离。三角测量最早由高斯提出并应用于测量学中。

3. 利用三角测量评估相机运动估计结果的原理:

  1. 先用特征点匹配,结合RANSAC等算法估计出本质矩阵E或基础矩阵F,进而分别求解相机的运动(R,t)。
  2. 使用求解出的(R,t),对于每对匹配的特征点,进行三角测量重建,得到它们对应的三维空间点的坐标(X,Y,Z)。
  3. 将这些三维点(X,Y,Z)分别反投影到两幅图像的成像平面上,计算投影点与原特征点的欧式距离。
  4. 对所有匹配点的投影距离进行统计,计算中值median或内点数量等价值。
  5. 评估标准:中值距离越小或内点数量越多,说明所估计的(R,t)越准确,从而对应的E或F也就越准确合理。
  6. 通过比较E和F两种情况下的这些评估值,选择更优的一个作为最终的相机运动估计结果。

        这个方法的关键思路是:利用三角测量重建的三维结构,反过来评估最初的相机运动估计是否准确,形成一个闭环的自我评估和修正。距离的统计是评判标准,离群值的影响需要通过中值或内点等策略减小。

        通过这种方式,我们既可以得到较为准确的相机运动估计,也可以得到初步的三维点云,为后续的精修或优化扫平道路。

4. 具体实现代码

orbslam2_learn/linear_triangular at master · yepeichu123/orbslam2_learn · GitHubLearn ORBSLAM2 and divide the source code into many parts according to their function which can be easily built by the learner from my blog. - orbslam2_learn/linear_triangular at master · yepeichu123/orbslam2_learnicon-default.png?t=N7T8https://github.com/yepeichu123/orbslam2_learn/tree/master/linear_triangular

代码注释可以参考这一篇博客:

使用单目相机前后帧特征点匹配进行3D深度估计的方法_单目摄像头深度估计-CSDN博客文章浏览阅读747次,点赞14次,收藏19次。使用单目相机前后帧特征点匹配进行3D深度估计的方法_单目摄像头深度估计https://blog.csdn.net/u014374826/article/details/138869078?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22138869078%22%2C%22source%22%3A%22u014374826%22%7D

致谢

SLAM特征点法1——对极几何_特征点位几何逻辑关系模型-CSDN博客文章浏览阅读487次。SLAM特征点法1——对极几何相机模型根据上述我们可以得到图像坐标系与世界坐标系的关系,主要是内参和外参两部分构成。其中内参主要是由相机本身的成像过程构成的,外参是由于相机在全局世界坐标系中的姿态(位置+相机姿态)决定的。对级几何通过两视图几何之间的关系,从两张图像中估计相机的姿态通过上述的推到得到了对级几何约束,下面介绍如何根据该约束求解相机位姿八点法利用八个特征点求解R,t本质矩阵求R,t三角测量通过三角测量,在知道相机位姿的基础上,恢复点的相对深度...._特征点位几何逻辑关系模型https://blog.csdn.net/w4c4dwsz/article/details/110221064

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号