标定板设计原理:棋盘格与圆点阵列的对比、材质与精度要求、HALCON标准规格

标定板这东西,说白了就是相机的“尺子”。你拿一把不准的尺子去量东西,结果肯定一塌糊涂。我见过不少项目,算法调了半天,最后发现是标定板本身就不合格——白费功夫。

这一章咱们就聊聊标定板到底该怎么选、怎么用。棋盘格还是圆点阵?玻璃基板还是陶瓷基板?精度到底要多少?这些坑我都踩过,今天一并说清楚。

棋盘格 vs 圆点阵列:两种主流方案

先看一张对比图,帮你快速建立整体认知:

标定板类型对比:棋盘格 vs 圆点阵列 棋盘格(Checkerboard) • 角点检测算法成熟,速度快 • 亚像素精度可达 0.01 pixel • 对光照均匀性要求较高 • 边缘模糊时角点偏移明显 圆点阵列(Dot Array) • 圆心拟合抗噪能力强 • 对离焦、运动模糊更鲁棒 • 适合大视场、大畸变场景 • 需要额外的编码图案定位 选型建议 • 高精度静态测量 → 棋盘格(角点检测精度更高) • 运动模糊/大畸变场景 → 圆点阵列(圆心更稳定) • HALCON 默认推荐:棋盘格(配套算子最完善)

棋盘格:经典之选,但也有脾气

棋盘格是标定界的“老大哥”。HALCON 里 find_caltab 和 find_marks_and_pose 这两个算子,就是专门为它设计的。我个人习惯用棋盘格做第一轮粗标定,因为快——角点检测基本是毫秒级。

但有个问题很多人忽略:棋盘格的角点对图像模糊非常敏感。你想想看,角点是由四个黑白区域交汇形成的,一旦镜头有点离焦,边缘变模糊,角点位置就会往白色区域“漂移”。

我曾经踩过的坑: 在一个手机镜头模组检测项目中,用了 0.5mm 的棋盘格标定板,结果标定出来的内参每次都不一样。排查了两天,最后发现是标定板表面有一层极薄的保护膜,导致黑白格之间的对比度下降,角点检测偏差达到了 0.3 像素。撕掉保护膜后,问题立刻解决。

所以用棋盘格时,记住三点:

  • 保证高对比度:黑白格反射率差异至少 5:1
  • 避免过曝:白色区域灰度值不要超过 230(8bit 图像)
  • 保持清晰:边缘模糊宽度不要超过 2 个像素

圆点阵列:抗造,但定位麻烦

圆点阵列的优势在于圆心拟合。说白了,圆是旋转对称的,不管你怎么拍,圆心位置理论上不变。哪怕图像有点模糊,只要圆点轮廓还在,拟合出来的圆心偏差通常小于 0.05 像素。

我在一个高速运动场景的项目里用过圆点阵列——传送带上拍移动的 PCB 板,运动模糊不可避免。棋盘格根本没法用,角点全糊了。换成圆点阵列后,标定结果稳定多了。

但圆点阵列有个麻烦:如何确定每个圆点的编号?棋盘格靠角点顺序自然编号,圆点阵列不行——所有圆点长得一样。所以 HALCON 的圆点标定板会在四个角或中心区域加入“编码图案”,比如不同大小的圆点组合,用来唯一标识每个点的位置。

我的建议: 如果你的项目满足以下任一条件,优先考虑圆点阵列:
• 相机存在明显的运动模糊或离焦
• 视场角大于 60°,畸变严重
• 标定环境光照不均匀
否则,用棋盘格更省事。

标定板材质与精度要求

材质这东西,很多人觉得随便打印一张纸就行。嗯,我刚开始也这么干过,结果被现实狠狠教育了一回。

材质类型 热膨胀系数 (ppm/°C) 平面度 (mm) 适用场景 典型寿命
相纸/打印纸 ~50 ≥0.5 教学演示、快速验证 数天~数周
PET 胶片 ~20 ≥0.2 实验室环境、中等精度 数月
玻璃基板 ~8 ≤0.05 工业检测、高精度测量 数年
陶瓷基板 ~6 ≤0.02 极端温度、超高精度 十年以上

看到这个表,你应该明白了:精度和材质是直接挂钩的。打印纸的热膨胀系数是玻璃的 6 倍多——车间温度变化 10°C,一张 A4 纸大小的标定板尺寸变化接近 0.1mm。对于像素当量在 0.01mm/pixel 级别的测量系统,这个误差是灾难性的。

精度匹配原则: 标定板的制造精度至少要比系统要求的测量精度高 5 倍。比如你要做 ±0.05mm 的测量,标定板的特征点位置误差必须 ≤0.01mm。这时候只能用玻璃或陶瓷基板。

HALCON 标准标定板规格

HALCON 官方提供了几种标准标定板规格,我直接列出来,方便你对照选型:

型号 图案类型 阵列尺寸 特征间距 (mm) 板面尺寸 (mm) 推荐视场
CAL_30_30_7.5 棋盘格 7×7 7.5 60×60 50~100mm
CAL_50_50_10 棋盘格 7×7 10.0 80×80 80~200mm
CAL_100_100_12.5 棋盘格 7×7 12.5 100×100 150~400mm
CAL_200_200_20 棋盘格 7×7 20.0 160×160 300~800mm
CAL_300_300_25 棋盘格 11×11 25.0 300×300 500~1500mm
CAL_500_500_35 圆点阵列 11×11 35.0 420×420 800~3000mm

这里有个关键点:特征间距的选择要和你的视场匹配。我一般遵循“标定板在图像中至少占 1/3 视场”的原则。举个例子,如果你的视场是 200mm×150mm,选 CAL_100_100_12.5 就刚好——标定板 100mm 边长,占视场的一半,特征点数量足够,又不会太小。

一个小技巧: HALCON 的标定助手(Calibration Assistant)里可以直接选择标定板型号。如果你用的是非标准尺寸,可以在 create_caltab 算子中自定义参数。但说实话,我建议尽量用标准板——省心,而且 HALCON 的标定算法对标准板有优化。

标定板使用中的常见误区

最后聊几个我见过最多的翻车现场:

  1. 标定板脏了还在用——指纹、油污会改变局部反射率,导致特征点检测偏移。清洁时用无尘布蘸无水乙醇,别用纸巾。
  2. 标定板没放平——尤其是大尺寸标定板,四个角不在同一平面。用塞尺检查,平面度超过 0.1mm 就要重新固定。
  3. 只用一张图标定——至少拍 10~15 张不同位姿的图像,覆盖视场的各个区域。我习惯拍 20 张,多花 5 分钟,省得后面返工。
  4. 忽略温度影响——如果标定环境和实际工作环境温差超过 5°C,建议在目标温度下标定。特别是用玻璃基板时,虽然热膨胀小,但也不是零。