Tutorial Camera Calibration

From BoofCV
Revision as of 11:04, 28 February 2012 by Peter (talk | contribs) (Added detector images)
Jump to navigationJump to search

Camera Calibration

Camera calibration is the process of estimating the cameras parameters. It can either refer to the intrinsic parameters or the extrinsic parameters. Intrinsic parameters deal with camera specific features such as its focal length, skew, distortion, and image center. Extrinsic parameters describe its position and orientation in the world. For the remainder of this page we will focus on estimating intrinsic parameters.

BoofCV provides several software tools and support for different calibration target types. In a typical scenario calibration will be done by viewing a calibration target from different locations and orientations. Calibration points are then detected in these images. Since the geometry of the calibration target is known the cameras intrinsic parameters can be estimated to a high level of accuracy.

The most common way to calibrate a camera is using planar calibration targets with squares on them. BoofCV provides support for two different types of planar calibration targets with different patterns of squares on them, chess board and square grid. The code itself can be reused to detect similar types of application specific calibration targets.

CALIBRATION IS STILL A WORK IN PROGRESS

See the note above? You have been warned. The API is in flux and will not be discussed in detail. So far the results are a bit less accurate than expected, but good enough to remove most of the radial distortion. To judge for yourself take a look at the last applet below which estimates the calibration parameters.

Applet List

While instructions are not yet provided, you can still view the code and figure out how to calibrate a camera using BoofCV. Just look at the classes inside of the boofcv.alg.geo.calibration package

Calibration Targets

Fully automatic algorithms are provided for detecting the two types of calibration grids above. Calibration points are located at different locations on each target type. For the chess board pattern only the interior corners are used while for the square grid pattern all corner points are used.