4. 缺陷分类与不合格代码体系

在视觉检测项目中,算法能识别出“有缺陷”只是第一步。真正决定系统能否融入质量体系的是:检测结果能否被翻译成QMS(质量管理系统)听得懂的语言。如果视觉系统输出的是“NG-001”,而QMS里记录的是“外观-划伤-轻微”,两者之间没有映射,那么不合格闭环就断在了数据入口。本节要解决的核心问题,就是建立一套分类字典,让视觉检测的缺陷类别、QMS的不合格代码、缺陷模式描述和严重度等级四者严格对齐。

一、四层对齐关系:从像素到质量记录

一套可用的分类字典不是简单的“缺陷名称列表”,而是四层结构的映射关系。第一层是视觉检测类别,即算法实际输出的标签,例如“scratch”“dent”“stain”“crack”。第二层是缺陷模式,描述缺陷的物理形态和成因倾向,例如“线性划伤”“凹坑变形”“表面污染”“结构性裂纹”。第三层是QMS不合格代码,这是质量体系中已经存在的、用于统计和追溯的标准代码,例如“IQC-AP-001”(来料外观划伤)、“PQC-DM-003”(过程尺寸变形)。第四层是严重度等级,通常分为致命(Critical)、严重(Major)、轻微(Minor),直接决定不合格品是报废、返工还是让步接收。

这四层之间必须是多对一或一对一的确定关系,不能出现一个视觉类别对应多个严重度等级的情况,否则同一缺陷在不同班次可能被判成不同结果,闭环就失去了可信度。下面这张图展示了四层对齐的结构关系,以及一个缺陷从被检测到进入QMS的完整路径。

缺陷分类字典四层对齐结构 视觉检测类别 算法输出标签 scratch dent stain crack burr 缺陷模式 物理形态描述 线性划伤 凹坑变形 表面污染 结构性裂纹 边缘毛刺 QMS不合格代码 质量体系标准代码 IQC-AP-001 PQC-DM-003 IQC-AP-007 PQC-ST-002 PQC-ED-005 严重度等级 处置决策依据 Critical 致命 Major 严重 Minor 轻微 映射示例: scratch → 线性划伤 → IQC-AP-001 → Major 长度>5mm 或深度>0.1mm 关键约束: 1. 每个视觉类别必须映射到唯一QMS代码,不允许一对多; 2. 严重度等级由缺陷模式+量化阈值共同决定,阈值需写入字典; 3. 字典版本变更时,QMS代码与视觉模型标签必须同步更新。

二、分类字典的字段设计

要让这套映射可维护、可审计,字典本身需要结构化存储。推荐的最小字段集包括:visual_label(视觉标签)、defect_pattern(缺陷模式)、qms_code(QMS代码)、severity(严重度)、threshold_rule(阈值规则)、disposition(默认处置方式)、revision(版本号)。其中threshold_rule是容易被忽略但极其关键的一列,它把“什么情况下算Major”从主观判断变成可执行规则。

例如,对于“scratch”这一视觉标签,字典中可以定义:当划伤长度≤5mm且深度≤0.05mm时,严重度为Minor,默认处置为“让步接收”;当长度在5~15mm或深度在0.05~0.1mm之间时,严重度为Major,默认处置为“返工”;当长度>15mm或深度>0.1mm,或位于密封面、受力面时,严重度为Critical,默认处置为“报废”。这些阈值不是拍脑袋定的,而是来自产品图纸公差、客户规范和过程能力数据的交叉验证。

三、与QMS代码体系的对齐方法

实际项目中,QMS往往已经运行多年,代码体系可能由质量部维护,存在历史包袱。对齐时不能强行让QMS改代码去适应视觉系统,而应该以QMS现有代码为基准,做“视觉标签→QMS代码”的单向映射。具体操作分三步:

  1. 导出QMS不合格代码清单,筛选出与外观、尺寸、功能相关的代码,排除明显不适用于视觉检测的类别(如“包装破损”“标签错误”)。
  2. 逐条匹配视觉可检测的缺陷模式。对于QMS中粒度较粗的代码(如“外观不良”),需要在字典中拆分为多个视觉标签,但QMS代码保持不变,通过defect_pattern字段区分。
  3. 反向验证:用一批已知QMS记录的历史不合格品,让视觉系统重新检测,检查映射后的代码与原始QMS代码的一致率。一致率低于95%时,需要回到字典调整阈值或补充缺陷模式。
实操建议:字典初期不要追求大而全。先覆盖Top 5高频缺陷模式,确保这5类的映射准确率稳定在98%以上,再逐步扩展。每新增一个视觉标签,必须同时确定它的QMS代码、严重度规则和默认处置方式,三者缺一不可。

四、严重度等级的判定逻辑

严重度等级不是缺陷类型的固有属性,而是“缺陷模式+位置+尺寸+产品用途”的函数。同一个划伤,出现在外观面是Minor,出现在密封面就是Critical。因此字典中的严重度字段不能只写一个固定值,而应该写成条件表达式或决策表。

下面给出一个可参考的严重度判定决策表示例,以“线性划伤”为例:

位置区域 长度范围 深度范围 严重度 默认处置
外观面 ≤5mm ≤0.05mm Minor 让步接收
外观面 5~15mm 0.05~0.1mm Major 返工
外观面 >15mm >0.1mm Critical 报废
密封面/受力面 任意 >0.02mm Critical 报废
非外观非功能面 ≤10mm ≤0.1mm Minor 让步接收

这张表可以直接作为字典中threshold_rule字段的配置依据。视觉系统在输出缺陷时,除了给出类别标签,还要输出位置区域、长度、深度等量化参数,由规则引擎查表得出严重度,再写入QMS记录。这样,QMS中看到的就不只是“有一个划伤”,而是“外观面、长度8mm、深度0.07mm、Major、返工”,闭环的每一步都有据可查。

五、字典的版本管理与变更控制

分类字典是活文档。产品换型、客户标准更新、工艺调整都会触发字典变更。变更时必须遵循三条规则:第一,任何字段修改都要升revision版本号,并在QMS中记录变更前后对照;第二,视觉模型标签的增删必须与字典同步,不允许模型输出了字典中不存在的标签;第三,严重度规则的调整需要质量工程师会签,不能由视觉工程师单方面修改。

常见陷阱:很多项目在验收时字典和QMS对得上,但运行三个月后出现“视觉系统报了NG,QMS里找不到对应代码”的情况。根因通常是字典版本没有随模型迭代更新,或者QMS侧新增了代码但未同步到字典。建议每月做一次字典与QMS代码清单的自动比对,差异项超过3条即触发评审。

总结来说,分类字典的本质是一份“翻译契约”:左边是视觉系统能说的语言,右边是QMS能听懂的语言,中间用缺陷模式和严重度规则做精确转译。这份契约越早建立、越严格维护,后续的不合格闭环就越顺畅,质量数据才真正具备统计分析和追溯改进的价值。