Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

pose estimation: determine whether rotation and transmation matrix are right

Recently I'm struggling with a pose estimation problem with a single camera. I have some 3D points and the corresponding 2D points on the image. Then I use solvePnP to get the rotation and translation vectors. The problem is, how can I determine whether the vectors are right results?

Now I use an indirect way to do this:
I use the rotation matrix, the translation vector and the world 3D coordinates of a certain point to obtain the coordinates of that point in Camera system. Then all I have to do is to determine whether the coordinates are reasonable. I think I know the directions of x, y and z axes of Camera system.

  • Is Camera center the origin of the Camera system?
  • Now consider the x component of that point. Is x equavalent to the distance of the camera and the point in the world space in Camera's x-axis direction (the sign can then be determined by the point is placed on which side of the camera)?

The figure below is in world space, while the axes depicted are in Camera system.

========How Camera and the point be placed in the world space=============
   |
   |              
Camera--------------------------> Z axis
   |                |} Xw?
   |                P(Xw, Yw, Zw)
   |              
   v x-axis

For a specified point, the calculated coordinates in Camera system is (Xw, Yw, Zw). When the point is about one meter away from the camera in the z-axis direction, the value of z is about 1, which makes the result seems correct. But I think x and y should be positive because the point is located on the positive side but they are negative.

For two points, Zw1-Zw2=0.02. I think it means they are 0.02m away from each other in the z direction. But that's not the case in the world space. This seems weird.