先说结论:AI 质检系统的误报率一旦超过两三成,一线员工一定会想办法把它关掉——不是"可能",是"一定"。这个坑我见过三次,三次都是同一个剧本:上线时欢天喜地,两个月后班组长悄悄把报警声关了,半年后仓库经理打电话请我们回去救场。救回来的方法从来不是换更贵的模型,而是四步调优:bad case 收集标注、阈值分级、光照与相机位改造、灰度发布。下面每一步都是可执行动作,你照着做就行。
为什么误报这么多:四个真凶
先说为什么。误报多,十有八九不是模型不行,是现场不行。四个最常见的原因:
- 光照变化。仓库不是实验室。上午十点阳光从高窗斜射进来,下午四点又没了;叉车经过挡一下光,相机看到的就是两张完全不同的图。模型在恒定光照下训练,现场光照一天变好几回,不误报才怪。
- 纸箱反光和标签褶皱。牛皮纸箱看着不起眼,但胶带和覆膜面单反光很强;标签贴歪了、褶皱了,条码有一半被胶带盖住——人眼扫一眼就知道"这箱没问题",模型看到的却是"特征缺失",直接报警。
- 样本偏差。训练集里全是"标准箱":端端正正、标签贴得板板正正。真实产线呢?箱子歪的、标签贴反的、箱体被压瘪一角的——模型没见过的,全算异常。
- 阈值一刀切。供应商交付时阈值设成一个数,全仓库通用。但入库口和出库口的光照、速度、箱型完全不一样,一个阈值管全场,误报能不高吗?
项目故事:关掉的那套系统,我们是怎么救回来的
讲个真事。去年一家做小家电的客户,输送线出口装了视觉质检,查标签缺失和箱体破损。上线第一周误报率——按他们自己的统计——超过一半。什么意思?每两个报警里就有一个是误报。复核的人站在屏幕前,一天点几百次"确认无误",点到第三天,班组长直接把报警音关了,屏幕最小化,该干嘛干嘛。系统名存实亡。
三个月后他们找我们,不是要调优,是要"证明这东西没用,好走报废流程"。我们去了,先做了一件事:连续 5 天,把每一次报警的截图和人工复核结果存下来,攒了两千来张 bad case 标注。你猜怎么着?误报里七成以上集中在两类:中午前后阳光直射时段的反光误报,和某一种深色覆膜箱的条码识别失败。
然后我们按下面四步调优,两周后误报率降到一成以内。客户仓库经理原话:"早知道是这么调的,当初就不该关。"
还有个反面例子:另一家客户,误报多,第一反应是"模型不行,换供应商"。换了第二家,误报照样多——因为光照和相机位一个没动。这个坑我见过三次,次次都是"只调模型不调现场"。

