1、检测对象是什么? 明确是哪种产品(PCB板、织物、玻璃、金属件、塑料件、药品等)。
2、需要检测哪些缺陷? 清晰定义缺陷类型(划痕、凹坑、污渍、裂纹、缺失部件、尺寸偏差、颜色异常、异物、气泡等)。每种缺陷的形态、大小、位置、对比度特征都需要描述。
3、性能指标要求:
准确率: 检测正确率(区分真阳性、真阴性、假阳性、假阴性)。
召回率: 检出所有真实缺陷的能力。
精确率: 检测出的缺陷中,真正是缺陷的比例。
F1分数: 准确率和召回率的调和平均,综合衡量指标。
速度: 处理单张图像或单位时间的检测速度,是否满足产线节拍要求。
鲁棒性: 算法对光照变化、产品位置轻微偏移、产品表面正常纹理/颜色变化、环境干扰(粉尘、油污)的抵抗能力。
误检率: 将合格品判为缺陷品的概率(直接影响生产成本)。
漏检率: 将缺陷品判为合格品的概率(直接影响产品质量)。
4、硬件环境:
成像系统:相机类型(面阵、线阵)、分辨率、帧率、接口。
光源类型:环形光、背光、同轴光、穹顶光、结构光等及其颜色。
镜头:焦距、工作距离、景深。
触发机制:如何触发相机拍照?
计算平台:工控机、嵌入式设备(如Jetson)、服务器、GPU加速需求?
5、软件环境: 操作系统、编程语言(Python, C++, C#等)、视觉库/框架(OpenCV, Halcon, VisionPro, Deep Learning Frameworks – TensorFlow, PyTorch等)。
1、采集高质量样本:
覆盖所有定义的缺陷类型和不同严重程度。
包含足够多的“好”样本(正常品)。
覆盖可能的生产变化:光照波动、位置偏移、产品批次差异、环境干扰等。
确保图像清晰、对焦准确、噪声可控。
2、数据标注:
分类标注: 整张图是好是坏。
目标检测标注: 框出缺陷位置并标明类别。
语义分割标注: 精确勾勒出缺陷的像素级轮廓。
标注需要准确且一致。这是深度学习模型性能的关键。
3、数据预处理:
降噪: 高斯滤波、中值滤波等。
增强对比度: 直方图均衡化、CLAHE等。
色彩空间转换: 有时在特定颜色通道(如HSV的V通道, Lab的b通道)更容易检测缺陷。
几何变换: 旋转、平移、缩放(用于数据增强或校正)。
图像校正: 透视变换校正畸变,仿射变换校正平移旋转。
图像裁剪/ROI: 只关注关键区域,提高处理速度。
背景去除: 分离前景(产品)和背景。
这是核心环节,通常分为传统图像处理和深度学习两大路径,也常结合使用。
A. 传统图像处理算法
思路: 基于规则和特征工程。通过图像处理操作提取与缺陷相关的特征(如边缘、纹理、形状、灰度、颜色、斑点等),然后设定阈值或规则进行判断。
常用技术:
阈值分割: 全局阈值、自适应阈值、Otsu法。用于分离前景背景或缺陷区域。
边缘检测: Sobel, Canny, Laplacian等算子。检测划痕、裂纹等线性缺陷。
形态学操作: 膨胀、腐蚀、开运算、闭运算。用于去噪、连接断裂边缘、填充孔洞、分离粘连区域。
斑点分析: 寻找连通域,计算面积、周长、圆度、长宽比等特征。用于检测孔洞、污渍、异物。
模板匹配: 在图像中寻找与标准模板相似的区域。用于检测缺失部件、位置偏移。
特征匹配: SIFT, SURF, ORB等。用于定位和比较。
纹理分析: 灰度共生矩阵、Gabor滤波器、局部二值模式。用于检测织物纹理异常、表面磨损。
频域分析: 傅里叶变换、小波变换。用于检测周期性缺陷或特定频率的纹理。
优点: 算法相对简单、计算量通常较小、可解释性强、对训练数据量要求低。
缺点: 特征需要人工设计,对复杂、多变、与背景对比度低的缺陷鲁棒性较差,规则难以覆盖所有情况。
B. 深度学习算法
思路: 让模型自动从标注数据中学习特征和决策规则。
常用模型架构:
图像分类:
任务:判断整张图像是否有缺陷(不定位)。
模型:CNN(如ResNet, VGG, EfficientNet, MobileNet)。通常用于快速初筛或缺陷类型单一的场合。
目标检测:
任务:定位缺陷位置(画框)并识别类别。
模型:Two-Stage (Faster R-CNN, Mask R-CNN), One-Stage (YOLO系列 – YOLOv5/v7/v8/v9, SSD, RetinaNet)。应用最广泛。
语义分割/实例分割:
任务:精确分割出每个缺陷的像素级轮廓。
模型:U-Net, DeepLab系列, Mask R-CNN (实例分割)。用于需要精确量化缺陷大小、形状或边界非常复杂的情况。
异常检测:
任务:仅用“好”样本训练模型,检测偏离正常模式的区域(缺陷)。适用于缺陷样本极少或类型未知的情况。
模型:自编码器(AE, VAE)、生成对抗网络(GAN – AnoGAN, f-AnoGAN)、基于特征重建的方法(SPADE, PaDiM)、基于知识蒸馏的方法。通常分割效果。
优点: 对复杂、细微、变化大的缺陷检测能力强,鲁棒性高(如果数据足够多样),自动学习特征,泛化能力潜力大。
缺点: 需要大量高质量标注数据,计算资源消耗大(尤其训练),模型可解释性差(黑盒),部署和优化可能更复杂。
C. 混合方法
结合传统方法和深度学习,发挥各自优势:
用传统方法做预处理(ROI提取、背景去除、图像增强)。
用传统方法提取初级特征,作为深度学习模型的输入。
用深度学习模型进行复杂缺陷检测,用传统算法进行后处理(如形态学优化分割结果)。
用深度学习模型定位大致区域,再用传统算法精确量化特征(如尺寸测量)。
1、数据划分: 将数据集分为训练集、验证集、测试集(如70%/15%/15%)。测试集必须完全独立且从未参与训练过程。
2、模型训练:
选择优化器(SGD, Adam等)、损失函数(交叉熵、Dice Loss, Focal Loss等)。
设置超参数(学习率、批次大小、迭代次数)。
在训练集上训练模型,在验证集上监控性能,防止过拟合。使用早停、学习率衰减等策略。
(深度学习)利用数据增强(旋转、翻转、裁剪、加噪、色彩抖动等)扩充训练数据,提高泛化能力。
3、模型评估:
在测试集上使用定义好的指标(准确率、召回率、精确率、F1分数、交并比mAP等)进行严格评估。
分析混淆矩阵,了解模型在哪些类别上表现好/差。
可视化结果:查看检测框/分割掩码是否正确,分析误检、漏检的具体案例。
关注实际场景中的关键指标: 工厂往往更关心漏检率(影响质量)和误检率(影响成本),需要根据具体业务需求权衡。
1、性能优化:
模型压缩: 知识蒸馏、剪枝、量化(将模型权重从FP32转为INT8等),降低模型大小和计算量,提高推理速度。
算法加速: 优化代码(向量化操作、利用GPU/硬件加速指令如TensorRT, OpenVINO)。
硬件加速: 使用专用硬件(如NVIDIA Jetson, Intel Movidius VPU, FPGA)。
2、鲁棒性提升:
收集更多覆盖边缘情况的数据重新训练。
调整数据增强策略。
加入对抗训练。
设计更鲁棒的后处理逻辑。
3、部署:
将训练好的模型集成到完整的视觉检测系统中。
开发用户界面(UI)供操作员设置参数、查看结果、报警。
与PLC/机器人等自动化设备通信(触发、结果输出、分拣控制)。
考虑实时性要求。
4、持续监控与迭代:
上线后持续收集新的数据和检测结果。
监控模型性能是否下降(如新产品引入、环境变化)。
定期评估模型,必要时用新数据重新训练或微调模型,持续改进。
工具与平台
开源库: OpenCV (CV基石), Scikit-image (图像处理), Scikit-learn (传统ML), TensorFlow, PyTorch, Keras (深度学习), Detectron2 (Facebook目标检测/分割), MMDetection (商汤目标检测工具箱)。
商业软件: Halcon (MVTec, 功能极其强大), VisionPro (Cognex), Matrox Imaging Library, Common Vision Blox。
标注工具: LabelImg, LabelMe, CVAT, Supervisely, VGG Image Annotator, Roboflow。
云平台: Google Cloud AI Platform, Amazon SageMaker, Azure Machine Learning (提供训练、部署、管理服务)。
开发一个成功的机器视觉缺陷检测算法是一个系统工程,需要深入理解具体应用场景、精心设计成像方案、高质量的数据、选择合适的算法路径(传统、深度学习或混合)、严谨的训练评估流程以及扎实的工程化部署和优化能力。没有“最好”的算法,只有“最合适”当前特定需求的解决方案。 持续迭代和优化是保证系统长期有效运行的关键。
机器视觉缺陷检测算法开发
一、 明确需求与定义问题 1、检测对象是什么? 明确是哪种产品(PCB板、织物、玻璃、金属件、塑料件 […]
图像采集上位机系统开发
一、核心概念 二、关键组成部分 三、开发流程建议 四、技术选型建议(常见组合) 深圳市由你创科技有限公司是一家 […]
工控采集板卡定制开发
一、 明确需求 信号类型与数量: 性能指标: 环境要求: 机械与电气接口: 软件与驱动: 可靠性与维护: 成本 […]
下位机开发公司哪家好?
在工业自动化、智能设备、物联网终端等领域的核心战场,下位机如同设备的“大脑”,其性能与稳定性直接决定了整个系统 […]
Unity+nodejs简单实现webscoket聊天室
一、前言 在这个互联网时代,几乎每个人都有微信或QQ这类实时通讯工具,现在很多网络游戏也带有实时聊天功能,那这 […]
AI驱动的机器视觉技术
工业视觉算法,AI视觉模型这些都是老生常谈了,本期要讲的是升级版. 自进化检测系统. 目前 […]
开源鸿蒙适配器KHP-系列硬件设备产测功能开发
案例背景 开源鸿蒙适配器KHP-系列的硬件设备的产测功能开发。实现了KHP-IC500设备在出厂前测试硬件功能 […]
产品缺陷智能拍照检测分析控制系统管理软件定制开发
案例背景 系统在接受到传感器信号后,根据相机配置信息,调用相应机位的相机进行拍照。系统获取照片后调用,单图判定 […]
实验室智能分析检测仪控制管理系统上位机软件开发
案例背景 智能连续流动分析仪是将比色分析自动化的一种分析测试系统。样品溶液泵入分析模块后可以自动进行样品前处理 […]
智能饲喂控制管理系统软件定制开发
案例背景 液态智能饲喂控制系统是一种现代化的饲喂方式,它使用液体饲料代替传统的固体饲料,为动物提供更营养、更健 […]
工业自动化机械臂多自由度智能操作系统嵌入式定制开发
案例背景 为了评估多自由度机械臂的性能和稳定性,以便在实际生产中更好地应用。在使用机械臂之前,需要对机械臂的性 […]
工厂MES生产线SCADA数据采集监控管理系统软件开发
案例背景 客户是一家以锂电智能装备研发生产的企业,现场产线设备自动化程度较高,现有大部分设备未能实现实时联动, […]
联系电话:
电子邮箱:unczzb@unicrom.cn
深圳研发中心(总部): 深圳市龙华区港深国际中心十楼E区
太原研发中心: 山西省太原市万迎泽西大街120号时代天峰1918室
上海办事处: 上海市浦东新区牡丹路60号,东辰大厦7楼702室
扫一扫,关注由你创科技