Camera Calibration - Results Sufficient?

1.2k views Asked by At

I´m doing my camera calibration using the Caltech Toolbox http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example.html and I´m not quite sure about the quality of my results. I had around 40 images in the beginning and dropped around 10 during the calibration due to large reprojection errors. I mounted the camera on a tripod and placed the checkerboard somewhere to avoid motion blur. I fixed the focal length to max.

The reprojection error looks fine I guess, but the uncertainties in the focal length, principal point and distortion are giving me a headache. Although the uncertainties given should refer to 3 times the standard deviation and therefore cover possible deviations with 99% (assuming a normal distribution), my results vary more than that. Here is what I get from the calibration:

1st attempt:

Focal Length: fc = [ 952.67300 952.58901 ] ± [ 3.18678 3.24121 ]

Principal point: cc = [ 641.33128 339.39042 ] ± [ 2.07428 2.53779 ]

kc = [ 0.16627 -0.28830 -0.00118 -0.00074 0.00000 ] ± [ 0.00554 0.00979 0.00093 0.00076 0.00000 ]

2nd attempt:

Focal Length: fc_left = [ 949.92127 946.43747 ] ± [ 4.75903 4.44547 ]

Principal point: cc_left = [ 642.39817 345.69787 ] ± [ 2.95598 4.19728 ]

kc = [ 0.13925 -0.23895 0.00141 -0.00062 0.00000 ] ± [ 0.00319 0.00490 0.00054 0.00041 0.00000 ]

3rd attempt:

Focal Length: fc = [ 949.55376 948.31960 ] ± [ 1.87647 1.73045 ]

Principal point: cc = [ 644.32264 342.15631 ± [ 1.19304 1.89943 ]

Distortion

kc = [ 0.15587 -0.26060 -0.00010 0.00018 0.00000 ] ± [ 0.00350 0.00612 0.00061 0.00044 0.00000 ]

The pixel error was for all three attempt roughly the same:

err = [ 0.24621 0.18013 ] (unfortunately I didn´t save the results)

My questions are:

What can I do to improve my results?

What is in general the best I can expect from the calibration (What should be the maximum uncertainty/reprojection error for a good calibration)?

Thanks!

2

There are 2 answers

0
Adrian Schneider On BEST ANSWER

I think your calibration looks good. It is normal that the focal length varies.

You can try to set the tangential distortion to zero. This is the usual case in contemporary cameras. There is even a calibration flag for that case CV_CALIB_ZERO_TANGENT_DIST.

In case you have a high-end camera and optics, you can place the principle point at the very center. For that you can use the flag CV_CALIB_FIX_PRINCIPAL_POINT. If I remember right, it's values are taken from the passed intrinsic parameters matrix.

In general, you get more accurate results when using a 3D calibration object instead of the planar checkerboard.

0
StefaniaBigs On

I used the caltech toolbox during my master thesis and I had better results using a good planar calibration grid.

Are you sure that the pattern you are using is really planar?
Is it a printed paper?

I suggest you first attach the calibration grid to a planar surface (a metal one would be the best solution, but also a wooden plate suffice) and then calibrate your system again.

In order to measure the calibration accuracy, you can measure the size (i.e. length) of a known object (for example, the length of a box of which you know the real measurement in meters) and compare the measured value with the real one.

Be aware also that you have to calibrate the whole space framed by your camera and that the target object to measure should be positioned in the same space volume that you just calibrated.

Of course a 3D calibration object would be the best solution, but as far as I know there is no off-the-shelf free code to manage it.