Class AprilTagConfig

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class AprilTagConfig : public dai::Buffer

AprilTagConfig message.

Public Types

enum class Family : std::int32_t

Supported AprilTag families.

Values:

enumerator TAG_36H11
enumerator TAG_36H10
enumerator TAG_25H9
enumerator TAG_16H5
enumerator TAG_CIR21H7
enumerator TAG_STAND41H12

Public Functions

AprilTagConfig() = default
~AprilTagConfig() override
virtual void serialize(std::vector<std::uint8_t> &metadata, DatatypeEnum &datatype) const override
AprilTagConfig &setFamily(Family family)
Parameters:

familyAprilTag family

DEPTHAI_SERIALIZE(AprilTagConfig, Buffer::sequenceNum, Buffer::ts, Buffer::tsDevice, family, quadDecimate, quadSigma, refineEdges, decodeSharpening, maxHammingDistance, quadThresholds)

Public Members

Family family = Family::TAG_36H11

AprilTag family.

std::int32_t quadDecimate = 4

Detection of quads can be done on a lower-resolution image, improving speed at a cost of pose accuracy and a slight decrease in detection rate. Decoding the binary payload is still done at full resolution.

float quadSigma = 0.0f

What Gaussian blur should be applied to the segmented image. Parameter is the standard deviation in pixels. Very noisy images benefit from non-zero values (e.g. 0.8).

bool refineEdges = true

When non-zero, the edges of the each quad are adjusted to “snap

to” strong gradients nearby. This is useful when decimation is employed, as it can increase the quality of the initial quad estimate substantially. Generally recommended to be on. Very computationally inexpensive. Option is ignored if quadDecimate = 1.

float decodeSharpening = 0.25f

How much sharpening should be done to decoded images? This can help decode small tags but may or may not help in odd lighting conditions or low light conditions. The default value is 0.25.

std::int32_t maxHammingDistance = 1

Max number of error bits that should be corrected. Accepting large numbers of corrected errors leads to greatly increased false positive rates. As of this implementation, the detector cannot detect tags with a hamming distance greater than 2.

QuadThresholds quadThresholds

AprilTag quad threshold parameters.

struct QuadThresholds

AprilTag quad threshold parameters.

Public Members

std::int32_t minClusterPixels = 5

Reject quads containing too few pixels.

std::int32_t maxNmaxima = 10

How many corner candidates to consider when segmenting a group of pixels into a quad.

float criticalDegree = 10.f

Reject quads where pairs of edges have angles that are close to straight or close to 180 degrees. Zero means that no quads are rejected. (In degrees).

float maxLineFitMse = 10.f

When fitting lines to the contours, what is the maximum mean squared error allowed? This is useful in rejecting contours that are far from being quad shaped; rejecting these quads “early” saves expensive decoding processing.

std::int32_t minWhiteBlackDiff = 5

When we build our model of black & white pixels, we add an extra check that the white model must be (overall) brighter than the black model. How much brighter? (in pixel values: [0,255]).

bool deglitch = false

Should the thresholded image be deglitched? Only useful for very noisy images