我创建了一个简单的测试应用程序,用于从基本矩阵执行转换( T )和旋转( R )估算。
E = K2^T F K1
(K1, K2
- 内部相机矩阵)。UDV^T
。 并计算restoredR1 = UWV^T
,restoredR2 = UW^T
。并且看到其中一个等于初始 R 。
但是当我计算翻译向量restoredT = UZU^T
时,我会被归一化 T 。
restoredT*max(T.x, T.y, T.z) = T
如何恢复正确的翻译载体?
答案 0 :(得分:1)
我明白了!我不需要对此步骤进行实际长度估算。 当我得到第一张图像时,我必须设置度量变换(比例因子)或从已知对象的校准中估计它。之后,当我收到第二帧时,我计算正常化的T,并使用来自第一帧的已知3d坐标来求解方程(sx2,sy2,1)= K(R | lambda T)(X,Y,Z);并找到lambda - 而不是lambda T将是正确的度量标准翻译...
我检查一下,这是真的/所以...也许谁知道更简单的解决方案?