《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于K邻域链码拐点的胶囊端面缺陷检测算法
基于K邻域链码拐点的胶囊端面缺陷检测算法
2015年微型机与应用第24期
刘孝星1,吴 哲2,郑力新2,周凯汀1
(1.华侨大学 信息科学与工程学院,福建 厦门 361021; 2.华侨大学 工学院,福建 泉州 362021)
摘要: 针对目前空心胶囊端面缺陷图像采集困难等问题,提出了一种特殊照明的方式对胶囊端部进行成像。将图像锐化、改进后的局部自适应阈值、轮廓提取用于胶囊端面图像的预处理,并针对胶囊端面缺陷漏检率高、检测效果差等问题,提出了一种基于K邻域链码的拐点检测算法,统计出胶囊端面缺陷图像中的拐点个数并做出缺陷判别。实验结果证明,该检测算法实时性好,对常见的5种颜色的胶囊漏检率和误检率均控制在2%~9%。
Abstract:
Key words :

  摘  要: 针对目前空心胶囊端面缺陷图像采集困难等问题,提出了一种特殊照明的方式对胶囊端部进行成像。将图像锐化、改进后的局部自适应阈值、轮廓提取用于胶囊端面图像的预处理,并针对胶囊端面缺陷漏检率高、检测效果差等问题,提出了一种基于K邻域链码的拐点检测算法,统计出胶囊端面缺陷图像中的拐点个数并做出缺陷判别。实验结果证明,该检测算法实时性好,对常见的5种颜色的胶囊漏检率和误检率均控制在2%~9%。

  关键词: K邻域链码;空心胶囊;端面缺陷检测

0 引言

  空心胶囊的缺陷检测是药品质量监管中不可或缺的一道工序。空心胶囊轻微的表面缺陷会影响其外观,严重的表面缺陷可能造成充填机停机或使胶囊失去容器特性,因此需要对胶囊表面缺陷进行检测。端面缺陷是常见的一种空心胶囊缺陷,ISLAM M J等人经过Otsu算子分割、轮廓跟踪算法拟合端部的轮廓,得到两个圆的半径,判断半径是否在设定范围之内来判断胶囊端部是否存在缺陷[1]。KARLOFF A C等人利用了3个相机进行拍摄,实现360°的胶囊柱面图像采集[2]。本文提出了一种较特殊的端部缺陷检测方案,利用特定光源照射下胶囊端部反射的“月牙”图形进行后续的处理和判别。通过图像增强使“月牙”图像的边缘轮廓更为清晰,再采用图像分割使端部的“月牙”图形从背景中分离出来,对“月牙”的轮廓进行提取与筛选,并提出了一种基于K邻域链码的拐点检测算法统计轮廓拐点数量,从而判别端部是否存在缺陷。

1 端部缺陷检测方案

  1.1 端部缺陷类别

  常见的胶囊端部缺陷主要分为梅花头和顶凹这两种缺陷,如图1所示。

001.jpg

  1.2 照明结构设计

  在检测胶囊端部缺陷时,考虑到胶囊两头为半球面,相机垂直拍摄,仅仅依靠背光时端部存在盲区,无法看清端部的情况。实践发现,两端各设置一个平行光源进行正面照明,会有一部分反光进入上方的相机,观察反射光是否异常就可以知道端部是否存在缺陷。具体的光源结构设计及采集的图像分别如图2、图3所示。

002.jpg

  1.3 端部缺陷检测算法设计

  胶囊两端各有一平行光源,光线照射到胶囊端部并反射进相机中,由于胶囊表面较为光滑且两端为半球形,因此反射光在相机采集到的图像中呈现“月牙”的形状。当胶囊的端部正常时,图像中的“月牙”形状完整,亮度均匀,且“月牙”的轮廓相对平滑;当胶囊的端部存在缺陷时,“月牙”的形状将会发生改变,由于不再光滑的半球面使“月牙”的亮度变得不均匀,导致其轮廓的平滑度降低,产生许多不规则凹凸,甚至出现断裂的情况,如图4所示。

003.jpg

  利用端部正常时的“月牙”与端部存在缺陷时的“月牙”之间的各种差异,通过检测“月牙”的形状就可以判断胶囊端部是否异常。

