4. 标定板图案设计:棋盘格、圆点阵、条纹图案、编码图案的适用场景

图案选不对,标定全白费。这话听着夸张,但我见过太多项目因为图案选错,后期怎么调都救不回来。

线扫相机的标定板和面阵相机不太一样。面阵相机拍一张图就完事,线扫相机是一行一行拼出来的。这个差异决定了图案设计必须考虑方向性、连续性、还有亚像素提取的稳定性。

下面我把四种主流图案掰开揉碎讲清楚。每种图案我都踩过坑,有些经验是用加班换来的。

4.1 棋盘格图案

棋盘格是标定界的「万金油」。黑白相间的方块,角点清晰,算法成熟。OpenCV 的 findChessboardCorners 直接就能用。

核心优势: 角点检测速度快,亚像素精度高,对光照变化不敏感。

适用场景:

  • 常规线扫相机标定(视野内 5-10 个角点即可)
  • 镜头畸变校正(棋盘格能提供均匀分布的控制点)
  • 单相机平面标定(最常见的使用场景)

避坑指南:

  • 棋盘格必须倾斜放置。我见过有人把标定板放得和相机成像面完全平行,结果角点提取全是错的。你想想看,线扫相机只拍一行,如果棋盘格线和扫描方向完全平行,那拍出来的图像就是一条黑一条白,根本找不到角点。
  • 格子数量要奇数×偶数。比如 9×6,这样内外角点区分明确。
  • 边缘留白至少 1 个格子宽度。我曾经因为标定板边缘没留白,结果相机拍到板子边缘时,角点提取直接崩了。
注意: 棋盘格不适合大畸变镜头。如果镜头畸变超过 5%,棋盘格角点会严重变形,亚像素提取精度急剧下降。我遇到过用 8mm 镜头配棋盘格,角点偏差达到 0.3 个像素,标定结果根本不能用。

4.2 圆点阵图案

圆点阵是我个人比较偏爱的图案。为什么?因为圆的质心提取比角点更稳定。说白了,圆是旋转对称的,不管你怎么倾斜,质心位置几乎不变。

适用场景:

  • 高精度标定(要求重投影误差小于 0.05 像素)
  • 多相机拼接标定(圆点阵能提供更稳定的对应点匹配)
  • 大视场标定(圆点阵对光照不均匀的鲁棒性更好)

参数设计要点:

参数 推荐值 说明
圆点直径 视野宽度的 1/50 ~ 1/30 太小则亚像素提取不稳定,太大则容易重叠
圆心间距 直径的 2~3 倍 保证圆点之间不粘连,同时有足够密度
行数/列数 至少 7×7 太少则标定参数过拟合

我的经验: 圆点阵的质心提取精度可以达到 0.02 像素级别。但前提是圆点边缘要清晰,不能有模糊。我建议用陶瓷或玻璃基板,比纸打印的圆点阵稳定得多。

技巧: 如果使用圆点阵,建议在标定板四角加四个大圆作为方向标记。这样算法可以自动识别标定板的摆放方向,省去手动调整的麻烦。

4.3 条纹图案

条纹图案在线扫相机标定里比较特殊。它不是为了求取相机内参,而是为了测量线扫相场的均匀性和扫描方向的一致性。

适用场景:

  • 线扫相机行频校准(验证每行像素的物理间距是否一致)
  • 扫描方向畸变检测(检查扫描线是否弯曲)
  • 多线扫相机同步标定(确保各相机扫描线对齐)

条纹设计原则:

  • 条纹宽度要大于 5 个像素(在图像上)
  • 条纹方向必须垂直于扫描方向
  • 黑白条纹宽度比建议 1:1

我记得有一次做 4 台线扫相机的拼接项目,条纹图案帮了大忙。我们用条纹检测出其中一台相机的扫描线偏移了 0.8 个像素,这个误差用棋盘格根本看不出来。

注意: 条纹图案不能单独用于完整标定。它只能作为辅助手段,配合棋盘格或圆点阵一起使用。说白了,条纹管「方向」,棋盘格管「位置」,两者互补。

4.4 编码图案

编码图案是进阶玩法。它把标定信息直接编码进图案里,算法可以自动识别每个特征点的世界坐标。这样就不需要手动输入标定板的物理尺寸了。

适用场景:

  • 自动化标定(无人干预,批量标定)
  • 大尺寸标定板(编码图案可以拼接多个子板)
  • 三维标定(编码图案能提供唯一的特征点 ID)

常见编码方式:

  • ChArUco 板(棋盘格 + ArUco 编码)
  • AprilTag(二维码风格,鲁棒性高)
  • 自定义二进制编码(适合特殊场景)

我个人习惯用 ChArUco 板。它结合了棋盘格的角点精度和 ArUco 的自动识别能力。你想想看,标定板随便放,算法自动识别每个角点的编号和坐标,多省事。

技巧: 编码图案的编码区域要足够大。我建议每个编码块至少 20×20 像素(在图像上),否则解码成功率会大幅下降。另外,编码图案对光照要求较高,建议使用均匀的漫射光源。

4.5 图案选择决策流程

说了这么多,到底怎么选?我画了一张决策图,帮你快速定位。

标定板图案选择决策流程 标定需求输入 精度要求 > 0.05 像素? 是 否 圆点阵 棋盘格 需要自动识别? (批量标定) 需要辅助条纹? (行频校准) 是 否 编码图案 圆点阵 (无需条纹辅助) 是 棋盘格 (+条纹辅助) 否 棋盘格 (单独使用) 说明:条纹图案作为辅助手段,可与棋盘格或圆点阵组合使用,用于行频校准和扫描方向检测。

这张图我建议你保存下来。每次选图案前过一遍,基本不会出错。

4.6 四种图案对比总结

图案类型 精度等级 自动化程度 抗畸变能力 适用场景
棋盘格 ★★★☆☆ ★★★☆☆ ★★☆☆☆ 常规标定、畸变校正
圆点阵 ★★★★★ ★★★☆☆ ★★★★☆ 高精度标定、多相机拼接
条纹图案 ★★☆☆☆ ★★☆☆☆ ★★★★★ 行频校准、方向检测
编码图案 ★★★★☆ ★★★★★ ★★★☆☆ 自动化标定、三维标定

最后说一句:没有完美的图案,只有合适的搭配。我建议你手头至少准备两种标定板:一块高精度圆点阵用于日常标定,一块 ChArUco 板用于自动化产线。这样不管遇到什么场景,你都能从容应对。