相机姿势估计

时间:2013-04-13 10:57:31

标签: opencv computer-vision pose-estimation

我目前正致力于一个项目,该项目基于一组图像处理重建,采用多视图立体方法。因此,我需要知道空间中的几个图像。我发现使用冲浪的匹配功能,从对应的我发现必不可少的矩阵。

现在出现了问题:可以用SVD分解基本矩阵,但这可能导致4种不同的结果,正如我在书中读到的那样。如果可能,我怎样才能获得正确的?

我可以使用哪些其他算法?

2 个答案:

答案 0 :(得分:1)

Wikipedia说:

  然而,事实证明,这四类解决方案中只有一类   可以在实践中实现。给出一对相应的图像   坐标,三个解决方案将始终产生一个3D点   它位于两个相机中的至少一个后面,因此不能   可见。四个类中只有一个会持续生成3D   两个摄像头前面的点。这必须是   正确的解决方案。

如果在第一帧中有摄像机的外部校准参数,或者假设它位于默认校准,则说(0,0,0)的平移和(0,0,0)的旋转,然后你可以确定哪个分解是有效的。

答案 1 :(得分:1)

感谢Zaphod的回答,我能够解决我的问题。这是我做的:

首先,我从两个图像中的一组点对应计算了基本矩阵(E)。

使用SVD,将其分解为2个解决方案。使用否定的基本矩阵-E(也满足相同的约束条件),我得到了另外两个解决方案,总共有4个可能的摄像机位置和方向。

然后,对于所有解决方案,我通过获取点坐标和每个摄像机观察方向的点积来对点对应进行三角测量并确定哪些相交在两个摄像机前面。我都是积极的,然后那个十字路口就在两个摄像机前面。

最终,在相机前面提供最多交叉点的解决方案是选择的。