误报率调优四步:上线前夜 checklist 级别的操作清单
第一步:bad case 收集标注(5~7 天)
别急着调参数,先攒证据。
- 在质检工位旁放一台复核终端(或直接用现有屏幕),要求复核员对每一次报警点"真异常 / 误报",系统自动保存报警截图。
- 连续收集 5~7 天,覆盖早中晚班和晴天阴天。目标:至少攒下几百张误报截图。
- 把误报按原因打标签:反光 / 阴影 / 标签褶皱 / 箱体变形 / 速度模糊 / 其他,做成一张分布表。你会发现,绝大多数误报集中在 2~3 类原因上。先修这 2~3 类,事半功倍。
注意:标注的人必须是现场老员工,不是算法工程师。老员工一眼能看出"这是阳光晃的",工程师在办公室看截图只能猜。
第二步:阈值分级(拦截 / 预警 / 仅记录)
一刀切的阈值是万恶之源。改成三级:
| 级别 | 触发条件 | 动作 | 适用场景 |
|---|---|---|---|
| 拦截 | 置信度高且缺陷明确 | 停线 / 分流到异常口 | 条码完全缺失、箱体严重破损 |
| 预警 | 置信度中等 | 屏幕提示音,不停线,人工抽检 | 标签疑似褶皱、轻微反光 |
| 仅记录 | 置信度低 | 只存图存日志,不打扰产线 | 供后续复盘和训练 |
具体做法:
- 先把所有报警降级为"预警 + 仅记录"跑 3 天,统计各级的触发量。
- 把"拦截"级的阈值往高调——宁可放过一个可疑箱,也别让产线一天停几十次。停线一次的损失,够你漏检好多箱。
- 不同工位分别设阈值。入库口和出库口各一套参数,写进配置文件,别共用。
第三步:光照与相机位改造(投入小、见效最快的一步)
这是我每个项目必查的一步,也是性价比最高的一步:
- 给相机加装遮光罩 + 独立补光灯(环形光源或条形光源),让相机视野内的光照恒定,不受高窗阳光和叉车阴影影响。
- 相机安装角度避开正对高窗和顶灯直射,往侧面偏 15~30 度能大幅减少纸箱表面反光。(这个角度是我现场调出来的经验值,不同箱型再微调。)
- 检查快门速度和增益:输送线速度快了,快门跟不上就会拖影。让供应商把曝光参数和线速绑定,别用固定值。
- 改造完重跑 3 天,对比改造前后的误报分布表——反光类误报应该掉一大半。没掉?继续调光,别动模型。
第四步:灰度发布(别一次全开)
- 先开一条线 / 一个工位,跑 1~2 周,误报率稳定在一成以内再推广。
- 推广时每条线单独做第一步的 bad case 收集——别以为一条线调好了能复制到全场,每条线的光照和箱型都不一样。
- 上线前夜 checklist:阈值配置文件备份了吗?复核终端的"真异常 / 误报"按钮好用吗?班组长知道怎么临时降级为"仅记录"吗?报警日志有人每天看吗?这四项有一项没做到,第二天就别全开。
算一笔账:误报的隐性成本
AI 栏目要求讲 ROI,那我就把账算明白。下面这笔账不是官方数据,是我按常见现场规模做的估算,你代入自己的数字重算一遍:
| 成本项 | 误报放任不管 | 调优后 |
|---|---|---|
| 人工复核 | 每人每天几百次点击,约占用半个人力 | 降到原来的两三成 |
| 误停线 | 一天几十次,每次几分钟 | 只有拦截级才停线,偶发 |
| 关掉后的漏检 | 系统被关 = 质检归零,客诉和退货照单全收 | 系统在线,漏检率可控 |
| 调优投入 | 0(但系统等于白买了) | 1~2 周人力 + 补光灯等小改造 |
反常识的判断来了:**误报率降到零不是目标,降到"一线愿意留着它"才是目标。**漏检和误报是跷跷板的两头——把误报压到零,漏检一定上去。而一次漏检(错发、破损箱流出)的成本,顶得上几百次误报的人工复核。所以阈值策略永远是"宁可多报几个可疑,不可放过一个实锤",但"多报"的部分必须走"预警 / 仅记录",不能停线。这就是第二步分级的意义。
常见翻车点(收尾前再看一遍)
- 只调模型不调现场。这个坑我见过三次。模型迭代三个月,不如加一盏补光灯。
- 阈值一刀切全场通用。不同工位、不同时段,阈值必须分开。
- 标注外包给不懂现场的人。bad case 必须现场老员工标,否则标签全是错的,越训越偏。
- 上线第一天就全开。不做灰度,误报一炸,一线当天就关,你连收集 bad case 的机会都没有。
- 没人看报警日志。AI 质检系统上线后,报警日志必须有人每天看 10 分钟——这是发现新误报模式的唯一渠道。没人看,等于没装。
最后说一句:AI 质检不是"装上就灵"的设备,它是"越调越灵"的系统。你把它当一次性采购,它就给你一次性的教训;你把它当产线工具持续调优,它才开始给你省钱。
作者:林晓|WMS 实施顾问






