3D reconstruction (SfM) - confusion with camera's extrinsic parameter
From two images (with known camera intrinsic parameter), I follow the usual pipeline to reconstruct its 3D points. In particular, I use the cv2.findEssentialMat
and cv2.recoverPose
function. From the cv2.recoverPose
, I got the rotation and translation of the second camera (the first camera will has identity matrix for its rotation and zero vector for its translation). What confuse me is the value of the camera 2's translation that is [ -0.98681175 0.08603786 0.1371133 ]
, where I got a negative x value. Clearly from my images, the second camera should move right, indicating a positive x value. Why is this? Is it because the matrix should show the movement of the points and not the camera itself (I always thought the extrinsic parameter shows the movement of the camera)?
Below are the two images (with highlighted keypoints used for 3D reconstruction) and the reconstructed scene.
The two blue X marks above are camera 1 and camera 2 position (here, I have multiplied camera 2's translation with -1 to get a positive x value).