一、标定数据采集概述:标定的意义、采集流程总览、硬件准备清单

1.1 我们为什么要做标定?

说实话,我刚入行那会儿,觉得标定就是个「走流程」的事。拿个棋盘格拍几张照片,跑个算子,完事。直到有一次,一个精密测量项目怎么都达不到 0.01mm 的精度要求,我排查了三天——镜头、光源、算法全查了一遍,最后发现是标定板歪了 0.5 度。

标定到底在干什么?说白了,就是给相机「配眼镜」。相机镜头天生有畸变,安装时也不可能垂直于被测面。标定就是把这些偏差算出来,然后补偿掉。没有这一步,你拍到的像素坐标和真实世界坐标之间,就是一笔糊涂账。

标定的核心目标就三个:

  • 消除镜头畸变(径向畸变、切向畸变)
  • 建立像素坐标系到世界坐标系的映射关系
  • 确定相机内参(焦距、主点、畸变系数)和外参(旋转、平移)

我见过太多工程师,标定数据采集得马马虎虎,然后花大量时间调算法参数。其实你想想看,数据源就有问题,后面再怎么调也是白费力气。所以,标定数据采集,是整个机器视觉项目的根基。

1.2 采集流程总览:一张图说清楚

整个标定数据采集的流程,我习惯把它分成六个阶段。下面这张图,是我自己项目里一直用的框架,你可以直接拿去用。

标定数据采集流程总览 ① 硬件准备与检查 标定板、镜头、光源、支架 ② 环境搭建与参数设置 光照、焦距、光圈、曝光 ③ 标定板位姿采集 15-25张,多角度多位置 ④ 数据质量初筛 清晰度、覆盖度、一致性 ⑤ 标定计算与结果验证 重投影误差、畸变校正效果 ⑥ 异常判断与重采 不合格则返回③或② 不合格反馈回路 💡 我的经验: 1. 第③步位姿采集是最容易出问题的环节,新手往往只拍正对相机的角度。 2. 第④步数据初筛很多人跳过,结果标定完才发现误差大,回头重拍更浪费时间。 3. 第⑥步的反馈回路很关键——标定结果不好,别硬调算法,先回去检查数据。 4. 整个流程走下来,熟练的话 20 分钟能搞定,但新手建议留出 1 小时。

这个流程里,我最想强调的就是那个反馈回路。标定不是一次性的,它是个迭代过程。我在一个汽车零部件项目里,来回迭代了 4 次才拿到满意的标定结果。别怕重来,怕的是你明明数据有问题还硬往下走。

1.3 硬件准备清单:别等到了现场才发现缺东西

硬件准备这事,看着简单,但坑最多。我列个清单,你照着准备就行。

硬件项 规格要求 注意事项
标定板 棋盘格或圆点阵,精度 ±0.01mm 表面不能有划痕、污渍;陶瓷材质比纸基的耐用
相机 分辨率满足项目需求,全局快门优先 采集前清洁镜头表面,检查是否有灰尘
镜头 焦距与工作距离匹配,畸变尽量小 固定光圈,标定过程中不能变焦或变光圈
光源 均匀、稳定、无频闪 环形光或背光均可,避免局部过曝
支架/夹具 稳固,可微调角度 标定板支架不能晃动,否则拍出来是糊的
计算机 安装 HALCON 19.11 及以上版本 建议用有线连接相机,USB 线不要太长

⚠️ 我曾经踩过的坑:

  • 有一次用纸基标定板,环境湿度大,板子翘曲了,标定结果直接偏了 0.3 个像素。从那以后我只用陶瓷或玻璃基板。
  • 还有一次,标定过程中不小心碰了镜头光圈环,结果前后照片参数不一致,标定出来的内参全是错的。记住:一旦开始采集,所有硬件参数都不能动。
  • USB 线超过 5 米,数据传输容易丢帧,我吃过这个亏。实在要长距离,用相机网口或光纤转接。

1.4 标定板的选择与使用要点

标定板是标定里最重要的「尺子」。我个人的习惯是:

  • 棋盘格 vs 圆点阵:棋盘格角点检测更稳定,适合大多数场景;圆点阵在畸变大的边缘区域表现更好。如果项目精度要求高,我建议用圆点阵。
  • 格子数量:7×7 或 9×9 比较常用。格子太少,标定精度不够;格子太多,角点检测容易出错。
  • 标定板尺寸:占视野的 1/3 到 2/3 之间。太小了,畸变信息不够;太大了,边缘区域拍不全。

💡 一个小技巧:

标定板不用每次都买新的。用之前拿酒精棉片擦一下,检查有没有划痕。我有一块陶瓷标定板用了三年,只要保养好,精度不会下降。

1.5 采集前的环境检查清单

嗯,这里要注意。很多工程师一上来就拍,结果拍完发现环境有问题。我建议你按这个清单过一遍:

  1. 光照均匀性:用相机拍一张白纸,检查四角和中心亮度差。差值超过 20% 就要调整光源。
  2. 工作距离:标定板放置的距离,要和实际测量时的距离一致。差太多,标定结果不适用。
  3. 相机固定:相机支架锁死,不能有微动。我见过有人用手扶着相机拍,结果每张照片的位姿都不一样。
  4. 标定板平面度:把标定板放在平台上,用直尺检查是否翘曲。翘曲超过 0.1mm 就得换。
  5. 环境振动:附近有没有大机器在运转?振动会导致图像模糊。等振动停了再拍。

说实话,这些检查花不了 5 分钟,但能帮你省下后面几个小时的排查时间。我自己现在每次标定前,都会默念一遍这个清单,已经成习惯了。