算法可重构的工业视觉饮料瓶盖缺陷检测
2012-09-04龙智帆孙志海孔万增
龙智帆,孙志海,孔万增
(杭州电子科技大学计算机应用技术研究所,浙江杭州310018)
0 引言
机器视觉系统是一种非接触式的光学传感系统,通过机器视觉工具(即图像摄取装置)抓取图像,然后将该图像传送给图像处理单元进行数字化处理,并根据处理结果控制现场设备动作[1]。近几年,工业机器视觉在工业生产过程中的应用越发得到生产流水线设计人员及研发人员的青睐。但目前我国多数工业视觉系统软件所涉及的图像处理算法针对性强,重构、重组性能较差。为此,本文以工业机器视觉系统软件中图像处理算法可重构性作为设计出发点,给出了一种算法可重构的工业机器视觉饮料瓶盖缺陷检测软件的设计方案。
1 系统结构
该检测系统分为硬件和软件2部分。系统硬件主要负责对饮料瓶的传感、图像采集的触发及执行机构的控制。系统软件主要负责饮料瓶图像检测区域的定位、处理及缺陷检测。系统工作原理是系统软件将相机采集过来的原始图像进行预处理,包括阈值化、边缘检测等一系列步骤;最后,对预处理图像进行缺陷检测并给出判定结果,并由工控机向剔除机发出控制命令。系统硬件和软件结构分别如图1(a)、(b)所示。
2 算法重构
算法重构是系统软件的核心,针对不同的作业流程,选择所需的算法模块和与之对应的具体算法,并加以组合就能装配出所需的算法序列。本软件的算法重构流程如图2所示。
图1 系统硬件及软件结构示意图
图2 算法重构模块流程图
图2中,算法重构流程可描述如下:针对特定的作业流程,从算法库中选择所需的算法并将其送入算法过滤模块。若所选算法满足其所需的约束条件,则将算法送入算法装配模块,否则,须重新选择算法。最后,算法装配模块把选择的所有算法进行组装并输出。
2.1 算法库
算法库由内置算法库和外部算法库构成。算法库目前共支持16种算法[2,3],有36个API函数。已实现的算法模块有如阈值化、边缘检测、形态学处理等模块。其中,阈值化模块包括Otsu阈值化、Ni-Black阈值化[4,5]等算法;边缘检测模块包括Sobel3×3边缘算子、Prewitt3×3边缘算子和Canny3种算法[6,7]。外部算法库是一个用户自定义算法集合,本文提供了一个图像处理算法扩展槽,通过该算法扩展槽用户可以把定义在外部的算法添加至算法库。
2.2 算法过滤
由于一些图像处理算法之间存在着一定的依赖关系,如某些算法必须以另外其它的算法作为自己的先行算法等。因此,为了增加算法重构的成功率,降低对用户图像处理算法知识的要求,本文在算法装配之前增加了算法过滤流程,如图3所示。
图3 算法过滤流程示意图
算法过滤步骤如下:
(1)通过对图像存储位深的检测,判断所选算法是否满足接口需求,若满足,则跳到(2),否则,重新选择算法;
(2)检测算法模块间的依赖关系,如若要选择膨胀和腐蚀算法,则在它们之前必须有“二值化”这个先行算法。如果所选算法满足和已成功选择的算法之间的依赖关系,则添加算法成功;否则,重新选择算法。
2.3 算法装配
算法装配支持以下3种重构模式,只需满足3种之一就能完成算法装配,并生成符合需求的算法序列,它们分别是:
(1)通用模式。从算法库中选择通用的图像处理算法并进行合理的组合排列;
(2)应用模式。从算法库中选择针对特定应用的图像处理算法并进行合理的组合排列;
(3)混合模式。在(1)和(2)的基础之上,对以上两种算法模式进行合理的组合排列。
3 图像感兴趣区域提取
饮料瓶盖缺陷检测只是针对采集图像中的瓶盖区域进行处理,所以,在对图像进行处理前,先提取出图像感兴趣区域,有利于提高整个流程的处理速度,缩短瓶盖缺陷检测时间。本文设计并实现了3种图像感兴趣区域提取方法,它们分别是:(1)固定感兴趣区域提取;(2)手动感兴趣区域提取;(3)自适应感兴趣区域提取。3种提取方法的示意图如图4所示。
图4 感兴趣区域提取方法示意图
其中,图4(a)为固定感兴趣区域提取,该方法利用图形工具在图像上绘制1个矩形框,便能完成感兴趣区域的提取。图4(b)为手动感兴趣区域提取,该方法利用图形工具在图像上绘制3条线段A、B、C,然后获取的a、b、c3个边缘点,并利用这3点和已知提取高度,完成感兴趣区域的提取。图4(c)为自适应感兴趣区域提取,该方法的思路是:首先,从图像上边缘1/2处,按E方向向下搜索边缘点e;然后,以点e为基准点向下偏移半个瓶盖高度,按F和G方向分别向左、向右查找左、右边缘点f和g了;最后,利用e、f、g3个边缘点和已知提取高度完成感兴趣区域的提取。但该方法的处理速度要慢于其它两种提取方法。
4 瓶盖缺陷检测
瓶盖缺陷检测模块利用构造好的图像处理算法序列对图像感兴趣区域进行缺陷检测。瓶盖缺陷检测分为图像预处理和缺陷检测两部分,检测流程如图5所示。
图5 瓶盖缺陷检测流程
图像预处理由灰度化、阈值化、反色和边缘检测4部分组成。其中,对图像进行反色处理,主要是为了突出图像中的白点,以利于边缘检测(针对图像中的白点)操作。
5 实验结果与分析
为了进一步说明本检测软件的有效性。在CPU为Intel(R)Core(TM)2 Duo E8400@3.00GHz,操作系统为Windows XP的PC机上,对工业流水线上的一系列饮料瓶进行检测实验。本文针对的瓶盖缺陷检测主要有两部分:一部分是判断内高度差(左右内径的长度差)是否大于给定的误差值;另一部分是判读外高度差(左右外径的长度差)是否大于给定误差值。若内、外高度差都小于相应的误差值,则说明瓶盖合格;否则,说明瓶盖存在缺陷。感兴趣区域提取测试如表1所示,瓶盖缺陷检测过程如图6所示,部分检测数据如表2所示。
由表1可知,当瓶盖在采集图像中的位置偏差较大时,自适应感兴趣区域提取方法的精度高且稳定,而其它两种方法的稳定性较差,因此,本实验采用自适应区域提取方法。
表1 图像感兴趣区域提取效果比较
表2 瓶盖缺陷检测数据
图6 瓶盖缺陷检测过程示意图
实验结果表明,本系统能准确的将80个饮料瓶中的7个次品剔除,且具有较好的稳定性。同时,由表2可知,每瓶处理的时间不超过10ms,说明本文采用的自适应感兴趣提取方法也能很好的满足系统实时处理的要求。
6 结束语
本文给出了一种算法可重构的饮料瓶盖缺陷检测的实现方案,描述了重构饮料瓶缺陷检测算法序列、提取瓶盖感兴趣区域及检测瓶盖缺陷的整个流程。实验结果表明本文所设计的系统软件具有较好实用性和检测性能。
[1]Galbiati Jr,Louis J.Machine vision—an emerging technology[J].The International journal of applied engineering education,1986,2(4):221-225.
[2]Rafael C Gonzalez,Richard E Woods.数字图像处理[M].北京:机械工业出版社,2002:460-479.
[3]何斌,马天予,王运坚,等.Visual C++数字图像处理[M].北京:人民邮电出版社,2001:335-358.
[4]Farid S,Ahmed F.Application of Niblack’s method on images[C].Islamabad:IEEE Computer Society,2009:280-286.
[5]韩思奇,王蕾.图像分割的阈值法综述[J].系统工程与电子技术,2002,24(6):91-94.
[6]Gao Wenshuo,Yang Lei,Zhang Xiaoguang,et al.An improved Sobel edge detection[C].Chengdu:IEEE Computer Society,2010:67-71
[7]吕哲,王福利,常玉清.一种改进的Canny边缘检测算法[J].东北大学学报(自然科学版),2007,28(12):1 681-1 684.