3、工业场景下的评估指标:过杀率、漏杀率、直通率(FPY)、每百万元器件缺陷数(DPPM)

聊到工业视觉检测,很多人第一反应就是「准确率多少?」。说实话,准确率在工业现场就是个伪命题。你想想看,一条产线一天跑几十万件产品,99.9%的准确率听起来很高了对吧?但算下来一天可能误判几百个,产线负责人能把你骂到怀疑人生。

工业场景真正看的是四个核心指标:过杀率、漏杀率、直通率(FPY)和每百万元器件缺陷数(DPPM)。这四兄弟才是评估模型能不能上线的硬通货。

一句话总结:实验室看准确率,产线看漏杀和过杀。漏杀出客诉,过杀亏成本,FPY看效率,DPPM定等级。

3.1 过杀率(Overkill Rate)

过杀率,说白了就是把好产品当成坏产品给踢掉了。我习惯叫它「冤假错案率」。

公式很简单:

过杀率 = 被误判为缺陷的良品数 / 实际良品总数 × 100%

举个例子。一条产线生产了10000个手机中框,实际良品9800个。检测模型把其中50个良品判成了缺陷。那么过杀率就是 50/9800 ≈ 0.51%。

嗯,这里要注意。过杀率每高0.1%,对大批量产线来说都是真金白银的损失。我遇到过一家做连接器的工厂,过杀率1.2%,一天多报废2000多个良品,一个月白白损失十几万。后来我们帮他们把过杀率压到0.3%以下,厂长当场拍板加单。

我的经验:过杀率不是越低越好。追求0过杀往往意味着把阈值放得太松,漏杀率会飙升。工业现场一般接受0.1%~0.5%的过杀率,具体看产品单价和客户要求。

3.2 漏杀率(Miss Rate / Escape Rate)

漏杀率,这是所有质检工程师的噩梦。坏产品跑到了客户端,轻则退货赔款,重则丢客户丢市场。

公式:

漏杀率 = 被误判为良品的缺陷数 / 实际缺陷总数 × 100%

还是那个手机中框的例子。实际缺陷200个,模型漏掉了3个,漏杀率就是 3/200 = 1.5%。

我曾经在一个汽车零部件项目上吃过亏。客户要求漏杀率必须低于0.1%,我们模型在测试集上做到了0.08%,高高兴兴上线。结果一个月后客户投诉说有缺陷件流出了。复盘发现,产线光照变化导致模型在特定角度下失效,漏杀率实际飙到了0.5%。从那以后,我要求所有项目必须在产线实际环境下采集至少一周的数据做验证,而不是只信实验室数据。

避坑指南:漏杀率是「一票否决」指标。如果客户要求漏杀率≤0.1%,你模型跑出来0.09%也别急着上线。留0.05%的余量给产线环境波动,这是血泪教训。

3.3 直通率(First Pass Yield, FPY)

直通率,也叫一次通过率。它衡量的是「产品第一次经过检测就直接通过的比例」。注意,是第一次,不包含返修后重测的。

公式:

FPY = 一次通过检测的良品数 / 投入检测的总产品数 × 100%

FPY这个指标很有意思。它不只是评估模型,更是评估整个检测流程的效率。如果FPY太低,说明要么模型过杀严重,要么产线本身良率就有问题。

我习惯把FPY拆成两部分看:

  • 产线良率:工艺本身能生产出多少良品
  • 检测效率:模型误判导致多少良品被拦下

举个例子。一条产线实际良率98%,模型过杀率0.5%。那么FPY大概在97.5%左右。如果FPY突然掉到95%,别急着调模型,先查查是不是产线工艺出了问题。

FPY范围 产线状态 建议动作
> 98% 优秀 维持,定期监控
95% ~ 98% 正常 关注过杀率,微调阈值
90% ~ 95% 需关注 排查模型和产线工艺
< 90% 异常 立即停线,全面排查

3.4 每百万元器件缺陷数(DPPM)

DPPM,全称Defect Parts Per Million。它衡量的是每百万个产品中,有多少个缺陷品被漏到了客户端。

公式:

DPPM = (客户端发现的缺陷数 / 出货总数) × 1,000,000

这个指标是客户用来考核供应商的。不同行业要求天差地别:

  • 消费电子:一般要求 DPPM < 500
  • 汽车电子:要求 DPPM < 50,甚至 < 10
  • 航空航天:要求 DPPM ≈ 0,接近零缺陷

我记得有个做车载摄像头的项目,客户要求DPPM ≤ 20。我们模型漏杀率做到0.01%,算下来DPPM是100,差得远。后来把漏杀率压到0.002%才勉强达标。你想想看,0.01%和0.002%只差0.008个百分点,但在DPPM上就是80和20的区别。

核心关系:漏杀率 ≠ DPPM。漏杀率是模型指标,DPPM是客户端实际体验。模型漏杀率0.01%,如果产线每天出货10万件,一个月就有300个缺陷品流到客户端,DPPM就是100。所以别只看百分比,要算值。

3.5 四个指标的关系与权衡

这四个指标不是孤立的。它们互相牵制,像跷跷板一样。你压了漏杀率,过杀率可能就涨了。你调高FPY,DPPM可能就上去了。

我一般用下面这张图来跟客户解释权衡关系:

工业视觉检测四指标权衡关系 检测模型阈值 过杀率 漏杀率 直通率 FPY DPPM 阈值↓ 过杀↑ 阈值↑ 漏杀↑ 过杀↑ FPY↓ 漏杀↑ DPPM↑ 跷跷板关系 阈值是核心调节旋钮 没有免费午餐

实际项目中,我一般按这个优先级来定指标:

  1. 先定漏杀率上限:根据客户要求或行业标准,这是红线
  2. 再优化过杀率:在满足漏杀率的前提下,尽量压低过杀率
  3. 监控FPY:FPY异常波动往往是产线或模型出问题的早期信号
  4. 追踪DPPM:这是最终的用户反馈,用来闭环改进模型
我的习惯:每次模型迭代,我都会列一张四指标对比表。如果新版模型漏杀率没降,过杀率反而涨了,那这次迭代就是无效的。别被「准确率提升了0.5%」这种话忽悠,工业现场只看这四个数。

3.6 实战:如何用这四个指标评估模型

假设你训练了一个缺陷检测模型,在测试集上得到以下结果:

指标 测试集结果 产线要求 结论
过杀率 0.8% ≤ 0.5% 不达标
漏杀率 0.05% ≤ 0.1% 达标
FPY 96.5% ≥ 97% 不达标
DPPM(推算) 500 ≤ 200 不达标

你看,漏杀率达标了,但过杀率超标导致FPY和DPPM都跟着出问题。这时候不能直接上线。我建议的做法是:

  • 先检查过杀样本,看看是模型对某些正常纹理过于敏感,还是标注数据有问题
  • 适当调整置信度阈值,在保证漏杀率不超0.1%的前提下,把过杀率压下去
  • 重新评估FPY和DPPM,直到四个指标全部达标

嗯,最后说一句。这四个指标不是算出来就完事了。产线环境会变,光照会变,产品批次会变。我要求团队每周自动生成一份四指标报表,一旦某个指标连续三天偏离基线,立刻触发告警。别等到客户投诉了才去翻数据,那时候就晚了。