A detector is a description of what feature(s) to identify in an observation to generate our object space.
Anyone who has ever tried their hand at calibration is familiar with the checkerboard. This is a flat, contrasting pattern of squares with known dimensionality. It's known for its ease of creation and flexibility in use.
We're actually not fans of the checkerboard on its own because of its many drawbacks. It is much better utilized in a Markerboard. Read why in Detector Considerations.
Markerboards are similar to checkerboards, but contain a series of coded markers in the empty spaces of the checkerboard. These codes are most often in the form of April or ArUco tags, which allow for better identification and isolation of features.
Note: A Markerboard is the preferred Detector type for camera data in TVCal.
Aprilgrids are patterned sets of Apriltags. They have constrasting squares in the corner of every tag; this provides feature detection algorithms more information to derive corner locations.
"Markers" is a general catch-all for a collection of signalized markers, e.g. a calibration space made up of many unconnected ArUco or April tags.
Target List Descriptor
Markers require a target list descriptor, which provides the coordinates of each of the targets themselves in metric space. See the Descriptor documentation for more information.
While TVCal supports checkerboards, it's important to note their limitations:
- Points on the checkerboard are ambiguous. No calibration system can reliably tell the difference between a checkerboard rotated 180° and one that is not rotated at all. The same applies between rotations of 90° and 270°. This ambiguity means that TVCal cannot reliably differentiate extrinsics, which causes projective compensation.
- The entire checkerboard needs to be visible in the field-of-view of the camera. With coded targets or asymmetric patterns, TVCal can still identify key features without the full target in view.
Advanced Topics: Projective Compensation
The dangers of projective compensation are real. Check out the documentation to learn more.
We recommend using coded detectors like the Markerboard or Markers whenever possible. This allows TVCal to be more flexible to different calibration pipelines, and reduces the burden on you to keep the entire object space in frame at all times.