基于K邻域链码拐点的胶囊端面缺陷检测算法*
2015-10-18刘孝星郑力新周凯汀华侨大学信息科学与工程学院福建厦门360华侨大学工学院福建泉州360
刘孝星,吴 哲,郑力新,周凯汀(.华侨大学 信息科学与工程学院,福建 厦门 360;.华侨大学 工学院,福建 泉州 360)
基于K邻域链码拐点的胶囊端面缺陷检测算法*
刘孝星1,吴 哲2,郑力新2,周凯汀1
(1.华侨大学 信息科学与工程学院,福建 厦门 361021;2.华侨大学 工学院,福建 泉州 362021)
针对目前空心胶囊端面缺陷图像采集困难等问题,提出了一种特殊照明的方式对胶囊端部进行成像。将图像锐化、改进后的局部自适应阈值、轮廓提取用于胶囊端面图像的预处理,并针对胶囊端面缺陷漏检率高、检测效果差等问题,提出了一种基于K邻域链码的拐点检测算法,统计出胶囊端面缺陷图像中的拐点个数并做出缺陷判别。实验结果证明,该检测算法实时性好,对常见的5种颜色的胶囊漏检率和误检率均控制在2%~9%。
K邻域链码;空心胶囊;端面缺陷检测
0 引言
空心胶囊的缺陷检测是药品质量监管中不可或缺的一道工序。空心胶囊轻微的表面缺陷会影响其外观,严重的表面缺陷可能造成充填机停机或使胶囊失去容器特性,因此需要对胶囊表面缺陷进行检测。端面缺陷是常见的一种空心胶囊缺陷,ISLAM M J等人经过Otsu算子分割、轮廓跟踪算法拟合端部的轮廓,得到两个圆的半径,判断半径是否在设定范围之内来判断胶囊端部是否存在缺陷[1]。KARLOFF A C等人利用了3个相机进行拍摄,实现360°的胶囊柱面图像采集[2]。本文提出了一种较特殊的端部缺陷检测方案,利用特定光源照射下胶囊端部反射的“月牙”图形进行后续的处理和判别。通过图像增强使“月牙”图像的边缘轮廓更为清晰,再采用图像分割使端部的“月牙”图形从背景中分离出来,对“月牙”的轮廓进行提取与筛选,并提出了一种基于K邻域链码的拐点检测算法统计轮廓拐点数量,从而判别端部是否存在缺陷。
1 端部缺陷检测方案
1.1 端部缺陷类别
常见的胶囊端部缺陷主要分为梅花头和顶凹这两种缺陷,如图1所示。
图1 胶囊端部缺陷
1.2 照明结构设计
在检测胶囊端部缺陷时,考虑到胶囊两头为半球面,相机垂直拍摄,仅仅依靠背光时端部存在盲区,无法看清端部的情况。实践发现,两端各设置一个平行光源进行正面照明,会有一部分反光进入上方的相机,观察反射光是否异常就可以知道端部是否存在缺陷。具体的光源结构设计及采集的图像分别如图2、图3所示。
图2端部照明光源设计
图3胶囊端部图像
1.3 端部缺陷检测算法设计
胶囊两端各有一平行光源,光线照射到胶囊端部并反射进相机中,由于胶囊表面较为光滑且两端为半球形,因此反射光在相机采集到的图像中呈现“月牙”的形状。当胶囊的端部正常时,图像中的“月牙”形状完整,亮度均匀,且“月牙”的轮廓相对平滑;当胶囊的端部存在缺陷时,“月牙”的形状将会发生改变,由于不再光滑的半球面使“月牙”的亮度变得不均匀,导致其轮廓的平滑度降低,产生许多不规则凹凸,甚至出现断裂的情况,如图4所示。
图4 端部的“月牙”
利用端部正常时的“月牙”与端部存在缺陷时的“月牙”之间的各种差异,通过检测“月牙”的形状就可以判断胶囊端部是否异常。
2 预处理
2.1 图像增强
“月牙”图像的检测主要依赖于其边缘平滑度的分析,当端部存在缺陷时,“月牙”图像可能发生虚化,图像增强算法增强“月牙”边缘的对比度,使边缘更加清晰。图像锐化即边缘增强处理,可以使图像的边缘更为清晰,分为频域高通滤波法和空间域微分法[3-4]。空间域微分法直接对图像像素进行操作,免去了频域与空间域之间的转换,本文采用改良后的 Laplacian变形算子[5],获得更佳的锐化效果。典型的算子模板如式(1)所示,考虑了在图像45°和135°上的效果。
由于 Laplacian算子对噪点敏感,在锐化之前首先利用高斯平滑对图像进行降噪处理,然后用式(1)模板进行二阶微分运算,将得到的拉普拉斯图像与原图像根据式(2)叠加,获取锐化后的图像如图5所示。
图5 锐化后的图像
2.2 阈值分割与孤立点消除
为了提高算法效率,减少不必要的数据运算,首先需要设定每个“月牙”所在区域的ROI,如图6所示,4个白色矩形框为设定的ROI。由于相机触发采集的图像中胶囊的位置固定,可保证“月牙”包含于ROI中,复制ROI图像后,算法只需针对“月牙”所处的区域进行处理。
图6端部ROI示意图
少量的反光让背景图像对“月牙”后续的分析造成影响,需单独提取出“月牙”。为了使“月牙”与背景分离,需采用阈值分割进行处理,但胶囊端部出现缺陷时,可能出现“月牙”亮度不均匀的情况,并且胶囊槽上下各有小部分冗余的空间,使胶囊在槽中的位置有所变化。本文对最有代表性的局部自适应阈值法 Bernsen算法[6]进行修改,使之可以用于从较暗的背景中分割出亮的前景,修改前后的公式分别如式(3)、式(4)所示:
根据式(4)对锐化后的图像局部自适应阈值进行分割得到图7,其中窗口大小为25×25,参数C=22。
图7 “月牙”的分割结果
从图7可以看出,由于底板、胶囊槽边框及胶囊本身有轻微的反光,在“月牙”周围仍然存在一些干扰。若采用形态学运算腐蚀或开运算进行处理,虽能去除周围的小区域,但因为“月牙”自身区域面积较小,其形状将被严重破坏,如图8所示。
图8 形态学处理后的“月牙”
因此本文采用轮廓提取算法获取图像中所有连通域的轮廓,并计算每个轮廓包围的面积。考虑到缺陷的“月牙”自身因为断裂的出现而分为几个部分,所以通过设定一个小数值的阈值,将面积小于该阈值的区域去除,保留大于阈值的区域,即“月牙”本身,得到图 9。
图9 去除干扰后的“月牙”
3 基于K邻域链码的拐点检测
拐点定义为改变曲线上、下走势的点。拐点检测算法可分两类,一类是利用模板处理图像中所有像素,依据结果确定拐点[7];另一类通过搜索区域边缘曲率最大值来寻找拐点[8]。后一种方法实现较为简单,准确度较高。正常的“月牙”具有两个拐点,而缺陷的“月牙”由于边缘的形变较多,拐点数将超过两个,通过拐点检测算法检测“月牙”边缘拐点,统计其数量即可判断是否存在缺陷。
本文将K邻域链码用于拐点检测,相比于8邻域链码,其方向量化精度有所提高,并且具有平滑作用,避免边界噪声的干扰,可准确计算边缘曲率。
设“月牙”边缘由 n个像素 pi(i=1,2,…,n)组成,c(k,i)和 ei为第 i个边缘像素的链码和曲率,在某一邻域内,像素 p(i+k/8)相对于 pi的方向可表示为 c(k,i+k/8)。像素pi的K邻域如图10所示,中心像素的外围第1、2、3圈分别为 8邻域、16邻域、和24邻域,用数字 0,1,2,…,k-1表示邻域方向。实际中存在两种特殊的情况:
(1)像素 p(i+k/8)不在的 K 邻域内,但在 pi的 k-8m内,其中m=1,2,…,且k-8m≥8,则用式(5)来代替;
c(k,i+k/8)≈c(k-8m,i+k/8)×k/(k-8m)(5)
(2)若像素 p(i+k/8)不在 pi的任何一个邻域内,表明p(i+k/8)和 pi为同一个像素,且意味着像素 p(i+k/16)为拐点,标记 p(i+k/8)和 pi,在后续处理中此标记可表明在点 p(i+k/16)位置上有曲率突变。此时,c(k,i+k/8)不参与曲率的计算,可以令 c(k,i+k/8)=c(k,i+k/8-1)。
图10 K邻域链码示意图
根据K邻域链码描述可得边缘像素pi处的切线角度的改变量θi为:
通过式(6)得到[0,π]范围内的曲率为:
为了扩大边缘上各点的曲率之差,使之易于比较,采用式(8)进行计算。
对二值图像中的“月牙”进行拐点检测,统计边缘曲线上的轮廓数量,即可实现缺陷判断。
4 实验结果
从生产线上选用不同颜色的胶囊作为测试样本,主要检测顶凹和梅花头两种缺陷,端部正常时与端部缺陷时的检测结果如图11所示,图形“×”表示所找到的拐点所在位置,可以看出图 11(a)中正常的空心胶囊端部观点数目为 2个,11(b)端部缺陷的空心胶囊拐点数目远大于2个。可见该端部缺陷检测算法具有良好的效果。在实际测试中,本算法在 Intel Core i7 4770k的处理平台下耗费的总时间平均为5.4 ms,实时性较好。
图11 拐点检测结果
选用5种不同颜色的胶囊进行端部缺陷检测实验,检测完成后分别从成品和次品中抽样检测,统计每种颜色胶囊的漏检率和误检率,部分抽样结果如表1所示。本算法漏检率和误检率均在2%~9%之间。
表1 5种颜色空心胶囊抽样结果
5 结论
本文提出了一种较为特殊的端部缺陷检测方案,利用特定光源照射下胶囊端部反射的“月牙”图形进行后续的处理和判别。实验结果证明,本文提出的缺陷检测算法实时性好,漏检率、误检率较低,算法健壮性较强且效率较高,有一定的应用价值。
[1]ISLAM M J,AHMADI M,SID-AHMED M A.Image processing techniques for quality inspection of gelatin capsules in pharmaceutical applications[C].10th International Conference on Control,Automation,Robotics and Vision,ICAR-CV 2008,IEEE,2008:862-867.
[2]KARLOFF A C,SCOTT N E,MUSCEDERE R.A flexible design for a cost effective,high throughput inspection system for pharmaceutical capsules[C].IEEE International Conference on Industrial Technology,ICIT 2008,IEEE,2008:1-4.
[3]MURAI T,MORIMOTO M,FUJII K.A visual inspection system for medical capsules[C].Systems,Man,and Cybernetics(SMC),IEEE,2012:1433-1437.
[4]万水龙,刘进,余彪,等.基于阈值函数和 TV模型的印章图像去噪[J].微型机与应用,2014,33(2),46-49.
[5]张聪,桂志国.噪声控制的图像非线性锐化方法[J].计算机工程与应用,2011,47(4):154-156.
[6]BERNSEN J.Dynamic thresholding of grey-level images[C].International Conference on Pattern Recognition,1986:1251-1255.
[7]尚振宏,刘明业.二值图像中拐点的实时检测算法[J].中国图象图形学报,2005,10(3):295-300.
[8]SARFRAZ M,MASOOD A,ASIM M R.A new approach to corner detection[M].Springer Netherlands:Computer Vision and Graphics,2006.
Capsule end face defect detection algorithm based on K-neighborhood chain code inflection point
Liu Xiaoxing1,Wu Zhe2,Zheng Lixin2,Zhou Kaiting1
(1.College of Information Science and Engineering,Huaqiao University,Xiamen 361021,China;2.College of Engineering,Huaqiao University,Quanzhou 362021,China)
In view of difficulty in images acquisition of vacant capsules end face defects,a special way lighting mode of capsules end face defects imaging was proposed.Firstly image sharpening,improved local adaptive threshold,and contour extraction were used for pre-processing.And according to problems of high missing rate and unsatisfactory detection of capsules end face defects,K-neighborhood chain code for inflection point detection algorithm was proposed to calculate out the number of inflection point in capsule end face defects in images and realize defect detection.The experimental results show that the detection algorithm is of good real-time performance,and the missing rate and error rate of common five color capsules is 2%~9%.
K-neighborhood chain code;vacant capsules;end defect detection
TP391.4
A
1674-7720(2015)24-0053-03
刘孝星,吴哲,郑力新,等.基于K邻域链码拐点的胶囊端面缺陷检测算法[J].微型机与应用,2015,34(24):53-55,59.
2015-08-18)
刘孝星(1987-),男,硕士研究生,主要研究方向:智能技术与自动化装置,机器视觉与模式识别。
吴哲(1991-),女,硕士研究生,主要研究方向:光电信息检测与智能计算,模式识别。
郑力新(1967-),通信作者,男,博士,教授,主要研究方向:工业自动化技术,人工智能。E-mail:1275373176@qq.com。
福建省科技厅项目(2013H2002)