class AprilTag – AprilTag-Objekt¶
Das apriltag-Objekt ist ein attrtuple, das von Image.find_apriltags() zurückgegeben wird. Jede Instanz beschreibt einen dekodierten AprilTag: seinen Begrenzungsrahmen, den Subpixel-Schwerpunkt, Familie/ID, Qualitätsmetriken des Decoders, die vier erkannten Ecken und – wenn Image.find_apriltags() Intrinsics übergeben werden – eine 6-DoF-Lageschätzung im Kamerabezugssystem.
Felder sind über den Attributnamen (tag.id) oder über den Index (tag[0]) zugänglich. Das Objekt hat keinen öffentlichen Konstruktor.
- class image.apriltag¶
Rufen Sie bitte
Image.find_apriltags()auf, um dieses Objekt zu erstellen.Begrenzungsrahmen und Ecken¶
- x¶
x-Koordinate der oberen linken Ecke des Begrenzungsrahmens, in Pixeln. Integer. Index
[0].
- y¶
y-Koordinate der oberen linken Ecke des Begrenzungsrahmens, in Pixeln. Integer. Index
[1].
- w¶
Breite des Begrenzungsrahmens, in Pixeln. Integer. Index
[2].
- h¶
Höhe des Begrenzungsrahmens, in Pixeln. Integer. Index
[3].
- cx¶
x-Koordinate des Schwerpunkts, auf int gerundet. Integer. Index
[4].
- cy¶
y-Koordinate des Schwerpunkts, auf int gerundet. Integer. Index
[5].
- cxf¶
x-Koordinate des Schwerpunkts als Subpixel-Float. Index
[9].
- cyf¶
y-Koordinate des Schwerpunkts als Subpixel-Float. Index
[10].
- corners¶
4-Tupel aus
(x, y)-Integer-Tupeln für die vier erkannten Ecken des Tags, im Uhrzeigersinn sortiert beginnend mit der oberen linken Ecke. Index[21].
- area¶
Fläche des Begrenzungsrahmens (
w * h). Integer. Index[22].
- rect¶
(x, y, w, h)-4-Tupel des Begrenzungsrahmens. Geeignet zur direkten Übergabe an Zeichnungs-/Zuschneidemethoden wieImage.draw_rectangle()oderImage.crop(). Index[23].
Identifikation¶
- id¶
Numerische ID des Tags innerhalb seiner Familie. Der gültige Bereich hängt von der Familie ab (z. B. 0 – 586 für
TAG36H11). Integer. Index[6].
- family¶
Numerischer Familienbezeichner, einer von:
Integer. Index
[7].
- name¶
Familienname als String, z. B.
"TAG36H11". Index[8].
Übereinstimmungsqualität¶
- decision_margin¶
Qualität der Tag-Übereinstimmung im Bereich 0.0 – 1.0, wobei 1.0 der beste Wert ist. Verwenden Sie dies, um Erkennungen mit geringer Konfidenz abzulehnen. Float. Index
[12].
- hamming¶
Anzahl der Bitfehler, die der Decoder für dieses Tag akzeptiert hat. Begrenzt durch die Korrekturfähigkeit der Familie:
TAG16H5-> bis zu 0 BitfehlerTAG25H9-> bis zu 3 BitfehlerTAG36H10-> bis zu 3 BitfehlerTAG36H11-> bis zu 4 Bitfehler
Niedriger ist besser. Integer. Index
[13].
- goodness¶
Bildqualität des Tags im Bereich 0.0 – 1.0, wobei 1.0 der beste Wert ist. In der veröffentlichten Firmware derzeit immer 0.0 (der zugrunde liegende Decoder berechnet diese Metrik nicht mehr). Float. Index
[14].
Lageschätzung¶
Die unten aufgeführten Translations- und Rotationsfelder werden nur ausgefüllt, wenn
Image.find_apriltags()mit den Kamera-Intrinsicsfx,fy,cxundcyaufgerufen wird. Ohne Intrinsics sind sie 0.0. Es wird angenommen, dass das Tag 1 Einheit breit ist, sodass Translationen in „Tag-Breiten“ angegeben werden – skalieren Sie mit der realen Tag-Größe, um metrische Entfernungen zu erhalten.- x_translation¶
X-Translation von der Kamera (links-rechts) in Tag-Breiten. Float. Index
[15].
- y_translation¶
Y-Translation von der Kamera (oben-unten) in Tag-Breiten. Float. Index
[16].
- z_translation¶
Z-Translation von der Kamera (vorne-hinten) in Tag-Breiten. Float. Index
[17].
- x_rotation¶
Rotation um die X-Achse (Nicken) in Radiant. Float. Index
[18].
- y_rotation¶
Rotation um die Y-Achse (Gieren) in Radiant. Float. Index
[19].
- z_rotation¶
Rotation um die Z-Achse (Rollen) in Radiant. Derselbe Wert wie
rotation– aus Symmetriegründen mitx_rotationundy_rotationdupliziert. Float. Index[20].
- rotation¶
Rotation des Tags in der Bildebene in Radiant. Gleich
z_rotation. Float. Index[11].