LabVIEW基于机器视觉的钢轨表面缺陷检测系统

LabVIEW基于机器视觉的钢轨表面缺陷检测系统

机器视觉检测技术和LabVIEW软件程序,可以实现轨道工件的表面质量。CMOS彩色工业相机采集的图像通过图像预处理、图像阈值分割、形态分析、特征定位和图案匹配进行处理和分析。图形显示界面采用LabVIEW软件编程设计,进行钢轨缺陷的实时显示。系统能够快速有效地诊断钢轨表面裂纹和划痕两大缺陷。容易实现缺陷表面检测的智能化,达到钢轨生产中钢轨工件表面缺陷检测的要求。

目前,表面缺陷检测作为制造业中不可或缺的关键步骤,已广泛应用于航空、陶瓷、汽车零部件制造、金属和电子元件设备等工业制造领域。表面缺陷检测的发展历史大致可分为三个阶段:人工视觉检测、机电光学技术检测和机器视觉检测。虽然人工目视检查方法被广泛使用,但依靠目视检查的漏检率很高,对工人来说强度相对较高。机电光学测试有很大的局限性。例如,电磁感应检测方法只能检测电流阻断缺陷,而超声波检测需要耦合剂并且容易受到干扰。以上两种检测方法已不能满足现代工业产品表面缺陷检测的要求。与前两种检测方法相比,机器视觉检测方法受环境磁场的影响较小,工作距离大,测量精度高。机器视觉检测方法满足了生产线快速的生产节奏和现代工业自动检测的效率和精度要求。目前,机器视觉检测已成为工业产品表面质量监测的重要先进手段和技术,更适合于自动化生产线的在线监测。

在钢轨轧制过程中,由于加工工艺不完善、设备和部件老化等因素,钢轨表面经常出现各种缺陷。缺陷主要包括:裂纹、划痕等。这些缺陷对产品的外观、耐磨性和耐腐蚀性有很大影响。严重影响钢轨的质量和性能指标。因此,检测生产线上的钢轨表面缺陷尤为重要,利用LabVIEW制备了一套完整的钢轨表面缺陷检测系统,满足自动检测的效率和精度要求。

系统硬件组成

硬件系统由运动控制模块、照明模块和图像采集模块组成。运动控制模块包括机械传动带、单片机和运动控制卡。该模块用于驱动检测装置上的机械传送带,使平面在工作台上高速移动。因此,图像采集模块可以准确快速地扫描工件。照明模块包括一个LED光源。光源是机器视觉系统中非常重要的一部分。适当的光源照明可以大大提高捕获图像的清晰度,降低图像处理算法中分割和识别的难度。形成最有利于图像处理的成像效果,从而提高系统的可靠性和综合性能。根据钢轨工件检测现场的实际情况和钢轨材料本身的影响,使钢轨表面易于反映。因此,该系统采用频闪自由白环LED光源,使用寿命长,亮度高,光扩散均匀,可以解决对角线照明阴影的问题。图像采集模块由工业相机、光学镜头和图像采集卡组成。目前,用于工业产品表面缺陷检测的工业相机主要包括CCD相机和CMOS相机。CMOS相机的传感器比CCD相机具有更高的传输速度,分辨率和更低的功耗。为了最大限度地保留图像信息,系统采用CMOS彩色工业相机采集图像。

系统工作过程:待测工件放置在工作台上,A点限位开关检测工件;计算机触发图像采集单元根据位置检测信号采集图像;机械传动带由运动控制模块触发,带动工件从A点到B点的目标位置;捕获的图像通过LabVIEW的IMAQVision通信模块发送到主控制计算机;经过一系列的图像处理和分析,识别被测工件中缺陷的类型和位置,并统计缺陷信息。

系统软件设计

LabVIEW软件编程是一种基于程序代码的图形化编程语言。它提供了大量的图像预处理、图像分割、图像理解函数库和开发工具。使用LabVIEW机器视觉软件作为开发平台,可以建立快速高效的自动检测系统。

