Determine rotation matrix and transformation matrices from matrix

I am trying to extract the rotation matrix and translation matrix from the essential matrix. I took these answers as a link:

Correct way to extract translation from main matrix via SVD

Extract translation and rotation from main matrix

Now I have done the above steps applying SVD to the essential matrix, but this is where the problem comes in. According to my understanding of this question, both R and T have two answers, which leads to 4 possible solutions [R | T]. However, only one of the solutions will fit the physical situation.

My question is, how can I determine which of the four solutions is correct?

I am just starting to study the position of the camera. So, if possible, make the answer as clear (but simple) as possible. Any suggestion would be appreciated, thanks.

+3


source to share


1 answer


The simplest is to test the point of the 3D position using a possible solution, that is, the reconstructed point will be in front of both cameras in only one of the possible 4 solutions. Thus, if one camera matrix P = [I | 0], you have 4 options for another camera, but only one of these pairs will place them in front of them.

More in Hartley and Zisserman Multidimensional Geometry (p. 259)



If you can use Opencv (version 3.0+) you calculate with the "recoverPose" function, this function will do the job for you.

Link: OpenCV documentation, http://docs.opencv.org/trunk/modules/calib3d/doc/calib3d.html

+2


source







All Articles