工控网首页
>

应用设计

>

华川自研视觉算法库架构与工程实践

华川自研视觉算法库架构与工程实践

2026/8/20 10:09:07

背景

在工业自动化项目中,机器视觉已经成为质量检测、尺寸测量、视觉引导等环节不可或缺的技术手段。目前市场上主流的视觉算法方案主要有两类:一类是国际厂商的商用视觉软件包,功能全面但授权成本高,且二次开发灵活性不足;另一类是开源视觉库(如 OpenCV、Halcon 等),虽然免费但缺乏面向特定工业场景的工程化封装,使用时需要大量集成开发工作。

本文对该算法库的架构设计、核心模块及工程实践进行介绍,供同行交流参考。

2 算法库整体架构

算法库采用分层架构设计,自下而上分为四层:

层次模块说明
基础层图像处理基础库图像读取/转换、ROI 管理、色彩空间转换、滤波、形态学运算等基础操作
算法层标定 / 测量 / 瑕疵检测 / OCR各业务算法的核心实现,互相独立,可单独调用
接口层SDK 封装C++ 核心 + C#/Python 绑定,对上层暴露统一 API
应用层上位机软件 / 批处理工具检测流程调度、界面交互、配方管理、数据存储

这种分层设计的核心出发点是算法与应用解耦。算法层不依赖任何 UI 框架和具体硬件品牌,只接收图像数据和参数配置,输出结构化结果。这使得同一套算法既能嵌入在线检测上位机,也能用于离线批测工具或第三方系统,大大提高了复用率。

3 核心算法模块

3.1 标定与坐标统一

标定是所有视觉检测任务的基础。算法库提供完整的标定流程:

(1)像素当量标定:通过标准标定板或已知尺寸工件,计算像素到实际物理尺寸的转换系数。支持单点标定和多点标定两种模式,多点标定可同时校正镜头畸变。

(2)镜头畸变校正:采用 Brown-Conrady 畸变模型,对普通定焦镜头的径向畸变和切向畸变进行建模和校正。标定后全视场测量误差可控制在 0.01 mm 以内(配合 2500 万像素相机+远心镜头方案)。

(3)多工位坐标统一:在多工位检测系统中,各工位通过仿射变换统一到机械坐标系,保证不同工位的测量结果可直接比较。标定参数支持文件存储和配方管理,换型时一键加载。

3.2 尺寸测量算法

尺寸测量是工业视觉最基础也是最核心的应用之一。算法库的测量模块主要包含以下能力:

(1)亚像素边缘提取:先以 Sobel 梯度算子定位边缘粗位置,再沿梯度方向进行灰度矩插值,将边缘定位精度提升至 1/20 像素级别。在 2500 万像素配合远心光路下,全视场像素当量约 0.02 mm,结合亚像素插值后孔径测量重复精度(3σ)优于 0.01 mm。

(2)鲁棒几何拟合:对孔位边缘做圆拟合时采用 RANSAC 算法剔除毛刺、崩边等干扰点,避免异常点导致拟合结果虚高。直线拟合同样采用鲁棒估计,对脏污和缺陷有较好的容忍度。

(3)双阈值滞后边缘连接:针对透明材质工件边缘对比度低的问题,在背光穿透成像下采用双阈值滞后连接策略(类似 Canny 的滞后阈值思路),有效解决了弱边缘断裂问题。

(4)多类型测量支持:包括外形尺寸(长宽、角度、半径)、孔径、孔位中心距、边距、平行度、圆度等几何量,均可通过参数化配置完成测量,无需针对每种尺寸单独开发。

3.3 瑕疵检测算法

瑕疵检测是视觉检测中难度最高的环节,不同产品、不同缺陷类型的检测策略差异很大。算法库采用传统视觉与深度学习融合的两级架构:

第一级:候选区快速提取

以差分法、自适应阈值、频域纹理滤波等传统算法对整幅图像做快速筛查,提取疑似瑕疵候选区域,单帧处理时间控制在 300 ms 以内。主要策略包括:

  • 对规则平面区域使用金模板比对,检出亮度异常和形态偏差

  • 对纹理复杂的印刷区域使用频域滤波抑制底纹后再做差分比对

  • 对孔位边缘使用径向扫描法检测崩边和毛刺

  • 对曲面区域使用多角度光源图像融合后做区域分割

第二级:深度学习精判

候选区域裁剪后送入轻量化卷积网络进行分类与分割。网络结构以 MobileNetV3 为骨干网络,搭配 DeepLabV3+ 解码头,兼顾检测精度和推理速度。关键工程细节包括:

  • 模型经产线实采样本训练,并采用缺陷仿真增强(随机叠加划痕、污渍模板)扩充小样本类别

  • 模型经 TensorRT 半量化部署于 GPU,单次推理耗时小于 20 ms

  • 支持模型热更新:新缺陷类型样本采集后可离线训练并更新模型,无需停机

