赞
踩
若已经有匹配好的点对,要根据点对估计相机的运动,可以分为以下三种情况:
2D-2D
:即点对都是2D点,比如单目相机匹配到的点对。我们可以用对极几何来估计相机的运动。在估计完相机运动之后,我们还可以用三角测量(Triangulation)来估计特征点的空间位置(包括深度)。注意,是估计相机之间的运动。3D-2D
:点对一组为3D,一组为2D,可以通过PnP求解。注意,是估计相机的位姿。3D-3D
:通过双目或RGB-D或者某种方式得到了空间点的深度,即得到两组3D点,常用ICP解决。注意,得到的是相机之间的运动。本文主要介绍2D-2D对极几何和三角测量的基本原理,阐述它们在计算机视觉中的作用,并给出一些典型的C++实例。
目的:通过二维图像点之间的对应关系恢复两之间摄像机的运动;
已知:匹配的特征点;
未知:相机的变换矩阵( 即旋转矩阵
和平移向量
)。
对极几何约束原理示意图
通过上述的推到得到了对级几何约束,下面介绍如何根据该约束求解相机位姿。
利用八个特征点求解本质矩阵E:
原理:三角测量是计算机视觉中一种重构三维空间点坐标的技术。它利用两个或多个相机从不同视角观察同一场景,通过几何约束来计算空间点的三维坐标。
最基本的情况是利用两个相机的视角。假设我们已经知道两个相机的内部参数(如焦距、光心等)以及它们之间的相对位置(旋转R和平移t),那么对于场景中的一个点,它在两个相机的成像平面上会产生两个不同的像点坐标。通过和已知的内外参数结合,我们可以建立约束方程,最终解出这个空间点的三维坐标(X,Y,Z)。
这种三角化的过程利用了相机成像的几何约束:空间点、两个相机中心和像点必须共面。我们把这个约束方程几何化,就可以利用两个像点坐标和相机参数解出空间点坐标。这就是三角测量的基本原理。利用这种方法,我们可以从两个或更多视角的二维像点,重建出整个三维场景的结构。
Tip:三角测量是指,通过不同位置对同一路标点进行观察,从观察到的位置推断路标点的距离。三角测量最早由高斯提出并应用于测量学中。
这个方法的关键思路是:利用三角测量重建的三维结构,反过来评估最初的相机运动估计是否准确,形成一个闭环的自我评估和修正。距离的统计是评判标准,离群值的影响需要通过中值或内点等策略减小。
通过这种方式,我们既可以得到较为准确的相机运动估计,也可以得到初步的三维点云,为后续的精修或优化扫平道路。
代码注释可以参考这一篇博客:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。