杨 燕,孙智权,陈 震,赵不贿
(1.江苏大学 电气信息工程学院,镇江212013;2.江苏大学 工业中心,镇江212013;3.泰州职业技术学院,泰州225300)
纽扣电池又称扣式电池, 是指形状如纽扣、按钮、硬币、豆粒等小型电池。 因为体型较小,所以纽扣电池广泛应用于各种微型电子产品中。 在生产制造过程中,纽扣电池因生产工艺本身的不足或其它偶然因素,会出现诸如混料、漏液、气胀、金属丝、破壳破盖、密封圈异常、钢印、网点异常、斑点、脏污、划伤等缺陷,因而产生次品。
随着科技水平的进步,人们对纽扣电池的生产质量要求也越来越高,而生产过程中产生的缺陷将严重影响纽扣电池的质量,给消费者带来较差的消费体验,因此有必要对纽扣电池缺陷检测进行研究。
在早期, 对纽扣电池的检测基本采用人眼观测,不仅工作效率低,而且受个人思维、外部环境等不确定因素的影响,导致检测的结果没有统一的标准。 以基于数字图像处理的机器视觉技术能够解决这些问题,但是由于待测图像数据量较大,无法满足工业生产的实时性要求。 对此,研究了适合于纽扣电池机器视觉划痕检测的算法,在保证检测精度的前提下,简化算法,以提高检测效率。
为了确保将纽扣电池上的划痕完全拍摄出来,经多种方案尝试比较,图像采集系统采用工业面阵相机配合同轴光源的方法,在适当的角度下,拍摄出纽扣电池及其表面缺陷的图像。 纽扣电池表面划痕缺陷如图1 所示。
图1 纽扣电池表面划痕缺陷图像Fig.1 Scratch defect image of button battery surface
图1为带有表面划痕缺陷的纽扣电池图像。 图中不仅划痕的对比度很低,而且纽扣电池上的字母对划痕检测产生了干扰, 影响了检测的准确率,这使得划痕检测具有很大的难度。 为此,在提取划痕之前拟屏蔽字体,以提高划痕检测的准确率。
针对纽扣电池表面划痕缺陷的检测,采用的图像处理方法包括模板匹配、图像平滑、图像分割以及基于梯度特征的区域生长法。
先将纽扣电池上的字体制作成模板,再将模板与其它纽扣电池进行模板匹配,从而屏蔽纽扣电池的字体,为后续的划痕检测奠定基础。 通过阈值分割的方法提取划痕缺陷,再用基于梯度的区域生长的方法将断断续续的缺陷连接起来, 以减小漏判率,算法流程如图2 所示。
图2 算法流程Fig.2 Algorithm flow chart
通过图像采集系统所获取的图像并不十分理想,仍不可避免地存在噪声,因此在特征提取之前需要对屏蔽字体后的图像进行处理。 在此采用高斯滤波器抑制噪声,其运算速度和平滑效果均能满足检测要求,采用模板大小为3×3 的高斯滤波器进行图像平滑处理[1]。 其算法为
式中:σ 为高斯函数分布系数;x,y 分别为行坐标、列坐标。
基于形状的模板匹配是模板匹配技术中一种常用的方法,主要是根据已知模板图像的形状特征,在另一幅图中找出已知模板图像[2]。 该系统利用模板匹配的定位功能确定纽扣电池字母在图像坐标系中的位置,包括坐标、旋转角度、缩放比等系数。
为提高匹配效率,该系统采用金字塔算法[3]以达到快速运行的目的。 图像金字塔模型如图3 所示,从底层开始,每增加1 层,图像的边长变为原来的1/2,像素点数变为原来的1/4。 图像金字塔算法将顶层的结果映射到底层,在匹配分值较高的区域搜索,可以减小匹配范围[4]。 匹配的效果如图4所示。
图3 图像金字塔模型Fig.3 Image pyramid model
图4 匹配后的效果Fig.4 Matching effect
将模板匹配出来的字母去除,再用区域填充法[5]进行填充,从而达到屏蔽字体的目的。 处理后的效果如图5 所示。
图5 屏蔽字体后的效果Fig.5 Effect of masking fonts
2.4.1 阈值分割法
阈值分割法是图像处理中应用最为广泛的一种方法。 常见的阈值分割法有迭代法、最大熵法[6]、OSTU 算法[7]等。 在此着重研究OSTU 算法。
OSTU 算法又称最大类间方差法, 根据灰度值特征确定最佳的阈值,将图像分为背景与目标2 个部分。 OSTU 算法的步骤如下:
步骤1计算图像中每个灰度值的概率Pi;
步骤2图像中共有L 个不同的灰度级, 目标由图像中灰度值在[0,k]范围内的所有像素组成,背景的灰度值在[k+1,L-1]范围内。 目标、背景的分布概率分别为
步骤3计算各自的平均灰度值m1(k),m2(k),即
步骤4计算每个灰度值的类间差为
步骤5所有类间差中最大的类间差所对应的灰度值即为阈值。
2.4.2 基于梯度的划痕区域生长
在检测划痕时, 由于划痕本身分布不均匀,导致同一条划痕被识别成不连续的若干条,若采用统计表面划痕大小和数量的方法,去判定纽扣电池的质量势必造成误判。 因此,在利用阈值方法提取划痕后,需通过区域生长法对划痕进一步处理。
区域生长是根据预先定义的生长准则将像素或子区域组合为更大区域的过程。 传统的区域生长法以灰度、纹理或颜色等特征为种子点,将与种子预先定义的性质相似的邻域像素,添加到每个种子上来形成生长区域。 但是通过试验发现,传统的区域生长法[8-9]在处理断裂的划痕时效果并不理想。 故在此提出了基于方向梯度的区域生长算法,以解决划痕误判的问题,提高检测的准确率。
图像的梯度特征反映了图像变化幅度大小。 由于划痕点与垂直于划痕方向的背景像素点的灰度差异大,而与沿划痕方向的灰度差异小,因此将划痕灰度梯度变化最小的方向确定为划痕方向。 在图像中像素(a,b)的梯度表示为
式中:f(a,b)为像素点(a,b)的灰度值;gx(a,b)和gy(a,b)分别为像素点(a,b)沿坐标轴x 和y 方向上的梯度。像素点(a,b)的梯度方向角和梯度模值分别为
统计各条划痕的梯度数据,以最小梯度方向为划痕,相邻两段划痕归属于同一条划痕的判定条件是它们之间的梯度方向差k 满足:
式中:tanθ1和tanθ2分别为两段划痕区域的梯度方向;n 为方向准确度。
上述方法能够解决将同一条划痕误检成若干条划痕的问题,但是可能会将方向相近的不同划痕误判为同一条。 因此,将不同区域划痕端点距离作为区域生长算法的另一个生长条件。 对于任意2 个断开的划痕区域,其端点间距离为
式中:(a1,b1),(a2,b2)分别为2 个划痕区域端点;两端点间的距离为D,且当D 小于给定阈值ε 时,认为该区域满足区域生长条件,将它加入新的种子点。
对初始种子点两端的其他划痕区域进行搜索与计算,将其与初始种子区域之间的方向夹角满足式(10)和端点间的距离满足式(11)的划痕区域纳入到当前种子区域,形成新的划痕连通区域,再以新的划痕区域作为初始种子点重复上述过程,直至找不到同时满足式(10)和式(11)的划痕区域,结束划痕生长。 生长效果如图6 所示。
图6 生长效果Fig.6 Growth effect
在生产线上拍摄200000 个纽扣电池的图片,其中的10000 个纽扣电池存在划痕。 采用所提出的检测方法进行检测, 纽扣的划痕缺陷检测率达到99.5%,过判率为0.5%,漏判率为0.5%。
从实际出发,结合HALCON 软件,完成基于机器视觉技术纽扣电池的划痕检测。 通过模板匹配的方法将纽扣电池上的字体屏蔽,再利用梯度特征的方法定位出划痕的位置,并进行试验。 试验结果表明,该检测方法具有运算量小、实时性高和准确率高的特点,具有一定的实际应用价值。