领邦智能 · VisionAgent 现场档案 / 多工位装配过程监控 整理 · 像素工长

案例拆解 · 工位过程监控看板

合格率 97.0% 是怎么来的 从车间那块工位看板,一路往回拆到配置

看板上只有四张卡片和四个数字。班长抬头一眼,就知道手里这件活做到哪一步、这一班合格了多少。本篇不按软件菜单一步步教操作,而是反过来问:那四张卡片是谁定的?模型凭什么认出硅胶和屏蔽罩?教会它到底花了多少张图?四个工位又怎么同时盯得住?

工位过程监控看板:一轮工序结束后卡片复位,当班统计显示 100 次、97 合格、合格率 97.0%

版面图一轮工序刚闭环的瞬间:四张卡片复位待下一件,账目跳到 100 次 / 97 合格,左侧画面上那圈绿色轮廓就是当帧检出结果。

00
交付物

先看结论做视觉项目容易把交付想成「模型准不准」。但站在工位旁的人不看模型,他看的是这块看板。

过程监控最终交给车间的,是一块看板,不是一堆图片

这块看板叫「工位过程监控看板」。左半屏是相机实时画面,右半屏是这个工位的工序进度和当班统计。它挂在工位旁边,不需要人去点、去查,抬头就看得见。

下面这段实录拍的就是产线上的它。一件产品的装配从头走到尾:四步工序逐个打钩,最后一轮闭环、计数加一。建议先整段看一遍,再往下读拆解。

影像 01看板运行实录,1280×720,1 分 07 秒,拍摄对象为工位 2。打开 / 下载

100操作次数
97合格数
3不合格数
97.0%合格率

实录末尾的当班账目。一轮工序走完,操作次数与合格数各加一,合格率随即重算。

看板的四个区域各说什么

  • 左半屏 · 实时画面。当前相机(实录里是工业相机 2)的画面。模型检出的区域用绿色轮廓直接叠在画面上,判定依据是看得见的,不是黑箱。
  • 右上 · 身份与状态。面板头写着「工位 2 · 工业相机 2」,右上角一枚状态标在「单轮运行中」和「等料」之间切换——一眼分清是正在检,还是在等下一件上工位。
  • 右中 · 工序进度。一行「当前工序」,旁边标「第 4/4 步 · 检出中」与「上轮:合格」,下面四张步骤卡:完成的变绿打钩,没到的写「待执行」。
  • 右下 · 当班账目。操作次数、合格数、不合格数,加一个合格率圆环。

这篇文章其实只回答一件事:看板上每一个绿钩、每一个数字,在软件里是靠什么配出来的。

Q1
四步卡片

为什么用「变化」判定状态机前面还有个「事件探测」节点,说明写着「检测输入信号变化触发事件」。它盯的是掩膜从无到有、面积跨过阈值这类变化,不是单帧的静态状态。装配现场人手频繁进出,用变化触发才不会因一次遮挡就把已完成的步骤判回去。

那四张卡片不是画上去的,是状态机排出来的

看板上工位 2 的一轮工序被拆成四步:前三步各盯一样东西,第四步收尾。这个顺序就是状态机里配的状态迁移,看板只负责把它显示出来。

  1. 01检测到导热硅胶A已完成
  2. 02检测到导热硅胶B已完成
  3. 03检测到屏蔽罩已完成
  4. 04结束待执行

把这四张卡片看明白,过程监控和传统外观检测的分界线就清楚了。传统做法是「拍一张、判 OK/NG」,一次成像给一个结论;过程监控要回答的是这几件事有没有按顺序做完,所以必须有状态、有次序、有进度。

三个藏在卡片里的设计决定:

  1. 同一种物料按位置拆成 A 和 B。这个工位要涂两处导热硅胶,配置时没有笼统写一个「硅胶」,而是拆成「导热硅胶A」「导热硅胶B」。差别很实际:涂了一处、漏了另一处,看板能停在第 2 步告诉你漏在哪儿;合成一类就只能知道「涂过胶」。
  2. 「结束」也占一步。第 4 步不检任何物料,它管收尾:确认整轮走完、给出本轮合格与否、把计数加上去、复位等下一件。看板上那句「上轮:合格」就是它写的。
  3. 顺序是硬约束。只有前一步打钩,后一步才进入检出状态。跳步不会被算完成——这正是「盯过程」区别于「拍结果」的地方。
看板显示第一步检测到导热硅胶A已完成,其余三步待执行,操作次数 99、合格数 96

