Camera calibration means finding the information necessary for mapping pixel coordinates to coordinates in the camera's reference frame, modeling the effect of the lens. If the position of the camera with respect to the world is known, pixel coordinates can then be converted to world coordinates such as millimeters.
The Calibrate Manually tool can be used to quickly find approximate values of either the focal length of a camera or the distance between the camera and a planar surface. The tool requires a known planar template object (e.g. a ruler).
- If the distance between the camera and the template object is known, the tool calculates the focal length. This option is demonstrated is this example.
- If the focal length in known, the tool calculates the distance between the camera and the object.
This procedure is not as accurate as proper calibration using the calibration tool in Camera Configurator. The manual calibration assumes perfect lens with no distortion. Camera Configurator is able to estimate also the distortion factors of the lens.
On the other hand the manual calibration procedure does not require a special calibration plate. An image of a common ruler will do as we'll see below.
Let us walk through the schema below top-down.
- The test image originates from a virtual camera configured in Image Source. At this point
Calibrationparameters are disabled by default. We will revisit these parameters later. The test image is shown below. Is it essential that the camera is positioned directly above the target at a known distance. That is, the optical axis must be perpendicular to the plane on which the target lies. If that is not the case, the calibration procedure must be done using the calibration plate and the relevant tool in Camera Configurator.
- Calibrate Manually needs the following information in order to calculate the focal length:
- Start and end points of a line on the image plane. The points can easily be positioned manually by dragging and dropping a line widget on the image window. The line widget is shown with an orange line in the above image. In this case, it spans the tick marks between 10 and 15 cm
Physical lengthof the line is 50 mm (i.e. from 10 cm to 15
- Distance between the camera's aperture and the plane where the ruler lies. In this case
Camera Distance= 100 mm.
- The tool calculates
Focal Lengthin terms of pixels. In this case, the focal length is 1949 pixels.
Framecontains the distance between the plane and the camera as Z-coordinate of the last column (
origin). The origin of the world coordinate system is by default at the center of the image (i.e. X- and Y-coordinates are zeros).
Imageoutput is a copy of the input image with the newly calculated calibration parameters attached. Hence measurements done on the calibrated image will be accurate.
- The accuracy of the measurements is demonsrated by connecting a Caliper to the calibrated image. Start and and points of the measurement line is placed with a widget between 12 and 13 centimeters so that it crosses three tick marks at 12, 12.5 and 13 cm. The tool reports that the line crosses the tick marks at distances 1, 6 and 11 millimeters measured from the beginning of the line. This is the correct answer as the tick marks are clearly 5 mm apart. There are roughly 20 pixels / millimeter in the original image so the measurement error can be expected to be about 0.05 mm.
Now we can store the calibration parameters permanently to the parameter set of the
Image Source. For this end, disconnect the image source from the calibration tool by clicking on the green dot in the
Image input socket of the calibration tool. The Image Source moves to the side as seen in the following picture.
The image source must be configured for manual calibration. For this end, set
Manual Position and
Manual Calibration. You can now drag and drop
Focal Lengthoutput from Simple Calibration tool to
Focal Lengthinput of Image Source, and
Frameoutput from Simple Calibration tool to
Frameinput of Image Source.
Now you can remove the Simple Calibration tool and connect Caliper directly to the image source. As seen below, the measurement results remain the same.
The focal length is an intrinsic property of the camera. It remains the same even if you move the camera with respect to the world plane. However, refocusing can slightly alter the focal length.
The frame you stored in the image source remains valid only as long as the camera stays put with respect to the world plane. If the camera moves, the frame has to be recalculated to get a valid perspective correction and measurement results. You can position the camera using the positioning tool in Camera Configurator. The tool can calculate perspective correction from any angle of view, so the restriction on having to place the camera directly above the world plane is lifted. You can also use QR codes to the same effect. See the cookbook entry on positioning with QR codes.