This online toolbox can be used to fully automatically calibrate one or multiple video cameras intrinsically and extrinsically using a single image per sensor only using a set of planar checkerboard calibration patterns. Furthermore, if provided, it registers the point cloud of a 3D laser range finder with respect to the first camera coordinate system. The main assumption for our algorithm to work is that all cameras and the range finder have a common field of view and the checkerboard patterns can be seen in all images, cover most parts of the images and are presented at various distances and orientations. Below, you can upload and calibrate your own data directly using our calibration server. After a couple of minutes you will receive an email with your results. Please carefully read all the instructions on this page as well as our ICRA'12 publication before uploading any data to our server (or writing us an email about malfunction). Also have a look at our example section, to get a quick overview over the data which needs to be submitted. Try to produce calibration data that is qualitatively close to these examples (several checkerboards at multiple locations and orientations, spanning the entire image) for good results. Important note: Even though this toolbox is fully automatic it is an 'expert tool' and supposed to be used only by people which have a solid background in computer vision and camera calibration. We have a hard limit of 24 hours processing time after which the calculations will be canceled. If you don't receive an email within 24 hours something has failed, most probably your scene is too complex. We are unable to provide support or more details in this case, unfortunately. Please check if the examples work and try to configure your setup in a similar way. MATLAB code for checkerboard corner detection and refinement can be downloaded separately here.

Upload your image/range data for calibration

Upload instructions

In order to use our toolbox, you need to upload the following data files:
  • 1 ini file specifying the parameters (see details below)
  • 1 image per camera displaying multiple boards at different poses (provided as png or jpg)
  • 0 or 1 range data file (provided as 3d point cloud in txt file, 1 row per point, 3 values per row)

IMPORTANT NOTES: A description of the ini file contents and example ini files can be found below. The setup must be capturing a set of checkerboard patterns shown at different orientations and locations. All checkerboards must be clearly visible in all images and should cover the whole image area. Furthermore, best results are obtained when calibrating a multi-camera (2,3,...) setup due to the increased number of constraints. The distance between the checkerboard corners must be the same for all patterns. Checkerboard patterns must be rectangular, though there is no restriction on the pattern size (number of corners) which might vary. The range data file must be provided as a plain txt file with space separated columns (one for x,y and z) and one row per line. When using regular lenses (less than 90° opening angle) you should always disable the fifth distortion parameter (k5_active), as otherwise the optimization will very likely overfit and introduce strong distortions. For regular cameras, a1_active should be disabled at all times as well. See example ini files below. If you are having trouble with estimating the extrinsic parameters of the (optional) laser point cloud, try to manually remove all points that are not on checkerboards, this should help the algorithm finding the correct orientation. Similarly, you can try to blank out ambiguous regions in the images in case the checkerboard extractor or matching stage got confused and wasn't able to establish all correspondences correctly.

Example calibration setups can be found here.

Please make sure to also read our frequently made mistakes page, which is explaining common errors in the calibration setup!

Ini File Description

Note: If you calibrate multiple cameras, the calibration parameters must be specified multiple times (once per camera). It usually makes sense to restrict a1 and k5 to zero. Details on the calibration model/parameters we use can be found here!


  • corner_dist: Distance between neighboring checkerboard corners in meters (default=0.1)
  • rectify: Boolean value specifying if rectification parameters for OpenCV shall be computed (default=false)


  • a1_active: Boolean value (per camera) specifying if alpha (=shear) shall be optimized (default=true), should be set to 0 (false)
  • k5_active: Boolean value (per camera) specifying if k5 shall be optimized (default=true), should be set to 0 (false)


  • fine_max_scale_correction: Maximum scale deviation (i.e. scale=1.0 +- this value) between camera and range sensor (default=0.0)
  • fine_outlier_multiplier: Multiplied by median-error to estimate outliers (default=1.5)
  • fine_max_outlier_ratio: Maximum ratio of outliers, range [0,1) (default=0.05)
  • fine_max_number_of_results: Finish as soon as this number of good results exist (default=3)
  • fine_non_max_suppression: Radius for monmaxima suppression (default=1.5)

Example Ini Files

Monocular camera setup

corner_dist=0.04 # 4 cm corner distance

a1_active=0 # fix alpha to 0 during optimization
k5_active=0 # fix k5 to 0 during optimization (no wide angle lens)

Stereo wide-angle camera setup

corner_dist=0.1 # 10 cm corner distance
rectify=1 # compute rectification parameters (for OpenCV's cvInitUndistortRectifyMap)

a1_active=0 # fix alpha of first camera to 0 during optimization
a1_active=0 # fix alpha of second camera to 0 during optimization

Terms of Usage

Hereby, you are granted the right to use this online toolbox for camera and range sensor calibration free of charge for any academic and non-commercial research projects.


When using this software for your research, please cite us:
   author = {Andreas Geiger and Frank Moosmann and Ömer Car and Bernhard Schuster},
   title = {Automatic Camera and Range Sensor Calibration using a single Shot},
   booktitle = {International Conference on Robotics and Automation (ICRA)},
   year = {2012},
   month = {May},
   address = {St. Paul, USA}

eXTReMe Tracker