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 comoImage.draw_rectangle()ouImage.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 bitTAG25H9-> até 3 erros de bitTAG36H10-> até 3 erros de bitTAG36H11-> 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âmerafx,fy,cxecy. 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 comx_rotationey_rotation. Float. Índice[20].
- rotation#
Rotação no plano da imagem da tag em radianos. Igual a
z_rotation. Float. Índice[11].