class AprilTag – objeto AprilTag

El objeto apriltag es un attrtuple devuelto por Image.find_apriltags(). Cada instancia describe un AprilTag decodificado: su cuadro delimitador, su centroide sub-píxel, su familia/id, las métricas de calidad del decodificador, las cuatro esquinas detectadas y –cuando se proporcionan los parámetros intrínsecos a Image.find_apriltags()– una estimación de pose de 6 grados de libertad (6-DoF) en el sistema de referencia de la cámara.

Los campos son accesibles por nombre de atributo (tag.id) o por índice (tag[0]). El objeto no tiene constructor público.

class image.apriltag

Por favor, llame a Image.find_apriltags() para crear este objeto.

Cuadro delimitador y esquinas

x

Coordenada x de la esquina superior izquierda del cuadro delimitador, en píxeles. Entero. Índice [0].

y

Coordenada y de la esquina superior izquierda del cuadro delimitador, en píxeles. Entero. Índice [1].

w

Ancho del cuadro delimitador, en píxeles. Entero. Índice [2].

h

Alto del cuadro delimitador, en píxeles. Entero. Índice [3].

cx

Coordenada x del centroide, redondeada a entero. Entero. Índice [4].

cy

Coordenada y del centroide, redondeada a entero. Entero. Índice [5].

cxf

Coordenada x del centroide como float sub-píxel. Índice [9].

cyf

Coordenada y del centroide como float sub-píxel. Índice [10].

corners

Tupla de 4 elementos de tuplas enteras (x, y) para las cuatro esquinas detectadas de la etiqueta, ordenadas en sentido horario empezando por la esquina superior izquierda. Índice [21].

area

Área del cuadro delimitador (w * h). Entero. Índice [22].

rect

Tupla de 4 elementos (x, y, w, h) del cuadro delimitador. Adecuada para pasar directamente a métodos de dibujo/recorte como Image.draw_rectangle() o Image.crop(). Índice [23].

Identificación

id

Id numérico de la etiqueta dentro de su familia. El rango válido depende de la familia (p. ej. 0 – 586 para TAG36H11). Entero. Índice [6].

family

Identificador numérico de familia, uno de:

Entero. Índice [7].

name

Nombre de familia como cadena, p. ej. "TAG36H11". Índice [8].

Calidad de coincidencia

decision_margin

Calidad de la coincidencia de la etiqueta en el rango 0.0 – 1.0 donde 1.0 es la mejor. Úsela para rechazar detecciones de baja confianza. Float. Índice [12].

hamming

Número de errores de bit que el decodificador aceptó para esta etiqueta. Acotado por la capacidad de corrección de la familia:

  • TAG16H5 -> hasta 0 errores de bit

  • TAG25H9 -> hasta 3 errores de bit

  • TAG36H10 -> hasta 3 errores de bit

  • TAG36H11 -> hasta 4 errores de bit

Menor es mejor. Entero. Índice [13].

goodness

Calidad de imagen de la etiqueta en el rango 0.0 – 1.0 donde 1.0 es la mejor. Actualmente siempre 0.0 en el firmware publicado (el decodificador subyacente ya no calcula esta métrica). Float. Índice [14].

Estimación de pose

Los campos de traslación y rotación a continuación solo se rellenan cuando Image.find_apriltags() se llama con los parámetros intrínsecos de la cámara fx, fy, cx y cy. Sin parámetros intrínsecos son 0.0. Se asume que la etiqueta tiene 1 unidad de ancho, por lo que las traslaciones están en «anchos de etiqueta»: escale por el tamaño real de la etiqueta para obtener distancias métricas.

x_translation

Traslación X desde la cámara (izquierda-derecha) en anchos de etiqueta. Float. Índice [15].

y_translation

Traslación Y desde la cámara (arriba-abajo) en anchos de etiqueta. Float. Índice [16].

z_translation

Traslación Z desde la cámara (adelante-atrás) en anchos de etiqueta. Float. Índice [17].

x_rotation

Rotación sobre el eje X (cabeceo) en radianes. Float. Índice [18].

y_rotation

Rotación sobre el eje Y (guiñada) en radianes. Float. Índice [19].

z_rotation

Rotación sobre el eje Z (alabeo) en radianes. Mismo valor que rotation – duplicado por simetría con x_rotation e y_rotation. Float. Índice [20].

rotation

Rotación de la etiqueta en el plano de la imagen en radianes. Igual a z_rotation. Float. Índice [11].