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].