[计算机视觉] AprilTag 2: Efficient and robust fiducial detection(2016)论文理解

论文介绍了AprilTag2对AprilTag1的改进,优化了TagDetector,提升了检测率、降低了误报率并减少了计算时间。主要改进包括自适应阈值分割、连续边界分割和四边形拟合等技术,适用于视觉定位和基准检测。此外,还讨论了边缘细化以提高定位精度。
摘要由CSDN通过智能技术生成

论文地址

chrome-extension://cdonnmffkdaoajfknoeeecmchibpmkmg/assets/pdf/web/viewer.html?file=https%3A%2F%2Fapril.eecs.umich.edu%2Fmedia%2Fpdfs%2Fwang2016iros.pdf

摘要

  • 跟AprilTag 1相比,Apriltag 2对TagDetector部分进行了优化,提高了鲁棒性和效率。
  • 更高的检测率,较少的误报和较低的计算时间,从而提高了性能。

介绍

  • AprilTag 1基于ARTag和ARToolkit,一个黑白方形标签,带一个编码的二进制载荷,与ARTag相比具有更低的假阳性率,AprilTag 2在不牺牲定位精度的前提下降低误检率。
  • 本文的贡献:
    • 提高了小标签的检出率,显示更少的误报,并减少了计算时间。
    • 提出了一种新的标签边界分割方法,该方法对性能有很大的提高,并可应用于其他基准检测器。
    • 评估较少的候选标签对假阳性率的影响。
    • 在真实和合成图像上的定位性能的实验表征。

先验工作

  • 最早的视觉基准系统之一是由增强现实应用程序库ARToolkit引入的。ARToolkit引入了黑色方框标签作为跟踪标记。它的优点是从已知尺度的单个标签提供完整的6自由度姿态估计
  • ARToolkit通过在正方形内嵌入任意图像模式来区分标签,这些图像模式与数据库中的已知模式进行匹配以进行识别。随着识别模式的数据库的增长,匹配的计算成本和混淆不同模式的可能性也在增加。ARTag试图通过引入2D二进制条码模式来纠正标签间的混淆问题。二进制条码可以纠正检测中的位错误。
  • AprilTag建立在ARTag的进步之上,引入了一个基于lexicode的系统来生成标签。AprilTag保证在所有可能的旋转下,标签之间的最小汉明距离,同时执行最小复杂度约束,以减少自然图像中产生的误报率。定位精度提高了ARTag以前的技术水平。
  • AprilTag 1使用图像梯度来检测高对比度的边缘。与之前使用朴素阈值的方法相比,这种方法的优点是对阴影和光照变化具有鲁棒性。检测部分遮挡的标签是通过首先拟合片段到梯度,然后搜索组成四边形状的片段组合。分段优先方法的缺点是生成的候选四元组数量太多。大量的处理时间花在试图解码无效的候选四元组上