图 01 · 00:01第 1 步打钩。硅胶A 完成,后三步仍是「待执行」,账目为 99 次 / 合格 96。

看板显示前两步已完成,第三步检测到屏蔽罩待执行

图 02 · 00:30第 2 步跟上。硅胶B 完成,屏蔽罩那步才开始等——顺序约束在这里生效。

看板显示前三步全部完成,操作员仍在工位上作业

图 03 · 00:42前三步全绿。操作员还在工位上,屏蔽罩已被确认装上,只剩「结束」收尾。

新一轮开始,四张卡片复位为待执行,操作次数变为 100、合格数 97,画面里出现绿色分割轮廓

图 04 · 01:05一轮闭环。卡片全部复位,99→100 次、96→97 合格;画面里那圈绿色轮廓是当帧的检出结果。

Q2
类别设计

一个容易看漏的细节下拉框的标签写的是「缺陷类型」,类别名也都带着 NG1 前缀。这套字段本来是给外观检测设计的,过程监控直接把它借来登记「该出现的物料」。看着别扭,但省了另建一套配置——现场务实的做法往往如此。

它凭什么认出「硅胶」?因为类别名就是那道工序的物

每一步卡片背后都有一个语义分割模型,认的是画面里某一块像素属于什么。双击链路上的语义分割节点进标注页,顶部那个下拉框就是这条链路要认的目标。

语义分割1 标注界面,类别为 NG1 导热贴A,操作员双手在装配主板,已标注 26 张

图 05语义分割 1 · NG1 导热贴A(主板安装工位)。俯拍视角,粉色小块是导热贴所在区域,目标小、边界清楚。已标注 26 张。

语义分割4 标注界面,类别为 NG1 导热硅胶,品红掩膜标出细长的硅胶轨迹,已标注 20 张

图 06语义分割 4 · NG1 导热硅胶(散热器工位)。近景视角,硅胶是一条细长轨迹,得贴着走线涂。已标注 20 张。

注意这些名字:导热贴A、导热硅胶、屏蔽罩、打点标记,全是「这道工序该出现的东西」。过程监控要确认的从来不是「这件产品外观有没有瑕疵」,而是「这一步到底做了没有」。类别设计就是这个转变的落点。

现场的两处组织习惯值得照抄:

  1. 一个工位一个工程目录。路径形如 /opt/visionagent/image-proj/<工位>/<相机>/<日期批次>/6.jpg,工位、相机、批次三级分开。半个月后回头查「7 月 30 号那批判了什么」,不用翻。
  2. 目标形态决定工具和粒度。导热贴是块状,多边形勾轮廓最快;硅胶是细长条,用画笔顺着涂更贴合,画笔粗细(图里是 20)得跟着目标换,不能一套粗细走到底。
Q3
样本成本

这不是效率优化三个工位加起来不到 80 张标注。传统项目要先攒几千张、标几周才敢上线——四个工位各自攒几千张,这项目根本立不起来。样本成本直接决定了多工位过程监控铺不铺得开。

教会它要多少张图?图库 1708 张,真正标的只有 33 张

这是本案例里最有说服力的一组对照。下面两张截的是同一条链路(语义分割 2 · NG1 打点标记),只差一个筛选条件:一个筛「全部」,一个筛「已标注」。

图像状态筛选为全部时,图库显示 1708 张图像

图 07筛「全部」:1708 张。运行期不停存图,图库自然越滚越大。

图像状态筛选为已标注时只有 33 张,画面中青色与品红两个掩膜共存

图 08筛「已标注」:33 张。同一帧上青、品红两个掩膜共存,一次示教两类目标。

标注页的用法也是围着「省力」转的:左边原图、右边结果图并排,打开「显示检测结果」,模型当下认成什么立刻能比出来,不用等训完再复盘。三组筛选各管一件事——图像状态(全部 / 已标注 / 未标)管进度,合格状态(良品 / 不良)管样本平衡,缺陷视图(选中缺陷 / 结果图)管当前只看哪一类。

保存标注—— 迁移(少样本训练)—— 常规 / 加速推理—— 检测复核—— 迁移曲线看收敛
表 01 · 三条有截图的链路各自盯什么
链路 工位 相机 类别 已标注
语义分割 1 主板安装 industrialcam_2 NG1 导热贴A 26 张
语义分割 2 目镜安装 industrialcam_1 NG1 打点标记 33 张 / 图库 1708 张
语义分割 4 散热器 industrialcam_2 NG1 导热硅胶 20 张
语义分割 3 同批配置的第四条链路,本次素材未截图
Q4
并行拓扑

