先说结论:AI 质检系统的误报率一旦超过两三成,一线员工一定会想办法把它关掉——不是"可能",是"一定"。这个坑我见过三次,三次都是同一个剧本:上线时欢天喜地,两个月后班组长悄悄把报警声关了,半年后仓库经理打电话请我们回去救场。救回来的方法从来不是换更贵的模型,而是四步调优:bad case 收集标注、阈值分级、光照与相机位改造、灰度发布。下面每一步都是可执行动作,你照着做就行。

为什么误报这么多:四个真凶

先说为什么。误报多,十有八九不是模型不行,是现场不行。四个最常见的原因:

  1. 光照变化。仓库不是实验室。上午十点阳光从高窗斜射进来,下午四点又没了;叉车经过挡一下光,相机看到的就是两张完全不同的图。模型在恒定光照下训练,现场光照一天变好几回,不误报才怪。
  2. 纸箱反光和标签褶皱。牛皮纸箱看着不起眼,但胶带和覆膜面单反光很强;标签贴歪了、褶皱了,条码有一半被胶带盖住——人眼扫一眼就知道"这箱没问题",模型看到的却是"特征缺失",直接报警。
  3. 样本偏差。训练集里全是"标准箱":端端正正、标签贴得板板正正。真实产线呢?箱子歪的、标签贴反的、箱体被压瘪一角的——模型没见过的,全算异常。
  4. 阈值一刀切。供应商交付时阈值设成一个数,全仓库通用。但入库口和出库口的光照、速度、箱型完全不一样,一个阈值管全场,误报能不高吗?

项目故事:关掉的那套系统,我们是怎么救回来的

讲个真事。去年一家做小家电的客户,输送线出口装了视觉质检,查标签缺失和箱体破损。上线第一周误报率——按他们自己的统计——超过一半。什么意思?每两个报警里就有一个是误报。复核的人站在屏幕前,一天点几百次"确认无误",点到第三天,班组长直接把报警音关了,屏幕最小化,该干嘛干嘛。系统名存实亡。

三个月后他们找我们,不是要调优,是要"证明这东西没用,好走报废流程"。我们去了,先做了一件事:连续 5 天,把每一次报警的截图和人工复核结果存下来,攒了两千来张 bad case 标注。你猜怎么着?误报里七成以上集中在两类:中午前后阳光直射时段的反光误报,和某一种深色覆膜箱的条码识别失败。

然后我们按下面四步调优,两周后误报率降到一成以内。客户仓库经理原话:"早知道是这么调的,当初就不该关。"

还有个反面例子:另一家客户,误报多,第一反应是"模型不行,换供应商"。换了第二家,误报照样多——因为光照和相机位一个没动。这个坑我见过三次,次次都是"只调模型不调现场"。

视觉检测相机现场调试

误报率调优四步:上线前夜 checklist 级别的操作清单

第一步:bad case 收集标注(5~7 天)

别急着调参数,先攒证据。

  1. 在质检工位旁放一台复核终端(或直接用现有屏幕),要求复核员对每一次报警点"真异常 / 误报",系统自动保存报警截图。
  2. 连续收集 5~7 天,覆盖早中晚班和晴天阴天。目标:至少攒下几百张误报截图。
  3. 把误报按原因打标签:反光 / 阴影 / 标签褶皱 / 箱体变形 / 速度模糊 / 其他,做成一张分布表。你会发现,绝大多数误报集中在 2~3 类原因上。先修这 2~3 类,事半功倍。

注意:标注的人必须是现场老员工,不是算法工程师。老员工一眼能看出"这是阳光晃的",工程师在办公室看截图只能猜。

第二步:阈值分级(拦截 / 预警 / 仅记录)

一刀切的阈值是万恶之源。改成三级:

