class AprilTag – objeto AprilTag

O objeto apriltag é uma attrtuple retornada por Image.find_apriltags(). Cada instância descreve um AprilTag decodificado: sua caixa delimitadora, centroide sub-pixel, família/id, métricas de qualidade do decodificador, os quatro cantos detectados e – quando os parâmetros intrínsecos são fornecidos a Image.find_apriltags() – uma estimativa de pose de 6 graus de liberdade (6-DoF) no referencial da câmera.

Os campos são acessíveis pelo nome do atributo (tag.id) ou por índice (tag[0]). O objeto não possui construtor público.

class image.apriltag

Chame Image.find_apriltags() para criar este objeto.

Caixa delimitadora e cantos

x

Coordenada x do canto superior esquerdo da caixa delimitadora, em pixels. Inteiro. Índice [0].

y

Coordenada y do canto superior esquerdo da caixa delimitadora, em pixels. Inteiro. Índice [1].

w

Largura da caixa delimitadora, em pixels. Inteiro. Índice [2].

h

Altura da caixa delimitadora, em pixels. Inteiro. Índice [3].

cx

Coordenada x do centroide, arredondada para int. Inteiro. Índice [4].

cy

Coordenada y do centroide, arredondada para int. Inteiro. Índice [5].

cxf

Coordenada x do centroide como um float sub-pixel. Índice [9].

cyf

Coordenada y do centroide como um float sub-pixel. Índice [10].

corners

4-tupla de tuplas inteiras (x, y) para os quatro cantos detectados da tag, ordenados no sentido horário a partir do canto superior esquerdo. Índice [21].

area

Área da caixa delimitadora (w * h). Inteiro. Índice [22].

rect

4-tupla (x, y, w, h) da caixa delimitadora. Adequada para ser passada diretamente a métodos de desenho/recorte como Image.draw_rectangle() ou Image.crop(). Índice [23].

Identificação

id

Id numérico da tag dentro de sua família. A faixa válida depende da família (por exemplo, 0 – 586 para TAG36H11). Inteiro. Índice [6].

family

Identificador numérico da família, um dentre:

Inteiro. Índice [7].

name

Nome da família como uma string, por exemplo, "TAG36H11". Índice [8].

Qualidade da correspondência

decision_margin

Qualidade da correspondência da tag na faixa de 0.0 – 1.0, onde 1.0 é a melhor. Use isto para rejeitar detecções de baixa confiança. Float. Índice [12].

hamming

Número de erros de bit que o decodificador aceitou para esta tag. Limitado pela capacidade de correção da família:

  • TAG16H5 -> até 0 erros de bit

  • TAG25H9 -> até 3 erros de bit

  • TAG36H10 -> até 3 erros de bit

  • TAG36H11 -> até 4 erros de bit

Quanto menor, melhor. Inteiro. Índice [13].

goodness

Qualidade da imagem da tag na faixa de 0.0 – 1.0, onde 1.0 é a melhor. Atualmente sempre 0.0 no firmware lançado (o decodificador subjacente não calcula mais esta métrica). Float. Índice [14].

Estimativa de pose

Os campos de translação e rotação abaixo são preenchidos apenas quando Image.find_apriltags() é chamado com os parâmetros intrínsecos da câmera fx, fy, cx e cy. Sem os parâmetros intrínsecos, eles são 0.0. Assume-se que a tag tem 1 unidade de largura, então as translações são em “larguras de tag” – multiplique pelo tamanho real da tag para obter distâncias métricas.

x_translation

Translação X em relação à câmera (esquerda-direita) em larguras de tag. Float. Índice [15].

y_translation

Translação Y em relação à câmera (cima-baixo) em larguras de tag. Float. Índice [16].

z_translation

Translação Z em relação à câmera (frente-trás) em larguras de tag. Float. Índice [17].

x_rotation

Rotação em torno do eixo X (pitch) em radianos. Float. Índice [18].

y_rotation

Rotação em torno do eixo Y (yaw) em radianos. Float. Índice [19].

z_rotation

Rotação em torno do eixo Z (roll) em radianos. Mesmo valor que rotation – duplicado por simetria com x_rotation e y_rotation. Float. Índice [20].

rotation

Rotação no plano da imagem da tag em radianos. Igual a z_rotation. Float. Índice [11].