3. AprilTag视觉基准标记入门
在无人机视觉定位与自主降落任务中,AprilTag 是最常用的视觉基准标记之一。它本质上是一种二维条形码式的基准标签,由黑色边框和内部编码区域组成,相机识别后可以解算出标签相对于相机的三维位姿。与普通二维码不同,AprilTag 的设计目标不是存储大量信息,而是在复杂光照、倾斜视角和运动模糊条件下,稳定地提供高精度的位置与姿态基准。理解 AprilTag 的家族体系、编码原理和 ID 识别机制,是后续搭建降落视觉系统的第一步。
一、AprilTag 家族与版本演进
AprilTag 由密歇根大学 APRIL 实验室提出,目前主流版本包括 AprilTag 1、AprilTag 2 和 AprilTag 3。不同版本在检测速度、抗遮挡能力和远距离识别性能上逐步优化。
- AprilTag 1:最早版本,采用固定编码方案,检测速度较慢,在低分辨率或远距离下容易漏检,目前已较少使用。
- AprilTag 2:引入更高效的检测算法和更好的编码纠错能力,支持 tag36h11 等经典家族,是当前无人机视觉定位中最常见的版本。
- AprilTag 3:进一步优化了检测流程,支持更小尺寸、更远距离和部分遮挡场景,适合高动态无人机平台。
每个版本下又包含多个“家族”,例如 tag36h11、tag25h9、tag16h5 等。命名中的数字分别表示编码位数和汉明距离。例如 tag36h11 表示总编码长度为 36 位,任意两个合法编码之间的最小汉明距离为 11。汉明距离越大,抗误识别能力越强,但可用 ID 数量会减少。
二、编码原理:黑框、数据位与纠错
AprilTag 的编码结构可以拆解为三个层次:最外层是黑色边框,用于快速定位候选区域;中间是白色间隔,用于区分边框与数据区;内部是若干黑色或白色的数据位,按行列排列成编码矩阵。相机检测时,先提取四边形轮廓,再对内部区域进行采样,得到二进制编码序列,最后与已知字典比对,确定 ID 和方向。
以 tag36h11 为例,其内部为 6×6 的数据位,共 36 位。每个合法 ID 对应一个 36 位二进制码,且任意两个码字之间至少相差 11 位。这意味着即使图像中有少量位因噪声、模糊或遮挡发生翻转,仍然可以正确解码。此外,AprilTag 还通过旋转不变性设计,使标签在四个方向下都能被正确识别,并输出相对于相机的姿态。
核心要点:AprilTag 的识别不是“读文字”,而是“匹配编码”。黑框负责定位,数据位负责身份,汉明距离负责纠错,三者共同保证在无人机视角变化下的鲁棒性。
三、ID 识别流程与姿态解算
在无人机视觉定位中,AprilTag 的识别通常包括以下步骤:
- 图像预处理:灰度化、自适应阈值分割,增强黑白对比。
- 轮廓提取:检测图像中的四边形候选区域,过滤面积过小或形状异常的轮廓。
- 编码采样:对候选四边形进行透视变换,采样内部数据位,得到二进制序列。
- 字典匹配:将采样序列与 AprilTag 字典比对,计算汉明距离,确定 ID 和旋转方向。
- 位姿解算:利用标签四个角点在图像中的坐标和已知物理尺寸,通过 PnP 算法解算相机相对于标签的平移和旋转。
识别结果通常以 ID、角点像素坐标、位姿矩阵等形式输出。无人机飞控或机载计算机再根据这些信息计算降落目标位置,控制无人机水平移动和下降。
# 典型 AprilTag 检测输出示例
ID: 0
Corners: (312, 208), (418, 210), (416, 316), (310, 314)
Pose:
Translation: [0.12, -0.05, 1.35] # 单位:米
Rotation: [0.02, 0.01, 0.03] # 单位:弧度
Hamming Distance: 0
Decision Margin: 42.7
四、AprilTag、ArUco 与 QR 码的区别
在视觉定位领域,AprilTag 常与 ArUco、QR 码进行比较。三者虽然都呈现黑白方块图案,但设计目标和适用场景差异明显。
| 对比项 | AprilTag | ArUco | QR 码 |
|---|---|---|---|
| 主要用途 | 视觉定位与姿态估计 | 视觉定位与姿态估计 | 信息存储与扫码 |
| 编码纠错 | 汉明距离纠错,抗误识别强 | 依赖字典设计,纠错能力中等 | Reed-Solomon 纠错,信息量大 |
| ID 数量 | 受家族限制,如 tag36h11 约 587 个 | 可自定义字典,数量灵活 | 数量极大,但定位精度低 |
| 远距离识别 | 优秀,适合无人机降落 | 良好,依赖参数调优 | 较差,需较高分辨率 |
| 姿态解算 | 角点精度高,适合 PnP | 角点精度高,适合 PnP | 角点检测不稳定,不推荐 |
| 典型场景 | 无人机自主降落、机器人定位 | AR、机器人视觉、相机标定 | 支付、链接、信息分享 |
简单来说,QR 码擅长“传信息”,AprilTag 和 ArUco 擅长“定位置”。在无人机降落任务中,QR 码的角点检测精度和远距离识别能力不足,通常不作为首选。AprilTag 与 ArUco 则各有优势:AprilTag 的编码纠错更严格,误识别率更低;ArUco 的字典更灵活,适合需要大量 ID 或自定义标签的场景。
五、选型建议与常见误区
针对无人机视觉定位与降落,选型时可以从以下几个维度考虑:
- 识别距离:远距离降落优先选择 tag36h11 或 AprilTag 3 家族,编码位数多、抗误识别强。
- 标签尺寸:标签物理尺寸越大,可识别距离越远,但需考虑无人机起降平台的空间限制。
- 光照条件:强光或逆光环境下,应选择对比度高、边框清晰的打印材质,必要时加装遮光罩。
- 计算资源:机载计算机性能有限时,可降低图像分辨率或限制检测区域,优先保证实时性。
- ID 数量:多机协同降落时,需提前规划 ID 分配,避免同一空域内标签冲突。
常见误区:很多初学者认为“标签越大越好”或“分辨率越高越好”。实际上,标签过大可能导致近距时超出视野,分辨率过高则会增加计算延迟。应根据降落高度、相机视场角和机载算力综合选择。此外,打印标签时若边框比例失真或纸张反光,会直接导致识别率下降,务必使用标准生成工具并平整粘贴。
六、案例:无人机降落中的 AprilTag 配置
假设某四旋翼无人机需要在 3 米高度识别地面标签并自主降落。相机视场角为 60°,机载计算机为树莓派 4B。可选方案如下:
标签家族: tag36h11
标签尺寸: 0.16 m × 0.16 m
相机分辨率: 1280 × 720
检测频率: 30 Hz
识别距离: 0.3 m ~ 4.5 m
位姿解算: solvePnP + 角点亚像素优化
降落策略: 先水平对准,再匀速下降,最后 0.5 m 低速触地
该配置下,tag36h11 在 3 米处仍能稳定输出 ID 和位姿,满足降落控制需求。若换成 QR 码,同样距离下角点检测会明显抖动,导致水平控制不稳定。若换成 ArUco,则需要仔细调参并验证误识别率。
七、本节小结
AprilTag 是一套为视觉定位而生的基准标记体系。它通过黑框定位、数据位编码和汉明距离纠错,在无人机视角变化、光照波动和运动模糊下仍能稳定输出 ID 与位姿。与 ArUco 相比,AprilTag 的纠错更严格;与 QR 码相比,AprilTag 的定位精度和远距离识别能力更强。实际选型时,应结合识别距离、标签尺寸、光照条件、计算资源和 ID 数量综合决策,避免盲目追求大标签或高分辨率。掌握这些基础,才能在后继的相机标定、位姿解算和降落控制中少走弯路。