级别 触发条件 动作 适用场景
拦截 置信度高且缺陷明确 停线 / 分流到异常口 条码完全缺失、箱体严重破损
预警 置信度中等 屏幕提示音,不停线,人工抽检 标签疑似褶皱、轻微反光
仅记录 置信度低 只存图存日志,不打扰产线 供后续复盘和训练

具体做法:

  1. 先把所有报警降级为"预警 + 仅记录"跑 3 天,统计各级的触发量。
  2. 把"拦截"级的阈值往高调——宁可放过一个可疑箱,也别让产线一天停几十次。停线一次的损失,够你漏检好多箱。
  3. 不同工位分别设阈值。入库口和出库口各一套参数,写进配置文件,别共用。

第三步:光照与相机位改造(投入小、见效最快的一步)

这是我每个项目必查的一步,也是性价比最高的一步:

  1. 给相机加装遮光罩 + 独立补光灯(环形光源或条形光源),让相机视野内的光照恒定,不受高窗阳光和叉车阴影影响。
  2. 相机安装角度避开正对高窗和顶灯直射,往侧面偏 15~30 度能大幅减少纸箱表面反光。(这个角度是我现场调出来的经验值,不同箱型再微调。)
  3. 检查快门速度和增益:输送线速度快了,快门跟不上就会拖影。让供应商把曝光参数和线速绑定,别用固定值。
  4. 改造完重跑 3 天,对比改造前后的误报分布表——反光类误报应该掉一大半。没掉?继续调光,别动模型。

第四步:灰度发布(别一次全开)

  1. 先开一条线 / 一个工位,跑 1~2 周,误报率稳定在一成以内再推广。
  2. 推广时每条线单独做第一步的 bad case 收集——别以为一条线调好了能复制到全场,每条线的光照和箱型都不一样。
  3. 上线前夜 checklist:阈值配置文件备份了吗?复核终端的"真异常 / 误报"按钮好用吗?班组长知道怎么临时降级为"仅记录"吗?报警日志有人每天看吗?这四项有一项没做到,第二天就别全开。

算一笔账:误报的隐性成本

AI 栏目要求讲 ROI,那我就把账算明白。下面这笔账不是官方数据,是我按常见现场规模做的估算,你代入自己的数字重算一遍:

成本项 误报放任不管 调优后
人工复核 每人每天几百次点击,约占用半个人力 降到原来的两三成
误停线 一天几十次,每次几分钟 只有拦截级才停线,偶发
关掉后的漏检 系统被关 = 质检归零,客诉和退货照单全收 系统在线,漏检率可控
调优投入 0(但系统等于白买了) 1~2 周人力 + 补光灯等小改造

反常识的判断来了:**误报率降到零不是目标,降到"一线愿意留着它"才是目标。**漏检和误报是跷跷板的两头——把误报压到零,漏检一定上去。而一次漏检(错发、破损箱流出)的成本,顶得上几百次误报的人工复核。所以阈值策略永远是"宁可多报几个可疑,不可放过一个实锤",但"多报"的部分必须走"预警 / 仅记录",不能停线。这就是第二步分级的意义。

常见翻车点(收尾前再看一遍)

  1. 只调模型不调现场。这个坑我见过三次。模型迭代三个月,不如加一盏补光灯。
  2. 阈值一刀切全场通用。不同工位、不同时段,阈值必须分开。
  3. 标注外包给不懂现场的人。bad case 必须现场老员工标,否则标签全是错的,越训越偏。
  4. 上线第一天就全开。不做灰度,误报一炸,一线当天就关,你连收集 bad case 的机会都没有。
  5. 没人看报警日志。AI 质检系统上线后,报警日志必须有人每天看 10 分钟——这是发现新误报模式的唯一渠道。没人看,等于没装。

最后说一句:AI 质检不是"装上就灵"的设备,它是"越调越灵"的系统。你把它当一次性采购,它就给你一次性的教训;你把它当产线工具持续调优,它才开始给你省钱。

作者:林晓|WMS 实施顾问