从基本矩阵确定相机旋转和平移矩阵 [英] determine camera rotation and translation matrix from essential matrix
问题描述
我正在尝试从基本矩阵中提取旋转矩阵和平移矩阵. 我将这些答案作为参考:
I am trying to extract rotation matrix and translation matrix from essential matrix. I took these answers as reference:
通过以下方式从Essential Matrix提取翻译的正确方法SVD
现在,我已经完成了将SVD应用于基本矩阵的上述步骤,但是问题来了.根据我对此主题的理解,R和T都有两个答案,这导致[R | T]的4种可能解.但是,只有一种解决方案适合实际情况.
Now I've done the above steps applying SVD to essential matrix, but here comes the problem. According to my understanding about this subject, both R and T has two answers, which leads to 4 possible solutions of [R|T]. However only one of the solutions would fit in the physical situation.
我的问题是如何确定四种解决方案中的哪一种是正确的?
My question is how can I determine which one of the 4 solutions is the correct one?
我只是研究相机位置的初学者.因此,如果可能,请使答案尽可能清晰(但简单).任何建议将不胜感激,谢谢.
I am just a beginner on studying camera position. So if possible, please make the answer be as clear (but simple) as possible. Any suggestion would be appreciated, thanks.
推荐答案
最简单的方法是使用可能的解决方案测试点3D位置,也就是说,重建的点将仅在可能的4个摄像机中的两个摄像机前面解决方案. 因此,假设一个摄像头矩阵为P = [I | 0],则另一台摄像头有4个选项,但是只有一对会在其前面放置该点.
The simplest is testing a point 3D position using the possible solution, that is, a reconstructed point will be in front of both cameras in only one of the possible 4 solutions. So assuming one camera matrix is P = [I|0], you have 4 options for the other camera, but only one of the pairs will place such point in front them.
有关Hartley和Zisserman的多视图几何学(第259页)的更多详细信息
More details in Hartley and Zisserman's multiple view geometry (page 259)
如果您可以使用Opencv(3.0及更高版本),则可以使用名为"recoverPose"的函数进行计数,该函数将为您完成这项工作.
If you can use Opencv (version 3.0+), you count with a function called "recoverPose", this function will do that job for you.
参考:OpenCV文档, http://docs.opencv.org/trunk/modules/calib3d/doc/calib3d.html
Ref: OpenCV documentation, http://docs.opencv.org/trunk/modules/calib3d/doc/calib3d.html
这篇关于从基本矩阵确定相机旋转和平移矩阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!