Opencv相机姿态估计



我目前正在进行一个项目,该项目要求我使用opencv库查找相机的姿势。我正在iPod上工作,目前使用ORB进行视频输入,并使用BruteForceMatcher从两帧中准实时地找到关键点和描述符(目前还没有发现)。我不确定这是否有必要,但我也过滤了匹配,所以只绘制了双向映射的匹配,即k->k1和k1->k

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

尽管我看过很多教程,但其中很多都有点让我不知所措,我需要一些关于什么方法有效的指导以及解释。大多数教程都使用了一个正方形的集合参考点,但除了从框架中拉出的关键点之外,我没有其他标记可以使用。

据我所知,步骤是:

a) 查找相应的关键点

b) 识别基本矩阵

c) 估计基本矩阵

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

然而,在步骤a)之后,我陷入了困境。

根据您的陈述,我了解到您已经获得了一组2D对应关系,可以将其输入到cvFindFundamentalMat中。这就找到了将这两种观点联系起来的基本矩阵。即,对于相机-1中的每个点p和相机-2中的对应点p’,p’Fp=0。计算出的基本矩阵可以进一步传递给opencv中的ComputeCorrespondEpilines函数,该函数找到与指定点相对应的极线。它也可以传递给StereoRectifyUncalibrated函数来计算整流变换。在那里,您可以获得两个摄影机坐标系之间的旋转和平移(最高可达缩放)。

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

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

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

最新更新