挑战:
基于机器视觉技术,设计出一套高效、可靠的弹簧自动检测系统,使之能够代替操作人员繁琐的劳动。该系统在实现准确识别缺陷与精确测量尺寸的同时,还应满足实时性、可靠性、便于维护等要求。
解决方案:
系统的硬件部分主要基于线扫描影像系统。运动机构配合线阵相机采集弹簧展开图像后,经NI PCI-1428图像采集卡送入计算机进行处理。软件部分则以LabVIEW为开发平台,结合IMAQ、SQL Toolkit等开发包在短时间内开发弹簧自动检测系统,检测弹簧表面缺陷及尺寸(包括弹簧自由长度、线径、节距及有效圈数)。
引言
弹簧表面质量检测是弹簧加工的重要环节。检测时,人们通过各种试验方法对弹簧的性能进行测定,从而把弹簧的质量定量数值化,为企业的质量管理与追踪提供正确的评定依据。弹簧的成品检验主要包括对弹簧的外观检测、尺寸检测、负荷检测等内容,这里我们主要完成对弹簧的外观检测和尺寸检测(包括弹簧长度、线径、线径间距和有效圈数)。
国内现有的弹簧检测方法一般是人工用游标卡尺等工具目测,这种方法不仅效率低,而且误差大。有些公司也从国外进口先进设备进行弹簧自动检测,这一方面大大增加了生产成本,另一方面设备的维护也很困难。针对以上不足,自主开发基于机器视觉的弹簧自动检测系统具有十分重要的意义。该系统主要基于NI公司的LabVIEW图形编程环境进行开发,界面简洁友好,方便检测人员操作。对于同一规格的弹簧,系统在得到弹簧的所有数据后与对应标准值进行比对,对弹簧进行分类。实验结果表明,相比传统的人工检测方法,该方法检测速度快,精度更高,可靠性更强。
一. 弹簧检测平台硬件构成
1.1检测系统的组成部分
弹簧自动检测系统的硬件构成如图1所示,弹簧水平置于白色旋转轴上,由步进马达驱动轴转动。PLC除了负责发出脉冲驱动马达旋转外,也将此脉冲作为外部触发信号接入图像采集卡,以保证采集到等比例的图像。相机采用德国Basler公司的线阵相机系列Basler L101k-2k,配合NI公司的PCI-1428图像采集卡一起完成图像的采集工作。采集的弹簧展开图如图1所示。相机采集完一帧弹簧的展开图后,经图像采集卡送入计算机进行处理。计算机主要完成硬件的配置及初始化、图像处理、数据分析与保存等功能。经图像处理得到弹簧表面缺陷和尺寸的关键参数后,计算机将其与对应规格的弹簧标准库信息进行比对,以标识不合格弹簧。
图 1 弹簧自动检测系统示意图
1.2线阵相机与采集卡的配合
线阵相机的取像原理与面阵不同,它每次只采集一行图像,只有在镜头与被拍摄物体之间存在相对运动时才能采完一帧完整的二维影像。图2中,纵向为线阵传感器的方向,其分辨率由线阵CCD决定;横向表示相机的扫描方向,其分辨率由步进电机的最小步距决定。电机运动速度过大,图像会被压缩,如图2(b)所示;速度太小,图像则会被拉伸,如图2(c)。
图 2 运动速度不同时的对应成像效果
为了得到等比例的图像,设置相机工作于外部边沿触发模式,如图3。在这种模式下,相机的线扫率完全由外部信号的频率决定,两者关系公式:线扫率=1/外部信号频率。NI公司的PCI-1428图像采集卡提供了四对外部触发端口(分别从Trig_(0)到Trig_(3),输入信号类型为TTL电平),支持线阵相机的外同步取像模式。将PLC发出的脉冲接入PCI-1428采集卡的任一外部触发端口,这样就实现了马达转速与线扫率之间的对应。MAX(Measurement & Automation Explorer)是NI公司开发出来方便用户对各种硬件进行设置和测试的软件。在MAX中,可以根据需要配置采集卡的基本参数,如取像模式,图像大小,触发信号的类型等。
图 3 外部边沿触发模式(ExSync,Edged-controlled Mode)
二. 弹簧检测部分的关键模块
弹簧自动检测系统的软件部分采用NI公司的LabVIEW图形编程语言开发。LabVIEW直观的图标操作、高效的多线程并行处理以及方便的模块化特性使得程序的开发周期大大缩短,程序执行效率高且扩展能力强,便于随时查错和修改。弹簧检测部分的流程如图4所示,程序主要由几个功能模块组成:弹簧标准库更新、图像采集、图像处理以及数据分析处理模块。
图 4 图像处理主程序流程
2.1 弹簧标准库
在本系统中,弹簧的规格是以弹簧的外径尺寸来区分的。弹簧标准库中包含两类信息:不同规格弹簧的标定信息和对应的标准尺寸。相机位置固定后,图像X方向单位象素表示的实际尺寸是不变的,而Y方向的实际尺寸△Li与弹簧外径成正比。因此,我们需要事先知道△Li,才能得到弹簧的实际尺寸值。由于标准库不可能已经包含所有规格弹簧的信息,系统还添加了标准库的扩展功能,检测人员可以随时扩充标准库信息。
图 5 添加标定库信息部分
2.2 图像采集
对于线阵图像的外部触发取像,IMAQ提供了两种基本触发模式:可变高度采集(Variable Height Acquisition)和线触发采集(Trigger Each Line)。本文采用两种采集方式相结合的方法。因为待测弹簧外径大小可变,VHA采集模式可以适应变高度的图像采集,Trigger Each Line模式则保证了相机的线扫率与马达速度同步。
图 6 图像采集子VI
开始采集前,应先做这几步工作:
(1)IMAQ Init函数对采集卡进行初始化;
(2)在IMAQ Configure List函数对缓冲单元进行配置。这里每个单元要在For循环内单独开辟空间;
(3)设置触发类型为Trigger Each Line。要注意的是,使用VHA模式前应在MAX中预先设置好图像的最大高度Height(本应用中设置该值为1000),相机采集完1000行图像后就会自动停止采集。
2.3 图像处理
对于机器视觉领域,NI提供了自动检测视觉生成器NI Vision Builder AI和Vision Assistant软件辅助图像处理。在它们交互式菜单驱动的环境下,用户无需编程,即可简便的进行机器视觉应用开发。此外,Vision Builder和Assistant还可以自动生成LabVIEW或者C代码,这在很大程度上简化了编程的工作,同时也为开发平台的扩展提供了可能。
Image Mask屏蔽
对于弹簧表面缺陷的检测,我们感兴趣的只是弹簧线表面的信息,因此,可以利用Image Mask把背景、弹簧线间隙等部分屏蔽。Image Mask函数有两种方式进行屏蔽,一是直接在图像上选择ROI区(可以为矩形、椭圆等);另一种方法则是导入已有的mask图像。根据图像特点,这里选择第二种方法。
为了得到弹簧线ROI区域,首先用类内方差法对弹簧原始灰度图进行二值化,然后用Fill Holes函数填充弹簧表面缺陷区域,得到无损的弹簧二值图,最后对整幅图进行腐蚀即可得到所需的mask文件。在图7中可看到,如果最后不对图像进行腐蚀的话将会有弹簧线边缘存在,这对我们分析表面缺陷是无意义的。得到了弹簧轮廓的mask图像后,在Image Mask函数中导入此文件,即可得到仅包含表面缺陷的灰度图。
图 7 未经腐蚀和经过腐蚀后的mask图像对比
颗粒过滤与分析
对剩下的ROI部分用阈值法二值化,得到包含表面缺陷和噪声的二值图像。经腐蚀膨胀后,用Particle Filter函数过滤掉可疑微小颗粒,即得到弹簧表面缺陷的图像。利用Particle Analysis函数得到颗粒的面积大小,经标定信息换算得到表面缺陷的实际面积。Particle Analysis函数提供了近百种颗粒参数的结果,包括颗粒的个数、周长、方向等等。
2.4 利用SQL Toolkit访问数据库
LabVIEW SQL Toolkit(又被称作为LabVIEW Database Connectivity Toolset)是用于数据库访问的附加工具包,它集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能,支持ODBC的本地或远程数据库。该工具包对数据库的访问可以通过udl文件,也可以通过直接访问数据库文件的形式,方便了单机文件的发布与应用。该库分为通用VI与高级VI,在处理一般的数据库问题时,使用通用VI能够快速实现数据库的查询存储等基本功能。而高级功能如:带参数查询,调用存储过程等则可以使用高级VI来相应的实现。总体而言,在检测系统中能够结合LabVIEW SQL Toolkit进行数据库的操作,提高了编程的快速原型化。
2.5 数据分析与测试结果
图8是弹簧自动检测系统的主界面。主程序主要实现弹簧的检测、历史数据查询及标准库更新的功能。为了方便检测人员操作,界面设计尽量简单。为了测试算法的稳定性与准确性,我们用一组10个表面带缺陷的弹簧进行检测,结果如图9所示。结果表明,弹簧尺寸的检测精度完全符合要求,偏差基本在±0.2mm以内,对同一个弹簧重复检测的准确率为100%。
图 8 检测程序运行主界面
图 9 样本缺陷弹簧测试结果
三. 结论
在弹簧的质量检测过程中引入机器视觉,和原人工检测系统相比,其优势体现在:
● 检测精度高。人工检测弹簧的要求误差为±0.5mm以内,而视觉检测的尺寸能够实现检测误差在±0.1mm以内;
● 检测速度快。人工检测一个弹簧的时间大概为3s,该系统检测时间为1s;
● 人工检测有情绪,且人眼易于疲劳,不易保持检测效果;然而视觉检测效果稳定,对同一个弹簧重复检测的准确率为100%,而且可 24 小时不停检测。
现在机器视觉在工业上的应用越来越广泛,但国内结合线扫描系统,将机器视觉用于弹簧检测方面的应用尚为空白。由于笔者经验尚浅,整个系统的开发过程遇到了很多问题,从方案的选择、硬件系统的搭建到图像处理算法的研究都花费了不少的精力和时间。事实证明,选择LabVIEW作为开发平台是明智的。它简便易学、功能强大,丰富的实例库、完善周到的网络支持,都使得整个开发可以着重于算法的设计,无需在程序的编写方面花费太多时间。机器视觉是一种通用性很强的技术,相关技术一致,应用差异明显是各种机器视觉应用系统的显著特点。因此,该系统的开发对于机器视觉在其他领域的应用也有一定的参考意义。
评论
查看更多