AprilTag由两个主要部分组成:标签检测器和编码系统。
检测器的工作是估计图片里标签可能的位置,换句话说,检测器试图找到比其外部具有更暗的内部的四边区域(“quad”)
标签检测器
A、检测线段
方法是监测图像中的线。计算每个像素的梯度方向和大小,并将像素聚类成具有相似梯度方向和大小的分量。
聚类算法类似于Felzenszwalb的基于图的方法:创建一个图,其中每个节点代表一个像素。在相邻像素之间添加边,边权重等于像素在梯度方向上的差异。然后根据增加的边权重对这些边进行排序和处理:对于每个边,我们测试像素所属的连接分量是否应该连接在一起。给定分量n,我们将梯度方向的范围表示为D(n),将幅度范围表示为M(n)。换句话说,D(n)和M(n)是标量值,分别表示梯度方向和幅度的最大值和最小值之间的差值。在D()的情况下,必须小心处理2Π(pai)环绕。但是,由于有用边的跨度远小于Π度,因此这很直截了当。给定两个分量n和m,如果满足以下两个条件,我们将它们连接在一起:
D(n ∪ m) ≤ min(D(n), D(m)) + KD /