class AprilTag – objet AprilTag

L’objet apriltag est un attrtuple renvoyé par Image.find_apriltags(). Chaque instance décrit un AprilTag décodé : sa boîte englobante, son centroïde sous-pixel, sa famille/son identifiant, ses métriques de qualité de décodage, les quatre coins détectés et – lorsque les paramètres intrinsèques sont fournis à Image.find_apriltags() – une estimation de pose à 6 degrés de liberté dans le repère de la caméra.

Les champs sont accessibles par nom d’attribut (tag.id) ou par index (tag[0]). L’objet n’a pas de constructeur public.

class image.apriltag

Veuillez appeler Image.find_apriltags() pour créer cet objet.

Boîte englobante et coins

x

Coordonnée x du coin supérieur gauche de la boîte englobante, en pixels. Entier. Index [0].

y

Coordonnée y du coin supérieur gauche de la boîte englobante, en pixels. Entier. Index [1].

w

Largeur de la boîte englobante, en pixels. Entier. Index [2].

h

Hauteur de la boîte englobante, en pixels. Entier. Index [3].

cx

Coordonnée x du centroïde, arrondie à un entier. Entier. Index [4].

cy

Coordonnée y du centroïde, arrondie à un entier. Entier. Index [5].

cxf

Coordonnée x du centroïde sous forme de float sous-pixel. Index [9].

cyf

Coordonnée y du centroïde sous forme de float sous-pixel. Index [10].

corners

Quadruplet de tuples entiers (x, y) pour les quatre coins détectés du tag, triés dans le sens horaire à partir du coin supérieur gauche. Index [21].

area

Aire de la boîte englobante (w * h). Entier. Index [22].

rect

Quadruplet (x, y, w, h) de la boîte englobante. Adapté pour être passé directement à des méthodes de dessin/rognage telles que Image.draw_rectangle() ou Image.crop(). Index [23].

Identification

id

Identifiant numérique du tag au sein de sa famille. La plage valide dépend de la famille (p. ex. 0 – 586 pour TAG36H11). Entier. Index [6].

family

Identifiant numérique de famille, l’un de :

Entier. Index [7].

name

Nom de la famille sous forme de chaîne, p. ex. "TAG36H11". Index [8].

Qualité de correspondance

decision_margin

Qualité de la correspondance du tag dans la plage 0.0 – 1.0 où 1.0 est la meilleure. Utilisez-la pour rejeter les détections peu fiables. Float. Index [12].

hamming

Nombre d’erreurs de bits que le décodeur a acceptées pour ce tag. Limité par la capacité de correction de la famille :

  • TAG16H5 -> jusqu’à 0 erreur de bit

  • TAG25H9 -> jusqu’à 3 erreurs de bit

  • TAG36H10 -> jusqu’à 3 erreurs de bit

  • TAG36H11 -> jusqu’à 4 erreurs de bit

Plus c’est bas, mieux c’est. Entier. Index [13].

goodness

Qualité d’image du tag dans la plage 0.0 – 1.0 où 1.0 est la meilleure. Actuellement toujours 0.0 dans le micrologiciel publié (le décodeur sous-jacent ne calcule plus cette métrique). Float. Index [14].

Estimation de pose

Les champs de translation et de rotation ci-dessous ne sont renseignés que lorsque Image.find_apriltags() est appelée avec les paramètres intrinsèques de caméra fx, fy, cx et cy. Sans paramètres intrinsèques, ils valent 0.0. Le tag est supposé large de 1 unité, de sorte que les translations sont exprimées en « largeurs de tag » – multipliez par la taille réelle du tag pour obtenir des distances métriques.

x_translation

Translation X par rapport à la caméra (gauche-droite) en largeurs de tag. Float. Index [15].

y_translation

Translation Y par rapport à la caméra (haut-bas) en largeurs de tag. Float. Index [16].

z_translation

Translation Z par rapport à la caméra (avant-arrière) en largeurs de tag. Float. Index [17].

x_rotation

Rotation autour de l’axe X (tangage) en radians. Float. Index [18].

y_rotation

Rotation autour de l’axe Y (lacet) en radians. Float. Index [19].

z_rotation

Rotation autour de l’axe Z (roulis) en radians. Même valeur que rotation – dupliquée par symétrie avec x_rotation et y_rotation. Float. Index [20].

rotation

Rotation du tag dans le plan de l’image en radians. Égale à z_rotation. Float. Index [11].