Choosing an AprilTag Family

< Previous | Contents | Manuals Home | Boris FX | Next >

Choosing an AprilTag Family

As mentioned, there are various families of AprilTags, with different advantages and disadvantages. Here is an example of each:


image

The families labeled “Circle” are designed to fit within a roughly circular area. The custom tag has an unmonitored hole in the middle, which is intended to be used to put another smaller tag! (Consider a drone visually coming into a landing pad from a distance.)

Tip : What tag family is in a shot you’ve been given? Use the "Identify Tags/- What is it?” button and SynthEyes will scan to see which it is.

The first number is the number of data bits (changeable blocks) in the tag design; the second number is the Hamming distance, the minimum number of bits that must be changed in one tag’s code to reach another tag’s code. In the 41H12 code recommended by AprilTags, there are 41 data bits, and 12 bits must be changed in the code for any tag to get to another. With a larger first number, you can have more different tags in the same family; a larger second number means that there is more tolerance to incorrect bits.

In practice, incorrect bits aren’t as much an issue as the prospect that some other non-AprilTags feature gets recognized as a false positive, a valid AprilTag where there isn’t one.

Before you rush to the most complex design, consider also that for a given

physical tag size, for example a tag a foot or 25 cm across, the more complex designs

result in a smaller data bit size, and as a result, the tag must be closer to have enough pixels for proper detection.

Here are the number of bits across (Width) and number of available tags for each

family.


Family Name

Total Width

Width of Square

Fill Factor

Number Of Tags

16H5

8

6

0.75

30

21H7 Circle

9

5

0.55

38

25H9

9

7

0.78

35

36H11

10

8

0.8

587

41H12 Standard

9

5

0.56

2115

48H12 Custom (Hole)

10

6

0.6

42211

49H12 Circle

11

5

0.45

65535

52H13 Standard

10

6

0.6

48714

You’ll also notice the Width of Square column. Looking at 16H5, for example, you’ll see that the width is listed as 8, even though it would only seem to require 6. That’s due to the mandatory padding around the outside, to have a contrasting square border.

That square is important to AprilTags: it locates the square first, and then the data bits for the tag number. It also uses the square to attempt to determine the orientation of the AprilTag (more about that later). It’s beneficial to have the square occupy a large portion of the tag (less so for circles), so the Fill Factor (width of square / total width) is shown. You can see that the large tags don’t do well there.

When we track, SynthEyes will put a tracker or object at the center location of the tag. If you choose only a tag family with an even width, and then choose the specific tags a little carefully, you can always have an nice pointy corner right at the center of the tag, which makes checking its accuracy easier (including possible additional add-on supervised tracking). If you look back at the collection of 16H5 tags, you’ll see that some are marked in red ; those are the ones that we don’t want because they don’t have a handy little point at the exact center.

Based on these considerations, the 36H11 family is a reasonable generic choice, with an even size and high fill factor, though the larger width may limit range. Your project may suggest something else. The 16H5 family may maximize range; SynthEyes’s AprilTags support gives you some features to minimize the impact of false detections.

©2024 Boris FX, Inc. — UNOFFICIAL — Converted from original PDF.