APP下载

基于机器视觉满箱检测方法

2018-01-03崔一峰

设备管理与维修 2017年12期
关键词:图像处理灰度机器

崔一峰

(北京信息科技大学,北京 100192)

基于机器视觉满箱检测方法

崔一峰

(北京信息科技大学,北京 100192)

满箱检测是饮料包装检测的重要环节。传统的基于PLC的检测方法的准确性和快速性已经满足不了实际生产需求。本文提出的基于机器视觉的满箱检测方法利用OpenCV开源视觉库,通过对图片的处理和分析,利用Hough变换的找圆函数确定是否满箱。通过对处理时间和准确率的对比,基于机器视觉满箱检测方法在处理时间,准确率和适应性等方面均有明显优势。

满箱检测;机器视觉;OpenCV;Hough 变换

10.16621/j.cnki.issn1001-0599.2017.12.26

0 引言

近年,饮料行业以前所未有的速度迅速发展。与之伴随而生的饮料包装行业异军崛起。许多包装设备像装箱机、纸箱包装机、热塑膜包装机等自动化的生产设备在饮料行业中得到广泛应用。随着自动化设备的应用,生产线上也出现了许多问题。其中最为严重和最为普遍的就是在装箱过程中常常出现缺瓶、少瓶现象。随着国家对饮品行业管控力度的加大,对不合格产品处罚措施的加重,一旦这类缺瓶的不合格产品流通到市场中,会对厂家带来极其消极的影响。因此在产品封箱前对产品进行满箱检测显得尤为重要。

目前在生产现场中,判断是否满箱一般采用的方法是安排专职人员用肉眼观察。由于人眼长时间专注容易导致视觉疲劳,所以一般是2个人轮流观察,每隔0.5 h换一次岗。这种方法存在很大缺陷。首先,这种方法增加了额外的人员投入,增加了生产成本;其次在高速的生产线上,人工检测不能准确的检测出是否满箱。最为重要的是,现在生产线的速度越来越快,由原来的每小时几千箱增加到每小时几万箱,人眼根本无法检测是否满箱,更别说剔除不合格产品。开发一套自动的满箱检测设备迫在眉睫。

1 满箱检测的应用现状

目前国内饮料行业的大型生产厂家主要是应用国外公司的检测设备,比如德国HEUFT公司的LOGIC系列满箱检测机。国外设备的价格比较高而且操作和维修有一定困难,因此满箱检测设备在中小企业内的应用并不广泛。为此开发一套简单经济准确的满箱检测系统已经刻不容缓。

2 基于PLC的满箱检测系统

基于PLC的满箱检测系统主要由PLC、操作面板、触发器部分和检测传感器等4个部分组成。程序通过从操作面板接受的信息判断当前的箱型,利用触发器和光电传感器读取的信息判断当前是否满箱。这种方法虽然在理论上是可以实现的,但是受生产现场条件的制约,很多情况下基于PLC的满箱检测系统并不能很好的完成满箱检测。在实际应用中,可供安装设备的直线段生产线非常短,而基于PLC的满箱检测系统从触发到检测动作的时间比较长,剔除设备需要安装在离检测设备比较远的地方,不适合高速生产线的满箱检测。而且基于PLC的检测设备只能适用于一种或几种型号的满箱检测,无法满足实际生产产品包装多样化的需求。

3 机器视觉在满箱检测中的应用

近几年,机器视觉作为人工智能的一个分支取得了巨大的成就。基于机器视觉技术的各类公司如雨后春笋般应运而生。机器视觉是一项集合了多种技术的综合技术,其中包括图像处理技术、机械工程技术、控制技术、电光源照明技术、光学成像技术、传感器技术、模拟与数字视频技术和计算机软硬件技术等。一个典型的视觉应用系统一般包括成像系统,图像处理系统,控制执行系统等。对于成像系统而言,最重要的就是光源。好的光源是机器视觉系统成败的关键。选择合适的光源,可凸显良好的图像效果,可以提高检测精度、简化算法、保证检测系统的稳定性。常见的光源颜色有白色、蓝色、红色、绿色、红外、紫外等。动作执行系统一般由执行动作机构,旋转编码器组成。在视觉系统中,最为重要的就是图像处理系统。一个视觉系统的优劣取决于图像处理结果的准确性。图像处理结果越准确,产生的误剔越少,视觉系统也就越优质。可见图像处理算法对视觉系统的重要性,研究出一个既高效又准确的图像处理算法是目前最重要的技术难题。在满箱检测系统中,机器视觉技术不但可以解决传统设备不适合高速生产线的缺陷,而且可以很容易的实现对多种型号饮品的满箱检测。

4 基于机器视觉满箱检测方法

4.1 OpenCV开源视觉库

