大模型视觉 · VisionAgent / 落地实践
六步手顺、五类防护用品、一个动作事件——系统实时核对每一步做没做、顺序对不对,全程只在车间本地推理。
制药工厂 B 级洁净室的更衣间已有 CCTV。需求是在不改生产工艺、不改原有声光报警的前提下,对更衣顺序和防护用品穿戴结果做实时识别、记录与预警,形成可追溯的审计数据。
01/6项目要求
客户提的是一句话:进 B 级区之前要按规范穿好防护用品。这句话定了目标,但系统还需要知道识别哪几类物品、按什么顺序核对、哪些情况算漏步、结果怎么留存。项目真正的工作量在这次翻译上。
更衣不是「检测一个东西」,是「按顺序做完六件事」。传统 AOI 和目标检测擅长回答「画面里有没有口罩」,而验收标准是「口罩→头罩→连体衣→系鞋带→目镜→手套,一步不能少、一步不能颠倒」。前者是单帧判断,后者是带记忆的流程判断。
所以系统按这个矛盾拆成两件事:大模型负责看见,状态机负责判顺序。这一刀决定了后面所有的维护成本——改验收标准时改的是状态机的一份配置,不需要重新训练模型。
| 现场约束 | 系统怎么满足 |
|---|---|
| 已有 CCTV/NVR | RTSP 直接取流,尽量利旧;细粒度点位再补近景 |
| 不改工艺与报警策略 | AI 做旁路观察层,不进控制回路 |
| 原始视频不出厂 | 车间本地边缘 GPU 推理,只输出事件与证据 |
| 事件可追溯、可复核 | 关键帧+短视频+置信度+命中的事件与规则 |
| SOP 会变,不能返厂 | 改顺序改配置;新增识别目标 1–10 张现场帧起步 |
这一步看着像自我设限,实际是验收不扯皮的前提。视觉能力有明确的物理边界,含糊过去,后面每一次复核都要重新吵一遍。
02/6张量流
整套配置的骨架是一张张量流画布。实施人员从左侧算子库拖出算子、按数据流向连线、在节点里填参数,不写一行代码。先看完整的一张,后面三节讲的都是双击某个节点之后的事。
| 算子 | 配什么 | 为什么单独成一层 |
|---|---|---|
| 视频流相机 | RTSP 地址、取流帧率、点位 | 利旧现有 CCTV,视频只在本地流转 |
| 图像预处理 | 去噪、增强、归一化 | 更衣间光照差异大,先拉平再进模型 |
| 语义分割·防护用品 | 5 类目标的最小面积、检出置信度、防抖帧数 | 「看见」只在这里训,每类 1–10 张现场帧起步 |
| 语义分割·动作区 | 只分割系鞋带动作区 | 动作靠速度判,与物体存在分开调参 |
| 事件探测 | E0–E5 的判定逻辑 | 把像素翻译成业务语言,纯配置 |
| 状态机 | 状态、转移、动作 | 顺序与验收标准都在这里,改动成本最低 |
| 存图 | 触发时机、保存路径 | 留可复核的关键帧,不进控制回路 |
现场要改的东西几乎都落在某一个节点的参数里:换机位改第一个,调灵敏度改语义分割,改判定标准改事件探测,改手顺改状态机,互相不牵连。
03/6语义分割
为什么用像素级分割而不是画框:更衣间里人是侧身、弯腰、半穿状态,防护服和墙面同为浅色,手套和裸手轮廓接近。框回归在这种场景很容易把「拿在手上」当成「穿在身上」。分割给出的是掩膜,可以再用面积和位置把这两种情况分开。
| 分割类别 | 掩膜 | 判什么 | 难点 |
|---|---|---|---|
| NG1 防护口罩 | 洋红 | 存在性 | 侧脸时可见面积小,靠面积阈值放宽 |
| NG2 防护头罩 | 青 | 存在性 | 与连体衣同色系,靠位置在头部区域区分 |
| NG3 防护连体衣 | 绿 | 穿戴完整性 | 「拿着」与「穿好」按掩膜与人体重合度区分 |
| NG4 防护目镜 | 紫 | 存在性 | 反光强,需覆盖不同光照的样本 |
| NG5 防护手套 | 蓝紫 | 存在性(左右各一) | 内外层形态相近,靠颜色+数量区分 |
依托 Transformer 少样本能力,新增一类目标只要 1–10 张现场帧,数分钟完成配置并看到结果;补样本后点「迁移」做增量优化,不必推倒重训。换更衣间时类别与样本可以迁移复用——这也是同一套系统能覆盖多工位、多产线的原因。
04/6事件判定
分割只负责看见像素,业务要的是「头罩戴好了」「连体衣穿上了」这种可判定事件。判定逻辑在事件编排器里搭:从原语库拖判定积木、在节点属性里选目标类别,再用「与/或/非」组合成成立条件。改判定只动参数和连线。
| 原语 | 怎么配 | 本项目用在哪 |
|---|---|---|
| 物体存在 | 目标类别(可多选)+检测区域+切图框 | E0–E2、E4:口罩/头罩/连体衣/目镜 |
| 物体不存在 | 必选 1 个类别,无则触发 | 「摘掉头罩」这类倒退动作 |
| 数量检测 | 比较模式+阈值 | E5:手套需左右各一,数量 = 2 |
| 速度检测 | 运动速度阈值(px/s)+持续帧数 | E3:系鞋带这类动作事件 |
| 与/或/非 | 连线组合多个原语 | E2:连体衣存在 且 头罩存在 |
一个事件只判一件事;先把分割调稳再动阈值。误报优先加防抖帧数,漏报优先降最小掩膜面积与检出置信度。
05/6状态机
顺序不靠额外写 NG 规则,而是靠非预期事件一律自环:只有「当前状态 × 对应事件」这一格填了目标状态,流程才前进一步。跳步不推进,缺步永远走不到终点。需要报警或写记录时,把动作挂在对应转移上。
E0–E5,画布上的圆圈可以随手拖到顺眼的位置,事件标签跟着连线走。从 S0 出去只有 E0
一条边,此时哪怕连体衣先穿好、E2 已经成立,也没有任何一条边能走,流程原地不动——顺序就是这么强制的。建转移在画布上按住 Shift 从 A 拖到 B 再选事件;切到「▦
规则表」页签能看到同一份配置的矩阵形式,只有对角线上 6 格填了目标状态,其余一律自环。右侧「状态-动作张量」里除了 7 个状态,还挂着唯一一个动作 A0 记 OK ·
存关键帧,绑在 S6 上。| 状态 | 等待的事件 | 事件怎么判 | 走通后 |
|---|---|---|---|
| S0 等待口罩 | E0 防护口罩确认 | 物体存在(防护口罩) | → S1 |
| S1 等待头罩 | E1 防护头罩确认 | 物体存在(防护头罩) | → S2 |
| S2 等待连体衣 | E2 防护连体衣确认 | 连体衣存在 且 头罩存在 | → S3 |
| S3 等待系鞋带 | E3 系鞋带确认 | 动作区速度+持续帧数 | → S4 |
| S4 等待目镜 | E4 防护目镜确认 | 物体存在(防护目镜) | → S5 |
| S5 等待手套 | E5 防护手套确认 | 手套存在 且 数量 = 2 | → S6 |
| S6 更衣完成 | — | 记 OK,写入耗时与关键帧 | 终点 |
插一步(比如加手消毒):加一个状态+一个事件,去事件编排器搭判定逻辑,再在规则表里改两格。调顺序:只改规则表里绿字格的位置。换更衣间:状态机整份复制,分割类别沿用,补少量现场帧做迁移。全过程不动模型,也不需要算法人员到现场。
06/6现场落地
这套东西不涉及生产网改造。整个部署对甲方 IT 来说是一次性配合,之后的维护落在业务侧的配置界面里。
| 项 | 说明 | 谁负责 |
|---|---|---|
| RTSP 地址与只读账号 | 按点位给出流地址,只读即可 | 甲方 IT |
| 边缘服务器 | 带 GPU,放在视频能到达的机柜 | 甲方采购或由我们提供 |
| 网络策略 | 只拉视频、只推事件,不需要外网 | 甲方 IT |
| 存储与备份 | 证据保留周期、配置文件备份策略 | 双方确认 |
| 账号权限 | 操作员/复核员/管理员三级 | 甲方指定+平台配置 |
一台边缘智能体可同时承载多路相机、多条张量流:更衣间、缓冲间、无菌操作台共用一台设备与一套配置界面。新增工位主要是加相机、复制张量流、补少量现场帧,不需要再上一套系统。
07项目体会
回头看,这个项目真正花时间的不是模型,是把一句话的要求拆成三层能落地的定义:
S0–S6 状态机规定推进关系。三层对齐之后,图像采集、模型训练、张量流配置和验收口径才有共同的基准。定义越清楚,后面越不用返工。
另一个体会是把改动成本放在哪里。这套系统里最容易变的是 SOP,最难改的是模型,所以设计时刻意让 SOP 落在状态机的一张表上,让模型只承担「看见」。现场的人改得动,系统才留得下来。
四个问题贯穿了整个实施:系统看什么、什么时候算这一步做完、什么情况直接判不合格、结果怎么留存。答清楚这四个,剩下的都是配置工作。
Leo
计算机视觉博士 · VisionAgent 方案与交付
计算机视觉方向博士,研究方向为少样本分割与视频行为理解;12 年工业视觉一线经验,累计交付 30+ 条产线、100+ 工位。
当前关注边缘 GPU 推理优化、跨域泛化与现场数据闭环——让同一套配置方式在不同工厂、不同工艺之间可复制。本篇记录医药行业 B 级洁净室更衣行为识别项目实施中的实际配置、判断逻辑与现场结果。
点击任意处关闭