2 预处理

  2.1 图像增强

  “月牙”图像的检测主要依赖于其边缘平滑度的分析,当端部存在缺陷时,“月牙”图像可能发生虚化,图像增强算法增强“月牙”边缘的对比度,使边缘更加清晰。图像锐化即边缘增强处理,可以使图像的边缘更为清晰,分为频域高通滤波法和空间域微分法[3-4]。空间域微分法直接对图像像素进行操作,免去了频域与空间域之间的转换,本文采用改良后的Laplacian变形算子[5],获得更佳的锐化效果。典型的算子模板如式(1)所示,考虑了在图像45°和135°上的效果。

  1.png

  由于Laplacian算子对噪点敏感,在锐化之前首先利用高斯平滑对图像进行降噪处理,然后用式(1)模板进行二阶微分运算,将得到的拉普拉斯图像与原图像根据式(2)叠加,获取锐化后的图像如图5所示。

004.jpg

  2.jpg

  2.2 阈值分割与孤立点消除

  为了提高算法效率,减少不必要的数据运算,首先需要设定每个“月牙”所在区域的ROI,如图6所示,4个白色矩形框为设定的ROI。由于相机触发采集的图像中胶囊的位置固定,可保证“月牙”包含于ROI中,复制ROI图像后,算法只需针对“月牙”所处的区域进行处理。

  少量的反光让背景图像对“月牙”后续的分析造成影响,需单独提取出“月牙”。为了使“月牙”与背景分离,需采用阈值分割进行处理,但胶囊端部出现缺陷时,可能出现“月牙”亮度不均匀的情况,并且胶囊槽上下各有小部分冗余的空间,使胶囊在槽中的位置有所变化。本文对最有代表性的局部自适应阈值法Bernsen算法[6]进行修改,使之可以用于从较暗的背景中分割出亮的前景,修改前后的公式分别如式(3)、式(4)所示:

  34.png

  根据式(4)对锐化后的图像局部自适应阈值进行分割得到图7,其中窗口大小为25×25,参数C=22。

005.jpg

  从图7可以看出,由于底板、胶囊槽边框及胶囊本身有轻微的反光,在“月牙”周围仍然存在一些干扰。若采用形态学运算腐蚀或开运算进行处理,虽能去除周围的小区域,但因为“月牙”自身区域面积较小,其形状将被严重破坏,如图8所示。

006.jpg

  因此本文采用轮廓提取算法获取图像中所有连通域的轮廓,并计算每个轮廓包围的面积。考虑到缺陷的“月牙”自身因为断裂的出现而分为几个部分,所以通过设定一个小数值的阈值,将面积小于该阈值的区域去除,保留大于阈值的区域,即“月牙”本身,得到图9。

007.jpg

3 基于K邻域链码的拐点检测

  拐点定义为改变曲线上、下走势的点。拐点检测算法可分两类,一类是利用模板处理图像中所有像素,依据结果确定拐点[7];另一类通过搜索区域边缘曲率最大值来寻找拐点[8]。后一种方法实现较为简单,准确度较高。正常的“月牙”具有两个拐点,而缺陷的“月牙”由于边缘的形变较多,拐点数将超过两个,通过拐点检测算法检测“月牙”边缘拐点,统计其数量即可判断是否存在缺陷。

  本文将K邻域链码用于拐点检测,相比于8邻域链码,其方向量化精度有所提高,并且具有平滑作用,避免边界噪声的干扰,可准确计算边缘曲率。

008.jpg

  设“月牙”边缘由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)。

  根据K邻域链码描述可得边缘像素pi处的切线角度的改变量i为:

  1II29NZI9M4B1CG}]PR$`L8.jpg

  为了扩大边缘上各点的曲率之差,使之易于比较,采用式(8)进行计算。

 %E{X@TP8X%[4K~AWPI6A8GB.png

  对二值图像中的“月牙”进行拐点检测,统计边缘曲线上的轮廓数量,即可实现缺陷判断。

4 实验结果

009.jpg

  从生产线上选用不同颜色的胶囊作为测试样本,主要检测顶凹和梅花头两种缺陷,端部正常时与端部缺陷时的检测结果如图11所示,图形“×”表示所找到的拐点所在位置,可以看出图11(a)中正常的空心胶囊端部观点数目为2个,11(b)端部缺陷的空心胶囊拐点数目远大于2个。可见该端部缺陷检测算法具有良好的效果。在实际测试中,本算法在Intel Core i7 4770k的处理平台下耗费的总时间平均为5.4 ms,实时性较好。

  选用5种不同颜色的胶囊进行端部缺陷检测实验,检测完成后分别从成品和次品中抽样检测,统计每种颜色胶囊的漏检率和误检率,部分抽样结果如表1所示。本算法漏检率和误检率均在2%~9%之间。

010.jpg

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, ICARCV 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.


此内容为AET网站原创,未经授权禁止转载。