class AprilTag -- AprilTag 对象¶
apriltag 对象是由 Image.find_apriltags() 返回的 attrtuple。每个实例描述一个已解码的 AprilTag:其边界框、亚像素质心、家族/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)整数元组组成的 4 元组,从左上角开始按顺时针排序。索引[21]。
- area¶
边界框的面积(
w * h)。整数。索引[22]。
- rect¶
边界框的
(x, y, w, h)4 元组。适合直接传给诸如Image.draw_rectangle()或Image.crop()之类的绘制/裁剪方法。索引[23]。
标识¶
- id¶
标签在其家族内的数字 id。有效范围取决于家族(例如
TAG36H11为 0 到 586)。整数。索引[6]。
- family¶
数字家族标识符,为以下之一:
整数。索引
[7]。
- name¶
家族名称字符串,例如
"TAG36H11"。索引[8]。
匹配质量¶
- decision_margin¶
标签匹配的质量,范围为 0.0 到 1.0,其中 1.0 最佳。可用它来剔除低置信度的检测结果。浮点数。索引
[12]。
- hamming¶
解码器为此标签接受的位错误数量。受家族的纠错能力限制:
TAG16H5-> 最多 0 个位错误TAG25H9-> 最多 3 个位错误TAG36H10-> 最多 3 个位错误TAG36H11-> 最多 4 个位错误
越低越好。整数。索引
[13]。
- goodness¶
标签的图像质量,范围为 0.0 到 1.0,其中 1.0 最佳。在已发布的固件中目前始终为 0.0(底层解码器不再计算此度量)。浮点数。索引
[14]。
位姿估计¶
下面的平移和旋转字段仅在以
fx、fy、cx和cy摄像头内参调用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_rotation和y_rotation对称而重复。浮点数。索引[20]。
- rotation¶
标签在图像平面内的旋转,以弧度为单位。等于
z_rotation。浮点数。索引[11]。