OpenCV与AI深度学习 | 基于机器视觉的磁瓦表面缺陷检测方案

2024-05-14 01:04

本文主要是介绍OpenCV与AI深度学习 | 基于机器视觉的磁瓦表面缺陷检测方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文来源公众号“OpenCV与AI深度学习,仅用于学术分享,侵权删,干货满满。

原文链接:基于机器视觉的磁瓦表面缺陷检测方案

永磁铁氧体磁瓦广泛应用于汽车、家电、消费电子、计算机、通讯产品等终端消费品,是这些产品的重要零部件——电机的组成部分。比如汽车的燃料泵电机、空调的压缩机电机、计算机的光驱电机、电动工具的动力电机等均采用其作为转子或定子。

在永磁铁氧体磁瓦的生产加工过程中,由于原料、工艺、设备状况、人为等因素的影响,磁瓦表面会产生一些缺陷,如裂纹、崩烂、欠磨等。这些缺陷对磁瓦的效能会产生很大的影响,关系到电动系统的稳定性、安全性和可靠性。

为避免造成无法预料的后果,对于功能面含有缺陷的磁瓦,必须通过检测予以剔除。目前磁瓦生产厂家基本还是靠人工目视检测,这种检测方法效率低,每人每分钟平均只能检测 30 片;工人劳动强度大,必须持续地集中注意力, 导致疲劳后容易产生漏检、错检,在精度和稳定性上均难以保证;同时磁瓦生产车间噪音污染严重,给员工的身体健康也带来了隐患。

近年来,机器视觉技术在产品缺陷检测中的应用越来越广泛,利用机器视觉技术可以自动、快速、高效地检测出产品的表面缺陷,极大地提高生产效率。但是,截至目前,利用机器视觉的方法进行磁瓦缺陷检测的研究还很少。因此,

研究基于机器视觉的磁瓦表面缺陷检测技术,对提高磁瓦表面缺陷检测的自动化和智能化水平有着非常重要的意义。

1 磁瓦内表面缺陷分析

铁氧体磁瓦是永磁铁氧体产品中技术含量较高的一个系列品种,它是以 SrO或 BaO 及 Fe2O3为原料,通过陶瓷工艺方法制造而成。其生产流程为:配料→预烧→破碎→球磨→成型→烧结→磨加工→检测和包装。在磁瓦的生产过程中,由于原料、加工工艺、设备状况、人为等因素的影响,磁瓦表面会产生一些缺陷。

这些缺陷包括:裂纹、压痕、崩烂、掉角、欠磨、起级、尺寸不合格、倒角不合格等,呈现出复杂性和多样性。

磁瓦生产过程中的成型工序是保证磁瓦最终质量的极为重要的条件之一,在这一过程中,模具质量的好坏、成型磁场的大小及分布、浆料本身的特性等,对坯件都有不同程度的影响。磁瓦坯件的烧结工序是决定磁瓦产品质量的关键因素。烧结温度、炉膛内各部位的温度分布、烧结时的进板速度如控制不合理,将产生裂纹等缺陷。磨加工是磁瓦生产过程的最后一道精加工工序,磨加工过程中的砂轮镀砂质量、一次切削磨加工量、进给速度以及冷却水的用量, 对磁瓦磨加工质量起着重要作用,如控制不当,容易造成磨加工面的裂纹,甚至磨加工面边角的崩裂,导致磁瓦缺边掉角。

根据企业提供的缺陷样品和实际生产情况, 本文针对磁瓦内表面常见的裂纹(包括深裂纹和浅裂纹)、崩烂、欠磨和压痕四种缺陷进行检测和识别。

2 检测原理

当一组平行的光线入射到物体表面时会发生镜面反射和漫反射,反射光和散射光的强度取决于物体表面的粗糙度和缺陷的情况。由于缺陷的存在,磁瓦表面的粗糙度和反射平面法线方向将发生变化,从而导致反射光和散射光强度的变化,且由表面缺陷导致的光强变化将大于由表面粗糙度不同所引起的光强变化。由于反射光和散射光中都包含有缺陷的信息,因此可以通过大量的实验,根据反射光和散射光强度的变化判断出缺陷的变化。

在光源的照射下,表面质量合格的磁瓦图像呈现出的灰度分布相对均匀,而存在表面缺陷的图像则存在灰度的突变,通过利用图像处理算法即可从图像中提取出缺陷, 进而对缺陷的类型进行识别。

3 硬件系统的设计

图像采集硬件系统的主要功能是采集磁瓦图像,并将图像信息转变为计算机所能识别的数字信号,其设计的优劣将直接影响最终检测的结果。

一个好的硬件系统是获取高质量原始图像的必要条件,从而能简化后续的图像处理过程,得到高精度的检测结果,大大提高检测效率。为了获取高质量的磁瓦图像,首先应根据系统分辨率、检测精度等要求合理选择组成硬件系统的单元,包括摄像机、镜头等,然后在此基础上根据磁瓦的特性和外观特点,构建出能够适用于磁瓦的光源照明模块。

光源照明模块要具有如下特点:

(1) 要求尽可能突出磁瓦表面缺陷的特征量。如检测裂纹缺陷,就要突出裂纹特征;检测崩烂缺陷,就要突出崩烂特征。

(2) 增加对比度,突出背景与缺陷之间的区别。对比度越大,图像质量越好,就越容易将缺陷从背景中分离出来。

(3) 应保证足够的整体亮度。图像传感器有一定的光照度要求,并且如果亮度过小,将使图像中出现噪声的概率增大。

(4) 被检测对象表面光照均匀。磁瓦表面缺陷出现的位置具有随机性,不均匀的光源会导致图像灰度信息失真,从而不能真实地反映磁瓦表面缺陷信息。为了能使缺陷有效地被检测和识别, 需保证磁瓦表面光照均匀。

4 基于机器视觉的磁瓦表面缺陷检测

针对传统机器视觉算法检测磁瓦缺陷类别较为单一,机器学习算法识别率低的问题,提出基于深度学习进行多类别磁瓦表面缺陷识别。

机器视觉检测系统主要由光源系统、图像采集设备、图像处理系统和执行机构组成。

图像采集设备与磁瓦是非接触的,对磁瓦自身生产设备没有影响,而且采用高帧率设备和高效图像处理算法可以显著提高检测速率。

另外计算机可以对图像处理后提取的缺陷进行分类,既可以达到质量检测的目的,也可以对缺陷类型进行统计分析,为改进生产工艺提供帮助。

本文仅做学术分享,如有侵权,请联系删文。

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

这篇关于OpenCV与AI深度学习 | 基于机器视觉的磁瓦表面缺陷检测方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987316

相关文章

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir