- 01/20
- 2006
-
QQ扫一扫
-
Vision小助手
(CMVU)
基于机器视觉的钢球表面缺陷识别检测系统
王鹏 刘献礼 赵彦玲
(哈尔滨理工大学 机械动力工程学院,哈尔滨 150080)
摘 要: 由于钢球表面的缺陷是造成轴承失效的主要原因,本文研发一种面向轴承企业应用基于机器视觉的钢球表面缺陷检测系统。设计出LabVIEW环境下大恒QP300图像采集卡的驱动方法,开发了图像采集、处理和图像匹配模块及机器人抓取程序,搭建了以KLD-400教学机器人、Siemens的S7-200PLC和斯达微步的17HS001两相混合式步进电机为核心的传送带进行检测,实际运行表明,该系统具有完整性、实时性、易于二次开发的特点。
关键词: 表面缺陷;机器视觉;图像处理;图像匹配
Abstract: Surface defect of steel ball is main reason for bearing fail. This paper developed a sort of surface defect detect system based on machine vision to apply in steel ball. Used LabVIEW as development platform and the drive way of image acquisition card of DAHENG, image acquisition, image processing, image matching and robot snatch programming has been designed. Hardware is composed of KLD-400 robot,Siemens s7-200 PLC, START 17HS001 motor and band carrier. The system operating indicates that it has integrality, real time and easy to develop twice.
key words: Surface defect ; machine vision ;image processing; image matching
1引言
在现代工业自动化中,随着高精度、高速度、高质量要求的不断攀升,轴承在国民经济中的广泛应用已渗透到各个行业,各类机电设备对其的依赖性日趋加剧而钢球作为轴承的重要零件,钢球的质量对轴承的精度、运动性能、使用寿命等都有至关重要的影响。据轴承网统计:钢球占影响轴承全部因素的85%。在国内,轴承失效因钢球破坏的比例达78%,而国外此项数据仅为30%。这说明钢球在轴承质量中的地位和重要性。由哈轴集团的实验统计表明:在轴承的失效形式中,由于钢球表面的缺陷而引起的裂纹、裂缝造成的轴承失效达65%[1]。因此,钢球质量是衡量轴承质量的一项重要指标,必须对其进行严格检测,尤其是对裂纹、裂缝的检测。而目前国内各轴承企业及钢球专门加工厂在钢球表面缺陷的检测中,完全采用人工手检。采用大量的人工检测不仅影响生产效率,而且由于工人的情绪、
视觉疲劳、个人判断标准等都给检测结果带来不可靠的因素,直接影响产品质量与成本。而采用先进的图像视觉检测手段即节省了人力,也提高了检测质量,从而进一步提升东北老工业企业的核心竞争力。
2 系统检测原理及测量方案设计
2.1 系统检测原理
凹坑缺陷检测:用一高分辨率的摄像机将所需要检测的部位局部放大,应用本系统开发研制的高精度图像边缘检测技术及提取形状的技术(该项技术分辨率可提高1个像素),可检测得到,其精度可达到≤±0.02mm;检测速度≤2秒/次; 擦伤缺陷检测:该内容检测可应用本系统的提取直线技术,其精度≤±0.02mm;完全国家的检测标准;检测速度≤2秒/次;划条缺陷检测:其方法与擦伤缺陷的检测相同,只不过被检测的对象不同而已,需要将匹配模版进行放大、旋转。
在实施检测时,将三者的共同图像特征即封闭的缺陷区域这个实质问题抓住,也就是说本检测的最主要内容是完成缺陷区域的分割与边缘提取部分,因此可以指定统一的检测标准。从而达到只检测一种图像特征,却实现三种缺陷的检测。大大提高系统的效率和实用性。
2.2 测量方案设计及系统组成
因被测的物体是在传送带上运动,当被控制停止下来拍摄其位置状态不完全一致,因此我们考虑应用CCD摄像头对它进行检测,可以消除因位置状态不同所带来的误差影响; 我们采用专用的特殊镜头,并保证其分辨0.2mm。我们采用实时同步标定的特殊方法,对环境温度变化等无需特殊要求即可满足所达到的精度。为保证拍摄时被测物体位置比较一致在不影响传送带工作的同时我们已制做特殊限位机构,保证被测物体在我们所要求的位置上; 由于被测物体在传送带上运动速度并不快,我们应用了由计算机图像识别技术进行动态抓拍,这样即保证抓拍图像位置的一致性,又省去了一套控制被测物体停止或转动设备(即我们方案对工厂目前工作状况无需作任何改动)。对于光学系统的设计,我们应用遮光罩内部自行设计的LED光学系统,这样可以避免外界光源的影响,使测量结果稳定可靠。
本系统以NI公司的LABVIEW为软件开发环境,采用大恒图像DH-QP300图像采集卡、COMPUTAR公司的摄像头、NI公司 PCI-6024E数据采集卡、 CCS公司的LED光源、西门子公司的S7-200系列小型PLC、北京斯达微步公司的17HS001两相混合式步进电机、传送带、计算机等组建视觉检测系统的硬件平台。其检测过程如图1所示。
图1 检测过程示意图
Fig 1 Abridged general view of detection process
3 图像采集卡的驱动及图像传递
3.1图像采集卡的驱动
采用大恒图像卡需要自己配置驱动程序。我们选择调用DLL(动态连接库)的方法实现。利用LabVIEW提供的Call Library Function模块。首先,使用VC++6.0生成捕捉的dll文件,然后在LabVIEW的Block Diagram中调用Call Library Function模块,选中Configure选项,在弹出的对话框中设置好Library Name及Parameter等内容。需要注意的是参数选项要保证线程的安全性。最后,要设置好抓图的数据通道以及缓冲区。具体设置见图2。
图2调用DLL设置
Fig.2 setting of calling DLL
3.2将图像传递到LabVIEW
完成图像采集卡的驱动后,必须将图像传递到LabVIEW。我们选择的途径是在LabVIEW中调用CG300d32.dll,然后在CG300d32.dll中调用CG300Snap,使CG300SnapTOMem.exe中抓拍图像,并保存到指定目录下,最后LabVIEW从指定目录下读取图像。
4 图像处理
通过摄像机获取的图像由于受到外界环境的影响,会产生畸变,因此,从指定的目录下读出图像后,对其进行预处理是非常必要的,其目的就是要恢复真实图像。其常用方法有平滑、局部增强。
平滑处理的目的是减少噪声,选用邻域平均法。这是一种用几个像素灰度的平均值来代替每个像素灰度的空域处理方法。假定为N×N个像素的一幅图像 ,平滑处理后得到一幅图像 。 由公式(1)决定:
(1)
其中M为像素点的数目,S是 点邻域中点的坐标集合。但不含 点。平滑处理后的效果见图3。
图3平滑后的效果图
Fig.3 Effect by image smoothing
使用模板卷积较容易的实现了平滑。但其后遗症是局部的对比不再强烈,对后续的识别产生影响。因此,为解决这个问题,需要根据所关心的局部区域的特性来计算或转移函数,并将这些函数用于所关心的局部区域,以得到所需的相应的增强效果。直方图变换是空域增强中最常采用的方法。可用直方图均衡化或规定化来实现小区域内的像素分布变化[2]。如果把输入图 增强成输出图 ,需要在每个像素位置(x,y)进行如下变化:
(2)
其中: 称为局部增益函数, 是以像素 为中心的邻域内的灰度均值。局部增强后的效果见图4。
图4 局部增强后的效果图
Fig.4 Part intensification effect
图像分割是将图像分成若干部分,每一部分对应于某一物体表面,在进行分割时,每一部分的灰度或纹理符合某一种均匀测度度量。其本质是将像素进行分类。将图像中感兴趣的部分提取出来加以识别与分析。我们对图像进行分割往往利用了像素灰度值的2个性质:不连续性和相似性。非边界区域一般具有灰度的相似性,而在边界上一般具有灰度的不连续性[3]。图像分割效果见图5。
图5 分割效果图
Fig.5 Segment effect
5 图像匹配识别
利用模板匹配可以在一幅图像中找到已知的物体。比如抓拍到了一张检测钢球的照片,要在该照片中找到钢球的位置。这时就可以采用模板匹配的方法。所谓模板匹配即拿已知的模板和原图像中同样大小的一块区域去对。最开始时,模板的左上角点和图像的左上角点是重合的,拿模板和原图像中同样大小的一块区域去对比,然后平移到下一个象素,仍然进行同样的操作,所有的位置都对完后,差别最小的那块就是我们要找的物体。我们用平方误差之和来衡量原图中的块和模板之间的差别。假设模板的大小为m×n(宽×高);图像的大小为Width×Height。模板中的某点坐标为 ,该点的灰度为 ;与之重合的图像中的点坐标为 ,该点的灰度为 。则一次匹配的结果为:
(3)
适当地选取特征是很重要的,因为在识别对象时它是唯一的依据。良好的特征应具有4个特点:可区别性,可靠性,独立性,数量少。对处理后的图片分析后,我们选取图片中圆形物体的面积作为其特征值,它的面积是指圆形物体所包含的像素的个数。
基于以上的算法和利用LabVIEW的库函数建立起来的相应子VI,我们用WIRING工具和Sequence等结构将所需的子VI连接起来,就可以完成图像处理及识别的初步编程。要想深入编程,就必须利用IMAQ Vision Builder模块。它包含一系列MMX优化函数,综合运用非均匀采样、边缘检测和几何建模方法,并允许匹配对象可以有0—360度的旋转和一定范围的大小比例变化。首先,建立New Script,在Machine Vision tab下进入Pattern Matching模式,建立模板。在Creat from ROI后,模板生成*.PNG格式文件。同时,在建立模板学习模式时,选择允许模板旋转的模式。再进入Edge Detector,选Advanced Edge Tool,设定Contrast值为60。然后,在Caliper下,测试出特征模板的数值,如面积或距离。再用IMAQ Vision Builder生成LabVIEW程序。模板识别效果效果见图6。
为提高软件的整体性能,我们采用LabVIEW7.1的事件驱动和多线程特性进行软件结构编程。事件驱动为先进的设计理念,它减少了对宝贵CPU资源的占用,从而实现数据流的畅通。多线程技术是高级程序设计的核心技术,它能有效地提高应用程序的效率和性能。应用多线程技术,使得系统可以同时处理多个任务。在实际编程中,为实现更加有效地控制VI,运用了强大的控制技术如VI Server技术、同步控制技术等。同步控制技术包括:Notification技术、Queue技术、Semaphore技术、Rendezvous技术及Occurrences技术等。这些技术的运用大大提高了系统图像匹配、识别的效率,保证了检测的实时性。
图6 特征模板识别效果
Fig.6 Effect of feature template identify
6 KLD机器人的抓取
首先建立KLD机器人本身各连杆之间的运动学关系。以KLD机器人的机座为参考坐标系,建立机器人的运动学方程,先建立D-H齐次坐标系,在确定相应杆件的参数列表后,求其通式,然后对通式求逆,解出机器人各关节相对于参考坐标系的位置。系统识别了缺陷钢球后,检测到表面质量不合格的钢球必须确定其实际的具体位置,从而进行正确的抓取。为此,事先建立摄像机坐标系与KLD机器人坐标系的变换关系,并以示教的方式确定好抓取点(事先计算好的固定点)的坐标,并使用此坐标值来确定参数对轴卡进行设置,从而控制各关节电机的运行,以实现对钢球的准确抓取。
把对机器人控制的程序封装为DLL文件,然后,利用LabVIEW的CINTools工具的lvsbutil函数将VC生成的DLL文件转换成LSB文件[4],在LabVIEW的CIN节点中加载,实现在LabVIEW中控制机器人轴卡,并抓取目标的结果。这样,使系统最终都集成在LabVIEW的环境下。最后,整合LabVIEW程序,调试,实现机器视觉检测。
7 结语
本系统有效的将LabVIEW的IMAQ Vision Builder SDK及Motion and Vision模块结合起来,并把对机器人轴卡的设置集成到LabVIEW环境下,实现了没有专门的高速DSP芯片的机器视觉系统。有效的解决了机器视觉系统对硬件的依赖性,缩短了软件的开发周期,可用于钢球表面缺陷的检测。即使是在照明状况有变化(指均匀变化)、镜头聚焦不太好和部分图形被隐藏的情况下,也能取得相当准确的结果,提高了机器视觉系统的实际使用价值,
在LabVIEW环境下实现了具体的软件测试程序。实际运行表明检测精度达到国家相应标准,从而为系统算法在工业环境中的实际应用铺平了道路,有很好的应用前景。
参 考 文 献
[1] 潘洪平,董申,梁迎春等. 钢球表面缺陷的自动检测与识别[J]. 中国机械工程,2001,12(3): 369~372
[2] 高文,陈熙霖. 计算机视觉-算法与系统原理[M]. 清华大学出版社,广西科学技术出版社,2000.146~149
[3] 章毓晋. 图像工程(上册)--图像处理和分析[M] . 清华大学出版,2000.40~42
[4] 雷振山. LabVIEW7 Express实用技术教程[M]. 中国铁道出版社,2004.116~121