Ask Your Question
0

Understanding the Result of Camera Calibration and its Units

asked 2018-04-17 02:59:28 -0600

Thiyaga gravatar image

Hi,

I am quite new to camera calibration.

I have 35 images, based on the following functions :

findChessboardCorners() cornerSubPix() drawChessboardCorners() calibrateCamera()

I now have

  1. Camera Matrix - 3x3 dimension
  2. Distortion Coefficient - 1x5 dimension
  3. Rotation Vector - 35x3 dimension
  4. Translation Vector - 35x3 dimension

Questions :

  1. camera matrix

     [ 2421.70421334667, 0, 2138.107444179007;
         0, 2429.244140012221, 1136.772764836856;
         0, 0, 1]
    

In the above , what are the units of fx, fy , Cx and Cy ?

  1. Distortion Coefficient
[-0.2877455633196141,
0.2968104208806526, -0.001127291269463514, -0.002010576239298727, -0.3457992571078199]

Do we have any Units for K1, K2, P1, P2, K3 ?

  1. Rotation Vector
[-0.1019788539700399; 0.3918509002001774; 0.0734955967493143]
[-0.1165422449849887; 0.5017699087572564; 0.4257284491781231]
[-0.1233545118567792; 0.5922964766688477; 1.001270611741778]
[-0.5253276710841507; -0.01653828323651414; -1.386034124708322]
 so on ... for all 35 images

What about the unit of Rotation Matrix? How should I understand it? What does this values mean?

  1. Translation Vector
[152.8348988935562, -168.8318694822206; 951.100836109663]
[191.0103136141713; -207.2053481732149; 963.7313891311128]
[307.0885175766131; -212.1491832662802; 945.4874998124949]
[221.391205120318; -22.64308775049023; 910.7108013142725]
 so on ... for all 35 images

What about the unit of Translation Vector? How should I understand it ? What does its values mean?

I also tries the camera calibration app in Matlab, I set the same image but it does not show the same result?

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
0

answered 2018-04-18 04:10:39 -0600

Grillteller gravatar image

updated 2018-04-18 04:18:31 -0600

I think everything is already explained on this page of OpenCV: https://docs.opencv.org/2.4/modules/c...

Summarizing:

  1. Camera matrix:
    This is the inner orientation of the camera that can be calculated when calibrating the camera. A camera lens may have a fixed focal length of 35 mm but this is often not accurate enough for further calculations so when calibrating with a chessboard you calculate these values more accurate.
    So fx and fy are the focal lengths expressed in pixels.
    Cx and Cy describe the coordinates of the so called principal point that should be in the center of the image. It is e.g. not in the center of the image if you cropped the image, what you should never do when calibrating.
    fx, fy, cx, cy are given in Pixels in Computer Vision ( and openCV) but e.g. in Photogrammetry you often use mm

  2. Distortion Coefficient:
    As the name already says, the parameters show the distortions of the image. It can also be calculated when calibrating the camera with a chessboard.
    There are up to 6 parameters for radial distortion (k1-k6) and two parameters for tangential distortion (p1-p2). Look at the images in the link.
    k1-k6, p1-p2 don't have units.

  3. Rotation vector and translation vector:
    As far as I understood for every image you take of the chessboard the translation and rotation is estimated from the model coordinate space (object points estimated from inner orientation) to the world coordinate space (real object points in a coordinate system you defined).
    Rotation can be e.g. given in Angles (-Pi, Pi) or (0, 2*Pi) or in quaternions.
    Translation can be given in km, m, dm.... (depends how you specified your values).

More detailed information is given e.g. in Szeliski - Computer Vision Algorithms and Applications (http://szeliski.org/Book/drafts/Szeli...)

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2018-04-17 02:59:28 -0600

Seen: 16,001 times

Last updated: Apr 18 '18