该系统的软件主要由LabVIEW软件编译。LabVIEW软件编译的算法控制相机拍摄待测钢轨工件的实时照片,并采集待测钢轨工件的图像信息。CMOS彩色工业相机采集的图像通过图像采集模块传输到LabVIEW虚拟仪器开发平台。采用直方图和灰度变换处理图像信息,开始采用线性灰度直方图对采集到的图像进行预处理和滤波。图像预处理完成后,通过阈值分割和形态分析的图像处理技术,尽可能消除干扰噪声。实现基于图像灰度特征的物体存在检测和模式匹配。通过图案匹配的结果,可以对钢轨工件的表面缺陷进行检测和分类。

图像预处理

为了最大限度地保留图像信息,提高钢轨工件缺陷检测的准确性。该系统使用彩色工业相机采集图像,因此采集的图像为RGB图像。

系统采用LabVIEW的IMAQ直方图功能模块,对采集到的待测钢轨工件图像进行过滤,排除无明显缺陷的钢轨工件。不排除的工件被视为难点零件,然后进入后续检测过程进行进一步分析和加工。

由于待测工件与背景之间的灰度明显不同,不同目标的灰度值会在直方图中聚集成峰值。当可以清晰区分图像灰度直方图的峰值时,可以以谷底附近的灰度值作为完成图像分割的阈值。因此,使用直方图对钢轨工件图像进行预处理,为后续的图像分割带来了极大的便利。

图像阈值分割

图像分割的过程是为了进一步简化图像分析、处理和机器决策的过程。阈值分割主要利用检测物体灰度与背景的差值,选择一个或多个灰度阈值,根据像素灰度和阈值的对比结果对像素进行分类。

系统使用LabVIEW的视觉和运动图像处理功能调板中的IMAQ阈值功能模块,实现单灰度范围中的图像分割。系统使用LabVIEW的IMAQ局部阈值功能模块,通过定义适合钢轨缺陷检测系统的局部阈值算法,对阈值的灰像进行划分。

形态学分析

与检测到的物体相似的一些点和噪声会干扰从图像中提取有用信息。形态分析过程可以消除这些区域并增强图像中的有用信息。蚀刻是形态学算法之一,可以消除图像中相对背景亮度较高的孤立像素。并将像素的灰度值更改为其邻域中像素的最小灰度值,缩小明亮的目标区域,并扩展图像中的暗背景。系统在LabVIEW中应用IMAQ灰色形态功能模块对钢轨图像进行腐蚀操作,过滤图像中下部的大面积无关噪声。

然后使用IMAQ去除粒子功能模块过滤图像中的小面积独立噪声。消除与轨道表面缺陷无关的大小颗粒噪声。

D.图像特征和分析

基于LabVIEW机器视觉的钢轨表面缺陷检测系统以图像的像素灰度为研究目标,根据标准图像中目标的特性确定参考坐标系。基于图像灰度定量指标,构建用于识别和机器决策的特征模式。

系统将标准示例图像特征读入内存。程序在搜索参考坐标系模式下调用IMAQFindPattern3功能模块,搜索标准样本图像中与要素模板匹配的部分,以设置标准图像的参考坐标系。然后使用在更新测量坐标系模式下工作的IMAQFindPattern3功能模块重新匹配新图像的要素模板以更新测量坐标系。

系统监控的矩形区域基于标准图像。根据输入测量坐标系与参考坐标系的关系,调用IMAQ变换ROI功能模块,将矩形ROI转换为合适的位置。确定矩形ROI位置后,调用IMAQROIToMask功能模块,将矩形ROI转换为图像遮罩。IMAQ直方图根据图像掩码计算矩形区域中的灰度量化指数。获取测量坐标系后,调用IMAQ测光表功能模块。IMAQ测光表功能模块可以在指定的矩形范围内返回灰度量化指数。此外,IMAQ测光表功能模块可以根据参考坐标系和测量坐标系之间的关系,自动将测量ROI调整到适当的位置进行计算。检查计算出的平均灰度值和灰度分布的标准差是否在设定范围内。

E.图像模式匹配

