3. AOI数据质量与预处理
AOI(自动光学检测)每天产生的检测记录数量庞大,但“数据多”不等于“数据可用”。在进入SPC过程监控之前,必须先回答一个关键问题:这批AOI数据本身是否可信、是否完整、是否可比?如果直接拿原始检测记录去计算不良率、绘制控制图,缺失值、误报、漏报、重复检测和量纲不一致会同时污染统计结果,导致误报警或漏报警。本节围绕AOI数据的四类典型质量问题,讲清它们的成因、识别方法和清洗标准化处理方式。
一、AOI数据质量的四类典型问题
AOI数据质量问题通常集中在四个方面。第一是缺失值:某块板未检测、某条记录缺少元件位号、某次检测没有缺陷代码或没有测量值。第二是误报与漏报:误报是把合格焊点判为缺陷,漏报是把真实缺陷判为合格,两者对SPC的影响方向相反——误报抬高不良率,漏报压低不良率。第三是重复检测:同一块PCB因复检、返修后重测、程序切换重跑,产生多条记录,若不去重会把同一缺陷重复计数。第四是数据不一致:不同设备、不同程序版本、不同班次对同一缺陷使用不同代码或不同单位,导致数据无法直接汇总。
这四类问题不是孤立的。例如重复检测往往伴随缺失值(复检记录只填了部分字段),误报漏报又常与判定阈值和程序版本相关。因此预处理不能只做单点修补,而要形成一条从“识别—清洗—标准化—验证”的处理链。
二、缺失值的识别与处理
缺失值处理的第一步不是“填”,而是“判断这个字段缺了还能不能用”。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过程监控。否则,后续控制图再漂亮,也只是在错误数据上做统计。
总结来看,AOI数据预处理的核心逻辑是:先识别缺失、误报漏报、重复和不一致四类问题,再按“关键字段剔除、辅助字段标记、复核修正判定、组合键去重、字典与单位统一”的顺序处理,最后用质量报告验证结果。只有这一步做扎实,SPC过程监控才有可靠的数据基础。