3. 视觉检测系统输出解析
在缺陷闭环工程中,检测系统本身只是“发现者”,真正进入工单流转的是结构化缺陷记录与可追溯的图像证据。如果输出解析这一步做不好,后续的缺陷分类、责任判定、工单派发和复盘分析都会失去可靠的数据基础。本节要解决的核心问题是:AOI、机器视觉、人工复判这三类来源各自输出什么、如何统一成同一种记录结构、图像证据如何与记录绑定。
三类来源的输出特征差异
AOI(自动光学检测)设备通常输出的是基于规则或模板匹配的判定结果。以SMT贴片后AOI为例,一条典型输出记录包含:板号(如SN-2024-00123)、检测工位(SPI/AOI-TOP/AOI-BOT)、元件位号(R120、U5)、缺陷代码(如缺件MISSING、偏移OFFSET、极性反REVERSE)、坐标(x=45.2mm, y=18.7mm)、判定阈值(相似度0.72,低于0.85判NG)、检测时间戳。AOI的优势是节拍快、重复性好,但它的“缺陷代码”是设备厂商自定义的,不同品牌、不同程序版本之间并不通用。
机器视觉系统(如基于深度学习的表面缺陷检测)输出的是模型推理结果。它通常给出缺陷类别(划伤、脏污、气泡、裂纹)、置信度(0.0~1.0)、边界框(x_min, y_min, x_max, y_max)或分割掩码,以及模型版本号。与AOI不同,机器视觉的类别体系由训练数据集决定,置信度阈值需要根据产线容忍度调整。例如某面板厂设定:置信度≥0.90直接判NG,0.70~0.90进入人工复判队列,<0.70判OK。这个阈值策略本身就是输出解析的一部分。
人工复判的输出则是人机交互后的确认结果。复判员在界面上看到原始图像、AOI/视觉的初判结果,然后选择“确认缺陷”“误报”“漏报补充”“无法判定”等结论,并可能填写缺陷描述、严重等级、责任工序。人工复判的价值在于纠正自动检测的误报和漏报,但它的输出必须被结构化,否则只是一段自由文本,无法参与统计。
统一记录结构:从异构输出到标准字段
要让三类来源进入同一套工单系统,必须定义一个缺陷记录中间结构。这个结构不追求覆盖所有设备的所有字段,而是抓住闭环必需的最小集合。建议包含以下字段:
- 记录ID:全局唯一,建议采用“来源前缀+时间戳+序列号”,如AOI-20240612-000871。
- 来源类型:AOI / MV / MANUAL,用于后续按来源统计误报率。
- 产品标识:板号、批次号、面板ID,必须能关联到MES或工单系统。
- 位置信息:位号、坐标、区域编号,至少保留一种可定位方式。
- 缺陷类别:统一映射后的标准类别,如“缺件”“偏移”“划伤”“脏污”。
- 原始类别:保留设备或模型的原始输出,便于追溯和重新映射。
- 置信度/相似度:数值型,保留原始精度。
- 判定结果:NG / OK / REVIEW,表示当前记录的处置状态。
- 图像证据路径:指向原始图像、裁剪图、标注图的存储位置。
- 时间戳:检测时间、复判时间分开记录。
这个结构的关键在于“原始类别”和“标准类别”并存。原始类别保留设备语义,标准类别用于跨设备统计。映射关系通常维护在一张缺陷代码映射表中,例如将AOI的“MISSING”和机器视觉的“missing_component”都映射为“缺件”。映射表需要版本管理,因为设备程序升级后代码可能变化。
图像证据的获取与绑定
图像证据是缺陷记录可信度的核心。AOI通常会在判定NG时自动保存原始全图和缺陷区域裁剪图,部分设备还保存模板对比图。机器视觉系统则保存推理输入图、标注框叠加图,以及可选的掩码图。人工复判环节需要保存复判界面截图或至少保存复判员看到的图像版本,以证明复判依据。
图像证据的绑定方式有两种:一是文件路径写入记录,即记录中保存图像存储路径(如NAS路径或对象存储URL);二是图像哈希写入记录,即对图像计算MD5或SHA256,记录中保存哈希值,防止图像被替换。推荐两者结合:路径用于快速访问,哈希用于完整性校验。对于需要长期追溯的工单,图像应至少保留90天,关键缺陷建议保留1年。
在实际产线中,图像文件命名必须与记录ID关联。例如记录ID为AOI-20240612-000871,则图像命名为AOI-20240612-000871_full.jpg、AOI-20240612-000871_crop.jpg。这样即使数据库记录丢失,也能通过文件系统反查。
解析流程与异常处理
输出解析不是一次性动作,而是一个持续运行的数据管道。典型流程是:设备输出原始文件(CSV/JSON/数据库表)→ 解析程序读取 → 字段映射与清洗 → 图像路径补全 → 写入统一缺陷库 → 触发工单规则。这个管道需要处理几类异常:
- 字段缺失:如AOI未输出坐标,则用位号代替,并标记“位置精度降级”。
- 类别未映射:遇到映射表中不存在的原始类别,记录进入“待映射”队列,不直接丢弃。
- 图像缺失:记录仍写入,但标记“证据不完整”,工单中提示复判员注意。
- 重复记录:同一板号、同一位号、同一缺陷类别在短时间内重复出现,需去重或合并。
结构化输出示例
以下是一条经过解析后的统一缺陷记录示例(JSON格式),它融合了AOI原始输出和人工复判结果:
{
"record_id": "AOI-20240612-000871",
"source_type": "AOI",
"product_sn": "SN-2024-00123",
"batch_no": "B240612A",
"station": "AOI-TOP",
"location": {"ref": "R120", "x_mm": 45.2, "y_mm": 18.7},
"standard_defect": "缺件",
"original_defect": "MISSING",
"confidence": 0.72,
"threshold": 0.85,
"judgement": "NG",
"review_result": "确认缺陷",
"reviewer": "OP-0231",
"review_time": "2024-06-12T14:32:10+08:00",
"image_full": "/evidence/AOI-20240612-000871_full.jpg",
"image_crop": "/evidence/AOI-20240612-000871_crop.jpg",
"image_hash": "a3f5c9...e21b",
"detect_time": "2024-06-12T14:30:05+08:00"
}
这条记录已经可以直接进入工单系统:根据standard_defect和judgement触发工单,根据product_sn关联生产批次,根据image_crop让维修人员快速看到缺陷位置,根据review_result区分自动判定与人工确认。
实操要点与常见问题
在实际部署中,解析程序最好以独立服务的形式运行,而不是嵌入AOI或视觉系统内部。这样做的好处是:设备升级不影响解析逻辑,解析规则可以独立迭代,也便于统一监控。解析服务通常以定时任务或文件监听方式触发,每处理完一批数据就更新解析日志。
一个常见问题是时间戳不一致。AOI使用设备本地时间,MES使用服务器时间,人工复判使用操作终端时间。如果三者没有统一时区或没有NTP同步,后续按时间关联记录时会出现错位。建议在解析时统一转换为UTC+8并记录原始时区偏移。
另一个常见问题是图像存储路径失效。设备本地磁盘空间有限,旧图像可能被自动清理。如果记录中只保存了本地路径,追溯时就会找不到图。解决方案是解析程序在写入记录后,立即将图像同步到集中存储(NAS或对象存储),并将集中存储路径写入记录。同步失败时,记录标记“图像待同步”,由后台任务重试。
最后,解析结果的质量需要用解析成功率和映射覆盖率两个指标持续监控。解析成功率低于99%时,优先检查设备输出格式是否变更;映射覆盖率低于95%时,优先补充映射表。这两个指标应纳入日常质量看板,而不是等到工单异常时才排查。