1. 课程导入与工程全景

在一条典型的电子装配产线上,一台工业相机每秒拍摄 30 帧图像,每帧图像上可能同时存在焊点、字符、螺丝、连接器等多个检测目标。当某台产品在客户端出现功能失效时,工程师最常被问到的问题是:“这台产品在出厂时,视觉检测到底看到了什么?判定依据是什么?当时的图像还在吗?”如果回答不了这三个问题,视觉检测就只是一道“黑箱闸门”,而不是可追溯的质量证据。

本课程讨论的视觉检测证据链,指的是从“产品身份”到“图像采集”到“算法判定”再到“结果归档”的一条完整、可回溯、可验证的数据链条。它要回答的不是“检测准不准”,而是“凭什么说它准,以及这个结论能不能被复现”。而产品追溯,则是把这条证据链与具体的产品个体(序列号、批次、工位、时间)绑定,使得任何一个已交付的产品,都能反向定位到它经历过的每一次视觉判定。

一、边界:证据链不等于检测系统

很多团队把“上了视觉检测设备”等同于“有了证据链”,这是最常见的认知偏差。视觉检测系统解决的是“当下这一帧怎么判”,而证据链解决的是“这个判定如何被保存、关联、检索和验证”。两者的边界可以用四个问题划清:

  • 身份问题:这一帧图像属于哪一个产品个体?没有唯一标识,图像只是无主数据。
  • 上下文问题:这一帧是在哪个工位、哪个相机、哪组参数下拍摄的?换型、调光、换镜头都会改变判定语义。
  • 判定问题:算法输出的分数、阈值、缺陷类别、判定结论是否被完整记录,而不只是记录“OK/NG”。
  • 留存问题:图像、模型版本、判定日志的保存周期与检索方式是否满足客诉、审核或召回要求。

换句话说,检测系统是“生产线上的眼睛”,证据链是“这双眼睛的执法记录仪”。没有记录仪的执法,在争议面前是没有说服力的。

二、核心价值:从“检出率”到“可举证”

视觉检测的传统 KPI 是检出率、误判率、节拍。证据链引入后,价值维度发生变化:

维度无证据链有证据链
客诉响应只能复测同批次,无法定位个体按序列号调出原始图像与判定记录
误判分析依赖操作员回忆与现场复现回放历史帧,对比阈值与模型版本
工艺改进只有统计报表,缺少图像样本可按缺陷类别导出样本集,反哺模型
合规审核口头说明检测流程提供带时间戳、设备号、参数的证据包

需要强调的是,证据链的价值不是“多存几张图”,而是把质量结论从主观陈述变成可验证事实。在汽车、医疗、3C 电子等行业,这种转变直接决定了客诉处理成本和召回范围。

三、典型行业场景

不同行业对证据链的侧重点不同。3C 电子装配关注高速节拍下的字符与焊点追溯,通常要求按序列号保存关键工位的判定图像;汽车零部件关注缺陷可追溯与批次隔离,强调缺陷图像与工艺参数的关联;医药包装关注合规留档,对保存周期和不可篡改性要求更高;新能源电池则关注极片、焊缝等连续材料的缺陷定位,需要把图像坐标映射到卷料长度位置。这些差异决定了证据链的存储策略、索引字段和检索方式,而不是一套模板通吃。

四、整体技术架构

从工程实现看,视觉检测证据链可以划分为五层:采集层、判定层、关联层、存储层、检索与应用层。采集层负责图像与元数据同步;判定层输出分数、类别与阈值;关联层把判定结果与产品序列号、工位、时间绑定;存储层按热、温、冷分级保存;检索层提供按序列号、时间段、缺陷类别的查询能力。下图给出这一架构的核心数据流与关键字段。

视觉检测证据链五层架构与数据流 采集层 工业相机 / 光源 触发信号 / 编码器 图像 + 时间戳 判定层 模型版本 / 阈值 缺陷类别 / 分数 OK / NG 结论 关联层 产品序列号 工位 / 设备号 批次 / 时间绑定 存储层(分级) 热:近线 SSD,7~30 天全量图 温:对象存储,NG 图 + 元数据 冷:归档,按合规周期保留 检索与应用层 按序列号 / 时间段 / 缺陷类别 / 工位 查询 客诉举证 · 误判复盘 · 模型再训练样本导出 样本反哺 证据记录最小字段集(示例) sn(产品序列号) · station_id(工位) · camera_id(相机) · capture_ts(采集时间戳,ms) image_uri(图像路径) · model_ver(模型版本) · threshold(阈值) · score(判定分数) defect_class(缺陷类别) · verdict(OK/NG) · operator(操作员/自动) · trace_code(追溯码)

图中最容易被忽视的是关联层。很多项目在采集和判定上投入充分,却在关联环节用“文件名包含时间”这种脆弱方式绑定产品,导致换型或重启后序列号错位,证据链断裂。工程上更稳妥的做法是:由 PLC 或 MES 在触发相机的同时下发产品序列号,相机端将序列号写入图像元数据,判定层再将其透传到存储记录,形成不可分割的一条记录。

五、一个可参考的证据记录示例

下面给出一条典型的证据记录结构(字段为示例设计,非实测数据),用于说明“一条可追溯记录”应该长什么样:

{
  "sn": "SN2024A-0031872",
  "station_id": "AOI-02",
  "camera_id": "CAM-LEFT-01",
  "capture_ts": "2024-06-11T09:23:17.482+08:00",
  "image_uri": "s3://aoi-evidence/2024/06/11/AOI-02/SN2024A-0031872_L.jpg",
  "model_ver": "solder_v3.2.1",
  "threshold": 0.75,
  "score": 0.91,
  "defect_class": "solder_insufficient",
  "verdict": "NG",
  "trace_code": "TRC-9F2A-7710"
}

当客户返回一台失效产品时,工程师只需输入序列号,即可检索到该产品在 AOI-02 工位的原始图像、判定分数、模型版本和阈值。如果 score 为 0.91 而阈值为 0.75,说明当时算法确实判为 NG,那么问题就转向“NG 品为何流出”,而不是“检测有没有看到”。这就是证据链把问题从模糊争论拉回到可核查事实的作用。

建立证据链时,优先保证“序列号—图像—判定”三者的原子性绑定。宁可少存一些非关键工位的图像,也不要让关键工位的记录出现序列号缺失或错位。

本课程后续将围绕这条链条逐层展开:如何设计采集与触发、如何记录判定上下文、如何做分级存储与检索、如何用证据链支撑客诉与工艺改进。本章的目标是建立一个整体判断:视觉检测的终点不是“判出 OK/NG”,而是“留下一条能被验证的证据”。