class AprilTag – AprilTag-object

Het apriltag-object is een attrtuple die wordt geretourneerd door Image.find_apriltags(). Elke instantie beschrijft een gedecodeerde AprilTag: het begrenzingsvak, de subpixel-centroïde, de familie/id, kwaliteitsmetrieken van de decoder, de vier gedetecteerde hoeken en – wanneer intrinsieke parameters aan Image.find_apriltags() worden meegegeven – een 6-DoF poseschatting in het cameraframe.

Velden zijn toegankelijk via attribuutnaam (tag.id) of via index (tag[0]). Het object heeft geen openbare constructor.

class image.apriltag

Roep Image.find_apriltags() aan om dit object te maken.

Begrenzingsvak en hoeken

x

X-coördinaat linksboven van het begrenzingsvak, in pixels. Integer. Index [0].

y

Y-coördinaat linksboven van het begrenzingsvak, in pixels. Integer. Index [1].

w

Breedte van het begrenzingsvak, in pixels. Integer. Index [2].

h

Hoogte van het begrenzingsvak, in pixels. Integer. Index [3].

cx

X-coördinaat van de centroïde, afgerond op een int. Integer. Index [4].

cy

Y-coördinaat van de centroïde, afgerond op een int. Integer. Index [5].

cxf

X-coördinaat van de centroïde als een subpixel-float. Index [9].

cyf

Y-coördinaat van de centroïde als een subpixel-float. Index [10].

corners

4-tuple van (x, y)-integertuples voor de vier gedetecteerde hoeken van de tag, gesorteerd met de klok mee vanaf de linkerbovenhoek. Index [21].

area

Oppervlakte van het begrenzingsvak (w * h). Integer. Index [22].

rect

(x, y, w, h) 4-tuple van het begrenzingsvak. Geschikt om direct door te geven aan teken-/bijsnijdmethoden zoals Image.draw_rectangle() of Image.crop(). Index [23].

Identificatie

id

Numerieke id van de tag binnen zijn familie. Het geldige bereik hangt af van de familie (bijv. 0 – 586 voor TAG36H11). Integer. Index [6].

family

Numerieke familie-identificator, een van:

Integer. Index [7].

name

Familienaam als een string, bijv. "TAG36H11". Index [8].

Matchkwaliteit

decision_margin

Kwaliteit van de tag-match in het bereik 0.0 – 1.0 waarbij 1.0 het beste is. Gebruik dit om detecties met lage betrouwbaarheid af te wijzen. Float. Index [12].

hamming

Aantal bitfouten dat de decoder voor deze tag heeft geaccepteerd. Begrensd door de correctiecapaciteit van de familie:

  • TAG16H5 -> tot 0 bitfouten

  • TAG25H9 -> tot 3 bitfouten

  • TAG36H10 -> tot 3 bitfouten

  • TAG36H11 -> tot 4 bitfouten

Lager is beter. Integer. Index [13].

goodness

Beeldkwaliteit van de tag in het bereik 0.0 – 1.0 waarbij 1.0 het beste is. Momenteel altijd 0.0 in de uitgebrachte firmware (de onderliggende decoder berekent deze metriek niet meer). Float. Index [14].

Poseschatting

De onderstaande translatie- en rotatievelden worden alleen gevuld wanneer Image.find_apriltags() wordt aangeroepen met de intrinsieke cameraparameters fx, fy, cx en cy. Zonder intrinsieke parameters zijn ze 0.0. Er wordt aangenomen dat de tag 1 eenheid breed is, dus translaties zijn in “tag-breedtes” – schaal met de werkelijke tag-grootte om metrische afstanden te krijgen.

x_translation

X-translatie vanaf de camera (links-rechts) in tag-breedtes. Float. Index [15].

y_translation

Y-translatie vanaf de camera (omhoog-omlaag) in tag-breedtes. Float. Index [16].

z_translation

Z-translatie vanaf de camera (voor-achter) in tag-breedtes. Float. Index [17].

x_rotation

Rotatie om de X-as (pitch) in radialen. Float. Index [18].

y_rotation

Rotatie om de Y-as (yaw) in radialen. Float. Index [19].

z_rotation

Rotatie om de Z-as (roll) in radialen. Dezelfde waarde als rotation – gedupliceerd voor symmetrie met x_rotation en y_rotation. Float. Index [20].

rotation

Rotatie van de tag in het beeldvlak in radialen. Gelijk aan z_rotation. Float. Index [11].