1. 课程导入与工程视角建立

在工业视觉测量中,真正决定结果可信度的往往不是“能不能测出来”,而是“测出来的数是否可追溯到物理尺度、误差是否可控、结果是否可复现”。HALCON 提供了一套从相机标定、手眼标定、畸变校正到亚像素测量与精度验证的完整工具链,但工具本身不会自动保证精度。本课程的目标,是建立一条从标定到测量再到验证的工程闭环,让你在面对实际工件与节拍要求时,能判断误差来源、选择合适标定模型、设计验证方案,并给出可交付的精度结论。

一、整体技术链路:从像素到毫米的映射

工业视觉测量的本质,是建立“像素坐标”与“物理坐标”之间的稳定映射,并量化该映射的不确定度。HALCON 的标定测量链路可以概括为四个相互衔接的环节:

  • 成像建模:用相机内参(焦距、主点、像元尺寸、畸变系数)描述镜头与传感器的成像几何,常用针孔模型加径向/切向畸变。
  • 位姿标定:当相机安装在机器人或运动轴上时,通过手眼标定求取相机坐标系与机器人/工件坐标系之间的刚体变换。
  • 测量提取:在标定后的图像上,用亚像素边缘、卡尺、匹配等算子提取特征点、线、圆,再经标定参数反投影到物理平面。
  • 精度验证:用标准件、量块、棋盘格或已知尺寸工件,对测量结果做重复性、再现性与偏差评估,形成可追溯的精度报告。

这四个环节不是线性独立的,而是误差逐级传递的链条。例如内参标定残差偏大,会直接放大远距离测量点的物理误差;手眼标定旋转误差偏大,会让不同姿态下的测量值出现系统性漂移。因此,工程上必须把标定与验证视为同一件事的两面。

HALCON 标定测量与精度验证技术链路 ① 成像建模 内参:焦距/主点/像元 畸变:径向 k1,k2,k3 切向 p1,p2 ② 位姿标定 手眼:Eye-in-Hand Eye-to-Hand 刚体变换 R,t ③ 测量提取 亚像素边缘/卡尺 圆/线/角点拟合 反投影到物理平面 ④ 精度验证 标准件/量块 重复性/再现性 偏差与不确定度 残差反馈:重标定/模型修正 误差传递与工程关注点 标定板质量 平整度/图案精度 标定姿态覆盖 多角度/多位置 标定残差 RMS/最大偏差 测量重复性 σ/极差 最终精度 ±mm 结论 任一环节误差都会被后续环节放大,验证必须覆盖全链路而非单点

二、典型工业场景与精度诉求

不同场景对“精度”的定义差异很大,工程上必须先明确测量对象、量程、节拍与允许误差,再决定标定策略。

场景典型对象量程/视场精度诉求(示例)关键难点
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 像素)与高精度标定,同时控制镜头畸变、光源稳定性和工件定位重复性。这说明“精度”不是单一算子能决定的,而是系统级指标。

三、学习路径与工具准备

本课程按“标定—测量—验证”的主线推进,建议按以下顺序建立能力:

  1. 环境与数据准备:安装 HALCON(建议 20.11 及以上),准备标定板(如 7×7 圆点阵列,间距 6 mm,精度 ±0.001 mm)、标准量块、棋盘格或陶瓷标定板;确认相机、镜头、光源与工控机连接稳定。
  2. 内参标定实操:采集 15~25 张不同姿态标定板图像,覆盖视场四角与中心,运行 calibrate_cameras,检查平均残差与单张残差,剔除残差过大的图像后重标。
  3. 手眼标定:根据相机安装方式选择 calibrate_hand_eye 的 Eye-in-Hand 或 Eye-to-Hand 模式,采集机器人多姿态下的标定板位姿,检查旋转与平移残差。
  4. 测量与反投影:用 measure_pos、edges_sub_pix 提取亚像素特征,结合 image_points_to_world_plane 将像素映射到物理平面,得到毫米级尺寸。
  5. 精度验证:用标准件重复测量 30 次,计算均值、标准差、极差与偏差,判断是否满足 ±0.02 mm 等指标;必要时做温度、光照、姿态的再现性测试。
工具准备清单(示例):HALCON 开发环境、标定板(陶瓷/玻璃,精度 ±0.001 mm)、远心镜头或低畸变镜头、稳定背光/同轴光、标准量块(1 mm/5 mm/10 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

有了这份说明,后续的相机选型、标定板选择、标定姿态设计、测量算子参数和验证方案才有依据。否则很容易出现“标定残差很小但实际测量偏差很大”的情况——因为标定残差只反映标定板上的拟合质量,不直接等于工件测量精度。

常见误区:把标定残差当作最终测量精度;只用一张标定板图像完成标定;忽略镜头畸变随工作距离变化;手眼标定只做平移不做旋转;验证时只测一次就下结论。这些都会导致精度结论不可信。