通过SVD从Essential Matrix提取翻译的正确方法 [英] Correct way to extract Translation from Essential Matrix through SVD

查看:263
本文介绍了通过SVD从Essential Matrix提取翻译的正确方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我校准了相机,发现了固有参数(K).我还计算了基本面(F).

现在E = K_T * F * K.到目前为止一切顺利.

现在,我们将基本矩阵(E)传递给SVD,以使用分解值(U,W,V)提取旋转和平移":

 essentialMatrix = K.Transpose().Mul(fund).Mul(K);
 CvInvoke.cvSVD(essentialMatrix, wMatrix, uMatrix, vMatrix, Emgu.CV.CvEnum.SVD_TYPE.CV_SVD_DEFAULT);

**问题)在这一点上,已经提出了两种方法,这使我感到困惑,其中哪一种确实给出了正确的答案-专门针对翻译:

第一种方法在此处输入链接描述建议按以下方式计算R,T:

但是在第二种方法中[ http://isit.u-clermont1.fr/~ab/Classes/DIKU-3DCV2/Handouts/Lecture16.pdf] 作者为T提供了另一个公式,即+ U,-U,如下所示:

我正在使用openCv库在C#.Net上实现此功能.有人知道哪个翻译公式是正确的吗?

解决方案

第一个解决方案显示矢量为t的叉积的矩阵表示形式(所以第一个解决方案= [t] x),而第二个解决方案仅显示翻译结果向量t( https://en.wikipedia.org/wiki/Essential_matrix ).

[t] x的定义是:

(来自 http://gandalf-library.sourceforge.net/tutorial /report/img148.png )

I calibrated my camera and found the intrinsic parameters(K). Also I have calculated the Fundamental Matrix (F).

Now E= K_T* F * K . So far so good.

Now we pass the Essential Matrix(E) to the SVD to use the decomposition values (U,W,V) to extract the Rotation and Translation:

 essentialMatrix = K.Transpose().Mul(fund).Mul(K);
 CvInvoke.cvSVD(essentialMatrix, wMatrix, uMatrix, vMatrix, Emgu.CV.CvEnum.SVD_TYPE.CV_SVD_DEFAULT);

** Question) At this point, two methods have been proposed, and it has confused me which one really give out the right answer- specifically for Translation:

At first method enter link description here the author suggests to compute the R,T as following:

But in Second method [http://isit.u-clermont1.fr/~ab/Classes/DIKU-3DCV2/Handouts/Lecture16.pdf] the author provides another formula for T which is +U , -U as shown below:

I am implementing this on C# .Net using openCv libraries. Anybody knows which Translation Formula is the right one?

解决方案

the first solution shows the matrix representation of the cross product with vector t (so first solution = [t]x ), while the second solution shows just the translation vector t (https://en.wikipedia.org/wiki/Essential_matrix).

The definition of [t]x is:

(from http://gandalf-library.sourceforge.net/tutorial/report/img148.png)

这篇关于通过SVD从Essential Matrix提取翻译的正确方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