3. AOI数据质量与预处理

AOI(自动光学检测)每天产生的检测记录数量庞大,但“数据多”不等于“数据可用”。在进入SPC过程监控之前,必须先回答一个关键问题:这批AOI数据本身是否可信、是否完整、是否可比?如果直接拿原始检测记录去计算不良率、绘制控制图,缺失值、误报、漏报、重复检测和量纲不一致会同时污染统计结果,导致误报警或漏报警。本节围绕AOI数据的四类典型质量问题,讲清它们的成因、识别方法和清洗标准化处理方式。

一、AOI数据质量的四类典型问题

AOI数据质量问题通常集中在四个方面。第一是缺失值:某块板未检测、某条记录缺少元件位号、某次检测没有缺陷代码或没有测量值。第二是误报与漏报:误报是把合格焊点判为缺陷,漏报是把真实缺陷判为合格,两者对SPC的影响方向相反——误报抬高不良率,漏报压低不良率。第三是重复检测:同一块PCB因复检、返修后重测、程序切换重跑,产生多条记录,若不去重会把同一缺陷重复计数。第四是数据不一致:不同设备、不同程序版本、不同班次对同一缺陷使用不同代码或不同单位,导致数据无法直接汇总。

这四类问题不是孤立的。例如重复检测往往伴随缺失值(复检记录只填了部分字段),误报漏报又常与判定阈值和程序版本相关。因此预处理不能只做单点修补,而要形成一条从“识别—清洗—标准化—验证”的处理链。

AOI数据质量预处理链:从原始记录到可用SPC数据 原始AOI记录 板号/位号/缺陷码 时间/程序/判定 四类质量问题 缺失值 · 误报/漏报 重复检测 · 数据不一致 → 污染不良率与控制图 清洗处理 去重 · 缺失填补/剔除 误报漏报复核标记 保留可追溯的原始值 标准化 缺陷码映射统一 单位/量纲统一 板号+位号+时间对齐 缺失值处理策略 • 关键字段缺失 → 剔除该记录 • 非关键字段缺失 → 标记后保留 • 连续缺失 → 检查设备/程序 • 禁止用均值随意填补缺陷数 示例:位号为空则无法定位,必须剔除 误报/漏报识别 • 误报:合格判缺陷 → 复核确认 • 漏报:缺陷判合格 → 抽检/复判 • 用复核结果修正判定标签 • 记录误报率、漏报率趋势 示例:误报率>5%需检查阈值与光源 重复检测与标准化 • 去重键:板号+位号+检测时间 • 保留最新或最终判定记录 • 缺陷码映射到统一字典 • 单位统一(mm/μm、%等) 示例:复检记录只保留最终有效判定 输出:可用于SPC的干净数据集 唯一记录 · 统一缺陷码 · 可追溯判定 · 完整关键字段 质量反馈:异常数据回溯设备/程序/阈值,持续改进

二、缺失值的识别与处理

缺失值处理的第一步不是“填”,而是“判断这个字段缺了还能不能用”。AOI记录中,板号、位号、检测时间、判定结果属于关键字段,缺任意一个都会导致记录无法定位或无法统计,应直接剔除并记录剔除数量。缺陷代码、测量值、程序版本属于辅助字段,缺失时可以保留记录,但要在数据集中增加“字段缺失标记”,避免后续统计时把空值当成0。

对于连续多块板出现同一字段缺失,不能简单当作随机缺失处理,而应检查设备通信、程序导出模板或数据库写入是否异常。例如某台AOI连续20块板的“缺陷代码”为空,很可能是导出脚本字段映射错误,而不是检测本身没有问题。此时应暂停该数据进入SPC,先修复采集链路。

不要用均值、中位数或前一条记录随意填补缺陷数量、不良率等统计字段。这类填补会人为降低波动,使控制图变窄,反而增加误报警风险。缺失值应优先剔除或标记,而不是“造数”。

三、误报与漏报的识别与修正

