制造业质检上 AI:三个厂踩过的坑和一张落地路线图
视觉质检是制造业最容易立项的 AI 项目,也最容易在量产线上失败。本文基于三类产线的真实经验,讲清楚样本怎么采、模型怎么部署、报警阈值怎么定,以及最容易被忽略的复检流程。
视觉质检几乎是每个制造企业做 AI 的第一站:有明确目标、有现成相机、结果可量化、能算清 ROI。但我们在三个不同产线上看到的情况高度一致——POC 阶段准确率漂亮,上线三个月后被车间搁置,工人绕过系统用回人眼。
失败原因几乎从不是模型精度不够,而是POC 条件和生产条件之间的差距。
坑一:样本是”挑”出来的,不是”采”出来的
POC 阶段最常见的数据采集方式:让质检员把过去半年的不良品照片整理出来,正样本从良品里随便抽一些。这样得到的训练集,不良品是”典型缺陷的代表作”,良品是”随机采样”。
问题在于真实产线上的分布完全不同:
- 不良品绝大多数是”轻微、边界模糊、难判定”的,典型缺陷是少数
- 良品里混着大量”看起来像不良但其实合格”的样品(纹理、反光、异物)
- 拍摄条件随光照、工位、设备老化持续漂移
结果:模型学会了区分”典型缺陷 vs 随机良品”,在线上遇到边界样本时判断失准,而且误报率高得离谱。车间每天处理几十条误报,最后干脆关掉系统。
正确做法:在真实产线上连续采集至少 3 天、覆盖不同班次和光照条件的数据,由两名以上质检员独立标注有争议的样本,把”判定一致”和”判定分歧”分开存。分歧样本是最有价值的部分——它们标出了任务的固有难度边界。
一条经验:如果两位熟练质检员的分歧率超过 15%,这个检测任务用当前成像条件就做不好,先改进打光或相机,而不是换模型。
坑二:部署环境不是一个模型,是一条链路
POC 在办公室跑,输入是存好的图片。线上是:相机采集 → 传输 → 推理 → 结果展示 → 分拣动作,中间任一环节出问题,系统都表现为”不准”。
实测中最常见的三个工程问题:
- 节拍对不上。 产线节拍 800ms,完整推理链路跑到 1.2s,导致检测滞后一个工件——这类问题在演示时完全看不出来。
- 光照漂移。 环境光随时间和天气变化,模型在下午三点之后误报率明显上升。解决办法是固定光源 + 定期白平衡校准,而不是让模型”学会适应光照”。
- 相机清洁与镜头污染。 这是单一最大误报来源,且极易被忽略。要在系统里加一张”参考图”定期比对,图像整体模糊度超标时先报警”镜头需清洁”,而不是输出一堆缺陷。
建议:POC 阶段就把推理链路整体搬到产线旁,用它跑至少一周的离线数据,测端到端延迟和漂移,而不是用办公室的图片集测准确率。
坑三:阈值定在了错误的地方
模型输出一个分数,需要落成”通过/不通过”两个动作。这个阈值的设定方式决定了系统能不能活下来。
多数团队的做法是找”准确率最高”的点。这个做法在质检里是错的,因为两类错误的代价完全不对称:
- 漏检(坏品判良):流出到客户,代价可能是一次召回
- 误报(良品判坏):由人工复检确认,代价是一次人工工时
正确的方法是确定漏检容忍度(通常由质量部门给出,比如 0.1%),在这个约束下最小化误报。这样得到的阈值往往比”准确率最高点”更保守。
还有一层要设计:把模型输出分成三段——确定良、确定不良、需要人工复检。 三段式比二段式更适合现实产线,因为中等置信度的样本本来就该由人看。实践中,让复检区占 5-10% 的量,能同时拿到低漏检和低误报,而且工人不会因为”系统老是烦我”而绕过它。
一张落地路线图
按阶段推进,每个阶段有明确出口条件:
阶段0 任务定义(2周)
定义缺陷类别、判定标准、成像方案;测质检员分歧率
出口:分歧率 < 15%
阶段1 数据采集(3-4周)
真实产线连续采集,覆盖班次/光照/批次
出口:每类缺陷 ≥ 200 个真实样本,含边界样本
阶段2 离线验证(4-6周)
模型训练 + 三段式阈值设定 + 影子运行(只记录不干预)
出口:在影子期数据上漏检率达标、误报率可接受
阶段3 并行运行(4周)
AI 与人工双检,AI 结果不参与分拣,逐日对账
出口:连续两周无重大漏检,误报处理工时低于阈值
阶段4 切换与监控(持续)
人机协同,建立误报反馈回路(工人标注"这是误报"直接进训练集)
监控:漂移指标、误报率、漏检抽检
最容易被忽略的一件事:让工人参与阈值设计
三个厂的经验里,唯一成功的那个项目做了一件其他两个没做的事:在阶段3邀请一线质检员一起定复检规则。工人知道哪类缺陷他们是真拿不准、哪类是系统太敏感。他们的直觉比数据更快收敛。
质检系统最终是给人用的。如果工人觉得它”在添麻烦”,任何精度都无法挽回。