APP下载

冰勺毛刺缺陷检测方法研究

2024-09-04李鸿宇苑玮琦

电脑知识与技术 2024年20期

关键词:灰度分布曲线;组合线段;冰勺;毛刺缺陷检测

0 引言

冰勺是一种食用盒装冰淇淋等冷饮类食品的木质工具[1]。其在制作的过程中可能会出现毛刺缺陷。冰勺的毛刺可能会划伤使用者的口舌,严重威胁人身健康。目前很多厂家对冰勺进行缺陷检测仍然以人工为主,人工目测的效率和准确率已经无法满足现代工业的需求。在工业现场,基于机器视觉的缺陷检测系统可在一定程度上提高生产检测效率。目前针对毛刺缺陷的检测中,传统的毛刺特征提取有一定的局限性,容易丢失信息。贾国靖[2]利用边缘检测法提取毛刺线条并使用轮廓合并的方法将提取的毛刺线条合并在一起,并通过区域生长法区分毛刺和矿物线这两种缺陷。李绍丽[3]提出将基于阈值分割方法的边缘检测和基于Canny算子的边缘检测法两种边缘检测模型相结合的检测方法。由于毛刺出现在冰勺边缘,对此有学者提出了一系列轮廓提取算法来检测毛刺,如采用基于布朗运动的线轮廓提取方法[4]、基于计算几何的轮廓提取算法[5]。综上所述,对于毛刺检测,现有的算法可能会造成误检甚至漏检。

1 冰勺毛刺检测算法原理

冰勺毛刺缺陷通常出现在冰勺的腰部位置,由于冰勺的木质纹理沿着X方向分布,毛刺缺陷的分布也符合这一特点,所以沿着冰勺正面图像的Y方向的进行毛刺检测会大大提高检测准确性并减小算法复杂度(如图1所示)。

灰度分布曲线可以看作由多个凸线段交替组成。凸线段是由两个灰度极小值点之间的点组成的曲线,该线段内包含一个灰度极大值点,且该灰度极大值点及其附近的像素代表图像中的亮区域。

灰度极值点的定义为:若当前像素点的灰度值大于其前一个像素点的灰度值和后一个像素点的灰度值,则当前的像素点为灰度极大值点。

如图2所示为某个冰勺正面某列的部分灰度分布曲线,其中,f (a)为凹线段的极小值,f (b)、f (c)为凹线段的极大值。

定义当中幅值大的为相对幅值fr (a),幅值小的为绝对幅值fa (a),如下式所示:

fr (a) = f (c) - f (a) (1)

fa (a) = f (b) - f (a) (2)

毛刺位置有较大的相对幅值特征,所以可以通过提取毛刺位置的相对幅值来实现对毛刺的检测。

2 冰勺毛刺缺陷检测算法

2.1 冰勺轮廓提取

冰勺轮廓提取是冰勺毛刺缺陷检测算法的关键步骤,由于不同的轮廓提取算法决定了检测的速度与精确度,因此轮廓提取这一步骤至关重要,直接影响毛刺缺陷的标记与判定。毛刺位于冰勺边缘,有的毛刺支出程度较大,也即意味着这些毛刺末端的支出部分位于背景暗区域中。判定条件如下:

式中,m 为判定独立凸线段的幅值阈值,k 为判定独立凸线段的幅值差的阈值。

在冰勺轮廓位置,图像灰度呈现突变,凹凸线段的相对幅值能够反映冰勺轮廓位置的灰度突变。因此提出组合幅值的概念,对于贴近冰勺边缘的毛刺根部而言,从背景的暗区域到冰勺表面的亮区域之间往往呈现出过渡线段上存在凸线段的特点,可以看作由两个或多个凸线段共同构成过渡线段,因此采用一种组合线段的方法,当相对幅值fr (a)和fr (b)都无法代表该边缘处的幅值时,将两个凸线段组合后的幅值fr (c)作为该处幅值。

组合幅值的计算方法如式(5) 所示:

其中,f (a)为组合凹线段的极大值,f (c)为组合凹线段的极小值。

