基于OpenCV的上位机机器视觉自研算法
1 引言
断路器、接触器、继电器等低压电器元件是工业自动化控制系统的基础零部件,其外观完整性与关键尺寸精度直接决定产品电气性能以及整机装配可靠性。现阶段国内多数低压电器生产企业仍依靠人工目视结合游标卡尺抽检方式完成外观缺陷(划痕、缺料、毛刺、色差、表面异物)与关键尺寸(引脚间距、外壳轮廓尺寸、装配间隙)检测任务。人工检测模式存在诸多短板:检测效率较低,熟练工人单件检测耗时 3‑5 s,难以匹配高速自动化产线运行节拍;检测结果受人的疲劳状态、主观经验干扰,一致性差,漏检、误判波动明显;检测数据缺少数字化记录,质量数据难以追溯,不利于生产工艺迭代优化;检测岗位需要 24 h 轮班作业,人力招工与用工成本持续走高。
随着机器视觉技术的成熟,基于工业相机的自动化检测方案已成为行业趋势。但商用视觉软件授权费用高昂,算法封装封闭,难以针对电气元件特殊检测需求深度定制。为此项目团队基于开源 OpenCV 计算机视觉库,结合 C#/.NET 上位机平台,开发面向低压电器元件的视觉检测算法与软件系统,在保证检测精度的前提下降低软件使用成本。本文从系统构成、核心算法、上位机实现及应用效果几个方面展开介绍。
2 系统总体设计
2.1 硬件构成
视觉检测系统硬件平台由工业相机、镜头、光源、运动机构及上位机工控机五部分组成,具体配置如表 1 所示。
表 1 系统硬件配置清单
表格
| 序号 | 部件名称 | 型号 / 规格 | 数量 | 用途说明 |
|---|---|---|---|---|
| 1 | 工业面阵相机 | 海康 MV‑CA050‑10GM,500 万像素,GigE 接口 | 1 台 | 采集元件顶面图像 |
| 2 | 工业镜头 | Computar M1620‑MPV,16mm 焦距,2/3 英寸靶面 | 1 个 | 搭配相机成像 |
| 3 | 环形光源 | 项目定制白色 LED 环形光,外径 90mm | 1 套 | 均匀照明,突出表面缺陷 |
| 4 | 同轴光源 | 项目定制红色 LED 同轴光 | 1 套 | 辅助检测金属引脚平整度 |
| 5 | 光源控制器 | HC‑DLC24‑2 通道数字控制器 | 1 台 | 两路光源独立调光、频闪触发 |
| 6 | 运动机构 | 伺服分度盘 + 光纤传感器触发 | 1 套 | 工件输送与拍照触发 |
| 7 | 上位机工控机 | 研华 IPC‑610L,i5‑10400,16GB 内存,SSD | 1 台 | 运行视觉算法与上位机软件 |
| 8 | 执行机构 | 气缸剔除机构 + 电磁阀 | 1 套 | NG 品自动剔除 |
系统采用 “分度盘 + 固定相机” 布局方案:工件随分度盘旋转至检测工位时,光纤传感器检测到工件到位信号,触发光源频闪和相机曝光,图像通过 GigE 接口传输至上位机进行算法处理,检测结果通过 IO 模块输出至 PLC,控制剔除机构完成 NG 品分选。
2.2 软件架构
上位机软件基于 C# .NET Framework 4.8 开发,采用分层架构设计,整体分为五层。
图 1 上位机软件架构图
投稿时此处上传架构图片,文本保留图标题即可
┌─────────────────────────────────────────┐
│ 应用层 (UI & 业务逻辑) │
│ 主界面 / 参数设置 / 数据统计 / 报表 │
├─────────────────────────────────────────┤
│ 调度层 (任务调度与状态机) │
│ 检测流程控制 / 相机触发 / IO交互 │
├─────────────────────────────────────────┤
│ 算法层 (OpenCV视觉处理) │
│ 预处理 / 定位 / 缺陷检测 / 尺寸测量 │
├─────────────────────────────────────────┤
│ 驱动层 (硬件接口封装) │
│ 相机SDK / 光源控制 / 串口 / IO卡 │
├─────────────────────────────────────────┤
│ 数据层 (存储与通信) │
│ SQLite本地库 / Modbus TCP / TCP/IP │
└─────────────────────────────────────────┘应用层:提供人机交互界面,包括实时图像显示、检测结果统计、参数配置、历史数据查询等功能;
调度层:基于状态机模式管理检测流程,协调相机触发、算法运行、IO 输出的时序关系;
算法层:核心视觉处理模块,通过 C++/CLI 封装 OpenCV 算法,供 C# 上层调用;
驱动层:封装相机、光源、IO 卡等硬件的 SDK 接口,提供统一的硬件抽象;
数据层:负责检测数据的本地存储(SQLite)和与 PLC/MES 系统的通信(Modbus TCP)。
算法层采用 C++ 编写 OpenCV 核心处理逻辑,编译为动态链接库(DLL),通过 C++/CLI 中间层暴露给 C# 调用,既保证图像处理执行效率,又发挥 C# 在上位机界面开发上的优势。
3 基于 OpenCV 的核心算法设计
视觉检测算法是整个系统的核心,针对低压电器元件检测需求搭建完整图像处理流水线,主要包含图像预处理、ROI 区域提取、缺陷检测和尺寸测量四个模块。
3.1 图像预处理
工业现场采集的原始图像容易存在噪声、光照不均、对比度偏低等问题,直接提取特征会降低检测精度。预处理流程包含灰度化、CLAHE 局部对比度增强、高斯滤波去噪、光照归一化。 将彩色图像转为灰度图降低计算量,使用 CLAHE 算法做局部对比度增强,避免全局均衡带来的局部过曝问题;采用 5×5 高斯核滤除传感器噪声与微小颗粒干扰;通过大尺寸高斯核估计背景光照,做图像除法完成光照归一化,改善图像明暗不均现象,为后续特征提取打好基础。
3.2 ROI 区域提取
低压电器检测项目集中在引脚区、外壳面、铭牌区等特定位置,提取 ROI 可减少运算量,排除无关区域干扰。系统采用模板匹配 + 动态 ROI 方案。
首先利用模板匹配完成工件定位,获取工件图像偏移量;针对工件存在旋转的工况,可选用 Hu 矩轮廓匹配或者特征点匹配方案。依据模板预先设定的相对坐标,结合定位偏移量动态计算每一个检测区域实际 ROI。即使工件在分度盘上出现轻微位置偏移,ROI 依旧可以准确框选目标检测区域,减少定位偏差带来的误判。
3.3 缺陷检测算法
元件外观缺陷主要包含划痕、缺料、毛刺、色差、异物等,算法采用模板差分结合形态学分析的组合策略。
先将待检测图像和标准合格品均值模板做图像对齐,再执行图像差分运算,放大缺陷差异区域;阈值分割得到二值图,通过开运算消除细小噪点,闭运算连接缺陷断裂区域;对处理后图像执行连通域分析,提取连通域面积、周长、长宽比等特征,依据阈值判定是否存在缺陷。
针对金属引脚,额外增加边缘平整度检测,借助 Canny 提取边缘,霍夫直线检测获取引脚轮廓,分析边缘直线度与共面度,实现引脚变形、翘曲缺陷识别。
3.4 尺寸测量算法
针对引脚间距、外壳长宽、装配间隙等关键尺寸,系统采用亚像素边缘检测结合相机标定实现高精度测量。
在 Canny 像素级粗边缘基础上,采用灰度矩法实现亚像素边缘定位,将边缘定位精度提升至 0.1 像素级别。使用棋盘格标定板完成相机标定,消除镜头畸变,计算像素‑毫米物理当量;获取亚像素边缘坐标后换算得到实际物理尺寸,批量完成多组引脚尺寸计算。
4 上位机软件实现
4.1 开发环境与关键技术
表 2 软件开发环境与技术选型
表格
| 类别 | 选型 | 说明 |
|---|---|---|
| 操作系统 | Windows 10 IoT Enterprise | 工控机标配,长期服务通道 |
| 开发语言 | C# + C++/CLI | C# 做界面与业务,C++ 做 OpenCV 算法 |
| .NET 版本 | .NET Framework 4.8 | 兼容性好,工业控件支持完善 |
| UI 框架 | WinForms + GDI + 自绘 | 轻量、响应快,适合工业现场 |
| 视觉库 | OpenCV 4.8.0 | 开源免费,算法丰富,社区活跃 |
| 相机 SDK | 海康 MVS SDK | 配合海康工业相机使用 |
| 数据库 | SQLite 3 | 本地轻量数据库,存储检测记录 |
| 通信协议 | Modbus TCP / TCP/IP | 与 PLC、MES 系统通信 |
| 日志框架 | log4net | 运行日志记录与问题排查 |
4.2 软件主要功能模块
1)实时检测界面:分为图像显示区、结果统计区、操作状态区,图像上叠加 ROI 框、缺陷标记与尺寸标注,实时展示 OK/NG 数量、合格率、节拍。 2)参数设置模块:可配置相机、光源、算法阈值、通信参数,支持配方保存加载,方便产品换型。 3)自学习与模板管理:采集多件合格产品自动生成均值模板,模板与配方绑定,支持更新、删除。 4)数据统计与追溯:检测结果存入本地数据库,支持多条件查询、报表导出,NG 图像自动保存,便于问题回溯。 5)报警与维护:针对相机断开、光源异常、连续 NG 超限等故障实现报警提示,保存系统运行日志方便排查。
5 应用效果与分析
该视觉检测系统已经在断路器外壳检测产线投入实际运行,经过三个月连续生产验证,整体运行稳定。
5.1 检测效率对比
表 3 视觉检测与人工检测效率对比
表格
| 对比项 | 人工检测 | 视觉检测系统 | 提升幅度 |
|---|---|---|---|
| 单件检测节拍 | 3.5 秒 / 件 | 0.8 秒 / 件 | 提升 77% |
| 单班产能(8 小时) | ~8000 件 | ~36000 件 | 提升 350% |
| 所需检测人员 | 4 人 / 班(两班倒) | 0 人(1 人兼顾多台设备) | 减少 87.5% |
| 连续工作能力 | 需休息,疲劳后效率下降 | 24 小时不间断 | — |
5.2 检测精度验证
选取 1000 件工件开展盲测,包含 800 件合格品、200 件各类缺陷 NG 样品。合格品误判率 0.6%,NG 品漏检率 0.5%,综合识别准确率 99.2%。
以三坐标测量仪作为参照对引脚间距开展比对测试,测量重复性标准偏差 0.008mm,最大测量偏差 0.018mm,重复精度 ±0.02mm,满足低压电器 ±0.05mm 尺寸公差要求。
表 4 缺陷识别准确率测试结果
表格
| 指标 | 数值 | 说明 |
|---|---|---|
| 合格品误判率(过杀) | 0.6% | 800 件合格品中 5 件被误判为 NG |
| NG 品漏检率 | 0.5% | 200 件 NG 品中 1 件漏检(微小划痕) |
| 综合准确率 | 99.2% | (795+199)/1000 |
| 缺陷类型识别正确率 | 96.8% | 划痕 / 缺料 / 毛刺 / 色差分类正确率 |
表 5 尺寸测量精度测试结果
表格
| 指标 | 数值 |
|---|---|
| 测量重复性(标准偏差 σ) | 0.008mm |
| 最大测量偏差 | 0.018mm |
| 重复精度(3σ) | ±0.024mm |
| 与三坐标测量值的相关系数 R² | 0.9987 |
5.3 经济效益分析
从现场运行数据测算,该方案具备较好经济性。系统硬件软件合计投入约 12 万元。替代人工检测之后,检测岗位人力需求大幅下降,同时降低人工漏检带来的退货客诉损失,有效打通产线检测产能瓶颈,项目投资回报周期较短。
6 结论与展望
本文介绍一套基于 OpenCV 开发的上位机视觉检测系统在低压电器元件检测中的工程应用。系统无需商用视觉软件授权,算法可针对电气产品特性做定制开发;现场实测缺陷识别准确率 99.2%,尺寸测量重复精度 ±0.02 mm,单件检测节拍 0.8 s,可以满足自动化产线在线检测需求。
后续将从几个方向继续优化:融合轻量级深度学习模型处理微小复杂缺陷;拓展多相机方案,实现产品六面检测;对接企业 MES 平台,完成质量数据集中分析;将算法封装成通用组件,降低使用门槛。
作者简介:项目研发团队(台州华川电气设备有限公司,浙江 台州),主要从事工业自动化上位机、机器视觉算法研发,深耕低压电器行业检测项目。
参考文献:[1] Gary Bradski, Adrian Kaehler. Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library [M]. O'Reilly Media, 2016. [2] 国家市场监督管理总局. GB/T 14048.1‑2023 低压开关设备和控制设备 第 1 部分:总则 [S]. 北京:中国标准出版社,2023. [3] 张广军。机器视觉 [M]. 北京:科学出版社,2018. [4] 阮秋琦。数字图像处理学 [M]. 北京:电子工业出版社,2019.
提交
华川电气Delta蜘蛛手底层运动控制研发
华川电气上位机系统在数控弯管机项目
华川自研视觉算法库架构与工程实践
手机壳外观瑕疵与尺寸检测系统设计
正运动控制卡上位机开发实战


投诉建议