照典型场景配
12 个真实现场的配法,每个按「现场 → 配置 → 为什么这样配」写,遇到相似现场直接照着改。
类别名这里用中文,实际配置时用类别表里的名字。
场景 1:笔帽、笔杆装进笔盒
现场:工人把笔帽和笔杆放进笔盒,两样都放进去才算这一步完成。
配置:装配嵌入。
- 目标类别:笔帽、笔杆;
- 父容器:笔盒;
- 命中模式:全部目标都进入父容器才通过;
- 持续命中 500 ms。
为什么:装完后画面里有稳定结果,用物体类型最稳。多目标时默认要求全部进入同一个笔盒。
场景 2:拧 4 颗螺丝,而且真的拧过
现场:外壳上 4 颗螺丝,用手动螺丝刀拧。要防的是「螺丝放上去了但没拧」。
配置:组合条件,全部满足:
- 物体计数:螺丝,恰好 4。
- 动作计数:拧螺丝,位置来源 = 螺丝,恰好 4 次,证据 = 停留 + 旋转,勾 同一位置只记一次。
为什么:物体计数只能证明螺丝在,动作计数证明每颗都拧过。
视觉判不了拧没拧紧
拧紧是力,只能判拧的动作做没做。
场景 3:笔芯插紧
现场:笔芯插进笔杆,插浅了要报警。装好后工人把笔平放到检验位,手拿开。
配置:组合条件,全部满足:
- 长度比例:被测物 = 露出的笔芯,参照物 = 笔头,检验位区域 = 检验位,勾 超出范围报警(未插紧)。比例上下限用一体机 采集 › 标定 实测后写回。
- 手离开区域:检验位。
为什么:
- 插紧是力的概念,画面上看不出来;但插浅会让露出的笔芯变长,这个是能量出来的。
- 用笔头当参照物,摄像头远近变了比例也不变。
- 等手离开再量,避免手挡住。
场景 4:排线插到主板
现场:细长排线插到主板接口上。
配置:两类物体接触或连接。
- 物体 A:排线;物体 B:主板;
- 重叠比例 0.05;接触容差 8 px。
为什么:排线细长,框中心常落在主板框外,用「装配嵌入」会误判没装好。用接触 + 贴边容差。
场景 5:撕掉保护膜并丢弃
现场:撕下屏幕上的保护膜,丢进废料框。
配置:物体不存在:保护膜。持续命中 1500 ms。
为什么:
- 膜被拿出了画面,「物体分开」要求两个都还在画面里,不适用。
- 持续时间设长一点,避免手挡住膜的那一下被当成看不到。
场景 6:装箱封箱
现场:第 1~3 步把产品、说明书、配件放进外箱,第 4 步合上箱盖。
配置:
- 第 1~3 步:装配嵌入,目标分别是产品 / 说明书 / 配件,父容器 = 外箱。
- 第 4 步:物体存在,目标 = 合上的外箱,不选区域,勾 排除其他类别;勾 完成时会遮挡前置零件。
为什么:合上盖子后,前面放进去的东西都看不见了。不勾「完成时会遮挡前置零件」,系统会认为前面步骤的零件被拿走,报「前面装好的零件被破坏」。
场景 7:瓶底密封圈有没有装
现场:瓶子翻过来检查瓶底有没有密封圈,没有要马上报警。
配置:互斥状态判定。
- 待确认类别:单独的瓶体;
- 合格类别:瓶底有密封圈;
- 异常类别:瓶底没有密封圈;
- 异常等级:异常;
- 异常编码 SEAL_RING_MISSING;
- 提示「未安装密封圈,请重新安装」。
为什么:两种状态外观差异明显,训练时分成两个类别,一个判通过、一个判报警,还能给操作员明确的处理提示。
场景 8:按顺序从料盒取料,拿错报警
现场:工位左侧固定放 3 个料盒,每步取一种料,装了取料灯。
配置:
- 摄像头和料盒固定住。
- ① 基本信息 里加 3 个备料区(料盒 A / B / C),对应取料灯通道。
- ④ ROI 区域 里把 3 个料盒画成检测区域,料盒里的零件不标注。
- 每一步:取料区 选对应料盒(灯亮绿);检测规则用组合 依次满足:
- 手在区域内:料盒 A;
- 物体存在:零件 A,区域 = 装配位。
- ① 基本信息 里 拿错料检测 · 工作区 选装配位:工作区出现这一步不该出现的零件,就报「拿错料」。
为什么:
- 料盒固定后不用标成堆的零件,标注量能降一个数量级(实测 43888 个框降到 8968 个)。
- 「先伸手取料、再放到装配位」用依次满足表达先后。
场景 9:饺子装盘
现场:一个画面里 3 个盘子,每盘要 6 个白饺子、2 个黑饺子。
配置:容器内分类计数。
- 父容器:盘子;
- 子类:白饺子 = 6,黑饺子 = 2;
- 通过模式:所有容器都满足才通过(严格)。
为什么:用物体计数会把 3 个盘子的饺子加在一起数,分不出是哪个盘子少了。
场景 10:传送带上工件到位、加工、离开
现场:传送带把工件送到工位,工人装一个零件,工件被带走,下一件跟着进来。
配置:
- 第 1 步「工件到位」:物体存在,工件,区域 = 工位区,勾 仅认新目标。
- 第 2 步「装零件」:装配嵌入,零件 → 工件。
- 第 3 步「工件离开」:物体离开区域,工件 ← 工位区;勾 仅认新目标;不勾 必须在区域外看到该物体(工件会被带出画面)。
为什么:传送带上前一件还没走远时,不勾「仅认新目标」会被当成新一件,报大量假跳步。
场景 11:放产品时工位上不能有废料
现场:产品放上检测台时,台面上不能留有上一件的废料;工人的手要离开后才算放好。
配置:组合条件,全部满足:
- 物体存在:产品,区域 = 检测台;
- 物体不存在:废料,区域 = 检测台;
- 手离开区域:检测台。
为什么:「物体不存在」选了区域,判的就是此刻台面上没有废料;台面一开始就是干净的也算满足,正合这一步的要求。不用再绕成「都不满足〔物体存在〕」。
场景 12:双排流水线逐件插槽检验(重点)
现场情况
- 双排作业区,工件在流水线上连续流过,一个摄像头视角里同时有 4~6 块电路板。
- 每块板上液晶屏右侧一条竖排插槽,从上到下 4 个位置,每个位置要插指定的元件(比如蓝灯、电阻、黄灯、红灯)。
- 要求:每块板单独判有没有少插、插错、插反;板子离开作业区时计数,不合格的报警并记不合格件,不停线。
思路
- 逐件模式负责「每块板单独判、离开时计件」。
- 「每个插槽插对了」用装配嵌入写在规则里:每个插槽一条「元件 → 板子(托盘)+ 子区域」,4 条全部满足。
配置步骤
- 定类别(③ 模型与类别)
- 板子 / 托盘:作为锚点,每块一个框。
- 插槽里会出现的元件:蓝灯、电阻(黑色元件)、黄灯、红灯。外观人眼都难分的不要拆成两类。
- 不用标「插槽」本身,插槽位置在第 4 步的规则里框。
- 画区域(④ ROI 区域)
- 推理区域:把两排作业区完整包进去,比作业区再大一圈,不要切到板子。元件很小,采集分辨率用 1920×1080,推理尺寸用 1280。
- 检测区域「检验区」:板子要被判的范围。出口边要画在元件都已插完的位置之后,板子从这里出去时出结论、计件。
- 开逐件模式(④ ROI 区域 下方):打开开关;工件(锚点)类别 = 托盘;工作区 = 检验区;跟踪参数先用默认。
- 配规则(⑤ 步骤与检测规则)
- 只配一步「插件检验」。检测规则点 组合条件,组合方式 全部满足,组合持续命中 500 ms。
- 加 4 条条件,类型都选「装配嵌入」:
- 目标 = 红灯,容器类别 = 托盘,点 在参考图上框:先框一块示例托盘,再框红灯应在的位置;
- 黄灯、电阻、蓝灯同样各一条,各框各自的位置。
- 同一工序同一托盘类别,示例托盘框只要框一次,后面几条会记住。
- 有额外要求时继续往组合里加,比如「物体不存在:废料」并勾 按整个画面判(废料不属于某块板)。
- 保存 → 提交审核 → 发布,一体机同步后开始生产。
判定效果
| 情况 | 结果 |
|---|---|
| 4 个位置都插对 | 合格,计 1 件 |
| 某个位置空着(少插) | 那一条装配嵌入没满足 → 不合格,报「x 号工件:红灯 应装到 托盘 子区域…;实际:红灯 未检测到」 |
| 插了别的元件(插错) | 那个位置期望的元件不在 → 那一条不满足 → 不合格 |
| 两个元件插反 | 两个位置都不是期望的元件 → 两条都不满足,两条都列出来 |
一体机上会看到:每块板一个框和编号,绿 = 4 个位置都对上了,黄 = 还没对上;板子离开检验区时出结论、计件。
上线前验证
用一体机 采集 在正式机位录一段视频,摄像头位置、焦距、分辨率和正式生产一致。视频里要有:
- 正常流水至少 3 分钟;
- 少插 / 插错 / 插反各 3~5 件(记下第几件是什么错);
- 手挡住板子的片段。
用这段视频核对编号会不会串、结论和人工答案是否一致,再调跟踪参数。
当前限制
- 多插(一个位置插了两个)不单独判。
- 也可以配成多步(开始 / 关键检测 / 完成),按批推进,见用逐件模式;这时检验区要画成只容纳一列。
