一个异常检测模型在公开数据集上表现很好,为什么进入产线后仍可能让质检员忙不过来?关键差别在于:研究分数描述某种评估条件下的区分能力,而产线要决定每件产品如何处置。本文提出以“固定阈值下的漏检、误报、节拍与复检能力”共同验收的方法,适用于以外观筛查为目标的工业视觉系统,不把热力图或自然语言解释当作产品合格证明。
先明确模型输出与工厂判定之间的距离
工业视觉异常检测通常尝试识别偏离正常外观的样本。以 PatchCore 为例,研究者使用正常图像的局部特征建立代表性记忆库,用于异常检测与定位。[1] 它提供的是一种可参考的技术路线,不能由此推导出所有材料、缺陷和工位都适合这类方法。
异常分数不天然等于产品不合格概率,也不等于缺陷严重程度。新批次纹理可能罕见但合格,尺寸超差也可能在普通二维图像中不明显。首先应由质量人员定义缺陷类别、可接受差异、判废依据与无法通过当前成像方式判断的项目,再决定模型承担筛查、定位还是最终放行职责。
本文的工程建议是把系统拆成三个判定:图像是否可用,外观是否需要复核,产品是否符合业务质量要求。图像模糊、遮挡或缺少必要视角时,应进入重拍或人工通道;不能因模型分数低就默认产品正常。多模态模型的文字说明可以辅助复核,但不应替代缺陷证据和质量规则。
用工件建立评估单位,用工况建立测试边界
若一件产品有四张图,现场按“四图任一触发即复检”处置,就必须在合并四图后统计工件级结果。逐图误报率不能直接当作工件误报率,同一工件的视角也不能被分散到开发与验收集合中。先冻结视角合并规则,再比较模型,才能让评估对象与业务动作一致。
测试材料应覆盖计划上线的料号、生产批次、班次、相机、光照与设备状态。MVTec AD 2 的官方说明特别包含训练阶段未必出现过的测试光照条件。[2] 这说明评估可以主动检验工况变化;它不证明使用该数据集就覆盖了某家工厂的现场分布。
建议分别建立正常生产样本、已确认缺陷样本和工况变化样本。正常样本用于估计误报及日常复检量;缺陷样本用于估计各类缺陷漏检;变化样本用于检验边界。人工富集的缺陷集合有助于观察稀有缺陷,但不能用其中的缺陷比例推算真实产线告警精确率。
标注记录至少保留工件编号、采集时间、工况、最终判定与复核依据。对争议样本设置待裁定状态,不悄悄删除困难样本。尺寸、内部缺陷或强度问题若需要其他测量方式,应把相应仪器或检查流程的结论作为依据,并明确视觉模型能够覆盖的部分。
AUROC 适合比较区分能力,放行需要一个固定阈值
ROC 曲线描述不同阈值下真阳性率与假阳性率的变化,AUROC 是该曲线下面积。[3] 它汇总多个阈值的表现,因此两个 AUROC 接近的模型,在企业实际允许的低误报区间内仍可能表现不同。高 AUROC 也不等于选定阈值下有同样高的检出率。
建议报告三个直接对应处置的比率:漏检率为被放过的缺陷工件数除以已确认缺陷工件数;误报率为被触发复检的合格工件数除以已确认合格工件数;告警精确率为触发复检的真实缺陷工件数除以全部触发复检工件数。三者分母不同,不可互换。超时、无图和无结果应单列,并计入完整流程的处置统计。
先在开发材料上选择阈值和图像后处理规则,再冻结到独立验收材料上评估。若看到验收错误后继续调阈值,这批材料就参与了开发,需要另外保留独立验证证据。只用正常样本可以估计某个阈值的误报,不能在没有缺陷证据时确认其漏检表现。
阈值选择应同时受关键缺陷漏检上限与复检能力约束。如果所有候选阈值都不能同时满足两者,项目应改进成像、模型或工位流程,或缩小自动化范围。单纯提高阈值压低误报,可能增加漏检;降低阈值追求更多检出,则可能造成复检积压。这些上限必须由现场确定,本文不提供通用行业阈值。
构造示例:很低的误报率仍可能占满复检工位
以下完全是构造示例,没有运行模型或取得实测数据。假设每天检查 10,000 件产品,真实缺陷率为 0.2%,即 20 件缺陷、9,980 件合格品。再假设固定阈值下检出率为 95%、误报率为 1%,且这些条件适用于该生产分布。
按期望值计算,模型每天发现 19 件缺陷、漏掉 1 件,同时将约 100 件合格品送入复检。因此约 119 次告警中只有约 16% 是真实缺陷。分数看起来不错,仍可能出现大部分告警来自合格品的情况;这里的 16% 是假设条件下的算术结果,不是某款模型的表现。
若每件复检平均两分钟,这些告警需要约 238 分钟复检时间。假设当日只预留 180 分钟,流程就会积压;若告警集中出现,全天工时即使足够,也未必满足工件通过工位的期限。还需统计峰值到达、复检时长分布与人员实际可用时段。
在缺陷率与检出率保持不变的另一个假设中,将误报率降到 0.1%,每日约有 29 次告警、需要约 58 分钟复检。这个对比说明低误报区间的重要性,不代表实际调阈值能够保持检出率不变。模型团队必须交付完整的阈值取舍,不能只展示其中最有利的一项指标。
零漏检也需要样本量与不确定性说明
验收时只遇到少量缺陷,即使全部检出,也不能宣布未来零漏检。NIST 的统计资料说明,在失败数或样本量很小时,常见的正态近似区间可能不够准确,可以采用基于二项分布的精确方法。[4] 对关键缺陷,应同时报告样本数、漏检数与区间,而不只写百分比。
以下为本文依据二项模型所作的演算。假设缺陷工件相互独立、来自同一目标分布,真实漏检概率固定为 p;连续 n 件缺陷零漏检的概率为 (1-p)^n。令其等于 0.05,可得零漏检时单侧 95% 置信上限为 1-0.05^(1/n)。60 件缺陷全部检出时,上限仍约为 4.87%;300 件全部检出时,约为 0.99%。这些不是验收标准,也不是实测结果。
这一计算不能弥补覆盖不足。同一缺陷工件拍摄数百张图片,不等于数百件独立缺陷;只验证划伤,也不能把上限用于裂纹。若材料来自同一异常生产事件,样本之间可能相关。应按独立工件、事件与工况说明证据范围,必要时采用分组统计设计。
缺陷稀少时,可以结合留样、经质量人员确认的缺陷工件和后续影子运行积累证据。人为制造或合成缺陷可用于开发及压力检查,但未验证其与真实缺陷的一致性前,不能替代全部现场验收材料。证据不足的关键类别,应保留人工检查或其他检测方式。
先排查成像与分布,再决定换模型
若某个班次误报升高,建议按同一工件回放原图、裁剪、缩放和异常图,检查反光、焦距、曝光、夹具偏移及背景变化。若微小缺陷在缩放后已经丢失,扩大模型并不能保证恢复原本没有进入输入的信息。提高分辨率、多视角或局部切片都是候选办法,但会增加采集、推理和结果合并成本,需要重新验收节拍。
若缺陷定义稳定且已有充足标注,可以比较监督式分类或分割;若正常外观较稳定而缺陷类型开放,可以把仅用正常材料建模的异常检测作为候选;若主要问题是尺寸或几何公差,应评估测量、规则或三维方案。这里的选择依据是可观测信息和任务要求,没有一种方法因名称更新就自动更适合。
误报也可能来自正常材料覆盖不足。补充经过确认的正常样本有时比更换底座更直接,但必须避免把尚未裁定的缺陷吸收为正常。任何记忆库、模型、阈值或图像预处理变更都应形成新版本,在固定回归集与相应工况样本上复核。
对于需要给人员定位的任务,还应验收异常区域是否覆盖目标缺陷、是否指向错误位置。像素级分数不能代替工件级漏检,工件被正确告警也不能证明定位足够准确。定位判据应按复检动作定义,例如是否帮助人员找到需要确认的区域,而不是仅展示颜色鲜明的热力图。
用影子运行检查整条处置链
建议先让模型旁路运行:保留原质检流程,记录模型会触发哪些工件、人工最终如何判定、耗时发生在哪里。验收时间应从工件触发采集开始,到处置系统获得有效结果为止,包含传输、预处理、排队、推理与通信;单独的模型推理耗时不代表整条产线节拍。
必须抽查模型未告警的工件,否则只能看见告警质量,无法发现漏检。抽查方案应覆盖高风险工况与随机正常流量,并记录抽样概率和样本来源;不能直接用偏向困难样本的复核比例估计全线漏检率。对尚无足够证据的缺陷类别,旁路观察不能替代原有检查。
同时演练相机离线、结果超时、工件编号错配和复检工位拥堵。处置策略可以是重拍、隔离、人工接管或按现场规则停线,须预先确定;“没有检测结果”不得被当成“未发现异常”。自动放行或剔除还需要确认结果与具体工件正确对应。
交付一份能够重做验收的证据包
建议证据包包含采集条件和工件覆盖范围、标注与争议裁定记录、模型及预处理版本、阈值与视角合并规则、逐工件判定结果、按缺陷和工况拆分的漏检误报、统计区间、节拍与复检容量,以及异常处置演练记录。质量、生产和技术负责人应共同确认放行范围。
上线后监控告警率与复检积压有助于发现变化,但告警率稳定本身不能证明漏检稳定,仍需持续抽检。更换光源、镜头、材料、工艺或模型后,应根据影响范围重新验证。本文使用公开研究与官方资料建立方法,不宣称壹典已经完成上述实验;在线资料核查于 2026 年 10 月 1 日。
