基于方向空间的冰勺毛刺缺陷在线检测方法研究

2021-10-23 13:16邹斯逸宋辉
电子测试 2021年18期
关键词:毛刺像素点线段

邹斯逸,宋辉

(沈阳工业大学中央校区,辽宁沈阳,110000)

0 引言

冰勺是人们食用雪糕时所需要使用的工具。由于受木材本身材质的影响以及生产冰勺的过程中的工艺问题,会使得冰勺表面出现缺陷,影响产品的美观以及产生安全隐患。虽然人工智能和机器视觉等先进检测技术已逐渐成熟,但肉眼缺陷检测仍占很大比重,在中小企业中广泛存在。

毛刺通常出现在冰勺的边缘,表现为冰勺边缘多出来一撮木材,由于冰勺在使用雪糕过程中会接触到舌头,可能会对舌头造成划伤,因此属于严重缺陷。如图1 中红框所示,下面介绍两种提取冰勺毛刺的方法。

图1 冰勺毛刺缺陷

1 基于形态学的毛刺检测算法

冰勺的毛刺处于冰勺的边缘,基于这一特性,对冰勺区域采用形态学的处理,将冰勺边缘提出出来,在此基础之上再进行筛选,去除干扰区域,最终提取到毛刺区域,具体步骤如下:

(1)对冰勺图像进行预处理,冰勺在采集到的图像中占大概总像素的一半左右,通过截取包含冰勺的部分图像,能够减少算法运行的时间。

(2)使用全局阈值分割提出冰勺区域。全局阈值的表达式如(1)所示,f(x,y)是图像像素点的灰度值,经过观察支出型毛刺灰度直方图并不断测试,将阈值设为固定值25-255。

(3)接着对选中的区域进行连通域计算。连通域是指计算一个区域的连通分量,即判断一个元素是否和区域相邻,如果是,则属于同一个区域。对于邻域的判断,一般是采用4邻域和8 邻域,4 邻域是指一个元素其上下左右相邻的元素都算其邻域,而8 邻域则是多了左上、右上、左下、右下。这里采用8 邻域,8 邻域对前景的计算效果较好。

(4)连通域计算之后需要过滤掉噪声区域,由于冰勺区域相较于其他连通域面积无限大,因此选择将最大面积作为筛选条件,只保留冰勺区域。

(5)然后对冰勺区域进行形态学处理,提取毛刺候选区域。形态学操作就是基于形状的一系列图像处理操作。这里采用开运算,结构元素为半径10 的圆。开运算是先腐蚀运算,再膨胀运算。选择开运算之后再和原有区域进行做差,这样可以得到冰勺外部区域的信息,其中包含毛刺区域。

(6)对毛刺候选区域进行筛选,提取毛刺。提取毛刺主要会收到冰勺链条尺反光的影响,根据链条尺区域的平均灰度值低于毛刺区域的特征,计算各个候选区域的灰度均值,根据灰度均值的大小实现毛刺的提取。

2 基于方向空间的图像分割

2.1 方向空间的定义

数字图像可以理解为笛卡尔三维坐标系空间中的灰度分布曲面,其中X-Y 轴所构成的平面反映的是图像像素的位置坐标,Z 轴的数值反映的是图像的灰度值。而三维灰度分布曲面所在的空间称为灰度空间。

在与X-Y 轴平面垂直的任意平面内,与灰度分布曲面相交的部分是一条波动的曲线,称作灰度分布曲线。上述垂直平面与X 轴的夹角定义为灰度分布曲线的方向,方向灰度分布曲线的集合构成了方向灰度分布曲面,方向灰度分布曲面所在的空间称为方向灰度空间,简称方向灰度空间。

沿方向灰度分布曲线,可以求取凸线段和凹线段的幅值,幅值点所在的空间称为方向幅值空间,简称方向幅值空间。

沿方向灰度分布曲线,可以求取相邻像素点的灰度变化值,或称为梯度,由此构成方向梯度分布曲线。方向梯度分布曲线的集合构成了方向梯度分布曲面。方向梯度分布曲面所在的空间称为方向梯度空间,简称方向梯度空间。

在方向梯度空间提取的边界像素点的集合,构成了方向的边界曲线,方向边界曲线所在的空间称为方向边界空间,简称方向边界空间。需要说明的是,方向的边界曲线不是指边界曲线的方向为方向,而是指在方向梯度空间提取的边界曲线。

2.2 基于凹凸线段的边缘定位

在X 方向和Y 方向对冰勺灰度图像进行遍历,得到冰勺灰度图像中每一个像素的灰度值,存放进数组中。

无论是灰度分布曲线,还是梯度分布曲线,都存在凸线段和凹线段。对于灰度分布曲线而言,凸线段反映了图像中较亮的区域,通过寻找局部灰度极大值,就可以找到凸线段;凹线段反映了图像中较暗的区域,通过寻找局部灰度极小值,就可以找到凹线段。对于梯度分布曲线而言,如果梯度具有方向性,凸线段和凹线段的极大值反映了图像中边界所在的位置;如果梯度不具有方向性,凸线段的极大值反映了图像中边界所在的位置。

对于一维数据而言,求取极值点并不困难,以下给出如下的一种寻找极大值的解决方案,寻找极小值的方法与其类似,只是方向相反,不在此重复列出:

