CALibration Tag 简记为CALTag 是一种平面自识别标记 专门用于自动化相机标定。这种方法有如下几个必杀技完爆传统的标定方法 1、几乎可以找全图像视野内所有的角点 相比之下 opencv自带的角点检测函数必须提前指定棋盘格大小 且只能找到矩形棋盘格形状内部的角点。 2、不需要所有的棋盘格出现在图像内。可用于棋盘被遮挡、只拍摄到部分棋盘等比较有挑战的环境。 上图中普通棋盘格在部分可见 左图 和遮挡 中图 情况下均无法检测到角点。使用CALTag的棋盘格 右图 在既部分可见又被遮挡的情况下仍可以检测到角点。 3、 适用于拍摄角度非常极端的情况 棋盘清晰的情况下 。 4、 可以恢复出漏检的标记。这是因为每个标记是唯一的 可以从棋盘code数据表格中查找丢失的标记。 上图中 第一行第一个图表示标记被部分遮挡情况下CALTag仍然可以检测到角点。中间一行图表示在非常陡峭的拍摄角度和光线变化较大的情况下的识别效果仍然鲁棒。最下面一行表示在明显的阴影下和径向畸变下的鲁棒效果。 上图中红色圆圈表示标定点 角点 绿色表示对标记code的采样点 品红色表示猜测到的角点位置 品红色圆圈表示猜测到角点中经过重新验证后真正的角点。黄色圈圈表示在重新验证中被排除掉的点。 5、 极低的误警率 尤其当拍摄图案所在的场景非常复杂的时候。因为引入了唯一识别码并且按照一定的阵列排列 可以滤掉几乎所有的环境干扰。 6、 全自动完成相机标定 不需要调参 不需要人工参与。
看起来是不是很诱人啊 它是如何做到的 下面对原理进行解释。
CALTag 检测算法原理简介检测算法的基本流程图如下 1、 首先输入一幅包含自识别标记的图片 如上图第一行第一个图。该图片中的标记可能被遮挡 倒U字形的遮挡 、还有一些环境的干扰 最左侧、右下角的一些灰色的图 。 2、 然后是寻找可能的自识别标记区域。使用图像二值化、连通域计算、过滤规则等方法 最终保留了可能的自识别标记区域 上图标号为3的子图 。 3、 然后进行角点检测 确定自识别标记的四个角点位置 图中标号为4的子图中红色的点 。然后采样其内部的二进制code并进行识别 上图中标号为5的子图 绿色的点表示采样的code被正确识别 最左侧和右下角的图形识别失败 被滤掉 。 4、 根据已经识别的code对照先验已经知道的棋盘中code矩阵表 就可以知道丢失了哪些code 他们的角点应该在哪里 上图中标号为6的子图中的问号就是丢失的code对应的角点 。然后重新对这些恢复出来的用问号标记的角点进行角点验证算法 通过验证的角点 上图中标号为7的子图中的绿色角点 加入到已经检测好的角点的队伍中来 未通过验证的伪角点 上图中标号为7的子图中右下角那个点 排除掉。 5、 最后输出的是检测到的每个角点 标定点 的图像坐标以及其在code矩阵表里的位置坐标。这样 如果事先给出棋盘中某个基准点在三维空间中的坐标 那么根据输出信息就可以计算出所有检测到的角点的三维空间坐标、图像坐标 就自动完成了对应关系的建立。
参考资料 CALTag: High Precision Fiducial Markers for Camera Calibration
计算机视觉life 关注 关注抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。