现在比较流行的视觉开发软件有Halcon,VisionPro和OpenCV等3种。Halcon在欧美国家中应用比较广泛,在国内并没有太大市场。VisionPro虽然在国内占据了一定的地位,但是它的源码是不开放的,用户只能根据他提供的工具来实现自己的视觉应用。这就给实际应用现场带来很大的局限性。因为实际应用的状况千变万化,VisionPro不可能适用于全部的应用场合。虽然VisionPro提供了脚本编程,但是其脚本编程也是基于自身工具的,灵活性并不强。OpenCV一般采用C或者C++语言编写的,由于它的源码是完全开放的,用户可以根据实际应用,利用OpenCV提供的源码编写自己的视觉应用程序,以适应千变万化的应用现场,所以它在国内的应用比较广泛。OpenCV提供了一个比较简单的视觉框架。在这个框架下,用户可以根据千变万化的现场环境去构建更符合实际应用的计算机应用视觉程序。最新版本的OpenCV提供了500多个源函数,覆盖了计算机视觉的绝大多数应用领域,已经基本满足实际工程中的需求。

4.2 图像的预处理

4.2.1 判断图像是否获取正确

在后续图像处理之前,需要判断图像是否获取正确。如果图像没有获取正确,那么后续的处理也就没有任何意义了。OpenCV提供的Mat类对象从图像源获取图片后,利用Mat类的成员函数empty()可以实现这一功能。在条件语句下,判断图像是否为空,如果图像获取错误,则empty()函数返回真,不然empty()函数则返回假。如果载入图像错误,则返回-1。这样通过函数的返回值就可以判断图像获取正确。

4.2.2 将采集到的图像灰度化

为了简化运算,在判断图像获取正确后,需要对获取到的图像进行灰度化。以RGB彩色图像为例,图像中每个像素点的颜色是由红色分量、绿色分量和蓝色分量组成。每个分量都可以取0~255中的任何整数值,全为0时,图像为纯黑色,全为255时,图像为纯白色。如果不对图像进行灰度化,而是直接进行后续的图像处理,就需要对3个通道一一进行运算,这样必然增加图像处理时间。在高速生产线上,如果图像处理过长,即使检测到不合格品,执行动作机构也没有时间执行动作。所以对采集到的图像进行灰度化显得尤为重要。灰度图是R,G和B等3个分量的值相同的一种特殊图像。所以在图像处理中,将彩色图像转换成灰度图像后会使后续的图像处理的计算量相对较少。而且灰度图和彩色图在反映图像的特征方面没有什么区别,完全可以通过处理灰度图获得想要的信息。

OpenCV通过cvtColor()函数完成图像从一个颜色空间到另一个颜色空间的转换,并且在转换的过程中能够保证数据的类型不变。灰度化后的图像如图1所示。

4.2.3 对灰度化后的图像进行滤波

灰度化后的图像里掺杂了许多噪声,如果不加以滤除,会直接影响后续对饮料瓶的计数检测。OpenCV提供了多种滤波函数可供选择,比如中值滤波,高速滤波,均值滤波等。每一种滤波函数都有各自的特点和使用范围。中值滤波是对一定区域的像素点按照像素的大小从小到大排列,取出中值代替这一区域的所有像素值。从中值滤波的定义可以了解到,中值滤波可以滤除一定区域的极值像素点。由此可见,中值滤波对滤除椒盐噪声会有显著的功效。因为椒盐噪声是最大值或者是最小值点,而求中值的方法一定会把这些像素点滤除掉。对于满箱检测而言,局部最大值和最小值点有利于识别,因此不选择中值滤波方法。高斯滤波是将高斯函数进行离散化,以离散点上的高斯函数值作为权值,对采集到的灰度矩阵的每个像素点做一定范围邻域内的加权平均,有效的消除高速噪声。而需要的感兴趣区域的灰度值较高,所以高斯滤波不合适。均值滤波是用某个区域的均值来代替这一区域的所有像素值,在满箱检测实验中,用工业相机采集到的图片在采用同样大小的内核情况下,使用均值滤波后的图像相比使用高斯滤波和方框滤波两种滤波方法而言,有效的保留了瓶盖的边缘信息,这对于后续通过找圆确定数量非常有帮助,而且还滤除了很多细小的杂质。图2是使用孔径尺寸为5像素的中值滤波函数滤波后的效果图,图3是使用内核大小为5像素的高斯滤波函数滤波后的效果图,图4是使用内核大小为5像素的均值滤波函数滤波后的效果图。

图1 灰度化后的图像

4.3 检测是否满箱

