1. 课程导入与工程视角建立
在工业视觉测量中,真正决定结果可信度的往往不是“能不能测出来”,而是“测出来的数是否可追溯到物理尺度、误差是否可控、结果是否可复现”。HALCON 提供了一套从相机标定、手眼标定、畸变校正到亚像素测量与精度验证的完整工具链,但工具本身不会自动保证精度。本课程的目标,是建立一条从标定到测量再到验证的工程闭环,让你在面对实际工件与节拍要求时,能判断误差来源、选择合适标定模型、设计验证方案,并给出可交付的精度结论。
一、整体技术链路:从像素到毫米的映射
工业视觉测量的本质,是建立“像素坐标”与“物理坐标”之间的稳定映射,并量化该映射的不确定度。HALCON 的标定测量链路可以概括为四个相互衔接的环节:
- 成像建模:用相机内参(焦距、主点、像元尺寸、畸变系数)描述镜头与传感器的成像几何,常用针孔模型加径向/切向畸变。
- 位姿标定:当相机安装在机器人或运动轴上时,通过手眼标定求取相机坐标系与机器人/工件坐标系之间的刚体变换。
- 测量提取:在标定后的图像上,用亚像素边缘、卡尺、匹配等算子提取特征点、线、圆,再经标定参数反投影到物理平面。
- 精度验证:用标准件、量块、棋盘格或已知尺寸工件,对测量结果做重复性、再现性与偏差评估,形成可追溯的精度报告。
这四个环节不是线性独立的,而是误差逐级传递的链条。例如内参标定残差偏大,会直接放大远距离测量点的物理误差;手眼标定旋转误差偏大,会让不同姿态下的测量值出现系统性漂移。因此,工程上必须把标定与验证视为同一件事的两面。
二、典型工业场景与精度诉求
不同场景对“精度”的定义差异很大,工程上必须先明确测量对象、量程、节拍与允许误差,再决定标定策略。
| 场景 | 典型对象 | 量程/视场 | 精度诉求(示例) | 关键难点 |
|---|---|---|---|---|
| 3C 结构件尺寸检测 | 手机中框、按键 | 100 mm × 80 mm | ±0.02 mm | 高反光、边缘弱 |
| 汽车零部件间隙面差 | 车门、翼子板 | 300 mm × 200 mm | ±0.1 mm | 大视场畸变、姿态变化 |
| 机器人抓取定位 | 料框内工件 | 500 mm × 400 mm | ±0.5 mm | 手眼标定旋转误差 |
| PCB 焊盘测量 | 焊盘、走线 | 50 mm × 50 mm | ±0.01 mm | 显微成像景深、标定板尺度 |
以 3C 结构件为例,若视场 100 mm、相机分辨率 500 万像素(2448×2048),单像素对应约 0.04 mm。要达到 ±0.02 mm,必须依赖亚像素边缘提取(通常可到 0.1~0.3 像素)与高精度标定,同时控制镜头畸变、光源稳定性和工件定位重复性。这说明“精度”不是单一算子能决定的,而是系统级指标。
三、学习路径与工具准备
本课程按“标定—测量—验证”的主线推进,建议按以下顺序建立能力:
- 环境与数据准备:安装 HALCON(建议 20.11 及以上),准备标定板(如 7×7 圆点阵列,间距 6 mm,精度 ±0.001 mm)、标准量块、棋盘格或陶瓷标定板;确认相机、镜头、光源与工控机连接稳定。
- 内参标定实操:采集 15~25 张不同姿态标定板图像,覆盖视场四角与中心,运行
calibrate_cameras,检查平均残差与单张残差,剔除残差过大的图像后重标。 - 手眼标定:根据相机安装方式选择
calibrate_hand_eye的 Eye-in-Hand 或 Eye-to-Hand 模式,采集机器人多姿态下的标定板位姿,检查旋转与平移残差。 - 测量与反投影:用
measure_pos、edges_sub_pix提取亚像素特征,结合image_points_to_world_plane将像素映射到物理平面,得到毫米级尺寸。 - 精度验证:用标准件重复测量 30 次,计算均值、标准差、极差与偏差,判断是否满足 ±0.02 mm 等指标;必要时做温度、光照、姿态的再现性测试。
四、工程视角:先定义“可接受的误差”,再设计链路
很多项目失败并非因为算法不会用,而是因为一开始没有定义清楚“允许多大误差、在什么条件下、如何判定”。工程上建议先写出一份简短的精度需求说明,例如:
测量对象:手机中框长度
标称尺寸:150.00 mm
允许误差:±0.02 mm
测量节拍:≤ 1.5 s/件
工作距离:300 mm
视场:120 mm × 90 mm
环境:20±2 ℃,白光背光
验证方式:标准量块重复 30 次,σ ≤ 0.005 mm,|偏差| ≤ 0.01 mm
有了这份说明,后续的相机选型、标定板选择、标定姿态设计、测量算子参数和验证方案才有依据。否则很容易出现“标定残差很小但实际测量偏差很大”的情况——因为标定残差只反映标定板上的拟合质量,不直接等于工件测量精度。