“外观有没有异常”,AI 能回答得很好。但“内径是否在 51.2 mm 以上”,比起 AI,用尺子量更合适。结果可以留下数字,能解释为什么判为不良,而且不需要训练数据。本课以圆形零件为例,逐步讲解从图像中测量尺寸的过程。
1. 标定:1 个像素是多少 mm
图像中的距离以像素为单位。要换算成 mm,需要 mm/pixel 值。在相同位置拍摄已知尺寸的基准物(量块、标定板),再用实际长度除以像素数。例如 EB 产线的设置为 0.041 mm/pixel,也就是说 1 个像素的误差相当于 0.041 mm 的误差。
相机高度、镜头焦点或分辨率发生变化时,必须重新标定。换成 5MP(2448×2108)相机后,相同视野下的 mm/pixel 变小、精度提高,但数值也必须重新求取。
2. 轮廓提取:稳定地找出边界
测量归根结底就是处理边界线上的点。边界不稳定,测量值也会随之不稳定。
- Gaussian 模糊 — 降低噪声,消除伪边界。
- 二值化 — 区分零件与背景。光照不均匀时,使用按区域改变基准的自适应阈值。
- 形态学运算(Morphology) — 填补小孔洞并去除细小毛刺。
- Canny 边缘 — 把亮度急剧变化的线提取为边界。
3. 圆拟合:亚像素精度
用最小二乘法将圆拟合到边界点,数百个点相互平均,因此能以小于 1 个像素的单位求出圆心和半径。这里的关键是排除不是圆的部分。如果把卡箍耳部(ear)这类凸出部位包含进来,圆就会被拉向那一侧。Multi-Inspector EB 会排除耳部区域后再拟合圆,并以亚像素精度为目标。Hough 圆检测速度快但精度低,因此只用于界面显示。
4. 各项目测量
- 厚度 — 在指定的角度区间内画出多条测量线,测量内外边界之间的距离。选取前 N 个并剔除异常值,避免一粒灰尘就改变厚度。
- 圆度(Roundness) — 以比例表示轮廓与完美圆形的接近程度。变形的零件数值会下降。
- 周长·内径 — 由拟合的圆和实际轮廓计算得出。
5. 用规则判定
在 Multi-Inspector 中,会为测量模式(circularity)添加规则。例如将 roundness, thickness, circumference 指定为规则,并设置各项目的允许范围(如圆度 0.931 以上)。超出范围时,结果中会像 NG-Dim-THICKNESS 这样记录是哪个尺寸导致不良。
与 AI 搭配使用:三重判定
Multi-Inspector EB v2.3 以三种方式同时判定同一个零件。
| 模式 | 方式 | 能抓到的问题 |
|---|---|---|
| mode1 · AI 模型 | 对位(rotation-fix2)后进行异常检测 | 从未见过的外观异常 |
| mode2 · YOLO | 对位(yolo_align)后进行目标检测 | 已定义名称的缺陷 |
| mode3 · 尺寸 | 圆拟合测量(circularity) | 超出公差的尺寸 |
AI 不知道是否满足数字公差,测量也不知道表面的划伤。三种判定一起运行,就能相互弥补漏洞。对位后的图像只生成一次并与测量模式共用,因此即使判定增加,处理时间也不会大幅增加。