用上述方法可以将毛刺支出部分和轮廓部分对应的线段提取出来。

2.2 冰勺轮廓像素检测

筛选出毛刺支出部分和轮廓部分对应的线段后,需要对二者进行标记,即确定毛刺支出部分和轮廓部分对应的像素位置。毛刺的像素位置确定为各自凸线段的灰度极大值点,直接在各自对应的线段集合中标记对应的像素点即可。

传统的轮廓标记方法中有标记最外侧梯度极大值的像素点的方法,该方法可以将灰度变化剧烈、对比度明显的像素点标记出来,符合轮廓处的灰度变化特点,该方法的思路为:若集合{x1,x2,x3,...,x } n 为某过渡线段上的像素点,每个像素点对应的灰度值用f (xi )(i = 1,2,3,...,n) 表示,则该过渡线段上梯度的计算方法如式(6) 所示,梯度构成的集合为 {g1,g2,g3,...,g } n - 1 。

在梯度构成的集合中,如果某梯度值gi 满足式(7)和式(8) ,则该梯度值为该过渡线段上的梯度极大值gi max,对应的像素点为梯度极大值点,优先选择靠近外侧的梯度极大值点作为轮廓标记像素点。

对于无缺陷的冰勺轮廓,选取大于过渡线段极小值点一定灰度级的像素点,这种方法不同于传统的标记梯度极大值的像素点的方法,对于目标与背景之间的明暗关系更为敏感。该方法的思路为:若集合{x1,x2,x3,...,x } n 为某过渡线段上的像素点,每个像素点对应的灰度值用f (xi )(i = 1,2,3,...,n) 表示,则该过渡线段上每个点与极小值点的灰度差的计算方法如式(9) 所示,灰度差构成的集合为{d1,d2,d3,...,d } n - 1 。

当某个点与极小值点的灰度差di 满足di 大于等于所设阈值Td 即式(10) 时,将点xi 作为冰勺轮廓像素位置。

结合现有的标记方法和实际情况,当过渡线段上有凸线段出现时,通过测试图库,提出一种分线段进行标记的方法,即将凸线段前后的上升沿分为线段1和线段2,比较线段1和线段2的梯度,判断整个过渡线段上最大的梯度位于哪个线段上,当选择线段以后在该线段上进行标记,标记方法仍然使用大于极小值点某个灰度级的点,简而言之就是利用梯度选择,利用灰度值标记。

该方法效果较好,可以将链条齿的标记点与冰勺边缘的标记点分开,可以根据标记后的特征对标记点分类,从而达到去除链条齿的目的。

如图3所示为去除链条齿的结果,可以看出该方法效果较好,可以在保留冰勺轮廓标记点的前提下将链条齿的标记点去除。

2.3 冰勺毛刺缺陷检测

通过观察对比毛刺标记结果图可知,支出型毛刺的标记结果中,整个轮廓被分为两段或多段,前面对于毛刺支出部分的标记结果始终位于另一段轮廓的外侧,因此逐列遍历标记后的结果图,如果存在标记为支出部分的点位于标记为轮廓部分的点的外侧,即上边缘支出部分标记点Y方向的坐标值小于轮廓部分标记点Y方向的坐标值而下边缘支出部分标记点Y方向的坐标值大于轮廓部分标记点Y方向的坐标值时,认为该处存在支出型毛刺。

3 算法测试与结果分析

为了验证算法对冰勺毛刺缺陷检测的有效性,使用冰勺在线检测系统采集冰勺正面图像建立图库,共采集319张,均能正确检出,未出现漏检,大大降低了误检率和漏检率(如图4所示)。

上述测试结果表明,本算法对冰勺毛刺缺陷检测准确率较高,漏检率低,适合用于冰勺生产线上的在线检测。

4 结束语

本文针对冰勺毛刺特征进行分析,并设计出一种冰勺毛刺缺陷检测方法。经过实际测试,结果表明本研究的方法能够有效检测出冰勺毛刺,对冰勺毛刺检测有一定的实用价值。