机器视觉检测项目翻车,八成不是算法不行,而是打光不到位、硬件选型没留余量、判定阈值定得太死。靠人眼抽检,漏检一个批次就是客诉和返工;上了视觉,误判率压不下来,合格品被成片过杀,产线照样要骂街。一套能用的视觉检测系统,核心是把光源、相机、算法和 PLC 剔除这四件事拧成一股绳。
一、视觉检测能做什么、做不了什么?先划清边界
| 任务类型 | 典型内容 | 难点 |
|---|---|---|
| 有无 / 识别 | 零件在不在、装没装、字符识别 | 遮挡和姿态变化 |
| 尺寸测量 | 孔径、间距、同轴度、边缘尺寸 | 精度与标定 |
| 定位引导 | 找中心、纠偏、引导机器人抓取 | 坐标系转换 |
| 缺陷检测 | 划痕、脏污、崩边、色差 | 样本不均、过杀漏检 |
说实话,前三类都是确定性任务,规则清楚、好验收。最难的是缺陷检测——什么算缺陷、什么算正常纹理,人眼自己都未必意见一致。立项时如果客户只会说"把不良挑出来",连缺陷样件都凑不齐,这项目基本就要悬。
二、硬件选型:相机、镜头怎么算才够用
选型先从精度倒推,别反过来。先确认要测的最小特征尺寸和视野范围,再算像素:
- 想看清一个特征,至少覆盖 3~5 个像素,测量类项目建议留到 5~10 个;
- 分辨率 = 视野 ÷ 单像素精度,再留 20% 以上余量,别卡着边界选;
- 运动产线选全局快门,卷帘快门拍运动物体会变形;
- 帧率要覆盖节拍:单工位节拍 200ms,相机加算法总耗时就得压在 100ms 内。
// 举例:视野 60mm × 45mm,要求精度 0.05mm // X方向像素 = 60 / 0.05 = 1200,选 1600×1200 (200万像素) 留余量 // 镜头按靶面尺寸(如 1/1.8")和工作距离选,FOV 必须覆盖相机靶面
镜头别凑合。低畸变、远心镜头用于精密测量,普通镜头边缘有畸变和暗角;镜头选错,后面算法再怎么补都吃力。
三、打光才是灵魂:光源和照明方式决定成败
干视觉久了都知道一句话——没有好图像,就没有好算法。同一颗相机,光打好了,缺陷自己"浮"出来;光打不好,图像里全是干扰,神仙也难判。
| 光源 / 打光 | 适合场景 |
|---|---|
| 环形光 / 同轴光 | 平面字符、反光表面、Mark 点 |
| 低角度环形光 | 划痕、凹凸、边缘缺陷 |
| 背光 | 轮廓尺寸、有无检测 |
| 条形光 / 穹顶光 | 大目标、曲面、金属反光 |
光源选型没有公式,就是拿着实物在暗箱里一种种试。试到缺陷和背景对比度拉到最大、正常批次图像稳定,才算数。环境光要挡,车间灯光一闪一闪的,不遮光罩起来,白天和晚上判出来的结果都能不一样。
四、图像处理流程和判定逻辑
不管用 Halcon、VisionPro 还是 OpenCV,主流程都差不多:采图 → 滤波去噪 → 定位 ROI → 分割提取 → 特征计算 → 阈值判定。几个实战经验:
- ROI 尽量缩小,只看该看的区域,背景干扰能少一大半;
- 判定别只用单一固定阈值,配合位置归一化、模板匹配消除姿态差异;
- 算法参数和阈值配置化,现场调参不用重新编译;
- NG 图片自动存盘,按 SN 归档,这是后期分析误判最宝贵的素材。
// 判定结果结构:OK/NG 之外,还要带置信度和缺陷明细 class VisionResult { public string Sn; public bool IsNg; public double Score; // 置信度,过低走人工复核 public string Defects; // "划痕,崩边" public string ImagePath; }
五、和PLC握手:触发、判定、NG剔除必须闭环
视觉不是孤立的工位,标准握手走这么几拍:
- 工件到位 → PLC 发触发信号(带频闪);
- 视觉采图判定 → 回传 OK / NG 和完成标志;
- NG 工件走到剔除位 → PLC 根据缓存结果吹气 / 挡板剔除;
- 剔除要有到位确认,防止"判了没剔掉"。
六、误判率怎么压?样本库和验收才是关键
视觉项目验收,光看"能不能跑"远远不够,要盯住两个指标:漏检率(不良放过)和过杀率(好品误杀)。漏检率必须接近零,过杀率则要和产线约定一个可接受值,通常百分之几以内。
- 立项就收集样本:正常件、各类缺陷件,数量越多越好,缺陷件不够可以人为制作;
- 样本分训练集和验证集,严禁用调过参数的同一批图"自证清白";
- 试产期间保留人工复检对照,跑上几千上万件再统计真实指标;
- 低置信度结果一律转人工,别让算法硬判。
我之前做过一个电子元件外观检测,实验室里指标漂亮得很,一上线过杀率冲到 8%。后来发现是来料批次的正常纹理有差异,靠补充新批次样本、加上灰度归一化,花了两周才压回 1% 以内。所以你看,视觉系统不是交付那天就结束,而是跟着产品批次持续养的。
如果你正打算上视觉检测,先去做这件事:找 30 个正常件和尽可能多的缺陷件,在供应商的光源试台上实拍一轮,看缺陷能不能稳定地"显形"。打光这关过不了,后面谈算法和报价都是空中楼阁——图像质量,才是这类项目唯一的入场券。
