We now offer checkerboard calibration targets on Dibond with an Anti-Reflective surface "flood white" print option for a true matte finish, making them more easily detected in your computer vision pipeline.
Are you looking to pre-calibrate your camera with a calibration target to be as accurate as possible? Our checkerboard calibration targets are printed directly onto a rigid on premium 1/8 inch Dibond, making them the perfect calibration boards to calibrate cameras.
Direct to substrate printing at 1000 dpi with anti-reflective surface "flood white" authentic matte finish allows for easy detection in your computer vision pipeline because of its optical performance and physical robustness.
Dibond signage has forever been an industry standard for indoor and outdoor business signs. The material is water, weather, warp resistant and rust proof. It's ultra flat and rigid structure makes Dibond the perfect material for calibration targets.
While there are many patterns photographers can use to calibrate their cameras, a camera calibration checkerboard pattern is a much popular selection.
With the ease of determining a checkerboard pattern on an image and how straightforward it is to localize the corners of the squares of a checkerboard, this is no surprise.
This guide allows you to familiarize yourself with the camera calibration process, its purpose, the usage of a checkerboard pattern, and more.
Camera calibration or geometric camera calibration, or camera resectioning, refers to estimating extrinsic and intrinsic parameters of a pinhole camera. Typically, the representation of this camera parameter is in a 3×4 matrix referred to as the camera matrix.
Intrinsic parameters encompass a camera's internal characteristics, for example, focal length, distortion, image center, and skew. Extrinsic parameters cover the camera's orientation and position in the world.
Determining intrinsic parameters is crucial in 3D computer vision since it permits you to approximate the scene's structure within Euclidean space. It also eliminates lens distortion, a contributing factor to reduced accuracy.
You can either use a totally automated assisted calibration or manually collect images then process them.
Almost similar steps work when calibrating a stereo camera system and one camera. Here is a quick breakdown of the camera calibration process:
While you can use any calibration target, it is essential to note that a checkerboard pattern tends to provide slightly more accuracy.
Next, project the point onto an image plane using your camera's intrinsic parameters.
Below is the equation relating 3D points (Xw, Yw, Zw) in world coordinates to its projection (u, v) in the image coordinates are shown below
Where P represents the 3×4 Projection matrix that has two parts
The intrinsic matrix K represents the upper triangular
fx, fy represent the y and x focal lengths
cx and cy are the optical centers of y and x coordinates. Using an image's center is typically an adequate approximation.
Gamma represents the skew between the axes, which is typically 0.
The camera is termed as calibrated upon attaining extrinsic and intrinsic parameter values.
In simple terms, the camera calibration algorithm contains these inputs and outputs.
The camera's intrinsic matrix lacks skew parameters in OpenCV. Therefore, the matrix assumes the form.
Below are the popular kinds of camera calibration.
The best method to calibrate cameras when you have total control of the imaging process is by taking several photos of a pattern or object with known dimensions from various viewpoints.
We can either use a checkerboard calibration pattern or circular patterns.
Checkerboard patterns are unique and easy to decipher in an image. Moreover, the corners of squares on a checkerboard are suitable for localizing them given their steep gradients in two directions.
Another factor is the relation of these corners, given they lie on the intersection point of checkerboard lines. All these reasons aid in the robust location of the corners of squares within a checkerboard pattern.
This is a suitable method when there are geometric clues within a scene, for example, vanishing points and straight lines.
This method allows you to calibrate a camera when there is very minimal control over the imaging process (e.g., when only a single image of the scene exists)
We can split this process into four steps, as discussed below.
Let us fixate the world coordinates using a checkerboard pattern attached to a wall. The corners of the checkerboard's square represent the 3D points.
We can select any corner as the starting point of the world's coordinates. While the Y and X axes are along the wall, the Z-axis flows perpendicularly. Therefore, all points within the checkerboard fall within the XY plane.
We calculate camera parameters using known 3D points (Xw, Yw, Zw) with their respective pixel locations (u,v) on the image while calibrating.
We take images of the checkerboard pattern with known dimensions from multiple different orientations. With the world coordinate system attached to the checker board and all corner points lying on a plane, we can randomly select Zw for each point to be zero.
Given the equal spacing of points on a checkerboard, we can quickly determine each 3D point coordinate by picking a reference point (0, 0) and getting the remaining points with respect to it.
The second step involves maintaining the checkerboard in a stationary position and adjusting your camera location as you take multiple images.
Another way to approach this is by keeping your camera fixed while adjusting the checkerboard pattern to take images from multiple orientations.
Given we have multiple images and know the 3D position of the checkerboard's points in the world coordinate system, we should now determine the 2D pixel locations of the checkerboard's corners in the pictures.
OpenCV comes with findChessboardCorners, an inbuilt function that searches for a checkerboard then determines the corners' coordinates. Below is its usage in a code block:
The algorithm involves iteration and therefore needs specification of the criteria for termination.
The last calibration step involves passing 3D points in the world coordinate system with their 2D locations across all images to the calibrateCamera method of OpenCV. The implementation relies on Zhengyou Zhang's article. Its Mathematics is quite challenging and needs some basics in linear algebra.
Below is calibrateCamera's syntax:
Calibrating cameras accurately is essential and requires picking the right calibration target. While there are various calibration targets to pick from, checkerboard patterns and checkerboard maker targets are some of the most popular.
So what are their differences?
Checkerboard targets are the most used patterns. The binarization of a camera's image and determination of its quadrilaterals(black chessboard fields) facilitates the finding of chessboard corner candidates.
A separation process keeps quads of a particular size organized in an orderly grid structure with dimensions similar to user-specified requirements.
Upon pattern detection, it is straightforward to determine corner locations with extra high accuracy. This is due to corners being typically infinitely small and therefore unbiased under lens distortion or perspective transformations.
The whole chessboard needs to be visible in OpenCV for all images for it to get detected. This makes it challenging to attain details about the farthest ends of images. These areas are vital for attaining particulars since they properly restrict the lens distortion model.
Upon the checkerboard's detection, you can perform subpixel refinement to determine saddle points with accuracy. This uses similar gray values of pixels in a particular corner position. Moreover, it is more accurate than what you get with integer pixel positions.
For checkerboard targets to be rotation-invariant, columns should be an odd number while rows even or vice versa. If, for example, both rows and columns are odd, you get a rotation ambiguity of 180-degrees.
When calibrating a single camera, rotation ambiguity is not a big deal. However, during stereo calibration (two or more cameras), the same is unacceptable.
Checkerboard marker targets are from the traditional checkerboard. They can also utilize similar detection algorithms which software such as Halcon and PhotoModeler can help with.
Checkerboard marker targets contain three circles in the middle. These circles facilitate absolute referencing even when you don't have a full view of the checkerboard, provided the circles fall within all the images.
For this reason, information from an image's periphery can get included. Consequently, it ensures the validity of the fitted lens model in those sections of the image.
For many calibration tasks involving various cameras, this target brings all the advantages of a coded target like the CharuCo target.
Checkerboard marker targets are compatible with OpenCV 4.5+.
Image source: Checkerboard Marker Target
In both stereo calibration and single-camera calibration, a checkerboard pattern offers an easy way to complete the calibration process. While complicated illumination presents a challenge in camera calibration, the checkerboard pattern serves as a suitable solution for high-precision calibration.
Image Source: Screenshots from https://learnopencv.com/camera-calibration-using-opencv/