工业视觉中的SOP工序AI检测:从预训练模型检测到状态机控制的完整实现
工业视觉中的SOP工序AI检测从预训练模型检测到状态机控制的完整实现摘要本文介绍苏州华镁莱电子科技有限公司开发的HML-Vision工业视觉检测系统中的SOP工序AI检测模块。该模块基于预训练模型状态机技术解决传统机器视觉无法处理工序顺序和动作验证的痛点。系统支持多步骤工序定义、连续帧确认防误判、动作验证模式、条件跳转等高级功能已在电子制造产线实际部署误判率0.5%。一、背景与痛点在电子制造、食品加工、医药生产等行业工序合规性检测是质量控制的核心环节。传统方案的局限方案优点缺点人工巡检灵活成本高、易疲劳、难追溯传统机器视觉速度快只能做有无检测无法理解工序逻辑普通目标检测能识别物体无法判断先A后B的工序顺序典型场景手机组装产线工人需要按顺序执行取壳体 → 2. 安装主板 → 3. 连接电池 → 4. 拧紧螺丝 → 5. 盖上后盖如果工人跳过了步骤2忘记装主板传统视觉系统无法发现但SOP AI可以二、系统架构设计整体架构技术栈前端PyQt5 5.15.9GPU指示灯、操作引导覆盖层推理预训练模型 PyTorch 2.0.1支持.pt/.onnx/.hml加密格式状态机自研SOPEngine轻量级无第三方依赖部署Windows 10 Python 3.10 NVIDIA RTX 3060三、核心算法详解3.1 工序状态机设计这是系统的核心用三状态机精确控制工序流程python复制class StepStatus(Enum): PENDING pending # 等待执行 IN_PROGRESS active # 执行中 COMPLETED completed # 已完成 FAILED failed # 失败超时/违规 class SOPEngine: def __init__(self): self.steps: List[SOPStep] [] self.current_step_idx: int 0 self.status StepStatus.PENDING def update(self, detections: List[Dict]) - Tuple[str, Dict]: 核心逻辑根据检测结果更新工序状态 参数: detections: AI模型检测结果 [{class: 手, bbox: [...], conf: 0.95}, ...] 返回: (status, info): 当前状态 详细信息 current_step self.steps[self.current_step_idx] if current_step.step_mode normal: # 普通模式检测目标物体是否出现 target_detected self._check_target(detections, current_step) if target_detected: self._hit_count 1 # 连续帧确认防误判 if self._hit_count current_step.confirm_frames: return self._advance_to_next_step() else: self._hit_count 0 # 重置计数 elif current_step.step_mode action: # 动作验证模式检测手是否进入ROI区域 return self._verify_action(detections, current_step) return (in_progress, {})创新点连续帧确认confirm_frames参数默认1即时确认可设5连续5帧确认防单帧误判动作验证模式检测手的位置而非目标物体适用于目标被遮挡的场景多ROI支持action_roi_list: [[x,y,w,h], ...]多区域分别验证3.2 动作验证模式实现这是本文的核心创新解决目标物体被手遮挡无法检测的问题。算法流程1. AI模型检测出手的位置bbox中心坐标 2. 判断手是否进入预设ROI区域 3. 如果在ROI内标记动作已执行 4. 连续N帧确认后完成当前步骤代码实现python复制def _verify_action(self, detections: List[Dict], step: SOPStep) - Tuple[str, Dict]: 动作验证模式检测手是否完成指定动作 适用场景 - 目标物体被手遮挡如按按钮按钮被手指挡住 - 需要验证人的动作而非物体状态 # 1. 找出检测到的手 hand_detections [d for d in detections if d[class] step.action_class] if not hand_detections: return (waiting, {reason: 未检测到手}) # 2. 获取手的重心坐标 hand_center self._get_hand_center(hand_detections[0]) # 3. 检查是否在ROI内支持多ROI for roi_idx, roi in enumerate(step.action_roi_list): if self._point_in_roi(hand_center, roi): self._action_roi_completed[roi_idx] True break # 4. 所有ROI都完成 if all(self._action_roi_completed): self._hit_count 1 if self._hit_count step.confirm_frames: return self._advance_to_next_step() return (in_progress, {completed_rois: self._action_roi_completed})技术优势不依赖目标物体检测即使按钮被手指完全遮挡也能通过手的位置判断动作多ROI支持可定义多个区域如先按按钮A再按按钮B可配置验证目标action_verify_targetFalse时只验证动作不验证结果3.3 条件跳转智能工序支持根据检测结果动态跳转到不同步骤python复制# 步骤配置示例 { step_id: step_3, name: 安装电池, condition_goto: { 电池_类型A: step_4a, # 如果检测到电池_类型A跳到步骤4a 电池_类型B: step_4b, # 如果检测到电池_类型B跳到步骤4b } }实现原理python复制def _check_condition_goto(self, detections: List[Dict]) - Optional[str]: 检查是否满足 condition_goto 条件 current_step self.steps[self.current_step_idx] if not current_step.condition_goto: return None for det in detections: class_name det[class] if class_name in current_step.condition_goto: target_step_id current_step.condition_goto[class_name] get_logger().info(f条件跳转: {class_name} → {target_step_id}) return target_step_id return None应用场景多产品混线生产根据型号自动跳转不同工序异常处理检测到NG品时跳转到返工步骤3.4 操作时长基线自学习系统可自动学习每个步骤的正常操作时长偏离基线时预警python复制def _update_baseline(self, step_idx: int, duration: float): 更新操作时长的基线前3轮学习后续预警 算法 1. 前3次执行收集数据 2. 计算均值 ± 2σ95%置信区间 3. 后续执行如果 duration mean 2σ预警操作过慢 if step_idx not in self._baseline_data: self._baseline_data[step_idx] [] self._baseline_data[step_idx].append(duration) # 至少3次数据才计算基线 if len(self._baseline_data[step_idx]) 3: data np.array(self._baseline_data[step_idx]) mean np.mean(data) std np.std(data) self._baseline_mean[step_idx] mean self._baseline_warn_threshold[step_idx] mean 2 * std get_logger().info(f步骤{step_idx}基线更新: 均值{mean:.1f}s, 预警阈值{mean2*std:.1f}s)价值工艺优化发现哪个步骤耗时最长异常预警操作时间过长可能是工人不熟练或工装设计不合理四、创新点总结创新点技术实现价值连续帧确认confirm_frames参数 _hit_count计数器误判率降低80%动作验证模式检测手的位置而非目标物体解决遮挡问题多ROI支持action_roi_list_action_roi_completed字典支持复杂工序条件跳转condition_goto字典 动态步骤切换支持柔性产线基线自学习前3轮学习 均值±2σ预警工艺优化依据视频证据保存环形缓冲区60帧 NG自动保存质量追溯五、实际部署效果案例某电子厂手机组装产线部署配置相机海康威视MV-CE200-10GC200万像素10fps算力NVIDIA RTX 30606GB显存模型预训练模型检测手、主板、电池、螺丝等8类效果数据指标数值检测精度99.2%误判率0.5%单帧推理时间15msGPU支持工序步骤数最多20步报警响应时间200ms客户反馈以前每个月有3-5起漏检事故用了SOP AI后半年零漏检。 —— 产线经理六、代码开源核心片段6.1 SOP引擎状态机python复制# sop_engine.py核心代码片段 class SOPEngine: SOP工序检测引擎状态机实现 def __init__(self, steps: List[Dict]): self.steps [SOPStep.from_dict(s) for s in steps] self.current_step_idx 0 self._hit_count 0 self._action_roi_completed {} def process_frame(self, detections: List[Dict]) - Dict[str, Any]: 处理单帧检测结果 返回: { status: ok | ng | waiting | in_progress, current_step: 步骤名称, progress: 3/5 (第3步/共5步), alert: 超时预警 | None } if self.current_step_idx len(self.steps): return {status: completed, progress: 完成} current_step self.steps[self.current_step_idx] # 检查超时 if self._is_timeout(current_step): return {status: ng, reason: 步骤超时} # 更新状态 status, info self._update_step(detections, current_step) return { status: status, current_step: current_step.name, progress: f{self.current_step_idx 1}/{len(self.steps)}, hit_count: self._hit_count, confirm_frames: current_step.confirm_frames }6.2 操作引导覆盖层PyQt5实现python复制# sop_image_viewer.py操作引导覆盖层 class SOPImageViewer(QLabel): SOP图像控件带操作引导覆盖层 def paintEvent(self, event): 重写paintEvent绘制操作引导 super().paintEvent(event) if not self._show_guidance: return painter QPainter(self) # 1. 绘制ROI区域闪烁高亮 if self._current_roi: color QColor(255, 0, 0, 100) # 红色半透明 if int(time.time() * 2) % 2 0: # 每秒闪烁2次 color QColor(255, 0, 0, 200) painter.fillRect(self._current_roi, color) # 2. 绘制箭头引导工人操作 if self._guidance_arrow: self._draw_arrow(painter, self._guidance_arrow) # 3. 绘制已完成步骤绿色✓ for idx, completed in self._step_completed.items(): if completed: self._draw_checkmark(painter, idx)七、总结与展望本文贡献提出一种基于预训练模型状态机的SOP工序检测方法创新动作验证模式解决目标遮挡问题实现条件跳转和基线自学习支持柔性产线未来工作3D视觉融合用深度相机检测手的Z坐标判断是否按下动作边缘部署用TensorRT优化预训练模型部署到Jetson Orin数字孪生将工序数据实时同步到MES系统八、参考资料深度学习目标检测综述: https://github.com/ultralytics/ultralyticsPyQt5官方文档: https://www.riverbankcomputing.com/static/Docs/PyQt5/工业视觉检测综述: 《机器视觉与自动化》, 2023作者: 韩青松单位: 苏州华镁莱电子科技有限公司关键词工业视觉检测、SOP工序检测、AI视觉检测、预训练模型、状态机、工序合规性、智能制造工业4.0视觉检测方案、SOP工序AI检测系统、预训练模型工业应用、工序合规性检测、电子制造视觉检测、柔性产线AI检测、操作工序智能化、工业AI视觉方案PyQt5工业应用、状态机控制、连续帧确认、动作验证模式、条件跳转、基线自学习、实时视频检测、PLC通信、工业相机集成HML-Vision、华镁莱电子、工业视觉检测系统、SOP AI检测、智能制造解决方案

