标定板类型:棋盘格、圆点阵、Charuco与二维码

做标定这么多年,我接触过的标定板类型少说也有十几种。但真正在实际项目中经得起考验的,其实就四种:棋盘格、圆点阵、Charuco 和二维码标定板。每种都有它的脾气,选对了事半功倍,选错了……嗯,我吃过不少亏。

棋盘格标定板

这是最经典、最常用的标定板。说白了,就是黑白相间的方格阵列。为什么大家都爱用它?因为角点检测太稳定了。

核心优势:亚像素角点提取精度高,算法成熟,OpenCV 里直接调 findChessboardCorners 就能用。

我在项目中遇到过一个问题:用棋盘格标定鱼眼相机时,边缘区域的格子变形太严重,角点经常检测失败。后来我学乖了——棋盘格只占视场的 1/3 到 1/2,别铺满。

参数 说明 我的建议
内角点数量 如 9×6 表示 9 列 6 行内角点 至少 8×6,太少容易欠约束
方格尺寸 实际物理边长,单位 mm 10-30mm 最常用,别小于 5mm
黑白对比度 反射率差异越大越好 哑光材质,别用反光膜

避坑:我曾经用高光相纸打印棋盘格,结果在强光下白色区域过曝,角点全糊了。后来全部改用哑光 PP 合成纸,再也没出过问题。

圆点阵标定板

圆点阵用圆形代替方格。你可能会问:圆点比方格好在哪?

答案是——椭圆拟合比角点检测更抗噪。当镜头畸变很大时,方格角点会变成弧形,检测精度直线下降。但圆点即使变成椭圆,圆心位置依然能精确拟合。

适用场景:大畸变镜头(如鱼眼、广角)、低纹理环境、需要高鲁棒性的工业检测。

我记得有一次给某工厂做机械臂手眼标定,现场光照极差,棋盘格死活检测不出来。换成圆点阵后,一次通过。从那以后,我包里永远备一张圆点阵板子。

圆点阵的布局有讲究:

  • 对称排列:行列对齐,类似棋盘格布局
  • 非对称排列:某行或某列少一个点,用于确定方向
  • 编码圆点:通过圆点大小或间距编码 ID,支持部分遮挡

我个人习惯用非对称排列,因为 OpenCV 的 findCirclesGrid 默认支持这种模式,不需要额外写方向判断逻辑。

Charuco 标定板

Charuco 是棋盘格和 ArUco 二维码的结合体。它把 ArUco 标记嵌入棋盘格的白色方块中。为什么会有这种设计?

因为纯棋盘格有个致命弱点——必须看到完整棋盘才能检测。一旦被遮挡或部分出图,角点就全废了。Charuco 解决了这个问题:每个 ArUco 标记自带 ID,即使只看到 4 个标记,也能恢复出对应的棋盘格角点。

核心价值:支持部分遮挡、任意视角、自动识别标定板方向。非常适合在线标定和动态场景。

我曾经在一个产线项目中用 Charuco 做在线标定。相机装在机械臂上,每次换产都要重新标定。用 Charuco 后,操作工只需要对着板子随便拍几张,程序自动识别、自动标定,全程不用人工干预。

特性 棋盘格 Charuco
遮挡鲁棒性 差 强
自动方向识别 不支持 支持
角点数量 多 中等
实现复杂度 低 中

注意:Charuco 的 ArUco 字典要选对。我踩过坑——用了默认的 DICT_4X4_50,结果标记太小,远距离根本看不清。后来换成 DICT_6X6_250,识别率大幅提升。

二维码标定板

二维码标定板,就是在一张板上排列多个二维码(通常是 AprilTag 或 ArUco)。每个二维码携带独立 ID 和精确的角点位置。

它的最大优势是:单帧即可完成标定。传统棋盘格需要 10-20 张不同角度的图像,二维码标定板只需要 1 张。为什么?因为每个二维码的 ID 告诉你它在板上的精确位置,单帧就能提供足够的 3D-2D 对应点。

适用场景:单帧标定、大视场标定、多相机同步标定、需要快速部署的现场环境。

我记得有个项目需要在 5 分钟内完成 8 个相机的联合标定。用棋盘格的话,每个相机拍 15 张,8 个就是 120 张,光拍照就要半小时。换成 AprilTag 标定板后,每个相机只拍 1 张,5 分钟全部搞定。

二维码标定板的布局设计要点:

  • ID 分布:确保每个二维码 ID 唯一,且空间位置已知
  • 间距控制:二维码之间留白边,避免边缘重叠
  • 尺寸统一:所有二维码使用相同尺寸,简化检测
  • 背景对比:白色背景 + 黑色二维码,不要用彩色

选型决策指南

说了这么多,到底怎么选?我整理了一个决策流程,你对着走就行:

标定板选型决策流程 开始选型 需要在线/单帧标定? 二维码标定板 (AprilTag/ArUco) 否 镜头畸变大?(鱼眼/广角) 圆点阵标定板 棋盘格 / Charuco 提示 遮挡多 → Charuco 遮挡少 → 棋盘格 精度优先 → 棋盘格

总结一下我的个人经验:

  • 实验室环境:棋盘格,精度最高,调试最方便
  • 工业现场:圆点阵,抗干扰能力强
  • 在线/自动化:Charuco 或二维码,省人工
  • 多相机/大视场:二维码标定板,单帧搞定

最后说一句:别迷信某一种标定板。我包里常备三种:棋盘格、圆点阵、Charuco。不同场景换着用,这才是工程师的务实做法。