如图1所示,瓶盖可以作为瓶子计数的重要特征。可以通过查找图像中圆的个数的方法计算瓶盖的个数,如果能查到20个圆说明满箱。由于点和线具有对偶性,Hough变换就是根据这一性质将被测图像空间的线条转变为参数空间的点,从而判断图像中是否具有特定的图像。OpenCV中的Hough圆变换函数HoughCircles可以帮助查找图中圆的个数。Hough-Circles中包含9个参数,如何选择好后面6个参数将是准确找出瓶盖外圆的关键。

第一个决定参数是累加器图像的分辨率。这个参数允许创建一个比输入图像分辨率低的累加器。OpenCV允许在1~2为累加器图像的分辨率赋值,这个值越高,越容易产生错检,多检。例如将累加器图像的分辨率设置为1.5,满箱仍可以正确检测正确,但是缺瓶的情况却出现多的多检的情况,如图5所示。通过实验测试,当累计器的分辨率设置为1.1时,无论是满箱的情况还是缺瓶的情况都能正确检测。

图2 孔径尺寸5像素、中值滤波函数

图3 内核大小5像素、高斯滤波函数

图4 内核大小5像素、均值滤波函数

图5 累加器图像的分辨率为1.5时满箱、缺瓶检测结果

第二个决定参数是2个圆之间的最小距离。这个值如果设置的太小就会在一个瓶盖上出现多组同心圆,如果太大,就会出现圆心重叠的现象,出现少检、错检的情况。经过试验验证,将2个圆之间的最小距离设为60像素时,检测效果最好。第三个决定参数是圆的半径的范围,通过实验验证,将最小半径设为22像素,最大半径设为37像素时能够准确检测出满瓶箱,但是在检测缺瓶箱的时候会出现漏检的情况。这是因为在缺瓶箱里,瓶子交错排列,最小距离可能会<60像素,所以要将缺瓶和满箱分开检测。首先假设为满箱,用第一种方法检测,判断检测出来的瓶子的数量是否为20。如果不是20,则按缺瓶算法再检测一次。通过实验验证,这种方法能够准确的检测出是否满箱。提取圆心和半径信息,将瓶盖边缘和圆心位置用红色圆标记,检测结果如图6所示。

图6 检测结果

5 结论

基于机器视觉的满箱检测方法与传统方法相比检测速度快,从检测到剔除不到500 ms,适应高速生产线,而且检测结果准确。通过实验验证,基于机器视觉的满箱检测方法准确率在90%以上。

[1]赵巨峰,高秀敏,崔光茫.结合生产线的视觉检测实验系统设计[J].实验室研究与探索,2016,35(4):59-62.

[2]王耀东,朱力强,史红梅,郭保青.高速机械系统运动特性的实时视觉检测技术研究[J].机械工程学报,2016,52(2):82-90.

[3]叶树亮,张玉德,张炜.齿轮视觉检测中的尺度与方向相关性联合降噪[J].光学精密工程,2014,22(6):1622-1630.

[4]李小昱,陶海龙,高海龙,李鹏,黄涛,孙金风.马铃薯缺陷透射和反射机器视觉检测方法分析[J].农业机械学报,2014,45(5):191-196.

[5]周文举.基于机器视觉的在线高速检测与精确控制研究及应用[D].上海:上海大学,2014.

[6]杨占福.新型满箱检测系统[J].啤酒科技,2012(12):61-62.

[7]付伟.食品饮料生产过程在线检测与管理综合系统的研究[D].济南:山东大学,2012.

[8]张辉.医药大输液可见异物的视觉检测机器人技术研究[D].长沙:湖南大学,2012.

[9]唐启敬,田行斌,耿明超,周游,赵铁石.CCD视觉检测系统的整体标定[J].光学精密工程,2011,19(8):1903-1910.

[10]郑鹏飞.S7-200和TD200在满箱检测系统中的应用[J].伺服控制,2010(6):94-96.

[11]赵明.啤酒满箱检测装置[J].啤酒科技,2009(10):51,53.

[12]罗兵.SMT产品质量机器视觉检测中的机器学习[J].电子质量,2009(1):39-41,44.

[13]张强.基于机器视觉的产品检测技术研究[D].郑州:中国人民解放军信息工程大学,2005.

[14]杨海涛.机器视觉检测算法研究及实现[D].长春:吉林大学,2004.

[15]段峰.基于机器视觉的智能空瓶检测机器人研究[D].长沙:湖南大学,2002.

[16]金隼,洪海涛.机器视觉检测在电子接插件制造工业中的应用[J].仪表技术与传感器,2000(2):13-16.

TP29

B

〔编辑 凌 瑞〕

猜你喜欢

图像处理灰度机器
机器狗
采用改进导重法的拓扑结构灰度单元过滤技术
机器狗
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
未来机器城
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算
基于图像处理的定位器坡度计算
Photo Shop通道在图像处理中的应用