class AprilTag -- AprilTag 物件

apriltag 物件是由 Image.find_apriltags() 傳回的 attrtuple。每個實例描述一個已解碼的 AprilTag:其邊界框、次像素質心、family/id、解碼器品質指標、四個偵測到的角點,以及 -- 當提供內參給 Image.find_apriltags() 時 -- 在相機座標系中的 6 自由度位姿估計。

欄位可透過屬性名稱 (tag.id) 或索引 (tag[0]) 存取。此物件沒有公開的建構函式。

class image.apriltag

請呼叫 Image.find_apriltags() 來建立此物件。

邊界框與角點

x

邊界框左上角 x 座標,以像素為單位。整數。索引 [0]

y

邊界框左上角 y 座標,以像素為單位。整數。索引 [1]

w

邊界框寬度,以像素為單位。整數。索引 [2]

h

邊界框高度,以像素為單位。整數。索引 [3]

cx

質心 x 座標,四捨五入為整數。整數。索引 [4]

cy

質心 y 座標,四捨五入為整數。整數。索引 [5]

cxf

次像素浮點數形式的質心 x 座標。索引 [9]

cyf

次像素浮點數形式的質心 y 座標。索引 [10]

corners

標籤四個偵測到角點的 (x, y) 整數 tuple 所組成的 4-tuple,從左上角開始依順時針排序。索引 [21]

area

邊界框的面積 (w * h)。整數。索引 [22]

rect

邊界框的 (x, y, w, h) 4-tuple。適合直接傳給 Image.draw_rectangle()Image.crop() 等繪製/裁切方法。索引 [23]

辨識

id

標籤在其 family 內的數字 id。有效範圍取決於 family(例如 TAG36H11 為 0 -- 586)。整數。索引 [6]

family

數字 family 識別碼,為以下之一:

整數。索引 [7]

name

family 名稱,字串形式,例如 "TAG36H11"。索引 [8]

匹配品質

decision_margin

標籤匹配的品質,範圍為 0.0 -- 1.0,其中 1.0 為最佳。可用此值剔除低信心度的偵測。浮點數。索引 [12]

hamming

解碼器為此標籤所接受的位元錯誤數。受 family 的糾錯能力所限制:

  • TAG16H5 -> 最多 0 個位元錯誤

  • TAG25H9 -> 最多 3 個位元錯誤

  • TAG36H10 -> 最多 3 個位元錯誤

  • TAG36H11 -> 最多 4 個位元錯誤

越低越好。整數。索引 [13]

goodness

標籤的影像品質,範圍為 0.0 -- 1.0,其中 1.0 為最佳。在已發布的韌體中目前一律為 0.0(底層解碼器不再計算此指標)。浮點數。索引 [14]

位姿估計

下方的平移與旋轉欄位僅在以 fxfycxcy 相機內參呼叫 Image.find_apriltags() 時才會被填入。若沒有內參,這些欄位皆為 0.0。標籤被假設為 1 單位寬,因此平移以「標籤寬度」為單位 -- 乘以實際的標籤尺寸即可得到實際距離。

x_translation

自相機算起的 X 平移(左右),以標籤寬度為單位。浮點數。索引 [15]

y_translation

自相機算起的 Y 平移(上下),以標籤寬度為單位。浮點數。索引 [16]

z_translation

自相機算起的 Z 平移(前後),以標籤寬度為單位。浮點數。索引 [17]

x_rotation

繞 X 軸的旋轉(俯仰),以弧度為單位。浮點數。索引 [18]

y_rotation

繞 Y 軸的旋轉(偏航),以弧度為單位。浮點數。索引 [19]

z_rotation

繞 Z 軸的旋轉(翻滾),以弧度為單位。與 rotation 相同的值 -- 為了與 x_rotationy_rotation 對稱而重複。浮點數。索引 [20]

rotation

標籤在影像平面內的旋轉,以弧度為單位。等於 z_rotation。浮點數。索引 [11]