相关新闻

3步告别桌面混乱:用NoFences打造你的数字工作空间

3步告别桌面混乱:用NoFences打造你的数字工作空间

3步告别桌面混乱:用NoFences打造你的数字工作空间 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 你是否曾在满屏图标中迷失方向,花费宝贵时间寻找需要…

2026/6/28 12:38:52阅读更多 →
NoFences:开源免费的Windows桌面分区工具终极指南

NoFences:开源免费的Windows桌面分区工具终极指南

NoFences:开源免费的Windows桌面分区工具终极指南 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences NoFences是一款完全开源免费的Windows桌面分区工具,…

2026/6/28 12:38:52阅读更多 →
【软考下半年通关指南】:2024最新科目变动解析+高分备考节奏表(仅限考前30天发放)

【软考下半年通关指南】:2024最新科目变动解析+高分备考节奏表(仅限考前30天发放)

更多请点击: https://intelliparadigm.com 第一章:软考下半年考试政策与科目概览 2024年下半年全国计算机技术与软件专业技术资格(水平)考试(简称“软考”)将于11月9日至10日在全国范围内统一举行。本次考…

2026/6/28 12:38:52阅读更多 →
软考报名费用全梳理,从资格审核到电子发票开具的12个关键操作细节与合规避雷清单

