WARNING: This page has not been updated since 2/28/2002
Additional (and undocumented) features of the Camera Calibration Toolbox:
Non-planar calibration rigs: The toolbox works perfectly
with non-planar calibration rigs. For illustration, check the third calibration example posted on the
main documentation page
.
Robustness of convergence: The convergence algorithm may
take a few more iterations than shown in the first example. However, the estimation
process is now extremely robust, and stable. I have not found any
example on which the optimization fails. If you do, please send me the
data!
Convergence movie: After calibration, the user can visually
check the convergence of the optimization procedure by running the
script file check_convergence. This script generates the
successive intermediate 3D configurations of the calibration rigs
(extrinsic parameters) computed during the optimization process (the
variable param_list contains the list of intermediate
calibration parameters, intrinsic and extrinsic).
Reading images: The process of reading the images from disk
is now a lot more automatic. The user only has to enter the images basename
and format. The program automatically finds (and counts) all
the images with that basename in the selected format and loads
them. The images should still be consistantly numbered using the
numbering scheme described on that page,
but all numbers do not have to be consecutive (by step 1) anymore. It
is perfectly fine is there are missing images. In fact, new images can
be later on added at the missing slots, for more accurate
calibration. Try it on example 1 by calibrating with the small set of
images sparsely picked from the large list of images: Image1.tif,
Image5.tif, Image9.tif, Image12.tif,
Image15.tif (the local directory should not contain any other
image from the list, otherwise, they will be read as well).
Adding new images: If some number indices were initially
left unused, then the additional images can now use those unused
slots. Of course, the new images may still be numbered with higher
number indices than the current larger number index (like described in
the first example). Only one constraint: do
not add images before the current first image (i.e. for the new image,
do not use a lower index number that the index used for the current
first image). In other words, as you add images, keep the index number
of the first image identical. If you do not follow that requirement,
there might be confusion on the correspondence between extracted
corners, and image indices, and you may have to restart calibration
from scratch. At any time during calibration, if you want to
graphically see the current list of images, run the matlab script file
mosaic.
No-prompt use: Setting the global variable dont_ask
to one lets you use the main toolbox functions (optimization +
graphical display) in script mode without being prompted. This is also
quite useful for including calibration calls in your own matlab script
files. To set the toolbox in normal mode again, set dont_ask to
zero (or clear the variable). For illustration, check examples 2, 3
and 4.
Exporting calibration data to other formats: There is now a
tool that allows to export calibration data (image corner locations +
3D world coordinates) to other formats that are compatible with
Willson, Heikkilä and Zhang calibration codes. This option is useful
for comparison purposes. The name of the matlab function is
export_calib_data.m, and can be launched by clicking on
Export calib data in the main calibration window. For more
information, go to the first calibration
example page.
Converting Calibration results from Reg Willson's format :
There is now a matlab script file willson_read.m that converts
the calibration parameters generated by Reg Willson's calibration code
into our convention. Visit page describing
the parameters for more information.
Selecting the intrinsic variables to estimate: The user can
now take some of the camera intrinsic parameters out of the
optimization. For example, it is possible to reject the principal
point from the optimization by setting the variable
center_optim to zero. It is also possible to reject the
distortion model by setting the variable est_dist to the binary
vector [0;0;0;0;0]. Other options as possible for the
distortion model. For example, setting only the first entry of
est_dist to one while leaving the other three entrie to zero
would restrict the optimization to be done using a one parameter
distortion model (first order radial distortion model). In addtion, it
is now possible to run the optimization over the skew coefficient
alpha_c by setting the binary variable est_alpha to
one. For example, visit the first and second calibration example pages, and the page describing the calibration parameters.
Now estimatates the Uncertainties: Now, the main
optimization function go_calib_optim.m returns the
uncertainties attached to the estimated calibration parameters
(intrinsic and extrinsic)
Look at the function
go_calib_optim_iter.m for more information.
Stereo calibration: To calibrate a stereo system you may use the stereo calibration
script calib_stereo.m. This script is not documented here, but a lot of information can be retrieved by typing help calib_stereo in the main Matlab window. Many users have successfully used it.