界定工作流的声明范围
AI 工作流阶段并不要求用神经网络模型去估算瓶内容物。经源码审阅的固定工位方案,可以从可观察的边界推导出可见高度比例,而 AI 助手则帮助检查流程图,并提出受控的参数改动。这两种角色要分开。计算得到的比例不是液体体积,助手的解释也不是独立测量。Deyi Vision 在声明的边界内支持源码层面的工作流评审;实际安装的节点和运行环境仍须按项目逐一验证。在经审阅的源码快照中,浏览器本地运行 OpenCV.js 并不是已实现的能力,不得通过网页预览暗示具备该能力。
声明输入约定
评估流程图之前,先冻结原始图像标识、像素格式、容器组、裁剪坐标和参考类别。裁剪必须带有回到原始图像的变换关系,这样上报的边界才能在瓶子视图中定位。对于尺寸异常、裁剪越界和图像标识不一致的输入,应拒绝处理,而不是悄悄缩放或换成演示图像。采集故障不属于物理欠灌的范畴。如果某个被接受的输入格式需要灰度转换,应在工作流版本中声明该转换,并保留原始图像。把修订后的裁剪与另一张不同的源图像比较,无法隔离出参数改动的影响。
检查边界可观测性
参考方案寻找的是:在观察区域内足够多的位置上,出现对比度足够高、唯一的垂直方向强度过渡,并且边界位置的离散度有限。它的各项设置既控制可观测性,也控制允许的可见高度比例。在一个明确标注为合成的示例中,20 px 高的区域内,唯一边界位于 y=8 时得到 0.6;边界位于 y=14 时得到 0.3。强度相当的竞争过渡仍判为 Review,而不是随意选取第一条边缘。不要把合成的对比度或离散度设置直接套用到客户的容器上。要用带标注的真实样例来确认观察特征,其中包括空瓶、瓶壁眩光和泡沫。
让图像与替代指标坐标保持关联
边界几何指向的是固定的裁剪区域和原始容器图像,而不是一个没有标注的比例。
- 冻结的原始图像标识
- 声明的裁剪与变换
- 可观察的边界几何
- 附有效性与规则的比例
为类型化输出设置闸门
应把数值、几何和规则输出作为相互关联的一组结果来使用,而不是当作相互独立、可以互换的数值。在经审阅的参考实现中,边界不可观测时,数值端口可能保持默认值,而规则为 Review,几何对测量无效。该默认值并不是实测的空瓶。解读结果要以声明的有效性和判定状态为前提,并保留生成该结果的图像标识和工作流标识。下面的伪代码说明的是控制边界,而不是现成的 PLC 连接器。规则缺失、非有限值、输出类型错误或状态无法识别,都是需要明确处理的故障,绝不能成为凭空造出一个合格比例的理由。
import math
state = result['rules']['Decision']
raw_number = result['number']
measurement_valid = (
state in ('Pass', 'Fail')
and result['geometry']['Validity'] == 'Valid'
and type(raw_number) in (int, float)
and math.isfinite(raw_number)
)
trusted_ratio = raw_number if measurement_valid else None
decision = state
# Preserve the native decision and identities; this snippet does not drive an actuator.
# Missing fields raise errors; invalid geometry or values never become a trusted level.约束 AI 的提议
请助手提出带有明确假设的候选方案,例如通过更改允许调整的对比度设置,把瓶壁反光与真实边界分开。把改动限制在受支持的、已声明的参数上,并保留基线流程图。要求提议写明受影响的样本组,以及能够证伪该假设的反例。提议不得修改参考答案、把有问题的样本裁掉、取消 Review 结果,或为了取得更好的得分而切换到未经验证的后端。保存下来的候选方案记录的只是一条工程建议,并不能确认试验已经运行、模型已经就绪,或量产相机的配置已经改变。
在开发样本上比较
在同一批冻结的开发样本上评估基线和候选方案,输入准备方式相同,并采用完整的计划分母。将可观察边界上的 Pass 与 Fail 判定,与 Review、执行错误和缺失结果分开比较。按容器分组比较,而不是把许多相邻帧都算作独立的成功。要检查欠灌漏检的表面下降,是否只是因为把更多低液位的瓶子送去了 Review。这种取舍可能有用,但必须明确写出。选定候选方案之后,验收样本要保持独立;如果它的答案被用于又一次参数改动,应说明它是被重复使用的开发证据,而不是未经触碰的验收集。
维护工作流工作簿
工作流工作簿把输入图像标识、裁剪变换、容器参考类别、基线与候选版本、实际运行环境标识、参数值和类型化输出关联在一起。原始的规则状态和几何要与数值端口一起保存,失败情形也要保存。下表说明了为什么单独一列数值无法描述整个试验。耗时要记录为实际执行中的观测值,而不是依据已保存的流程图作出的承诺。在记录中把流程图编写、成功执行和工程批准分开。这样的结构能让另一位评审者还原:候选方案改变的是边界可观测性、允许的比例区间,还是只改变了附在未变结果上的解释。
| 结果情形 | 需要记录的内容 | 解读 |
|---|---|---|
| 合成 20 px ROI 中唯一边界位于 y=8 | 比例 0.6,以及与之匹配的几何和规则 | 可观察的替代指标;套用已声明的比例规则 |
| 合成的唯一边界 y=14 | 比例 0.3,以及与之匹配的几何和规则 | 可观察的较低替代指标;保留其已声明的判定 |
| 强度相当的多条边界 | Review 状态与无效的测量几何 | 不要把默认的数值端口解读为空瓶 |
| 运行环境或标识不一致 | 原始的执行失败记录及请求标识 | 没有可信的液位结果;不得用上一张图像代替 |
注入缺失与有歧义的证据
交接之前,先注入明确的故障案例:缺失的原始图像、错误的裁剪标识、不可用的运行环境、强度相当的边界,以及请求取消之后才到达的结果。检查每种情形是否都保持明确的未通过状态,并且不能沿用上一个瓶子的旧比例。重试必须仍与它自己的请求标识和结果标识关联;不确定的响应不能作为成功的证据。如果工作流在项目的特定扩展中使用了检测器或外部模型,要另行验证具体的软件包以及输入输出约定。列出的模板或导入的模型,并不能说明已经就绪,本教程也不授权传输图像。
AI 提议,由记录在案的比较来选定
候选方案的编写要与执行、比较和项目验收分开。
- 冻结样本与基线版本
- 提出有限定范围的参数假设
- 比较完整的类型化结果
- 选定候选方案并保留局限
交接候选方案,而不是发布版本
交接选定的候选方案时,要一并提供其冻结的样本、声明的输入约定、可观测性设置、类型化输出的映射和完整的比较报告。保留基线和尚未解决的样例,让接手的工程师既能复现行为,也能看到局限。集成还需要经过验证的相机采集、事件关联、延迟处理,以及独立的产线验收。不要发布由合成工作表得出的准确率数字,也不要把源码层面的固定工位支持说成是通过了真实工厂测试的已发布应用。下一个排查阶段应从留存的故障证据出发,而不是从一张仅因保存时没有报错就被标为成功的流程图出发。
来源与技术参考资料
这些资料说明了本教程所用方法的依据与适用范围。文中的检查示例仅供参考;量产验收需要用你自己的样品取得证据。
- Image ThresholdingOpenCV核查于
- Deyi Vision Vision WorkbenchDeyi Vision核查于
部件与选型参考
- machine vision software · 英文参考资料
- 机器视觉验收测试清单
- 自动化外观检测
- EAN-13 追溯:产线验收
- EAN-13 追溯:解码与数据规则
- 稳定的相机采集:缓冲区、超时与重连
- 验收并集成可见液位工作流
- 关联检测记录、图像与工件标识符
- OCR 标签核对:验收与 PLC 约定
- OCR 标签核对:原生工作流与精确匹配
- 未封口包装完整性检测的验收与集成
- 搭建 AI 辅助的未封口包装完整性工作流
- 用明确的状态构建 PLC 与视觉系统的握手
- 密封与胶条外观:产线验收
- 密封与胶条外观:工作流规则
- SKU 颜色分选:验收与未知物品分流
- SKU 颜色分选:类型明确的颜色与 SKU 规则
- 表面缺陷检测:验收与产线输出
- 表面缺陷检测:限定范围的 AI 评估
- 触发到 PLC 判定的延迟负载测试
- 完整视觉配方的版本管理与回滚

