来自双视SFM的不正确的相机姿势

时间:2016-07-26 22:27:30

标签: python opencv computer-vision structure-from-motion

为了验证用于估计相机姿态[R | t]的双视SFM方法的结果,我利用了我用于校准的棋盘图案,特别是" calibrateCamera" OpenCV中的函数返回每个模式的旋转和平移向量。因此,let之间的相对姿势可以说很容易计算前两个模式。

然而,我没有得到正确的相机姿势,我一直在努力解决问题,但没有白费。

我非常感谢您为解决我的问题做出的贡献。

我的代码说明:

  • undistort images
  • 在两张图片中找到棋盘角落
  • 匹配点(通过左右两个图像和线条绘图验证)
  • 估计基本矩阵(已验证:x< T * F * x = 0)
  • 基本矩阵(E)= KT * F * K(经过验证:X' T * E * X = 0)
  • S = E * U * S * VT
  • R = U * W * VT或U * WT * VT使得WT = [0,-1,0; 1,0,0; 0,0,1]

    Actions action = new Actions(driver);
        action.sendKeys(String.valueOf('\u0050')).perform();
    

1 个答案:

答案 0 :(得分:0)

你的问题是你正在使用棋盘上的点:你不能从共面点估计基本矩阵。解决此问题的一种方法是使用通用方法(如SIFT或SURF)匹配场景点。另一种方法是使用5点算法直接估计基本矩阵,因为基本矩阵可以从共面点计算。

另外,请记住,您只能根据基本矩阵计算相机姿势。换句话说,您的翻译最终将成为一个单位向量。计算比例因子以获得翻译实际长度的一种方法是使用棋盘。