配方化是什么,用在哪些工况
配方化指把一个型号所需的 全套视觉参数打成一个可命名、可版本管理、可整体切换的集合, 换型时按型号一次性载入,而不是让操作员逐项去改。这看着是软件问题,实际是质量控制问题。
典型工况:几十个 SKU 的电子装配线、同平台多规格汽车零部件、 多配置家电,共同特点是换型频繁, 每次都涉及 ROI、检测项、阈值甚至打光参数的整体变化。 敏洽 机器视觉检测软件 在这件事上有结构性优势: C++ 算法侧只输出原始算法数据、不做 OK/NG 判定, 判定逻辑与阈值都在 C# 侧,配方改动绝大部分不触及算法层。
实际会遇到的几个坑
1. 配方漏了成像参数
很多第一版实现只把 ROI 和阈值做进配方, 把曝光时间、增益、光源亮度与通道留在全局设置里。 从浅色型号切到深色型号,阈值换了曝光没换,图偏暗或过曝,检测项全部失效。 判断标准很直接:凡是换型号要变的东西,一律进配方。
2. ROI 用绝对坐标,换型就要重画
ROI 手画绝对坐标,换新型号就要重画所有检测框,工件位置一浮动就框错。
更好的做法是先定位再取 ROI:
用 Mark 点定位、模板匹配、特征点或几何基准算子先算出工件实际位置,
四类算子统一输出 Offset_X / Offset_Y / Angle_θ,
检测区按这组偏移做仿射跟随。配方里存相对基准的坐标,
同系列型号之间还能互相复制修改。
3. 人工选型号,选错了才发现
换型阶段最常见的批量事故是配方选错:A 型号的产品用 B 型号的配方检, 要么全部误判停线,要么更糟——全部判 OK 流出去。 对策按优先级:能从上层系统或 PLC 拿型号就不要让人选; 只能人工选就加两道拦:界面常显当前配方名与型号,切换后强制过首件并确认。 另一个便宜有效的办法是扫码校验。
4. 参数改动没有留痕
「谁把阈值调宽了」是不良流出后最难答的问题。必需的机制有三条: 权限分级(操作员只能看与切换、工程师才能改)、 变更记录(改了哪一项、原值、新值、操作人、时间)、 版本与回滚(每次保存产生新版本,可对比差异并回退)。
5. 型号一多,配方之间开始互相污染
型号到几十个之后会出现命名不规范、同一型号有多个来源不明的副本。 做法是把配方分层: 公共部分(硬件配置、通讯设置、留存策略)与型号部分分开, 型号配方只存差异项;命名用规范型号码;提供导入导出与对比功能。
6. 新型号导入的时间没人算
报价时经常只算已知的几个型号,忽略后续新增型号的配置工作。
每个新型号都要:拿样品试拍、画或复制 ROI、调算法参数、
跑 OK 与 NG 样品定阈值、做首件验证;用到 AI 还要标注、训练、验证。
所以要在方案阶段说清新型号导入由谁做——
敏洽每次派人,还是把配置能力交给客户工程师(配套培训与手册)。
AI 训练平台在客户本地运行,图片不出厂,模型导出为加密 .aim 包。
配方内容与硬件条件
| 配方分层 | 包含内容 |
|---|---|
| 硬件层(公共) | 相机型号与连接参数、工位分配、触发方式、通讯设置、留存策略 |
| 成像层(按型号) | 曝光、增益、光源亮度与通道、触发延时、白平衡、预处理参数 |
| 定位层(按型号) | 定位方式(Mark 点 / 模板匹配 / 特征点 / 几何基准)、模板图、基准点 |
| 检测层(按型号) | 检测项清单与启停、相对基准的 ROI、各算法参数 |
| 判定层(按型号) | 各项阈值与上下限、结果组合逻辑、复检规则 |
| 元信息 | 型号码、版本号、修改人与时间、变更说明 |
| AI 模型(如有) | 该型号绑定的 .aim 模型文件与推理参数 |
| 项目 | 要求与说明 |
|---|---|
| 型号下发 | 通讯软触发携带型号号、PLC 的 IO 编码、扫码自动切换或界面手选 |
| 触发方式 | 硬件 IO、编码器、通讯软触发、连续采集四种,按工位分别配置 |
| 工位并发 | 单机 4 工位并发,每工位可独立配方 |
| 权限 | 操作员(查看与切换)/ 工程师(改参数)/ 管理员(改硬件与权限) |
| 留痕 | 配方版本、参数变更记录、换型首件的图片与结果留存 |
| 调试手段 | Mock 虚拟相机可加载历史图片集回放,新型号配置不占产线 |
| 运行环境 | Qt 6.9.2 + C++17 + OpenCV 4.x + ONNX Runtime;Windows 10/11 x64 与 Ubuntu 22.04 x64 |
| 客户准备 | 规范的型号编码体系、各型号 OK 与 NG 样品、型号下发的通讯或 IO 接口定义 |
Mock 虚拟相机在多型号项目里价值很高: 把现场采到的图片按型号存成图片集,在办公室回放调参数,改完再把配方导到现场。
相关交付情况
多型号项目的交付重点不在单个算法,而在 配方结构的设计与配置能力的移交: 先与客户确定配方分层与型号编码规则, 再实现配方管理、权限与变更记录,然后把已知型号配好并做首件验证, 最后做配置培训并交付操作手册。
交付内容包括成像方案、硬件选型建议清单、检测软件与配方管理、结果与图片留存、
接口文档(触发方式、IO 定义、通讯点表、型号下发格式、结果格式)。
算法按模块授权;已有上位机框架的客户可以只用跨语言 SDK
(mqvision.dll / libmqvision.so,
支持 C、C++、C#、Java JNI、Python,另有 Qt-free 版本)嵌入算法能力。
常见问题
有具体设备清单或工件样品,可以直接给判断
提供设备型号、PLC 品牌与需要采集的数据项,或提供被检工件照片与精度要求,敏洽可先给出可行性判断与硬件前置条件,再谈软件工作量与报价。