节点自带的说明工业相机写着「单个工业相机采集,16 路可选」;图像预处理是「去噪、增强、归一化」;语义分割标着「样本效果 2.5x、速度 -4.5x」,是用推理速度换样本效率的档位;状态机是「有限状态机 FSM 配置节点」;存图则「将图像保存到指定磁盘路径」。

四个工位同时盯:两台相机,四条链路,四台状态机

前面看的都是工位 2 这一条。把画布拉开,这套工程其实是四条链路并排在跑,每条从取图一直走到存图,各管一个工位。

四条并行链路的工作流拓扑:两台工业相机分别引出链路,四组图像预处理、语义分割、事件探测、状态机、存图

图 09工作流总览。四条链路各自跑完整一串,前两行有相机节点,后两行直接从图像预处理接起。

工业相机—— 图像预处理—— 语义分割—— 事件探测—— 状态机—— 存图

值得留意的是前两行有相机节点,后两行没有。后两行复用上游相机的图像流——同一台相机能覆盖到的几个工位,不必各配一台相机,省授权也省带宽。看截图里的路径也能对上:主板安装和散热器都挂在 industrialcam_2 下,目镜安装在 industrialcam_1 下。

相机可以共用,判定必须分开。

四个工位各有自己的类别、自己的事件、自己的状态机、自己的存图目录,互不干涉。两个实操提醒:

  1. 按连线读,别按编号读。图上「工业相机 1」接的是「图像预处理 2 → 语义分割 2」,编号并不成套对齐——编号只是创建顺序,链路归属只看连线。排查问题时认错一条链,能白折腾半天。
  2. 四台状态机彼此隔离。目镜工位卡住,只拦它自己那件活,主板工位的进度照推。要是共用一台状态机,一个工位停机就会把整条线拖住。
Q5
数据闭环

一份数据,两个用途存图目录既是追溯档案,也是下一版模型的训练集。这两件事用同一份数据完成,是过程监控项目能持续变好的根本原因。

为什么越跑越准:那 1708 张,是它自己攒出来的

回头看 Q3 的反差——图库 1708 张,标注只有 33 张。这 1708 张不是上线前人工拍的,而是链路末端那个存图节点在运行期一张张落下来的。

存图常被当成附属功能(「留个证据吧」),其实它把整套系统接成了一个回路:

运行期存图—— 图库变大—— 挑难例补标—— 迁移重训—— 模型更稳—— 继续存图

上线时标几十张先跑起来,运行中把判错、判得勉强的帧留下,隔一段回标注页挑着补,再点一次「迁移」。换批次、换机型、车间光照变了,走的都是这条回路,不用推倒重来。

另外别忽略看板上那个不合格数 3。它不是系统的失分项,恰恰是这套东西的产出——三件没按工序做完的活被当场拦住,没流到下工位。过程监控的价值就在这三件上:不是事后统计不良率,而是当场不让它过去。

适用边界

不必一上来就四条四条链路是这个案例的规模。落地时可以先挑一个工位、一台状态机跑顺,把类别和阈值调稳,再把同一套结构复制到第二、第三个工位——画布上是并排四行,实施上是一行一行加。

回到那块看板

把五个追问的答案连起来,看板就完整了:状态机定出四步工序和顺序,语义分割认出每步该出现的物料,事件探测用变化而非静态状态来触发,四条并行链路让四个工位各自独立地跑,存图把跑过的一切变成下一轮的养料。看板上的绿钩、「上轮:合格」、97.0%,都是这五件事共同写出来的。

什么样的场景适合搬这套做法?三个判断依据:

  • 工序有明确先后,而且漏做、跳步会造成实质后果——这是状态机能发挥价值的前提;
  • 该出现的东西看得见,比如贴片、胶路、标记、罩壳,相机能拍到就能教模型认;
  • 工位多、样本少,靠人工攒几千张图逐个工位建模不现实,需要几十张就能起步的路线。

反过来,如果只是判一件成品的表面好坏、并不关心中间过程,那用不着状态机,一次成像判 OK/NG 更省事。这两条路线不冲突,本来就是解决不同问题的。

像素
工长

像素工长

专栏「现场档案」作者,写工业视觉智能体在产线上的真实用法。本篇拆解的是多媒体主机装配线上的一套多工位过程监控工程——两台工业相机、四条并行链路,文中界面与录像均在该工程的实际运行环境中留存。