Outline
In this blog post we will explain everything about Charuco Targets. In order to understand Charuco Targets, we need to deal with the following topics:
- Aruco Markers
- Aruco Targets
- Checker Targets
- Charuco Targets
Aruco Markers
An Aruco Marker (Augmented Reality University of Cordoba) is a binary square synthetic marker. It consists of a black square containing an inner binary matrix (made up of white squares) that gives the marker its identifier. Three examples of an Aruco Marker are shown below:
The black border of the marker enables very fast and robust recognition of the marker in the image. The binary white matrix inside the black square provides the following benefits:
- It provides each marker with a unique ID
- It uniquely encodes each of the 4 corners so that no rotational ambiguities exist
- It allows for detecting and correcting errors
To specify an Aruco Marker, the following parameters are required:
- Matrix Size: size of the inner binary matrix, e.g. 5x5 bits
- Dictionary Size: number of markers in a dictionary, e.g. 1000. Note: The smaller the dictionary size, the higher the inter-marker distance (better error detection and correction)
- Marker ID: the unique marker ID in the specific dictionary, e.g. marker 2 of the DICT_5x5_1000
- Marker Size: square length of the black square, e.g. 10mm. Note: Depending on the marker generation software this value can be given in millimeter [mm] or pixels [px].
- Border Size: this specifies the size of the black border around the inner white matrix. The default value for the border is 1 which is exactly the size of an internal bit.
- Matrix Size: 4x4 (side length of each square is 25mm)
- Dictionary Size: 1000
- Marker ID: 0
- Marker Size: 150mm (4 * 25mm + 2 * 25mm)
- Border Size: 1 (25mm)
Aruco Targets
Aruco Targets can be created by using a dictionary of Aruco Markers and arranging them on a plane in a regular grid stricture (see image below). This ensures that the relative positions of the individual markers with respect to the board is known a priori and thus can be used as a target for camera calibration.
Checker Targets
Checkerboard Targets are the most common and popular targets for camera calibration. They are supported by almost every calibration library.
The main advantage of a Checker Target is that the corner feature points are not affected by perspective transformations or lens distortions and can therefore be detected with very high subpixel accuracy.
One drawback is that the entire Checker Target must be fully visible in the image to be detected. If the target is only partially visible or occluded, feature extraction will not work for simple checkerboard targets. This makes it somewhat difficult to collect calibration data near the edge of the image.
Charuco Targets
The name Charuco originates from the combination of: Checker + Aruco = Charuco.
Charuco Targets have been designed to combine the advantages of Aruco and Checker Targets into one camera calibration target. The key advantages are:
- Subpixel accuracy feature point detection
- Feature detection in partial or occluded views
These features make the Charuco Targets particularly useful for calibrating stereo cameras, since there is no need to ensure that the entire calibration board is in the field of view of both cameras.
To specify a Charuco Target, the following parameters are required:
- Matrix Size: size of the inner binary Aruco matrix, e.g. 5x5 bits
- Dictionary Size: number of Aruco Markers in a dictionary, e.g. 1000. Note: The smaller the dictionary size, the higher the inter-marker distance (better error detection and correction).
- Rows x Columns (Checker): number of rows and columns of the Checker Target
- Checker Size: square length of the Checkers
- Marker Size: square length of the Aruco Markers, Note: This value must be smaller than Checker Size
Have any additional questions or comments regarding this topic?