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 comoImage.draw_rectangle()oImage.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 bitTAG25H9-> hasta 3 errores de bitTAG36H10-> hasta 3 errores de bitTAG36H11-> 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ámarafx,fy,cxycy. 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 conx_rotationey_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].