基于灰度的图案匹配以像素灰度或灰度梯度信息为特征。本文使用LabVIEW中的IMAQ学习模式和IMAQ匹配模式功能模块来匹配轨道工件图像的灰度级别。使用IMAQ读取图像和视觉信息VI和IMAQ写入图像和视觉信息VI分别打开和创建模式匹配模板。使用设置学习模式功能模块建立模型的学习模式,获取原始图像的数据。结合设置匹配模式功能模块设置匹配模式、角度、对比度等参数。在获取图像的特征数据后,程序调用IMAQ匹配模式,将目标图像与模板进行匹配。匹配后,IMAQ匹配模式将输出匹配区域的数量、位置、大小、角度、相似度等信息封装在匹配集群中。最后,程序根据返回的位置信息标记图像中的匹配区域。

表面缺陷检测实验

钢轨表面裂纹和划痕分类程序主要使用IMAQ分类模块中的读取分类器文件功能来读取分类文件。使用添加分类器样本添加分类样本。使用获取分类器示例信息VI检索示例缩略图和类别标签。IMAQ分类功能用于对给定ROI内的样品进行分类。

通过实验分析,基于LabVIEW机器视觉的钢轨表面缺陷检测系统完全满足钢轨表面划痕和裂纹的缺陷检测要求。

这是LabVIEW的一个功能介绍,更多的使用方法与开发案例,欢迎登录官网,了解更多信息。有需要LabVIEW项目合作开发,请与我们联系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/118390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postgresql|数据库|序列Sequence的创建和管理

前言: Sequence也是postgresql数据库里的一种对象,其属性如同索引一样,但通常Sequence是配合主键来工作的,这一点不同于MySQL,MySQL的主键自增仅仅是主键的属性做一个更改,而postgresql的主键自增是需要序…

上云容灾如何实现碳中和-万博智云受邀参加1024程序员节数据技术论坛并发表演讲

近日,2023长沙中国1024程序员节在长沙召开。 长沙中国1024程序员节继2020年后已成功连续举办三届,逐步成为 IT 行业引领技术前沿、推动应用创新发展的高影响力年度盛会。是 IT 领域新技术、新产品、新服务的重要发布平台。 万博智云CEO Michael受邀参加…

深度学习_4_实战_直线最优解

梯度 实战 代码: # %matplotlib inline import random import torch import matplotlib.pyplot as plt # from d21 import torch as d21def synthetic_data(w, b, num_examples):"""生成 Y XW b 噪声。"""X torch.normal(0,…

手把手教你玩转单目摄像头(OpenCv+Python)

