1

我目前正在做一个项目,该项目需要我使用 opencv 库找到相机的姿势。我正在开发 iPod,目前正在获取视频输入,并使用 ORB 查找关键点和描述符,并使用 BruteForceMatcher 从准实时的两帧中查找匹配点(到目前为止,它的高度未优化)。我不确定这是否有必要,但我也过滤了匹配项,因此只匹配映射两种方式的匹配项,即 k->k1 和 k1->k

我有我正在使用的相机的内在参数以及 2D 关键点。从这里我希望找到相机的位置(我假设这些是旋转和平移的外部参数)。

尽管我浏览了许多教程,但其中很多内容让我有些不知所措,我需要一些指导来了解哪种方法可以奏效以及解释。大多数教程都使用了一个正方形的设置参考点,但是除了从框架中拉出的关键点之外,我没有其他标记可以使用。

据我了解,步骤是:

a) 找到对应的关键点

b) 识别基本矩阵

c) 估计基本矩阵

d) 将基本矩阵分解为旋转和平移向量

但是,超出步骤a)我被卡住了。

4

1 回答 1

1

从您的陈述中,我了解到您已经获得了一组 2D 对应关系,您可以将其输入 cvFindFundamentalMat。这找到了与这两个观点相关的基本矩阵。也就是说,对于camera-1中的每个点p和camera-2中的对应点p',p'Fp = 0。计算的基本矩阵可以进一步传递给opencv中的ComputeCorrespondEpilines函数,该函数找到与指定点对应的核线。它也可以传递给 StereoRectifyUncalibrated 函数来计算校正变换。在那里,您可以获得两个相机坐标系之间的旋转和平移(最多缩放)。

基本矩阵是与校准相机有关的度量对象,而基本矩阵描述了射影几何更一般和基本术语中的对应关系,因此我认为您不需要基本矩阵。基本矩阵中包含的所有信息. 此外,在不知道相机的内在参数及其在空间中的相对位置的情况下计算校正变换。

如果您没有使用棋盘校准模式,而是使用通用对象或图像,那么您是正确的,您需要手动或使用强大的特征提取器和匹配器 ORB、MSER、SURF、SIFT、FAST 找到对应关系

此外,我建议在这里参考 opencv 文档,希望对您有所帮助。

于 2012-11-26T12:12:14.593 回答