一、标定数据采集概述:标定的意义、采集流程总览、硬件准备清单
1.1 我们为什么要做标定?
说实话,我刚入行那会儿,觉得标定就是个「走流程」的事。拿个棋盘格拍几张照片,跑个算子,完事。直到有一次,一个精密测量项目怎么都达不到 0.01mm 的精度要求,我排查了三天——镜头、光源、算法全查了一遍,最后发现是标定板歪了 0.5 度。
标定到底在干什么?说白了,就是给相机「配眼镜」。相机镜头天生有畸变,安装时也不可能垂直于被测面。标定就是把这些偏差算出来,然后补偿掉。没有这一步,你拍到的像素坐标和真实世界坐标之间,就是一笔糊涂账。
标定的核心目标就三个:
- 消除镜头畸变(径向畸变、切向畸变)
- 建立像素坐标系到世界坐标系的映射关系
- 确定相机内参(焦距、主点、畸变系数)和外参(旋转、平移)
我见过太多工程师,标定数据采集得马马虎虎,然后花大量时间调算法参数。其实你想想看,数据源就有问题,后面再怎么调也是白费力气。所以,标定数据采集,是整个机器视觉项目的根基。
1.2 采集流程总览:一张图说清楚
整个标定数据采集的流程,我习惯把它分成六个阶段。下面这张图,是我自己项目里一直用的框架,你可以直接拿去用。
这个流程里,我最想强调的就是那个反馈回路。标定不是一次性的,它是个迭代过程。我在一个汽车零部件项目里,来回迭代了 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 采集前的环境检查清单
嗯,这里要注意。很多工程师一上来就拍,结果拍完发现环境有问题。我建议你按这个清单过一遍:
- 光照均匀性:用相机拍一张白纸,检查四角和中心亮度差。差值超过 20% 就要调整光源。
- 工作距离:标定板放置的距离,要和实际测量时的距离一致。差太多,标定结果不适用。
- 相机固定:相机支架锁死,不能有微动。我见过有人用手扶着相机拍,结果每张照片的位姿都不一样。
- 标定板平面度:把标定板放在平台上,用直尺检查是否翘曲。翘曲超过 0.1mm 就得换。
- 环境振动:附近有没有大机器在运转?振动会导致图像模糊。等振动停了再拍。
说实话,这些检查花不了 5 分钟,但能帮你省下后面几个小时的排查时间。我自己现在每次标定前,都会默念一遍这个清单,已经成习惯了。