TagDetector

  • 经验教训

    • 在大多数情况下,检测部分被遮挡的标签效用有限。被遮挡的标签通常有一位或多位错误,大多数用户禁止对有位错误的标签的解码,因为这会提升假阳性比率。
  • 自适应阈值

    • 第一步是将灰度输入图像设置为黑白图像。一些阈值方法试图找到整个图像的全局阈值,而另一些方法找到局部或自适应阈值。我们采用了一种自适应阈值方法,其思想是在每个像素周围的区域中找到最小值和最大值
    • 将图像划分为4x4像素的图像块,并计算每个图像块的灰度值的最大值和最小值。 然后使用平均值(MAX + MIN)/ 2作为分块区域的阈值,为每个像素分配白色或黑色的值形成二值图。分块的目的主要是增加鲁棒性,区域的特征总比单一像素的更加稳定,减少随机噪声的干扰,同时提升计算效率。
  • 连续边界分割

    • 给定二值化的图像,下一步是找到可能形成标签边界的边缘。由于边界相邻位置的灰度值对比明显,使用前向直接发区分边缘像素,接着将边缘像素连接到一起即可得到边界。然而,当尺寸很小或距离相机很远的标签上,当标签边界之间的空白接近仅一个像素宽时,这种方法就会失效。如果两个标记边界不正确地合并,标记将不会被检测到。作者提出的解决方法是基于出现黑块和白块区域的特性,进行边界分割,从而得到更加精确的边界信息。
      • 黑色像素和白色像素连接的部分采用联合查找算法进行分割,该算法会给出分割后每一部分一个单独的ID号作为标识;
      • 对于每队相邻的黑块和白块,将两个区域边界上的像素分为不同的聚类;
      • 按照黑白块的ID号进行索引,采用哈希表进行高效地聚类;
      • 针对上面提到的黑白块间只有一个像素宽度的情况,允许白色像素同时出现在两个聚类。
  • 四边形拟合

    • 将这些无序的边界点聚类拟合成一个四边形,对应于线段将点分割为四组。但是,计算总线段拟合误差下最小下的的最优分组非常耗费资源。即便是有序的n个点,都有 O(n^4)可能方式去分组。作者通过查找最小数量的角点,然后对角点的所有组合进行迭代,从而计算出一个大致的分组。
    • 首先,这些点按角度以一致的缠绕顺序围绕其质心进行排序。这种排序允许我们将相邻点定义为已排序的点的范围。累积的第一和第二时刻统计是计算在一个单通过这些点,使第一和第二时刻可以计算任意范围的点在常数时间。
    • 因为邻近点围成的窗口便是基于这些有序的边界聚类点,因此通过对该窗口遍历,并不断拟合线段,找出拟合均方误差函数的峰值点来实现角点的检测。采用PCA主分析法进行线段拟合,此方法里椭圆适合样本的均值和协方差。最好的拟合线段是与第一个主成分对应的特征向量。基于预先计算的一阶和二阶矩统计值,所有的候选线段拟合可以在O(n)时间内计算出来,n是这些边界点的数量。均方误差里最大的峰值便是候选的角点。
    • 最后,迭代计算四个候选角点的所有排列,对候选四边形的每条边拟合线段。这一步中,选择四边形线段拟合均方误差最小的四个角点。预滤波处理时对一些较差的四边形拟合进行剔除,比如少于4个角点的,均方误差太大的,或这些角点的角度与90度偏差太大。
    • 四边形拟合输出一系列可用于解码的候选四边形。四边形检测器可检测出环境中许多四边形形状的结构,包括物体表面的高光、开关、和单独的标签像素。解码步骤比较每个四边形和已知的ApriTags标签码的内容,滤除错误的候选四边形。
  • 快速解码

    • 解码标签的一种简单的方法是将检测到的码值与标签族中的码值异或(每一种都有四种可能的旋转),判断是否为正确的标签。标签被识别为与被检测码值具有最小汉明距离的代码。然而,如果我们限制被纠正的比特错误的数量为2位或更少,就有可能在tagfamily中有效代码的两个比特错误中枚举allO(n2)可能的代码。编解码方法是Apriltag团队研究出来的,属于特定的方法,我们可以改变的地方不大,因此不做具体解释。通过识别固定类型的码型,可进一步排除其他码型的干扰,得到最终的结果。
  • 边缘细化

    • 阈值图像虽然有助于分割和四边形边界检测,但可能会引入噪声。例如,阴影和眩光会影响阈值二值化后的边缘信息,导致结果标签的定位精度变差。
    • 沿着候选四边形的边缘使用图像梯度来拟合新的边缘,近似于原始AprilTag检测器的行为。沿着每个边缘,在均匀间隔的采样点上,我们沿着法线对图像梯度进行采样,以找到梯度最大的位置。知道标签在内部是黑色的,以及四边形中点的缠绕顺序,我们拒绝那些梯度不是预期符号的点(即来自嘈杂的单个像素)。我们计算沿法线的点的加权平均值,用梯度大小加权。沿着加权平均点的线便构成了四边形的边缘。四边形角点可以根据线的交叉点计算得到。
    • 如果只对检测标签感兴趣,那么边缘细化就不是关键,尽管它可以帮助解码非常小的标签。然而,当标签被用于位姿估计时,边缘细化步骤提高了定位精度
  • 这只是我对这篇论文浅显的理解,欢迎大家在评论区提出疑问,相互交流共同学习!

  • AprilTag: A robust and flexible visual fiducial system(2011)论文理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值