目标学员: 机器视觉工程师、自动化工程师、设备开发工程师、质量检测工程师。
预备知识: 具备基本的编程概念(如C++/C#或VB.net之一更佳),了解基本的图像处理知识。
Halcon核心概念与环境搭建
Halcon架构介绍(HDevelop, 运行时, 导出库)。
HDevelop开发环境详解:变量窗口、图形窗口、程序窗口。
核心数据结构:Image, Region, XLD。
图像采集:连接相机(GigE, USB3Vision)、读取图像、基本采集流程。
图像预处理技术
目的: 提升图像质量,突出感兴趣特征,为后续处理做准备。
空间域滤波:
平滑去噪:均值滤波、中值滤波、高斯滤波。
锐化增强:拉普拉斯算子、索贝尔算子、高斯拉普拉斯——用于增强划痕、边缘等。
频率域滤波: 傅里叶变换初步,用于周期性噪声去除。
形态学处理:
基础操作:膨胀、腐蚀、开运算、闭运算。
应用:断开微小连接、填充细小孔洞、平滑区域边界。
Blob分析(区域分析)
关键步骤:图像分割(阈值分割、动态阈值)、区域转换、形状特征选择(面积、圆度、矩形度)。
应用场景: 屏幕亮点、暗点、大面积脏污检测。
模板匹配与定位
基于形状的匹配: 核心工具,解决物体定位问题。
创建模板、优化参数(旋转角度、缩放比例、金字塔层级)。
应用场景: 屏幕/产品在图像中的精确定位,确保后续检测区域一致(ROI)。
边缘与轮廓检测(XLD)
边缘提取算子(edges_sub_pix)、轮廓处理。
应用场景: 产品外形尺寸测量、崩边、毛刺检测。
几何计量(Metrology)
精确提取直线、圆、椭圆等几何特征。
应用场景: 屏幕边框宽度、孔位距离等高精度尺寸测量。
检测流程总览: 图像采集 → 定位 → ROI生成 → 缺陷提取 → 分类与判定。
亮点与暗点检测
方法1: 动态阈值Blob分析(与周边区域对比)。
方法2: 基于频域或纹理分析的方法。
划痕检测
方法1: 形态学处理(如顶帽变换)—— 对低对比度划痕极其有效。
方法2: 方向性滤波,增强特定方向的线性特征。
Mura(斑痕)检测
挑战: 对比度低、边界模糊、无固定形状。
方法1: 标准模板比对(差分法)。
方法2: 背景校正与不均匀性补偿。
方法3(高级): 利用深度学习中的异常检测(Anomaly Detection)模型。
脏污与颗粒物检测
结合Blob分析和形态学,区分于亮点/暗点。
划伤与刮痕检测: 同屏幕划痕检测方法。
崩边与缺角检测:
方法: 模板匹配定位后,通过边缘轮廓的差异分析(如deviation_map)。
毛刺检测:
方法: 在边缘轮廓的基础上,通过局部曲率分析或凸性检测来发现异常凸起。
异物与污染检测: 同脏污检测。
深度学习应用(进阶)
何时使用深度学习: 解决传统算法难以定义的复杂缺陷。
分类(Classification): 区分“合格”与“不合格”,或多种缺陷类型。
目标检测(Object Detection): 定位并识别多种缺陷的位置和类别。
语义分割(Semantic Segmentation): 精确到像素级的缺陷区域划分。
异常检测(Anomaly Detection): 仅需OK样本进行训练,用于未知缺陷的发现。
性能优化与鲁棒性设计
算法加速:使用Halcon的自动并行化、减少数据冗余。
光照变化的应对策略。
设计参数化、可配置的检测流程,便于生产线调试。
系统集成与部署
将Halcon算法导出到宿主语言(如C#)。
设计简单的图形用户界面(GUI)。
检测结果保存、数据绑定MES/QMS系统。