Calibration
- Intrinsic Camera Calibration
- Extrinsic Multi Camera System (MCS) Calibration
- Extrinsic Lasercanner to MCS Calibration
- Extrinsic Rigid Body to MCS Calibration
Please download all calibration files.
Intrinsic Camera Calibration
With each of the three fisheye cameras several images are captured from a checkerboard pattern with known metric scale. The checkerboard in this project has 6x8 squares with a square size of 36 mm each, but only the inner 5x7 squares were used for the calibration. To calibrate the fisheye cameras the OCam-Toolbox is used. The input data are the images of each fisheye camera and the size of the checkerboard, namely the number of squares in each direction and the size of them. In this toolbox it is possible to extract the checkerboard automatically even for the great distortion of the used fisheye lenses. The results are saved for further use for each fisheye camera. The images which were used for the calibration can be downloaded here.
For the intrinsic camera calibration each fisheye camera is calibrated seperately.
The obtained results are further used for the MCS calibration where the interior orientations is used to determine the orientation of the MCS.
For the intrinsic camera calibration the interior orientation of each camera was calculated by using the OCamCalib toolbox by Scaramuzza with the add on by Urban.
Extrinsic MCS Calibration
Processing steps for calibrating the MCS:
- image coordinates of the control points are selected manually
- PnP algorithm is used to estimate the pose of each camera in the reference frame of the control points
- to evaluate the accuracy the points are reprojected on the image plane and reviewed manually
- with the computed poses of each camera the relative orientation of the entire MCS is determined
Extrinsic MCS Calibration
First the interior orientation of the three fisheye cameras is calculated, then the relative orientation of the MCS is determined.
With the help of fixed control points in the form of binary markers, the positions are determined by utilizing by the OptiTrack System, the position of every fisheye camera could be reprojected.
About 30 images from different positions have been taken, then 10 images are selected which represent well distributed observation positions. The images of these points are used to estimate the pose of the fisheye cameras in the exterior system supported by the control points in the images. Like this the exterior system and the interior system of the fisheye cameras are merged. The markers in the images are selected manually by applying a Matlab script. This script includes the PnP-algorithm to calculate the pose of the fisheye cameras to the exterior system. To evaluate the calculation the marker points are reprojected and plottet in the images. If the points fit to the given positions the coordinate systems fit to each other and the pose between the interior and the exterior coordinate system are considered for further processing. For reprojecting the camera models have to be known and integrated in the calculation.
Coordinate System of each Fisheye Camera
pink: x-axes
green: y-axes
cyan: z-axes
left (cam2)
right (cam1)
back (cam0)
Download the Figure of the Coordinate Systems as MATLAB figure (3D)
Extrinsic Laserscanner to MCS Calibration
The laserscanner to MCS calibration requires acquisitions from various positions to the calibration plane.
The most important processing steps for calibration are:
- extraction of checkerboard points with Matlab function detectCheckerboardPoints.m (available since version: R2014a)
- calculation of the pose (checkerboard to camera) with results of the Intrinsic Camera Calibration
- extraction of scanned 3D points on checkerboard with RADLOCC
- improve laserscanner accuracy by averaging five laserscanner measurements for each timestamp
- Extrinsic laserscanner to (single) camera calibration with LaserCamCalib
Accuracy of Extrinsic Laserscanner to Camera Calibration
In the specification sheet (Sensors and Setup) the accuracy of the laserscanner is 30 mm for ranges between 0.1 m to 10 m. The ranges in the acquisition for the calibration are between 0.5 m to 2 m.
The accuracy of the extrinsic laserscanner to camera calibration is varified with the following results:
The calibration between camera and laserscanner was executed for both front cameras (left and right). The concatenation of both results was compared with the results of the MCS. The distance of translations between laserscanner calibration and MCS calibration is 24.1 mm.
Furthermore the accuracy of the adjustment can be calculated. Because of the enormous redundance of more than 4000 observations (laserscanner points on the calibration board) the resulting standard deviation of the transformation parameters is small. The maximal standard deviation of the translations is less than 1 mm.
Description of the Available Data
To make the calibration steps reproducible the calibration data can be downloaded in the zip-folder Calibration_Laserscanner_Camera and the calibration can be executed.
Before executing the main programs, the toolboxes have to be downloaded (RADLOCC and LaserCamCalib).
Now the calibration can be executed with the main programs Calibration_Laserscanner_leftCamera or Calibration_Laserscanner_rightCamera. As various intermediate data is saved and reloaded again, make sure each main program is executed completely to avoid mixing up the intermediate results of both fisheye cameras. While executing the program, various default values have to be confirmed by the Enter key. The results of Calibration_Laserscanner_rightCamera are used to evaluate the results of Calibration_Laserscanner_leftCamera. The final laserscanner pose is based just on the results of Calibration_Laserscanner_leftCamera.
Extrinsic Rigid Body to MCS Calibration
The origin of the coordinate system of the rigid body is set on one of the spherical rigid body markers, namely sphere 2. The x-axis is parallel to the line which connects sphere 1, sphere 2 and sphere 3. The z-axis is the normal vector of the plane of all three spheres and y-axis stands orthogonal on x-axis and z-axis. The description of the MCS is given in the section extrinsic MCS calibration above.
The aim for the rigid body to MCS calibration is to gain the rotation and translation between both coordinate systems. For this synchron MCS and rigid body measurements are necessary. The pose of the reference fisheye camera can be achieved by applying a PnP algorithm to the known control points. Control point postions and rigid body have the same coordinate system. Due to the synchron measurements the position of the rigid body relativ to the main fisheye camera of the MCS is known and the homogenous calibration matrix (4x4) is determined. The resulting matrices are given in the attached Matlab script below.
Further in the Matlab script outliers are eliminated if a threshold of 1 sigma of the standard deviation is exceeded. Then the mean value of the translation and rotation is calculated again. Uncertainty of translation value is smaller than 10 mm (7.7 mm in x-axis, 4.4 mm in y-axis, 9.4 mm in z-axis). For uniqueness and to avoid a gimbal lock the roation is transformed to quaternions for further use.
Download data and scripts which are used for the calibration of the rigid body to the MCS. (4M)