采用图像处理的胶囊尺寸缺陷检测方法
2017-10-11刘孝星郑力新周凯汀吴哲林立峰
刘孝星, 郑力新, 周凯汀, 吴哲, 林立峰
(1. 华侨大学 信息科学与工程学院, 福建 厦门 361021; 2. 华侨大学 工学院, 福建 泉州 362021)
采用图像处理的胶囊尺寸缺陷检测方法
刘孝星1, 郑力新2, 周凯汀1, 吴哲2, 林立峰1
(1. 华侨大学 信息科学与工程学院, 福建 厦门 361021; 2. 华侨大学 工学院, 福建 泉州 362021)
针对透明胶囊的成像特点,提出一种实时性好、健壮性较强的结合阈值分割、腐蚀、轮廓提取及区域填充的图像提取算法.利用旋转和一阶差分分割胶囊本体,通过最小包围矩形测量胶囊的尺寸,并与公认标准进行对比,从而判别胶囊是否存在尺寸缺陷.实验结果表明:胶囊图像提取和尺寸缺陷识别算法的平均漏检率为6.38%,平均误检率为4.13%.
尺寸缺陷; 胶囊; 图像处理; 区域分割
Abstract: In view of the characteristics of transparent capsule image, this paper proposed the image extraction algorithm combining with threshold segmentation, corrosion, contour extraction and region filling with good real-time and strong robustness. Then by using rotating and first-order difference divided capsule ontology, through the minimum bounding rectangle measured the size of capsule, compared with generally accepted standards we can distinguish whether capsule exists size defect. The experimental results show that: the average missing rate of capsule image extraction and the size defect recognition algorithm was 6.38%, the average error rate was 4.13%.
Keywords: size defect; capsule; image processing; region segmentation
近年来,随着医药行业的飞速发展,胶囊以能有效掩盖药物不良气味、提高药物稳定性、延缓药物释放及易于服用等优点,广泛地应用于保健品和药品领域.在空心胶囊的生产过程中,尺寸缺陷是常见的一种缺陷胶囊.目前,针对空心胶囊尺寸缺陷的问题,国内生产企业普遍采用人工检验的方式,检测效率极低.机器视觉技术具有非接触测量、长时间稳定工作等优势,正逐渐应用于工业表面检测领域.因此,基于图像处理的空壳胶囊尺寸缺陷检测方法代替传统的人工检测是胶囊制药行业发展的趋势.许多学者对相关检测算法进行了研究[1-3].本文提出一种适合工业现场的胶囊尺寸缺陷检测方法.
1 检测方案
利用机器视觉技术对胶囊尺寸进行测量时,需要考虑以下5个问题:1) 图像噪声的滤除;2) 胶囊自身图像与背景图像的分离;3) 胶囊各区域的分割,包括体(未重合部分,下文统称为体)、帽(未重合部分,下文统称为帽)、重合区;4) 图像处理算法的实时性;5) 算法的健壮性.通过算法的对比和研究,设计了一套胶囊尺寸缺陷检测方案,其算法流程,如图1所示.
图1 胶囊尺寸检测流程图Fig.1 Flow chart of capsule size detection
2 胶囊自身图像提取
2.1ROI设定及预处理
胶囊尺寸缺陷识别算法是整个缺陷检测过程的核心.在外触发方式下,电荷耦合器件(CCD)相机每次采集的图像中包含了4个胶囊检测位,每幅图像中胶囊位置相对固定.为了便于对胶囊图像进行分析及减少数据运算量,在获取的原始图像中,设定4个感兴趣区域(ROI),每次提取单一的区域图像进行处理,如图2所示.CCD相机采集的图像中,常夹杂光子散粒噪声、暗电流噪声、读出噪声、时钟感应噪声等[4],导致图像质量降低,对后续图像提取、图像分割和尺寸测量造成较大影响.因此,采用滤波去噪对图像进行预处理.为了保证算法的实时性,并最大程度地保持图像细节,采用改进型中值滤波去除噪声[5-6],使算法的时间复杂度从O(n2)降低为O(n),其效果如图3所示.
2.2阈值分割及空位判别
背景图像对目标图像处理造成很大干扰,需要提取目标本体图像,使其与背景完全分离.相较于不透明胶囊,透光性较强的透明胶囊是胶囊自身图像提取中的难点.透明胶囊的灰度分布不同,灰度值在中部最高,靠近边缘处较低.假设透明胶囊所处的灰度区间为D1,背光部分所处的灰度区间为D2,则存在一个非空区间K使D1∩D2=K.因此,双阈值分割将中间区域作为背景处理,使分割后的图像只剩下胶囊的边缘部分.双阈值通过大量实验测试得出,经双阈值分割后的两种胶囊,如图4所示.
排料过程中,由于胶囊在料槽出口处堆积,可能导致传送链条的胶囊槽未被完全填满.由图4(b)可知:分割后的图像仍存在胶囊槽的轮廓.若胶囊槽中有胶囊,则除了轮廓之外,还有胶囊本体;反之,二值图中仅有轮廓线,如图5所示.二值图像中,背景部分的像素值为0,前景部分的像素值为1.槽中有、无胶囊的两种情况下,前景的像素数量相差较多,通过统计像素值为1的像素个数,并与合适的阈值比较,即可判断是否为空位.图5中的胶囊槽轮廓像素为1 291个,图4(b)中的像素为10 236个,若为不透明胶囊,则像素个数还会进一步增加.因此,该阈值判别法可准确进行空位判别.
2.3形态学处理
为了去除多余的胶囊槽轮廓,对双阈值分割后的二值图像进行腐蚀处理.腐蚀处理时,腐蚀的内核大小的选取十分重要,内核过大会导致胶囊的边缘被过多地腐蚀而出现断裂,如图6(a)所示.胶囊槽的轮廓宽度通常在3个像素之内,使用稍大的结构元素可对其进行处理.在腐蚀过程中均选用3×3的方形结构元素处理图4(b)的残余背景,尽可能减少对胶囊边缘造成的影响,结果如图6(b)所示.
2.4胶囊轮廓提取
腐蚀后的二值图除了胶囊区域外,还可能有其他小目标区域.为了对各连通域进行分析,必须对其标号.在目标区域较为复杂时,像素标记法[7-8]、线标记法[9]、基于四叉树的标号算法[10]等图像标号算法处理时间会迅速增加.胶囊的边缘区域因具有较多“U”形或“E”形的复杂连通域,以上方法并不适用.文中将区域生长的思想应用于区域标号中.从图像左上角开始对像素进行逐一扫描,若碰上没有标号的像素,则把该像素作为种子点,按照栈的方式存储,对其邻域的像素进行标记,并同样存储标记过的像素,从栈中去除像素,作为新种子点标记其邻域,栈内无像素点时终止.采用8邻域方向生长时,对图像的遍历次数能够从8次减少为4次左右.通过区域生长的方式对不同的目标区域进行逐一标号,实现各个区域之间的相互区分.标号的最大数值m,即为目标区域的个数.
二值图像中胶囊边缘有内、外两层轮廓,外层轮廓包含了整个胶囊所处的区域. 为了利用外层轮廓
图7 8邻域方向Fig.7 8-direction of neighborhood
提取出胶囊本体图像,并节省跟踪内层轮廓的时间,需获取轮廓线上的像素坐标,并对该轮廓进行描述.虫随法算法简单,但易忽略边缘轮廓上的个别凸起[11];光栅扫描法受阈值大小影响大,且扫描次数不定,难以实际应用[12].文中采用邻域点边界跟踪法可较好地避免以上问题.首先,定义8邻域的方向(图7),并设立集合L和变量dir,分别存储已跟踪轮廓所属的区域标号和从前一个边界元素到下一个边界元素的方向.然后,按以下4个步骤执行.
步骤1对方向变量赋值,使dir=7,并从图像左上角开始从上到下、从左到右进行搜索,直至找到第一个非零像素,且该像素的标号l满足l∉L,则该像素P0是其所在区域Q1第一列的第一行元素.因此,以P0为区域轮廓的起始像素,并将该区域的标号添加到集合L中.
步骤2若dir为偶数,用(dir+7)除以8的余数对其重新赋值;若dir为奇数,用(dir+6)除以8的余数对其重新赋值.以dir为起始方向逆时针搜寻当前像素的8邻域,找到的第一个非零像素是当前区域中新的轮廓元素Pn,同时更新dir,使其等于Pn-1到Pn的方向数值.
步骤3如果当前的轮廓元素Pn等于第二个轮廓元素P2,且前一个元素Pn-1等于P0,则进行步骤4,区域Q1的轮廓像素集合为{P0,P1,…,Pn};否则,返回步骤2.
步骤4统计当前集合L中的元素个数num.若num=m,表明图像中各区域轮廓均已获取,结束操作;若num≠m,返回步骤1,获取图像中其他区域的轮廓.
由于同种胶囊之间存在微小的差异,少数胶囊在双阈值分割后边缘部分较窄,经腐蚀处理后出现边缘断裂.为了提高算法的鲁棒性,解决个别胶囊因边缘不完整导致的错误分割问题,在获取胶囊边缘轮廓后,进一步对轮廓进行凸包的构建.胶囊所在区域Q的轮廓可近似为凸形,重构后的轮廓基本不变,如图8(a)所示;而腐蚀后出现边缘断裂时所获得的轮廓为凹形,如图8(b)所示.
若连接断开处的两个拐点,并去掉两个拐点之间的曲线,即可获得近似的胶囊轮廓.轮廓上点的集合{P0,P1,…,Pn}已按逆时针方向排序,以P0为起点从P2开始进行判断.首先,得到向量P0P1和P1P2,计算c=|P0P1×P1P2|/(|P0P1|×|P1P2|),若c>0,则P1到P2的路径相对于P0到P1的路径是向左转的,表明P2是凸包上的一个顶点;反之,若c≤0,则P1到P2的路径相对于P0到P1的路径是向右转的,此时,P2就不是凸包的顶点,将P2从点集中移除,以此对后续的点进行判断直至回到P0,得到新的点集{p0,p1,…,pn},按顺序连接这些点并绘制于一幅新的背景图像,即可得到所需的凸形轮廓,如图8(c)所示.
2.5区域填充与胶囊自身图像提取
漫水填充法能有效完成对目标区域的提取[13],但效率较低.文中采用扫描线方法,首先,在轮廓上寻找两点Pi=(xi,yi)和Pj=(xj,yj),使yi由yj为凸形,所以线段PiPj端点外的任意一点Pk=(xk,yk),若Pk∉{P0,P1,…,Pn}在轮廓内部;反之,则重新寻找.胶囊图像提取效果,如图9所示.
3 胶囊边缘检测
3.1图像旋转
胶囊在槽中的位置不是完全固定的,在图像中可能出现一定角度的倾斜,将影响后续的分割.将图像中的点经过线性变换后重新映射到新的图像中,实现胶囊的旋转,可使其侧边与水平方向垂直.二维图形以任意点(xc,yc)为旋转中心,以α为旋转角的旋转公式为
(a) 倾斜 (b) 旋转后图10 胶囊旋转Fig.10 Capsule rotation
进行旋转前,首先要确定旋转中心和旋转角度.图像中胶囊的轮廓是由离散的点构成的凸多边形,其最小面积的外接矩形至少有一个边与轮廓上的一个线段共线.胶囊的外形较为特殊,其最小面积外接矩形的两条相互平行的边分别与胶囊两个侧边共线,计算最小面积外接矩形的中心点坐标及其倾斜角即可得到所需的旋转中心和旋转角度,胶囊旋转效果,如图10所示.
3.2重合区边缘检测
胶囊体、帽套合时将产生一个重合区域.为了测量体、帽的长度,必须将每个区域分割出来.常用的区域分割方法有区域生长分割、分水岭分割.区域生长需要先确定种子点位置和生长准则,再确定其周围像素是否属于同一区域[14].体、帽的透光率相对均匀,无论两者的颜色是否相同,重合区的透光率会低于重合区外的部分.
因此,体、帽未重合的部分较亮,重合部分较暗,且各部分的灰度基本一致,胶囊区域内自上而下在第一个重合区边缘时,由亮变暗;在第二个重合区边缘时,由暗变亮.因此,对胶囊区域内某一垂直于水平方向的剖面线f(i,j)做差分运算,在点(i,j)处沿竖直方向的一阶差分可表示为
得到差分曲线的波谷、波峰分别对应自上而下时重合区的第一、二个边缘,如图11所示.图11中:A为灰度;n表示第n个像素.
图11 剖面线差分曲线Fig.11 Differential curve of section lines
由于靠近胶囊边缘的部分亮度与内部差异较大,因此,需选取合适的剖面线.假设原最小面积外接矩形旋转后得到的新矩形左上角的坐标为(x1,y1),宽度为w,高度为h,以x=x1+w/2作为剖面线在水平方向上的位置,并按照固定比例0<λ<1舍弃胶囊两头的一部分λh,得到剖面线的起始点坐标分别为(x1+w/2,y1+λh),(x1+w/2,y1+(1-λ)h).
对该剖面线上的灰度值做差分运算后筛选出差分结果的最大、最小值,获取它们的坐标,即可找到胶囊重合区的上下两个边缘在图像中的位置.
4 胶囊本体分割与尺寸缺陷判别
胶囊重合区的边缘位置已知,可通过设定ROI分割出3个区域的图像.设图像旋转后的最小面积包围矩形的左上角坐标为(xleft,ytop),右上角坐标为(xright,ytop), 右下角坐标为(xright,ybottom), 左下角坐
(a) 第一部分 (b) 第二部分 (c) 第三部分图12 胶囊本体分割结果Fig.12 Result of capsule segmentation
标为(xleft,ybottom),若至上而下胶囊第一个边缘的位置为yk,第二个边缘的位置为yj,以顶点(xleft,ytop),(xright,ytop),(xleft,yk),(xright,yk)的矩形为第一个ROI,(xleft,yk),(xright,yk),(xleft,yk),(xright,yj)为第二个ROI,(xleft,yj),(xright,yj),(xright,ybottom),(xleft,ybottom)为第三个ROI,分割出胶囊的3个区域,如图12所示.胶囊在图像中竖直放置,3个ROI的长度即胶囊3个区域的尺寸,可得胶囊两节的尺寸为yj-ytop和ybottom-yk,两者数值较小的即为胶囊帽尺寸,较大的为胶囊体尺寸.判断测量的帽、体尺寸是否在标准的尺寸范围内,即可知胶囊是否存在尺寸缺陷.
5 结束语
在Intel Core i7 4770k处理平台下进行实验测试,采用任务并行处理技术处理3台相机所采集的图像所花费的总时间平均为7.9 ms.在生产线上随机抽取胶囊作为测试样本,检测完成后由专门的检测人员分别从成品和次品中抽样检测,统计胶囊的漏检率和误检率.5次抽样结果显示:平均漏检率为6.38%,平均误检率为4.13%;胶囊图像提取和尺寸缺陷识别算法的健壮性较强,实时性较好.
[1] ISLAM M J,AHMADI M,SID-AHMED M A.Image processing techniques for quality inspection of gelatin capsules in pharmaceutical applications[C]∥International Conference on Control, Automation, Robotics and Vision.Washington D C:IEEE Press,2008:862-867.
[2] MURAI T,MORIMOTO M,FUJII K.A visual inspection system for medical capsules[C]∥International Conference on Systems, Man, and Cybernetics.Washington D C:IEEE Press,2012:1433-1437.
[3] 王娟,周永霞,徐冰俏.图像处理在胶囊外形缺陷检测中的应用[J].中国计量学院学报,2012,23(3):239-245.
[4] WANG Dejiang,ZHANG Tao.Noise analysis and measurement of time delay and integration charge coupled device[J].Chinese Physics B,2011,20(8):352-357.
[5] 杨文博,马天玮,刘剑.非局部变分修复法去除高密度椒盐噪声[J].中国光学,2013,6(6):876-884.
[6] 李刚,范瑞霞.一种改进的图像中值滤波算法[J].北京理工大学学报(自然科学版),2002,22(3):376-378.
[7] ROSENFELD A,PFALTZ J L.Sequential operations in digital picture processing[J].Journal of the ACM,1966,13(4):471-494.
[8] HARALOCK R M,SHAPIRO L G.Computer and robot vision[M].New Jersey:Prentice Hall,1991:57-64.
[9] IRANI M,ANANDAN P,BERGEN J,etal.Efficient representations of video sequences and their applications[J].Signal Processing: Image Communication,1996,8(4):327-351.
[10] 吴恒山,段雄文,李晨阳.叶结点编码四叉树的邻域寻找算法[J].计算机应用,2005,25(11):2624-2626.
[11] 周秀芝,陈洋,胡文婷.基于交叉点的树遍历二值图像边界跟踪算法[J].计算机应用与软件,2014,31(2):230-232.
[12] 王福生,齐国清.二值图像中目标物体轮廓的边界跟踪算法[J].大连海事大学学报,2006,32(1):62-64.
[13] ZHOU Zhiwei,LI Linlin,TAN C L.Edge based binarization for video text images[C]∥International Conference on Pattern Recognition.Washington D C:IEEE Press,2010:133-136.
[14] ADAMS R,BISCHOF L.Seeded region growing[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1994,16(6):641-647.
(责任编辑: 钱筠英文审校: 吴逢铁)
DetectionMethodofCapsuleSizeDefectUsingImageProcessing
LIU Xiaoxing1, ZHENG Lixin2, ZHOU Kaiting1, WU Zhe2, LIN Lifeng1
(1. College of Information Science and Engineering, Huaqiao University, Xiamen 361021, China;2. College of Engineering, Huaqiao University, Quanzhou 362021, China)
10.11830/ISSN.1000-5013.201505045
2015-05-25
郑力新(1967-),男,教授,博士,主要从事工业自动化技术的研究.E-mail:1275373176@qq.com.
福建省科技厅资助项目(2013H2002)
TP 391
A
1000-5013(2017)05-0716-05