基于机器视觉的西林瓶尺寸检测
2017-01-13杨宗芳1白剑宇2
杨宗芳1,2,白剑宇2
(1.太原科技大学电子信息工程学院,太原 030024;2.浙江大学宁波理工学院,浙江宁波 315100)
基于机器视觉的西林瓶尺寸检测
杨宗芳1,2,白剑宇2
(1.太原科技大学电子信息工程学院,太原 030024;2.浙江大学宁波理工学院,浙江宁波 315100)
在西林瓶生产过程中,尺寸是一项重要的产品质量判断标准,与传统的西林瓶尺寸人工检测方法相比,基于机器视觉的自动检测具有巨大优越性;为实现西林瓶尺寸的检测,提出了一种基于机器视觉的西林瓶尺寸检测方案,设计了系统的图像采集和背光源照明方案,通过中值滤波对图像进行去噪,利用对图像像素点的运算算法,对图像的灰度进行了校正变换,增强图像的对比度,采用Canny算子成功提取西林瓶边缘,在HALCON平台下实现了西林瓶尺寸测量;设定系统标定方法并选取15个2 m L样品西林瓶进行测试,结果表明,该方法对西林瓶尺寸检测快速准确,边缘量化精度达到了亚像素级别,检测精度为0.02 mm,满足西林瓶生产的参数测量精度要求,为工业生产产品尺寸的自动检测提供了一种有效的新途径。
机器视觉;中值滤波;边缘检测;尺寸检测
0 引言
西林瓶是一种玻璃管制注射剂瓶,广泛应用于口服液、冻干、粉剂等药品的包装中。西林瓶生产过程中,其尺寸被作为一项重要的检测标准。在工业生产上用基于机器视觉的非接触式检测方法代替传统的接触式测量,不仅有效的避免了产品表面损伤,而且提高了工作效率以及产品的测量精度[1-3]。
当今针对机器视觉在产品尺寸检测上的应用研究存在很多,并取得了一定的成果[4 5]。文献[4-5]中作者都是基于机器视觉设计出工件尺寸测量系统,并且均达到了预期的效果,但是针对西林瓶这种特殊玻璃材料的视觉检测系统为数不多,针对此现象,本文设计了一种基于机器视觉的西林瓶尺寸检测系统方案。该系统在HALCON平台下,运用一些图像处理技术,如滤波、边缘检测、blob分析、形态学等,为西林瓶尺寸检测提供了一种精度高、速度快、稳定性好的方法。
1 图像获取
检测系统总的结构如图1所示,其中图像获取系统主要由光源、高速摄像镜头、CCD工业相机和图像采集卡4部分组成[6]。由于西林瓶为玻璃制品,表面反光较为严重,所以一般的打光方式无法采集到高质量的图像,为此本文设计了针对该情况的特殊打光方式,利用镜面反射LED光源为西林瓶打光,其示意图如图2所示,CCD相机与西林瓶保持合适的距离和角度。
图1 系统结构
图像的获取可分为两种方式:1)在线读取瓶口图像,先通过HALCON软件中的open_framegrabber函数指明图像采集设备的接口[7],然后由grab_image函数实时读取瓶口图像;2)采集图像并存入计算机硬盘,然后利用read_image函数获取文件中的图片。本文主要利用方法1来进行处理的。采集到的西林瓶图像经灰度变换后如图3所示。
2 图像预处理
2.1 图像滤波
由于生产现场复杂环境的影响,采集到的图像带有一定的噪声干扰,需要经过一些图像滤波技术对其进行预处理来去除噪声点影响,以便准确地检测到图像的边缘。
图2 打光示意图
图3 西林瓶图像
常见的图像滤波方法有:均值滤波、中值滤波、高斯滤波等[8 9]。经过大量实验对比,本文最终选用中值滤波算法,其优点就是可以去除椒盐噪声,并且可以有效的保留图像的边缘信息[10-11]。
中值滤波可用下式表示:
其中:A为滤波窗口,{fij}代表图像二维数据序列。
经过各种滤波方式的选择对比,我们最终选择滤波掩膜为圆形,半径大小为5的中值滤波器对图像进行平滑滤波,在Halcon平台上利用median_image(Image,ImageMedian,‘circle’,Radius,‘mirrored’)算子对原始图像进行滤波处理,结果如图4所示。
图4 图像平滑
图5 图像增强
2.2 图像增强
图像经过滤波处理之后,其边缘和轮廓将出现模糊的情况,为了减少这种不利效果的影响,我们需要对图像进行对比度的增强,使图像的边缘变得清晰。图像增强的算法大体上可以分为两类:频率域法和空间域法[12]。本文则直接对图像的像素点进行运算,对图像的灰度进行校正变换,以便来增强图像的对比度。假如原始图像的灰度值为S0,通过median_image中值滤波后灰度值为S1,结果图像灰度值为S2,利用下式对图像的灰度进行变换:
其中:Factor为系数,本文取值为6,round为整数的四舍五入运算。
增强后的图像效果如图5所示,图像整体的对比度得到了很大的提高,而图像的边缘也更加清晰突出,有利于下一步的边缘检测。
2.3 边缘检测
为了能够准确检测出西林瓶的尺寸,我们需要对西林瓶图像进行边缘的提取。边缘检测是图像分割、目标识别、区域形状分析等图像分析和识别领域中十分重要的基础[13 14]。图像中物体的边缘常以局部特征不连续的形式出现,例如灰度值的突变、颜色的突变、纹理结构的突变等。
图像中的物体边缘一般具有两个特征值:梯度向量的幅值和方向,分别对应着灰度的变化率和变换方向。例如函数f(x,y)在(x,y)出的梯度可以表示为:
利用Gx,Gy模板可以构成一个梯度算子。在实际应用中,一般使用图像和算子进行快速卷积的方法来实现边缘检测。常见的微分算子如表1所示。
表1 微分算子
以上常用的微分算子对噪声抑制和边缘定位还不是很准确,经过大量实验对比,本文最终选用Canny算子对图像进行边缘检测。
Canny算子具体的实现步骤如下:
1)首先对原始图像进行滤波,以消除噪声;
2)使用表1所示的微分算子找到图像沿两个方向的灰度导数Gx,Gy,并求出梯度的幅值和相角:,;
3)根据边缘的方向,把边缘的梯度方向分为:0°、45°、90°和135°,找到该像素梯度方向的邻接像素;
4)非极大值抑制:遍历整个图像,如果某个像素的灰度值与其梯度方向上前后两个像素的灰度值相比不是最大的,则可判断该像素不是边缘点;
5)使用双阈值检测:凡是大于高阈值的一定是边缘,小于低阈值的则不是边缘。如果结果处在两个阈值之间,则看这个像素的邻接像素中有没有超过高阈值的像素,如果有,则它就是边缘,否则不是。
使用Canny算子对西林瓶图像进行边缘检测,最终边缘检测结果如图6所示所示。
3 尺寸的测量
尺寸测量主要是测出西林瓶关键部位的尺寸。西林瓶在制瓶机成型时,需要测量的尺寸如图7所示有:瓶身外径d1、瓶脖外径d2、瓶口外径d3、瓶口边厚h1。通过对这4个尺寸进行实时监控,来提供生产技术支持,控制西林瓶成型的走势,减少次品数量,以便达到合格的尺寸标准。
图6 图像边缘检测
图7 尺寸测量示意图
3.1 测量区域边缘的提取
尺寸的测量关键是找到边缘线。在提取测量区域边缘点之前,我们需要首先判断工位上是否存在西林瓶,如图8所示,我们只需判断蓝色矩形框内图像的灰度值,如果不存在西林瓶,则灰度值为0或很小,如果灰度值大于某阈值则可判断有西林瓶存在。判断存在西林瓶之后,我们需要定位整个西林瓶位置,然后才能确定测量区域的位置,最后根据测量区域内的边缘线来确定尺寸大小。我们以瓶口边缘线来定位整个西林瓶位置。以蓝色矩形框底线为起始位置,以从左到右从下往上顺序搜索,直到找到瓶口位置为止,如图9所示。确定了西林瓶位置之后,通过Halcon gen_rectangle2(ROI,Row,Column,Phi,Length1,Length2)算子在西林瓶上产生测量瓶身外径、瓶脖外径、瓶口外径、瓶口厚度的矩形感兴趣区域ROI。建立ROI的等效区域模型,如图9所示。在ROI内水平等距离建立一条投影的线段,等距离一般设为一个像素,然后取线段的中点并连接起来,形成的带有方向的线段称为剖面线,其方向也就是ROI的方向,图10为瓶口ROI剖面线示意图。
图8 定位示意图
图9 感兴趣区域ROI
图10 剖面图
由gen_measure_rectangle2(ROI,Row,Column,Phi,Length1,Length2,Width,Height,Interpolation,Measure-Handle)算子建立测量目标,即ROI区域。在测量目标内沿剖面线方向计算等距离间隔图像的灰度均值。由此可以计算出沿剖面线物体的轮廓线灰度值,图11为瓶身ROI的灰度直方图。
由ROI的灰度直方图我们可以清楚的看到ROI内轮廓的走向,我们选用轮廓线灰度的一阶导数的极值点作为边缘的候选点,然后设定一个灰度阈值,如果一阶导数极值点的绝对值大于预设的阈值,则该点被选作为边缘中心点。返回每条边缘与剖面线的交点位置,则检测到的ROI边缘直线段如图12所示。
图11 灰度直方图
图12 检测到的边缘
图13 测量结果
3.2 西林瓶的尺寸测量
由3.1节我们成功提取到ROI边缘,然后利用测量算子measure_pairs(Image,Measure Handle,Sigma,Threshold,Transition,Select,Row EdgeFirst,Column EdgeFirst,AmplitudeFirst,Row EdgeSecond,Column EdgeSecond,Amplitude-Second,IntraDistance,InterDistance)便可计算出各个边缘点之间的距离,如图13所示,有3个ROI区域提取到两组边缘点,IntraDistance代表每个组内边缘点之间的距离,InterDistance代表每组之间的距离,也就是第一组中第二个边缘点到第二组中第一个边缘点的距离,所以最终我们测得瓶身外径为(IntraDistance[0]+InterDistance+IntraDistance[1]),同理可知瓶口外径、瓶脖外径、瓶口厚度。
4 系统标定和结果分析
4.1 系统标定
本文采用机器视觉工程中常用的系统标定法,使用物理尺寸和像素的比值将以像素为单位的尺寸转换为以毫米为单位的尺寸[15]。具体步骤如下:
1)选取一个2 m L尺寸已知的标准西林瓶样品,选定该标准件的瓶身外径为一量规,设该标准量规尺寸为Dmm。量规本身作为传递量值的标准计量器件具有很高的精度。
2)将标准样品放置于测量系统内进行测量,此时光源、相机参数以及标准件与相机之间的相对位置都与正常工作时一样。这样条件下,测得瓶身外径以像素为单位的尺寸为d pixel。
4.2 实验结果分析
由以上步骤我们可以准确的测出西林瓶各个部位的尺寸,通过相机标定,我们可以找出图像坐标系与世界坐标系之间的对应关系,最终得出本系统像素(pixel)与长度单位毫米(mm)之间的转换关系,k=0.020 291 mm/pix。以15个2 m L的西林瓶为试验样品进行实验,实际测量得到的尺寸如表2所示。
表2 测量结果
如表2所示,该西林瓶尺寸测量系统具有良好的稳定性,误差较小,满足企业的测量误差要求,具有一定的可行性和使用价值。
5 结论
本文对基于机器视觉的西林瓶尺寸检测系统进行了研究,运用图像处理相关算法,利用HALCON平台设计出了检测方案并进行了实测。实验结果表明,该方法对西林瓶尺寸检测快速准确,检测速度60个/分钟,边缘量化精度达到了亚像素级别,检测精度达到了像素级别,测量误差为0.02 mm,满足企业产品检测要求,对企业产品的品质管理具有一定的帮助。
[1]刘金桥,吴金强.机器视觉系统发展及其应用[J].机械工程与自动化,2010(1):215-216.
[2]姚峰林.数字图像处理及在工程上的应用[M].北京:北京理工大学出版社,2014.
[3]伍济钢,宾鸿赞.机器视觉的薄片零件尺寸检测系统[J].光学精密工程,2007,15(1):124-130.
[4]傅 骏.基于机器视觉的汽车换热器尺寸测量及外观检测系统设计[D].南京:南京理工大学,2014:2-23.
[5]柯国梁.基于机器视觉的密封圈尺寸在线检测系统的设计[D].苏州:苏州大学,2014:4-8.
[6]顾 勇,何明昕.基于机器视觉的啤酒瓶检测系统研究[J].计算机工程与设计,2012,33(1):248-253.
[7]朱先锋,潘洪军.基于Halcon的硒鼓缺陷检测与一维尺寸测量[J].吉林大学学报(信息科学版),2014,32(3):308-315.
[8]扬 帆.数字图像处理与分析[M].北京:北京航空航天大学出版社,2007.
[9]范立南,韩晓薇,张广渊.图像处理与模式别[M].北京:科学出版社,2007.
[10]Yang Z F,Bai J Y.Vial Bottle mouth defect detection based on machine vision[A].IEEE International Conference on Information and Automation[C].2015:2638-2642.
[11]陈 云.基于机器视觉的SMD管脚尺寸检测[D].上海:上海交通大学,2011:5-23.
[12]张东波,王耀南,段 峰,等.粗糙集在智能空瓶检测感兴趣区域提取中的应用[J].系统仿真学报,2007,19(5):1021-1025.
[13]杨福刚,孙同景,宋松林.基于机器视觉的全自动灯检机关键技术研究.仪器仪表学报,2008,29(3):562-566.
[14]艾泽潭,石庚辰,代 俊.微零件图像亚像素边缘定位算法[J].北京理工大学学报,2011,31(3):336-339.
[15]Zhang Z Y.A flexible new technique for camera calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000:1330-1334.
Vial Size Detection Based on Machine Vision
Yang Zongfang1,2,Bai Jianyu2
(1.Institute of Electronic Information Engineering,Taiyuan University of Science and Technology,Taiyuan 030024,China;2.Ningbo Institute of Technology,Zhejiang University,Ningbo 315100,China)
Vial size is an important quality criterion in the production process of vial.Compared with the traditional method of manual inspection vial size,automatic detection has great advantages.To achieve vial size detection,a program of vial size detection based on machine vision is presented,which designed the image acquisition and the backlight lighting scheme of the system,through the median filter for image noise,using the image pixel calculation algorithm to make the image gradation correction transform and enhance the contrast of the image,using Canny operator to extract the edge of the vial successfully,achieving vial size measurement in HALCON platform.Proposed system calibration method and selected 15 samples 2 m L vials for testing.The results show that the detection method is fast and accurate,and the detection accuracy is 0.02 mm,edge quantization accuracy can reach to the sub-pixel level,meet the requirements of the vials production accuracy of parameters measurement,provides an effective and automatic way to detect industrial production size.
machine vision;median filter;edge detection;size detection
1671-4598(2016)08-0063-04
10.16526/j.cnki.11-4762/tp.2016.08.017
:TP391
:A
2016-01-30;
:2016-03-03。
浙江省自然科学基金资助项目(LY15F030016)。
杨宗芳(1989-),男,河北邢台人,硕士研究生,主要从事模式识别与图像处理方向的研究。
白剑宇(1967-),男,浙江宁波人,教授,主要从事机器视觉和计算机应用方向的研究。