|Requirements||Software operation||Defining Calibration Tasks||Definitions and Theory|
Imatest’s calibration routines are an example of parameter estimation from evidence. The estimated parameters are the intrinsics of the devices and their extrinsics in each capture. The evidence is the set of target feature points (e.g., checkerboard corners) detected in the test images, which we relate back to real-world structure.
The dimension of the parameter estimation is the total number of values being estimated- for a stereo camera system this might typically be 20-30.
The evidence may come in the form of hundreds to thousands of points detected in multiple images. More about the evidence required for calibration may be found on the Supported Targets page.
All of the parameters which define projective camera intrinsics can be estimated for each device defined in the system. These include:
- principle point (x,y)
- distortion center (x,y)
- distortion model coefficients
By default, skew and alpha estimation is turned off and these are assumed to be fixed. This is consistent with a sensor which has the same pixel spacing in both dimensions (x and y), and these dimensions being perpendicular. If one or both of these assumptions does not well describe your sensor, estimation of these parameters may be enabled.
The calibration process jointly estimates the extrinsics of the cameras in each capture position along with the intrinsics. The following parameters are returned for each camera in the system:
- translation relative to reference device (3-vector)
- rotation relative to reference device (3×3 matrix)
Additionally, the pose of the reference device at each capture position is estimated and returned. By composing the relative-to-reference poses with this, the pose of each camera for each capture can be reconstructed.
Optimization constraint options
When designing a calibration program–choosing the target, test positions, and optimization constraints–for a device, it is necessary to keep in mind the tradeoff of how many parameters there are in your model, the necessary accuracy, and how much evidence you will need to fit them. The more parameters used and the more demanding the precision, the greater the set of evidence required.
Reducing the number of parameters
There are sometimes situations wherein you do not need (or want) to estimate every possible parameter. In such a case, it may be beneficial to disable estimation of that parameter, thus holding it fixed to the initial value. This reduces the dimension of the space of the optimization problem and thus conditions it better, which can lead to more stable solutions and faster convergence.
Camera intrinsic parameters skew and alpha are held fixed by default (with identity values of 1 and 0, respectively). You would only enable estimation of these if you had reason to believe your sensor has non-square pixel aspect ratio or a non-orthogonal grid.
While enabling the estimation of more parameters will almost always produce a better fit to the data (in terms of reprojection error), this may not actually describe the camera system better. It is possible that if there are not enough data points (or enough diversity of data points) then some parameters may be found that fit the particular calibration data set well but do not generalize to new scenes in the future. This is sometimes referred to as overfitting.
Regularization of parameters
If we have prior beliefs about the system or test setup, we can incorporate them to further regularize the estimated values and condition the optimization.
This comes in the form of the distance error fields accompanying supplied measurements in the Calibration Task structure. By indicating the confidence in the measurement of the test positions relative to the target, the system can make smarter use of each observation.
Hold principle point to center of distortion
|INI field: hold_pp_to_cod||Value: array of integer indices into Device System ordering of devices. Default: [empty]|
Ideally, the center of distortion and the principle point are the same. If the lens is assembled with a tilt relative to the sensor plane, however, they may deviate from one another. If you are confident in the build quality and alignment of these components, you may wish to assume these values should be held to be the same for a device.
hold_pp_to_cod = 1 3
Hold inter-device translation
|INI field: hold_extr_t||Value: 0 | 1|
|Estimation of the positions of the cameras of a multi-camera system relative to the reference camera may be disabled, holding them fixed to the initially defined relative translations. This may be desired if you believe the mechanical tolerances of the structure holding the cameras in their orientation to be fine enough that there is effectively no variation from spec.|
Regularize by measurements
|INI field: regularize_by_measurements||Value: 0 | 1|
This option enables regularization in extrinsics estimation by making use of the distance error values supplied in the Test Capture definition.
Use of this option is highly recommended in the case of relatively few or not-diverse capture positions.
Estimate distortion or not
|INI field: estimate_distortion||Value: 0 | 1|
If you have characterized your distortion curve with high accuracy from some other means, you may wish to use this and not have Imatest re-estimate distortion.