两级架构的核心优势在于:2500 万像素整图不需要全图跑神经网络,只在候选区域做精判,既保证了 2 秒检测节拍,又显著降低了误杀率。实测在手机壳外观检测项目中,0.1 mm 级瑕疵检出率达 99.7%,误杀率仅 0.4%。

3.4 字符识别与条码读取

算法库集成了 OCR(光学字符识别)和条码/二维码读取模块,支持以下场景:

  • 激光雕刻字符、喷码字符的识别(含点阵字体)

  • 一维码(Code128、EAN13 等)和二维码(DataMatrix、QR Code)读取

  • 多码同读:单帧图像中同时定位和识别多个条码/二维码

  • 可识别区域 ROI 的自动定位:先做模板匹配定位标签区域,再执行识别,提高鲁棒性

4 SDK 封装与工程化

4.1 接口设计

核心算法封装为独立 SDK,对上层暴露统一接口,主要模块如下:

模块主要接口说明
标定模块calibrate / loadParam像素当量与畸变参数管理
测量模块measureDim / measureHole外形尺寸、孔径、孔位测量
瑕疵模块detectDefect / classifyDefect候选提取 + AI 精判
识别模块readOCR / readBarcode字符与条码识别
配置模块loadRecipe / saveRecipe产品型号配方切换
结果模块getResult / exportImage结构化结果与缺陷图输出

4.2 工程化考量

(1)多语言绑定:SDK 以 C++ 实现核心算法,通过 SWIG 自动生成 C# 和 Python 绑定。上层上位机软件使用 C# / .NET 开发,离线分析和模型训练使用 Python,两者调用同一套底层算法,保证结果一致性。

(2)配方管理:不同产品的检测参数、阈值、模型版本打包为配方文件,换型时一键切换。配方文件采用 JSON 格式,便于版本管理和差异对比。

(3)日志与追溯:每次检测的参数配置、算法版本、模型版本、处理时间均记录到数据库,支持单件级追溯。参数修改全部记录操作日志,满足客户质量体系审计要求。

(4)离线批测与模型回归验证:SDK 可脱离上位机独立运行批处理工具,使用历史采集图像对新版本算法进行回归验证,确保算法更新不影响已上线项目的检测结果。

5 典型应用场景

该算法库已在以下场景中落地应用:

应用场景检测内容关键技术
消费电子外观检测手机壳尺寸测量与瑕疵检测亚像素测量 + 两级瑕疵检测架构
汽车零部件检测密封圈外观缺陷、五金件尺寸多角度光源融合 + 缺陷仿真增强
注塑件质量检测缩水印、飞边、缺料等注塑缺陷金模板比对 + 深度学习分类
电子辅料字符识别激光雕刻序列号、二维码读取ROI 自动定位 + OCR/条码识别

6 实施效果

以手机壳外观检测项目为例,系统投运后的连续运行验证数据如下:

指标设计目标实测结果
单件检测节拍≤ 2 s1.7 ~ 1.9 s
孔径测量重复精度(3σ)≤ 0.01 mm0.008 mm
0.1 mm 级瑕疵检出率≥ 99.5%99.7%
误杀率≤ 1%0.4%
数据上传及时率≥ 99.9%100%(含断点续传)

投运后该工位由 3 名目检人员减为 1 名复检人员(处理 NG 复判),漏检投诉显著下降,单件质量数据实现 100% 留存可追溯。在后续的其他项目中,算法库的复用使新项目算法开发周期缩短约 40%,大部分工作集中在成像方案设计和参数调试,而非从零编写算法。

7 总结与展望

本文介绍了华川电气自研工业视觉算法库的架构设计与工程实践。通过分层架构、算法与应用解耦、传统视觉与深度学习融合等设计理念,算法库在多个行业的检测项目中实现了稳定运行和快速复用。

在实际项目实施中,我们体会到以下几点尤为关键:

(1)成像方案是基础:再好的算法也无法弥补糟糕的成像。光源设计、镜头选型、工件定位精度往往决定了系统的最终性能上限。

(2)算法不是越复杂越好:在节拍受限的在线检测场景中,传统视觉算法的快速筛查 + 深度学习精判的两级架构,往往比全图跑神经网络更实用。

(3)工程化能力决定落地效果:配方管理、日志追溯、离线回归验证等工程化能力,直接影响系统在客户现场的可维护性和可扩展性。

后续我们将继续在以下方向进行探索:小样本缺陷生成的数据增强技术、边缘端轻量化模型部署、以及视觉算法与运动控制的深度融合(视觉引导定位、视觉补偿加工等)。以上经验供同行参考,不足之处欢迎交流指正。

审核编辑(
王静
)
投诉建议

提交

查看更多评论
其他资讯

查看更多

手机壳外观瑕疵与尺寸检测系统设计

正运动控制卡上位机开发实战

纸箱开槽机上位机系统开发实践

中大型项目上位机:自研还是组态?