Apriltags Draw Circles on Detection
Designing the perfect Apriltag
Posted by Daniel Nugent on
At Optitag we give you the freedom to pattern your Apriltags the mode you want. However, this liberty can exist intimidating if you're new to Apriltags.
Picking an AprilTag family
Generation
There are 2 generations of AprilTag families, Apriltag two and AprilTag 3. AprilTag two is the archetype Apriltag. Apriltag ii (gen2) should be used if you want a improve out of box experience. Information technology is tried and true and compatible with more than software. Apriltag iii (gen 3) is the newest generation of AprilTag technology. If you want to access to the cool new features (circumvolve tags, recursive tags, faster detections, and higher retrieve rates) but less software support cull Apriltag three.
What well-nigh Apriltag i? Apriltag 1 and 2 are the aforementioned tag design, but the algorithm improved from gen ane to gen 2. Apriltag generations actually denote the algoritmn generation. It merely happened that gen 3 added more functionality and tag families.
Apriltag ii | Apriltag three | |
ROS back up | ✅ | ❌ |
OpenCV support | ✳️ | ✳️ |
OpenMV back up | ✅ | ❌ |
2x faster detection | ❌ | ✅ |
More than accurate detections | ❌ | ✅ |
Borderless tags | ❌ | ✅ |
Round tags | ❌ | ✅ |
Recursive tags | ❌ | ✅ |
✳️ OpenCV doesn't include Apriltag support simply the Apriltag Library tin can be built from source and used with OpenCV. This includes both C and Python bindings
Family
In one case you have picked your Apriltag generation you still demand to select a tag family. Apriltag two and Apriltag 3 have unlike families to choose from.Note: All gen 2 tags are can be used with the gen iii detector
Family | Generation | Unique Tag IDs |
16h5 | Apriltag two | 30 |
25h9 | Apriltag 2 | 35 |
36h11 - recommended | Apriltag 2 | 587 |
Circle21h7 | Apriltag 3 | 38 |
Cirlce49h12 | Apriltag 3 | 65,698 |
Custom48h12 | Apriltag iii | 42,211 |
Standard41h12 | Apriltag three | 2,115 |
Standard52h13 - recommended | Apriltag iii | 48,714 |
Family names can exist broken down into ii numbers. The outset number (before the "h") is the number of bitsand the second number (later the "h") is thehamming distance. More bits means more tag ids are available in that family. A larger hamming distance allows for more error correction while decoding tag ids. This means if the bits in a tag are read incorrectly, a larger hamming distance allows the tag to be properly identified despite errors. However.a larger hamming distance does reduce the number of available tag ids. i.e. 36h11 would take more available ids than 36h15, but 36h11 would have a higher faux positive charge per unit compared to 36h15.
Some other thing to proceed in heed is the more bits a tag has, the more pixels are required to decode information technology. This means lower bit tags can be detected further away because they require less resolution to decode. So 25h9 can be detected further abroad than 36h11 if the tags are the same size. However, 25h9 volition have a college false positive rate.
If you cull Apriltag 3 you take an extra choice: family unit type. Family blazon allows tags to haveflexible layouts. In the paradigm below the dashed line denotes the active regions on the tag. Any bits within this region are necessary for detecting that tag family. Anything outside this regions doesn't matter. The Circumvolve type allows the tag to exist cut in a more circular shape based on its agile region. The Custom type allows things to be identify in the center of the tag (another tag or a visitor logo).
Summary
Pick Apriltag 2 if y'all want maximum software support. Option Apriltag iii if you want the newest features and are willing to piece of work with bare bones software.
Apriltag 2: 36h11 is recommended for virtually applications. It is the most robust tag and has the nigh tag ids available. Pick 25h9 if you lot need more than distance and are willing to cede robustness and the number of tag ids. Selection 16h5 if you lot need maximum range and are willing to accept a very high false positive rate and limited tag ids. This family is not recommended unless you take a specific application in mind. If you are attempting to increase detection distance information technology is recommended you increase your camera's resolution/zoom and increment the tag size before picking 16h5.
Apriltag 3:Standard52h13 is recommended by the creators of Apriltag. It is the virtually robust tag and has a large number of tag ids available. The Custom48h12 is keen for placing logos within your tags and making drone landing targets (both coming soon to Optitag). Circle49h12 is great if you desire a more circular tag (circle cuts coming presently to Optitag).
Extra: Fun tags
Tags usually look random just if you squint hard plenty y'all might see something familiar.
Computing optimal size
Calculating the optimal size of your Apriltag usually depends on how far away you want to observe a tag. Before nosotros get into calculating the max distance for a tag distance, I want to mention some caveats with long range detection. Long range detections unremarkably means your tags appears minor in an image which results in low resolution detection. This has some pitfalls:
- The tag is less likely it is to get detected
- If detected, the tag is more than likely to become identified as another tag id
- If detected, the pose judge is going to be less authentic
Max detection distance
Max detection distance in meters = t /(2 * tan( (b* f * p) / (2 * r ) ) )
t = size of your tag in meters - Optitag calls this Edge Length or size
b= the number of bits that span the width of the tag (excluding the white border for Apriltag 2). ex: 36h11 = 8, 25h9 = 6, standard41h12 = 9
f= horizontal FOV of your camera
r = horizontal resolution of you camera
p = the number of pixels required to detect a flake. This is an adjustable constant. Nosotros recommend 5. Lowest number nosotros recommend is 2 which is the Nyquist Frequency. Nosotros recommend five to avoid some of the detection pitfalls mentioned in a higher place.
When to add a edge extension
At Optitag we allow y'all to extend the border of your tag. This has a couple benefits: If you plan to hold your tag during use, your fingers volition probable wrap around the border of the tag. This potentially places your fingers in an active region of the tag and may screw up detection of the tag.Yes, the ane bit white border is necessary for properly detecting the tag. Additionally, if you mountain your tag in a frame and the border gets partially covered it may have the same consequence. For both these scenarios it is recommended that you extend the border of your tag so the active region stays fully visible.
Textile selection
Nosotros have a whole blog mail on this.
Additional Reading
If you desire to learn more about how Apriltags work checkout our otherblog postsor seeReferences.
If there is something else yous want to see covered get out a annotate below.
References
- https://doctor.rc-visard.com/latest/en/tagdetect.html
- https://github.com/AprilRobotics/apriltag/wiki/AprilTag-User-Guide
- https://apr.eecs.umich.edu/software/apriltag
- Tags: apriltag, apriltags, tags
0 comments
Source: https://optitag.io/blogs/news/designing-your-perfect-apriltag
0 Response to "Apriltags Draw Circles on Detection"
Post a Comment