基本矩阵的T和R估计 [英] T and R estimation from essential matrix
问题描述
我创建了一个简单的测试应用程序,从基本矩阵中执行翻译( T )和旋转( R )估算。
I created a simple test application to perform translation (T) and rotation (R) estimation from the essential matrix.
- 生成50个随机点。
- 计算投影 pointSet1 。
- 通过矩阵( R | T )转换点。
- 计算新投影 pointSet2 。
- 然后计算基本矩阵 F 。
- 提取基本矩阵如
E = K2 ^ TF K1
(K1,K2
- 内部相机矩阵)。 - 使用SVD获取
UDV ^ T
。
- Generate 50 random Points.
- Calculate projection pointSet1.
- Transform Points via matrix (R|T).
- Calculate new projection pointSet2.
- Then calculate fundamental matrix F.
- Extract essential matrix like
E = K2^T F K1
(K1, K2
- internal camera matrices). - Use SVD to get
UDV^T
.
并计算 restoredR1 = UWV ^ T
, restoredR2 = UW ^ T
。
但是当我计算平移向量时, restoredT = UZU ^
But when I calculate translation vector, restoredT = UZU^T
, I get normalized T.
已恢复正常化 T Tz)= T
restoredT*max(T.x, T.y, T.z) = T
如何恢复正确的翻译向量?
How to restore correct translation vector?
推荐答案
我明白了!我不需要在这一步的实际长度估计。
当我得到第一个图像,我必须设置公制转换(比例因子)或估计它从已知对象的校准。之后,当接收第二帧时,计算规范的T,并且使用来自第一帧的已知的3d坐标来求解方程(sx2,sy2,1)= K(R | lambda; T)(X,Y,Z)并找到lambda - 比lambda T将是正确的度量翻译...
I understand! I don't need real length estimation on this step. When i get first image, i must set metric transformation (scale factor) or estimate it from calibration from known object. After, when i recieve second frame, i calculate normilized T, and using known 3d coordinates from first frame to solve equation (sx2, sy2, 1) = K(R|lambdaT)(X,Y,Z); and find lambda - than lambdaT will be correct metric translation...
我检查它,这是真的/所以...也许谁知道更简单的解决方案?
I check it, and this is true/ So... maybe who know more simple solution?
这篇关于基本矩阵的T和R估计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!