目录 ​编辑 一,单目应用前景 二,打开摄像头 三,设置分辨率 四,摄像头拍照 五,录制视频 六,单目结合OpenCV的实际应用 一,单目应用前景 单目视觉(monocular vision&#xff0…

Android MQTT连接阿里云使用Json解析数据

Android Studio 连接阿里云订阅主题然后使用JSON解析数据非常好用 导入MQTT的JAR包1、在项目中添加依赖然后使用Studio 去下载库2、直接下载JAR包,然后作为库进行导入 环境验证:给程序进行联网权限XML布局文件效果如下: MainActitive.java 主…

JavaScript进阶 第四天笔记——深浅拷贝、this绑定、防抖节流

JavaScript 进阶 - 第4天 深浅拷贝 浅拷贝 首先浅拷贝和深拷贝只针对引用类型 浅拷贝:拷贝的是地址 常见方法: 拷贝对象:Object.assgin() / 展开运算符 {…obj} 拷贝对象拷贝数组:Array.prototype.concat() 或者 […arr] 如…

k8s-----18、Ingress(对外服务)

Ingress 1、Ingress概念2、 pod和ingress的关系3、 Ingress的工作流程4、 使用步骤5、对外暴露应用实战5.1 创建nginx应用,对外暴露端口使用NodePort5.2 部署ingress controller5.3 创建ingress规则5.4 访问 1、Ingress概念 k8s 对外暴露服务(service&am…

day50 --动态规划9

198.打家劫舍 213.打家劫舍II 337.打家劫舍III 第一题:打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一…

堆(二叉树,带图详解)

一.堆 1.堆的概念 2.堆的存储方式 逻辑结构 物理结构 2.堆的插入问题 3.堆的基本实现(代码)(以小堆为例) 1.堆的初始化 2. 向上调整 3.插入结点 4. 交换函数、堆的打印 5.向下调整 6.删除根节点并调整成小根堆 7.获取堆…

3D模型格式转换工具HOOPS Exchange助力SIMCON搭建注塑项目

行业:设计与制造 / 注塑成型 / 模拟 挑战:注塑成型商面临着以高效的方式为客户生产零件的挑战。需要大量的试验才能生产出适合的零件,同时模具需要进行多次物理修改,每次修改周期最长需要四个星期,成本高达四到五位数…

第1章 Java、IDEA环境部署与配置

JavaEE简介与IDE环境部署 课程目录 JavaEE简介JDK环境部署IntelliJ IDEA环境部署 JavaEE简介 1. JavaEE是什么? Java EE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文将其收购)推…

Java反射获取内部类方法

Java反射获取内部类方法 结论一、案例准备二、测试方法:使用反射获取类的成员内部类和方法具体操作具体操作(使用getDeclaredClasses) 结论 Java 通过反射可以获得内部类,包括内部类属性信息和方法。 一、案例准备 创建了一个类…

Python自动处理pptx:新建、另存、添加幻灯片、添加标题、插入文本图片图形、提取文本

Python-pptx库是一个用于创建、更新和读取Microsoft PowerPoint .pptx 文件的Python库。它允许我们使用Python脚本自动化PowerPoint文件的创建、更新和读取操作,是一个非常方便自动化处理PPTX的工具。 安装 pip install python-pptx创建 from pptx import Prese…

【Note】链式存储结构

设计不同的结点结构,可以构成不同的链式存储结构。常用的有:二叉链表、三叉链表、线索链表(用空链域存放指向前驱或后继的线索)。 二叉链表存储 VS 一般二叉树 二叉链表 VS 二叉树 知识点: 一个二叉链表由根指针root…

vue3+vite在线预览pdf

效果图 代码 <template><div class"pdf-preview"><div class"pdf-wrap"><vue-pdf-embed :source"state.source" :style"scale" class"vue-pdf-embed" :page"state.pageNum" /></div…

Python:实现日历到excel文档

背景 日历是一种常见的工具,用于记录事件和显示日期。在编程中,可以使用Python编码来制作日历。 Python提供了一些内置的模块和函数,使得制作日历变得更加简单。 在本文,我们将探讨如何使用Python制作日历,并将日历输出到excel文档中。 效果展示 实现 在代码中会用到cale…

spring常见问题汇总

1. 什么是spring? Spring是一个轻量级Java开发框架&#xff0c;最早有Rod Johnson创建&#xff0c;目的是为了解决企业级应用开发的业务 逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack&#xff08;一站式&#xff09;轻量级开源框架&#xff0c; 为开…

25.2 MySQL 运算符

1. 伪表 在MySQL中, DUAL是一个特殊的单行, 单列的虚拟表, 主要用于在SELECT语句中计算表达式或执行函数, 而不需要从实际的数据表中检索数据. 使用DUAL的原因主要有以下几点:* 1. 简化计算: 通过在SELECT语句中使用DUAL, 可以方便地计算表达式或执行函数, 而无需创建临时表或…

thinkphp5使用phpmail发送qq邮件

目录 1、使用composer 工具安装&#xff0c;在tp5根目录下执行 2、封装发送邮件方法 3、控制器中调用 4、运行后结果 1、使用composer 工具安装&#xff0c;在tp5根目录下执行 composer require phpmailer/phpmailer 安装成功后显示下面目录 2、封装发送邮件方法 function…

linux中好玩的数据流定向和管道命令一

知识点复习&#xff1a; 什么是数据流定向&#xff0c;个人理解就是将 一些结果信息不打印在屏幕上&#xff0c;而是定位在某一个文件里面 ll /wdf > file 会覆盖file的原内容 ll /wdf >> 会追加到原文件后面 比如在自己的目录新建1.TXT&#xff0c; 2.txt ll /…