基本矩阵的T和R估计

Vie*_*Vie 6 opencv linear-algebra computer-vision

我创建了一个简单的测试应用程序,用于从基本矩阵执行平移(T)和旋转(R)估计.

  1. 生成50个随机.
  2. 计算投影pointSet1.
  3. 通过矩阵(R | T)转换.
  4. 计算新的投影点Set2.
  5. 然后计算基本矩阵˚F.
  6. E = K2^T F K1(K1, K2- 内部相机矩阵)提取基本矩阵.
  7. 使用SVD获取UDV^T.

并计算restoredR1 = UWV^T,restoredR2 = UW^T.并看到他们中的一个设置为初始[R .

但是,当我计算平移矢量,restoredT = UZU^T我得到规范化的牛逼.

restoredT*max(T.x, T.y, T.z) = T

如何恢复正确的翻译载体?

Vie*_*Vie 2

我明白!这一步我不需要实际长度估计。当我获得第一张图像时,我必须设置公制变换(比例因子)或根据已知物体的校准来估计它。之后,当我收到第二帧时,我计算标准化 T,并使用第一帧的已知 3d 坐标来求解方程 (sx2, sy2, 1) = K(R|lambda T)(X,Y,Z); 并找到 lambda - 比 lambda T 将是正确的公制翻译......

我检查了一下,这是真的/所以......也许谁知道更简单的解决方案?