(1)对于只有一个极大值的情况,如果当前像素点的灰度值分别大于前一个像素点和后一个像素点的灰度值,则当前点为极大值点。

(2)对于只有两个极大值相邻的情况,如果当前像素点与后一个像素点的灰度值相等,并且当前像素点的灰度值分别大于前一个像素点和后两个像素点的灰度值,则当前点和后一个像素点均为极大值点。

(3)对于两个以上灰度极大值点相邻的情况,判断方法同上,直到满足极大值条件为止。

将之前遍历图像得到的灰度值进行判定,寻找极值,并存放在灰度极值数组中,在此数组中,将极值点的值赋值为对应该图像像素点的灰度值,而将其余点的数值赋值为0。

对于冰勺而言,在Y 方向上只存在两个边缘,即上边缘和下边缘,对应在冰勺灰度空间中为灰度变化剧烈的部分,而这部分灰度突变是极小值随着像素点变化为极大值,也就是灰度曲线从凹区域变化为凸区域。针对这种情况,在算法实现过程中,将边界定义为满足从凹区域到凸区域的第一个梯度大于阈值的点,阈值的设定是基于对冰勺图像测试图库进行测试得来。

2.3 基于幅值空间的直方图阈值

根据灰度分布曲线的凸线段和凹线段的高度,我们能够直观感受到它们与图像中对比度的对应关系。由于凸线段和凹线段通常情况下是不对称结构,如何来度量它们的高度。以下给出一种度量凹线段和凸线段高度的定义,引入绝对幅值和相对幅值的概念。以下仅以凸区域为例进行说明。

设f(J)表示凸区域灰度极大值点J的灰度值;

f(J-1)表示与当前凸区域相邻的前一个凹区域灰度极小值点(J-1)的灰度值;

f(J+1)表示与当前凸区域相邻的后一个凹区域灰度极小值点(J+1)的灰度值;

如果f(J-1) <f(J+1),则令

fr(J) =f(J) -f(J-1)表示J点的凸区域相对幅值;

fa(J) =f(J) -f(J+1)表示J点的凸区域绝对幅值。

否则,令

fr(J) =f(J) -f(J+1)表示J点的凸区域相对幅值;

fa(J) =f(J) -f(J-1)表示J点的凸区域绝对幅值。

在寻得了图像的极值以及标记边界点之后,需要进行幅值的计算,由相对幅值和绝对幅值的定义可知,需要关注的信息是相对幅值,反映在图像中是对比对明显的像素区域。因此,对灰度极值数组的值进行操作,相邻极值之间做差,得到的数值存进幅值数组中,接着遍历幅值数组,当幅值为0 时跳过当前像素点;当幅值不为0 时,以当前像素点为基准,继续寻找不为0 的幅值,接着对两者进行比较,将较大的值定义为相对幅值。

在求得冰勺相对幅值之后,需要在幅值数组中寻找到检测所需要的即边界,从上文可知,对于冰勺而言,边缘灰度变化剧烈,反映在冰勺灰度曲线中则是极其陡峭的曲线,而其对应的幅值则是远大于幅值数组中其余的值。因此,根据这一情况来进行边界的判定。

对相对幅值数组进行运算,以幅值为横坐标,以幅值空间中该幅值所出现的次数作为纵坐标,建立直方图,如图2 所示。

图2 相对幅值直方图

从图中可以看出,随着幅值的增加,个数随之减少,而幅值较大的点则是对应的边界点,根据此特性,尝试选取阈值点,该点满足附近某个区间内其余相对幅值的个数为0。

基于方向空间的图像分割是在非常小的尺度下进行,对于毛刺这类边缘缺陷而言,当冰勺边缘存在毛刺时,会使得提取的边缘存在断点,可以根据这个特点对毛刺进行判定。

3 实验结果及分析

为了检测算法对于毛刺缺陷检测的效果,根据采集到的冰勺毛刺缺陷图库对算法进行测试。

基于形态学算法对毛刺图库进行检测,共测试图片116张,漏检30 张,漏检率25.9%。结果显示,此种算法对于毛刺漏检效果不理想,主要原因在于部分毛刺缺陷较小,经过形态学处理后,会将毛刺缺陷区域丢失掉,造成漏检,毛刺提取结果如图3 所示。

图3 毛刺提取结果

基于方向空间的图像分割算法对毛刺图库进行检测,共测试图片100 张,漏检5 张,检测率为95%,检测结果如图4所示。

图4 毛刺检测结果

根据以上检测算法结果对比,基于方向的图像分割算法在原形态学分割毛刺算法检测率74.1%基础之上提升了20.9%,检测率达到95%。

4 结论

针对人工检测冰勺缺陷不足的问题,提出了对94 型冰勺毛刺缺陷的在线检测方法,基于形态学的算法和基于方向空间的图像分割算法。其中形态学算法较为简单,但是漏检率相对较高,而基于方向空间的图像分割算法弥补了漏检率较高的问题,具有一定的实用价值。

猜你喜欢
毛刺像素点线段
阀芯去毛刺工艺研究
画出线段图来比较
基于局部相似性的特征匹配筛选算法
一种铸铁钻孔新型去毛刺刀具的应用
一种筒类零件孔口去毛刺工具
怎样画线段图
我们一起数线段
数线段
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密