误报和漏报是AOI数据中最难自动识别、但对SPC影响最大的问题。误报表现为合格焊点被判定为缺陷,通常由阈值过严、光源变化、程序误设引起;漏报表现为真实缺陷被判定为合格,通常由阈值过松、算法覆盖不足或元件遮挡引起。两者都不能只靠AOI自身数据判断,必须引入复核环节:对判定为缺陷的记录进行人工或二次检测确认,对判定为合格的关键位号进行抽检。

实际操作中,可以建立一张复核对照表,把AOI原始判定与复核结论并列,形成修正后的判定标签。例如某条记录AOI判定为“少锡”,复核结论为“合格”,则该记录应标记为误报,并在统计不良率时排除;反之,AOI判定“合格”但复核发现“虚焊”,则应补录为漏报。误报率和漏报率本身也应作为过程指标持续监控,当误报率超过设定阈值(示例:5%)时,应检查阈值、光源和程序版本,而不是直接调整SPC控制限。

四、重复检测的去重规则

重复检测常见于三种场景:返修后重测、复检、程序切换后重跑。去重的核心是确定唯一记录键。对于AOI数据,推荐使用“板号 + 位号 + 检测时间”作为组合键;如果同一板号位号在同一时间点确实存在多次检测,则应保留最终有效判定,并记录检测次数。去重时要注意:不能只按板号去重,否则会丢失同一板上多个位号的缺陷信息;也不能只按缺陷代码去重,否则会误删不同位号的同类缺陷。

去重后应输出两个结果:一是唯一记录集,用于SPC统计;二是重复检测统计表,记录重复次数和原因,用于分析返修和复检流程是否稳定。

五、数据清洗与标准化方法

清洗解决“数据能不能用”,标准化解决“数据能不能比”。标准化至少包括三件事:缺陷代码统一、单位统一、时间对齐。不同AOI设备或不同程序版本可能用“少锡”“锡少”“insufficient solder”表示同一缺陷,必须映射到统一字典;测量值可能混用mm、μm、mil,必须统一到同一单位;检测时间可能有时区或格式差异,必须统一为同一时间基准。

下面给出一个可参考的清洗与标准化处理示例(参数为教学示例,非实测值):

# AOI数据清洗与标准化示例(伪代码)
1. 读取原始记录 raw.csv
2. 关键字段检查:板号、位号、检测时间、判定结果
   - 任一为空 → 移入 rejected 表,记录原因
3. 去重:按 板号+位号+检测时间 分组
   - 保留 检测时间最新 且 判定有效 的记录
4. 缺陷码映射:
   - "少锡"/"锡少"/"insufficient solder" → SOLDER_INSUFFICIENT
   - "虚焊"/"cold solder" → SOLDER_COLD
5. 单位统一:
   - 所有长度测量值统一为 μm
6. 误报/漏报修正:
   - 复核结论=合格 且 AOI判定=缺陷 → 标记 false_call
   - 复核结论=缺陷 且 AOI判定=合格 → 标记 miss_call
7. 输出 clean.csv + 质量报告(剔除数、重复数、误报率、漏报率)

清洗完成后,必须做一次结果验证:检查记录总数是否与原始数据量匹配、关键字段是否还有空值、缺陷码是否全部落在统一字典内、单位是否一致。只有验证通过的数据,才允许进入SPC过程监控。否则,后续控制图再漂亮,也只是在错误数据上做统计。

建议把清洗规则固化为可重复执行的脚本或ETL任务,而不是每次手工处理。规则一旦变更(如新增缺陷码映射),应记录版本和生效时间,保证不同批次数据可比。

总结来看,AOI数据预处理的核心逻辑是:先识别缺失、误报漏报、重复和不一致四类问题,再按“关键字段剔除、辅助字段标记、复核修正判定、组合键去重、字典与单位统一”的顺序处理,最后用质量报告验证结果。只有这一步做扎实,SPC过程监控才有可靠的数据基础。