classe AprilTag – objeto AprilTag¶
O objeto apriltag é um attrtuple devolvido por Image.find_apriltags(). Cada instância descreve um AprilTag descodificado: a sua caixa delimitadora, centróide sub-pixel, família/id, métricas de qualidade do descodificador, os quatro cantos detetados e – quando são fornecidos parâmetros intrínsecos a Image.find_apriltags() – uma estimativa de pose com 6 graus de liberdade no referencial da câmara.
Os campos são acessíveis por nome de atributo (tag.id) ou por índice (tag[0]). O objeto não tem construtor público.
- class image.apriltag¶
Por favor, 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 centróide, arredondada para inteiro. Inteiro. Índice
[4].
- cy¶
Coordenada y do centróide, arredondada para inteiro. Inteiro. Índice
[5].
- cxf¶
Coordenada x do centróide como float sub-pixel. Índice
[9].
- cyf¶
Coordenada y do centróide como float sub-pixel. Índice
[10].
- corners¶
Tuplo de 4 elementos de tuplos inteiros
(x, y)para os quatro cantos detetados da etiqueta, ordenados no sentido dos ponteiros do relógio a partir do canto superior esquerdo. Índice[21].
- area¶
Área da caixa delimitadora (
w * h). Inteiro. Índice[22].
- rect¶
Tuplo de 4 elementos
(x, y, w, h)da caixa delimitadora. Adequado para passar diretamente a métodos de desenho/recorte comoImage.draw_rectangle()ouImage.crop(). Índice[23].
Identificação¶
- id¶
ID numérico da etiqueta dentro da sua família. O intervalo válido depende da família (por ex. 0 – 586 para
TAG36H11). Inteiro. Índice[6].
- family¶
Identificador numérico da família, um de:
Inteiro. Índice
[7].
- name¶
Nome da família como string, por ex.
"TAG36H11". Índice[8].
Qualidade da correspondência¶
- decision_margin¶
Qualidade da correspondência da etiqueta no intervalo 0.0 – 1.0, onde 1.0 é a melhor. Use este valor para rejeitar deteções com baixa confiança. Float. Índice
[12].
- hamming¶
Número de erros de bit que o descodificador aceitou para esta etiqueta. Limitado pela capacidade de correção da família:
TAG16H5-> até 0 erros de bitTAG25H9-> até 3 erros de bitTAG36H10-> até 3 erros de bitTAG36H11-> até 4 erros de bit
Menor é melhor. Inteiro. Índice
[13].
- goodness¶
Qualidade de imagem da etiqueta no intervalo 0.0 – 1.0, onde 1.0 é a melhor. Atualmente sempre 0.0 no firmware lançado (o descodificador subjacente deixou de calcular 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 de câmarafx,fy,cxecy. Sem parâmetros intrínsecos, têm o valor 0.0. A etiqueta é assumida com 1 unidade de largura, pelo que as translações estão em «larguras de etiqueta» – multiplique pelo tamanho real da etiqueta para obter distâncias em unidades métricas.- x_translation¶
Translação X a partir da câmara (esquerda-direita) em larguras de etiqueta. Float. Índice
[15].
- y_translation¶
Translação Y a partir da câmara (cima-baixo) em larguras de etiqueta. Float. Índice
[16].
- z_translation¶
Translação Z a partir da câmara (frente-trás) em larguras de etiqueta. 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 comx_rotationey_rotation. Float. Índice[20].
- rotation¶
Rotação no plano da imagem da etiqueta em radianos. Igual a
z_rotation. Float. Índice[11].