工位俯拍识别包装节点,按 SOP 状态机逐步确认——漏放、漏步、错序当场可见。
俯拍工位 · 包装件与动作节点识别 · 工作流逐步打勾 · 本地边缘推理 · 检测记录可追溯
包装是产品出厂前的最后一道人工工序,也是最容易「看起来没问题」的一道:箱子封好了, 里面少一份说明书、少一块背板、泡沫纸没垫,从外面都看不出来。等到客户拆箱才发现,代价就从几毛钱的物料变成退换货、客诉和返工。 难点在于这道工序节拍快、动作碎、料件多为白色薄软物,且经常换型换箱规。
| 现场痛点 | 为什么旧办法吃力 | 本方案切入点 |
|---|---|---|
| 30 秒出一件,7 步要逐步确认 | 人眼盯岗不可持续,事后录像难复核 | 相机持续看过程,状态机逐步确认 |
| 装箱后无法回看内容物 | 终检称重、抽检只能抓住部分缺件 | 封箱前逐件留证,检测记录可追溯 |
| 换型换箱规,步骤跟着变 | 一工位一模型,重采重训跟不上 | 少样本配置目标,配方切换工作流 |
| 白色薄软物、透明袋反光 | 框回归难贴合形变物体 | 像素级分割按掩膜面积判在位 |
把问题定义为「包装步骤是否按顺序发生」,而不是「再训练一个专用外观模型」。 用视觉大模型看见料件与动作,用状态机判定顺序,用边缘侧实时输出——换箱规、换步骤主要改配置,不必长期驻场训练。
以俯拍工位为主视角,识别包装过程中的关键节点:起点底板、泡沫纸、纸箱、纸箱翻转、背板、说明书、终点底板。 右侧工作流随识别结果逐步打勾;异常可回看画面与检测记录。
| 节点示例 | 系统关注点 | 输出 |
|---|---|---|
| 起点 / 终点底板 | 工件是否进入 / 离开检测位 | 流程开始、结束事件 |
| 泡沫纸 / 纸箱 / 背板 / 说明书 | 料件是否出现在包装区域 | 步骤完成标记 |
| 翻转纸箱 | 箱体姿态是否发生了规定的翻转 | 节点确认 / 异常提示 |
| 整段 SOP | 顺序是否完整、有无跳步漏放 | OK / NG + 耗时记录 |
运行界面的「检测记录」按件留一行:每步一列打 OK 并记时间戳,末列给总耗时。 本工位实测单件在 32–39 秒之间,异常件的耗时会明显偏离——这本身就是一个可用的巡检线索。
工位相机进流后,在边缘智能体完成本地推理;大模型负责「看见」,状态机负责「算不算做完」。 原始视频不出厂,现场只保留步骤结果与可复核片段。
包装的箱规、内衬、随箱文件跟着产品走,换型比装配更频繁。专用小模型每次换型都要重训,上线慢、难复制。 视觉大模型用 1–10 张样本即可配置新目标;状态机把「看见」编排成可验收的 SOP——改步骤是配置变更,不是重新立项训练。
包装料件多是白色薄软物,还常隔着透明袋:泡沫纸会皱、说明书会歪、背板贴着箱壁。 这类目标用框回归很难贴合,本方案用像素级语义分割——每类 1–10 张现场样本即可设定,输出掩膜后做存在与面积判定。
本页视频工位要认 5 类目标、走 7 步(底板既是起点也是终点),与运行界面「检测记录」的列一一对应: 底板 · 泡沫纸 · 纸箱 · 背板 · 说明书。 底板用于判起点/终点在位,其余按包装顺序逐件确认。
| 分割类别 | 样本(示意) | 用途 | 判定 |
|---|---|---|---|
| 底板 | 4 张 | 起点 / 终点在位 | 掩膜出现 → E0 / E6 |
| 泡沫纸 | 5 张 | 缓冲层铺放 | 掩膜面积 ≥ 阈值 → E1 |
| 纸箱 | 5 张 | 箱体到位 | 掩膜面积 ≥ 阈值 → E2 |
| 纸箱(翻转后) | 同一类别 | 箱体翻转确认 | 分割 + 角度检测 → E3 |
| 背板 | 5 张 | 背板装入 | 掩膜面积 ≥ 阈值 → E4 |
| 说明书 | 4 张 | 随箱文件放入 | 分割 + 数量检测 → E5 |
「翻转纸箱」不另建类别:同一个纸箱掩膜,翻转前后的长短轴比与主轴角度会明显变化,用角度检测原语区分即可。 少一类目标就少一轮标注,也避免了「翻转前」「翻转后」两类互相混淆。
分割只负责看见像素。业务要的是「泡沫纸到位」「说明书放入」这类可判定事件。 事件清单本身在状态机里定义,判定逻辑在 GPU 事件编排器里搭:从原语库拖判定积木、配参数, 再用「与 / 或 / 非」组合成成立条件。改判定只动参数,不必重训模型。
E ∈ ℝ⁷(本工位 7 个事件),选中节点的参数为 P ∈ ℝ²(目标类别、检测区域)。手机上可横向滑动看细节,点图打开大图| 原语 | 类型 | 怎么配 | 本工位用在哪 |
|---|---|---|---|
| 物体存在 | GPU算子 | 目标类别(可多选)+ 检测区域;默认全图,可在预览窗口框围栏 | E0–E2、E4、E6 的料件在位 |
| 物体不存在 | GPU算子 | 必选 1 个类别,无则触发 | 漏放、工具遗留在箱内等 NG 条件 |
| 角度检测 | GPU算子 | 参考角度与最大偏差 | E3 纸箱翻转确认 |
| 宽度检测 | GPU算子 | 长短轴与长短轴比 | E3 辅助判姿态,防止误判 |
| 数量检测 | GPU算子 | 比较模式(小于 / 大于 / 区间 / 等于)+ 阈值 | E5 说明书只能放一份 |
| 速度检测 | GPU算子 | 运动速度阈值 | 区分「路过」与「放下」 |
| 边沿事件 | GPU算子 | 取信号跳变而非持续状态 | 只在「刚发生」时触发一次 |
| 与 (AND) / 或 (OR) / 非 (NOT) | GPU算子 | 连线组合多个原语 | 「纸箱存在 且 主轴角度已翻转」 |
| 二值化 / 数据抵达 / 事件引用 | 判定算子 | 阈值化、等外设数据、引用别的事件结果 | 跨事件与外设联动 |
一个事件只做一件事;先稳分割再调阈值。 误报优先加防抖帧数,漏报优先降最小面积与检出置信度——这两个参数在语义分割节点上,不在原语里。 白色薄软料件容易随手部动作抖动,配合速度检测能把「手拿着路过」和「已经放下」分开。 改手顺只改状态机,事件的判定逻辑不用动。
右侧工作流不是展示清单,而是 SOP 状态机:状态、事件、动作三份清单在这里定义, 再决定「处在哪个状态、收到哪个事件、跳到哪一步、同时执行什么动作」。 顺序强制不靠额外写 NG 规则,而是靠「非预期事件一律自环」:跳步不推进,缺步走不到终点。 需要报警或写记录时,把动作 (A) 挂在对应转移上。改手顺只改这份配置,不必重训分割模型。
E ∈ ℝ⁸(7 个事件加一个「空事件」),状态-动作张量 S-A ∈ ℝ⁷,动作默认为「∅ 空动作」。下半是同一份配置的「📊 规则表」视图:行为当前状态、列为事件,绿字格是目标状态,其余一律「↻ 自环」——原地不动。顺序强制就是这么来的:跳步不会推进,缺步永远走不到终点,不需要额外写 NG 规则。最后一步 E6 回到 S0,等下一件。手机上可横向滑动看细节,点图打开大图| 状态 | 事件 | 绑定分割类别 | 判定原语 | 命中后 |
|---|---|---|---|---|
| S0 等待起点底板 | E0 起点:底板 | 底板 | 物体存在 | → S1 |
| S1 等待泡沫纸 | E1 泡沫纸到位 | 泡沫纸 | 物体存在 | → S2 |
| S2 等待纸箱 | E2 纸箱到位 | 纸箱 | 物体存在 | → S3 |
| S3 等待翻转 | E3 翻转纸箱 | 纸箱 | 物体存在 与 角度检测 | → S4 |
| S4 等待背板 | E4 背板到位 | 背板 | 物体存在 | → S5 |
| S5 等待说明书 | E5 说明书放入 | 说明书 | 物体存在 与 数量检测 | → S6 |
| S6 等待终点底板 | E6 终点:底板 | 底板 | 物体存在 | → S0,等下一件 |
顺序强制:只有「当前状态 × 对应事件」这一格填了目标状态,流程才前进一步; 规则表里其余格子都是自环,所以未完成 En 就进不了 En+1。 漏放:说明书没放进去,S5 就一直等,终点事件即使发生也不推进,这一件不会记成 OK。 报警与记录:动作 (A) 挂在对应转移上,默认为「∅ 空动作」,需要报警或写记录时再挂。 全部判定在边缘侧完成,运行界面只做打勾与记录展示。
配置界面用张量流把节点连起来,两列一读就懂:左列感知(相机 → 图像预处理 → 语义分割),右列判定(事件探测 → 状态机)。 判定逻辑不是单独的节点,而是「事件探测」里为每个事件搭的原语组合。 下面这张图就是包装工位已挂载的配置;同一份配置跑起来逐步打勾的样子,见页首视频。
| 步骤 | 做什么 | 价值 |
|---|---|---|
| 1. 建工作流 | 按 SOP 列出 E0–E6 | 验收标准可视 |
| 2. 配语义分割 | 为底板/泡沫纸/纸箱/背板/说明书建类别并投 1–10 张样本 | 数分钟级看见料件 |
| 3. 定区域阈值 | 分割节点设面积下限、置信度、防抖帧;需要时在预览里框围栏 | 降低背景与手部误触发 |
| 4. 挂状态机 | 建 S0–S6 与 E0–E6,规则表逐格定目标状态,其余自环 | 漏放、跳步当场可见 |
| 5. 运行验证 | 预览打勾后再发布到边缘侧 | 改配置不停线试跑 |
适合料件多、步骤多、换型频繁、需要过程防错的人工包装工位。 封箱后内容物已不可见,因此价值全在封箱前逐步留证; 箱内深腔遮挡的小件、需要翻找才能看到的部件,需工艺配合或加近景相机,不宜作为稳定识别项硬上。