2、标定板与靶标:常用标定板类型与选型原则
做四线扫相机标定,第一步不是调参数,而是选对靶标。我见过太多人拿着随便打印的棋盘格就去标线扫,结果折腾一整天数据都不收敛。说白了,标定板就是你的“测量基准”,它不准,后面全白搭。
这一节,我把常用标定板的类型、选型原则和精度等级掰开揉碎讲清楚。你想想看,连尺子都不准,怎么量长度?
2.1 常用标定板类型
四线扫相机标定中,主流靶标就三种:棋盘格、圆点阵、精密刻线尺。每种都有它的脾气。
| 类型 | 核心原理 | 适用场景 | 我的评价 |
|---|---|---|---|
| 棋盘格 | 角点检测,黑白交替边缘 | 面阵相机标定、线扫单相机内参 | 入门首选,但线扫容易翻车 |
| 圆点阵 | 圆心拟合,亚像素定位 | 线扫多相机拼接、畸变标定 | 我个人最常用,稳定 |
| 精密刻线尺 | 等距刻线,直接测量像素当量 | 线扫分辨率标定、运动方向标定 | 简单粗暴,但信息量少 |
2.1.1 棋盘格
棋盘格是标定界的“老黄牛”。角点检测算法成熟,OpenCV 里直接调 findChessboardCorners 就能用。但用在四线扫上,有个坑——线扫只拍一行,棋盘格角点必须跨越多行才能被检测到。如果标定板倾斜角度不对,角点全糊在一起。
2.1.2 圆点阵
圆点阵是我在四线扫项目中的主力。原因很简单:圆心拟合对单行图像更鲁棒。即使只拍到半个圆,通过椭圆拟合也能算出圆心位置。棋盘格就不行,角点一旦被截断,位置直接漂移。
圆点阵还有个大优势——编码设计。通过不同大小的圆点组合,可以给每个点分配唯一 ID。这在多相机拼接标定时特别有用,不用手动对应点了。
2.1.3 精密刻线尺
精密刻线尺,说白了就是一把“光学尺子”。上面刻着等间距的线,间距精度通常在 1μm 以内。它不用于计算复杂的相机参数,而是直接测量像素当量(每个像素对应多少毫米)。
四线扫标定中,刻线尺常用于:
- 确认运动轴与相机行方向是否平行
- 测量单像素分辨率
- 验证标定结果是否准确
嗯,这里要注意:刻线尺只能给出一维信息,无法标定畸变和相机内参矩阵。它更像一个“验证工具”,而不是“标定工具”。
2.2 选型原则
选标定板不是越贵越好,关键是匹配你的系统。我总结了四条原则:
- 尺寸匹配:标定板宽度至少覆盖相机视场的 2/3。太小了,边缘畸变标不出来。
- 特征密度:特征点间距要大于 5 个像素。太密了,亚像素定位会互相干扰。
- 材质稳定:陶瓷玻璃 > 金属 > 胶片 > 打印纸。温度变化 1°C,打印纸能缩 10μm。
- 反光处理:四线扫常用高亮光源,标定板表面必须做哑光处理。否则反光点直接饱和,特征全丢。
2.3 精度等级
标定板的精度等级,通常按特征点位置误差来划分:
| 等级 | 位置误差 | 典型材质 | 适用场景 |
|---|---|---|---|
| 普通级 | ±50μm | 打印胶片 | 快速验证、教学演示 |
| 工业级 | ±5μm | 玻璃镀铬 | 产线标定、常规检测 |
| 精密级 | ±1μm | 石英玻璃 | 高精度测量、半导体 |
为什么精度等级这么重要?我举个例子:假设你的标定板圆点间距标称 10mm,实际是 9.998mm。如果你用标称值去标定,系统会认为 10mm 对应 1000 像素,像素当量就是 10μm/px。但实际是 9.998mm,真实像素当量是 9.998μm/px。误差 0.002μm/px,看起来很小?如果图像宽度是 8000 像素,累积误差就是 16μm。对于精密测量,这已经不可接受了。
2.4 知识体系结构图
下面这张图,把标定板选型的核心逻辑串起来了。你可以把它当作决策流程图:
2.5 我的选型建议
如果你刚开始做四线扫标定,我建议这样起步:
- 第一步:用精密刻线尺确认运动轴方向和像素当量。这一步 10 分钟搞定。
- 第二步:用圆点阵标定板做内参和畸变标定。拍 15~20 个不同位置,覆盖整个视场。
- 第三步:用棋盘格做交叉验证。如果棋盘格标定结果跟圆点阵偏差超过 0.5 像素,说明某个环节有问题。