软考报名费用全梳理,从资格审核到电子发票开具的12个关键操作细节与合规避雷清单

更多请点击: https://intelliparadigm.com 第一章:软考报名费用全梳理,从资格审核到电子发票开具的12个关键操作细节与合规避雷清单 软考报名费用虽属常规行政性收费,但其全流程涉及资格初审、缴费通道选择、支付时效校验、订单状…

2026/6/28 13:59:00阅读更多 →
软考上半年考试时间已锁定!但92.7%考生忽略的「报名-缴费-打印准考证」三阶时效链

软考上半年考试时间已锁定!但92.7%考生忽略的「报名-缴费-打印准考证」三阶时效链

更多请点击: https://codechina.net 第一章:软考上半年考试时间已锁定!但92.7%考生忽略的「报名-缴费-打印准考证」三阶时效链 软考上半年考试时间已正式公布:2024年5月25日至26日。然而,大量考生因未厘清报名、缴费与…

2026/6/28 13:59:00阅读更多 →
2024软考报名时间官宣对比:3大变化+2类考生易错节点+1份不可逆截止清单

2024软考报名时间官宣对比:3大变化+2类考生易错节点+1份不可逆截止清单

更多请点击: https://kaifayun.com 第一章:2024软考报名时间官宣对比总览 2024年度计算机技术与软件专业技术资格(水平)考试(简称“软考”)报名工作已全面启动,全国各省市区报名时间呈现明显差…

2026/6/28 13:59:00阅读更多 →
视频与图像压缩解决方案:CompressO技术方案详解

视频与图像压缩解决方案:CompressO技术方案详解

视频与图像压缩解决方案:CompressO技术方案详解 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/compressO 在…

2026/6/28 13:59:00阅读更多 →
CompressO:释放95%存储空间的免费开源视频图像压缩神器

CompressO:释放95%存储空间的免费开源视频图像压缩神器

CompressO:释放95%存储空间的免费开源视频图像压缩神器 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/compressO …

2026/6/28 13:59:00阅读更多 →
Navicat重置试用期脚本:专业级解决方案助您无限试用数据库管理工具

Navicat重置试用期脚本:专业级解决方案助您无限试用数据库管理工具

Navicat重置试用期脚本:专业级解决方案助您无限试用数据库管理工具 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac …

2026/6/28 13:54:00阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/28 0:08:01阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/28 0:08:01阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/28 0:08:01阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/28 0:08:01阅读更多 →