时间:2024-05-04
谢 涛 李玉学 马 奎
(1.贵州大学大数据与信息工程学院 贵阳 550025)(2.贵州航天计量测试技术研究所 贵阳 550025)
片式元件一直以来都是我们国家重点发展的电子信息产品,并且其封装尺寸越来越微小化。在工业生产和使用过程中,经常需要对电子元器件进行实时计数,由人工对这些微小片式元件计数不仅耗时耗力,效率低,并且还可能因为疲劳导致较大的计数误差。这些微小片式元件的纹理、颜色、形状等具有不同的特征,并且容易粘连,这给电子元器件的自动计数带来极大的困难。
本文提出一种基于图像处理的微小片式元件自动计数的算法,并设计了微小片式元件实时自动计数系统。该系统采用LED平行光源背面照射电子元器件,使得忽略电子元器件的表面差异的同时使成像更清晰,便于后期的图像处理;其次引入轮廓回填消除图像和根据轮廓判断程序是否继续机制有效地提高算法效率;最后对粘连电子元器件进行分割时,结合Canny算子进行分割,提高了分割的准确性,实现微小片式元件实时的自动计数。
微小片式元件实时自动计数系统主要包括摄像系统及图像处理系统两部分。摄像系统包括CCD相机、镜头、LED光源、可调支架、元器件盘,完成微小片式元件实时的图像获取;图像处理系统包括计算机和图像处理程序,控制实时获取微小片式元件图像,并对其进行一系列的图像处理进行计数。微小片式元件实时自动计数系统的结构如图1所示。
图1 微小片式元件自动计数系统的结构
微小片式元件自动计数系统采用LED平行光背面照射电子元器件以获得图像为黑白图像,忽略了电子元器件背面和反面的差异,图像中单个片式元件呈现清晰的边缘轮廓。微小片式元件原始图像如图2所示。
图2 微小片式元件原始图像
观察图2可知,基于图像处理的微小片式元件计数算法的难点是对粘连的微小片式元件进行图像分割。阈值分割、边缘检测、流域分割、分水岭算法、极限腐蚀等算法是常用的粘连物体分割算法[1]。但这些算法对粘连的微小电子元器件都不能得到良好的分割效果,因此无法保证计数的准确性。为此,本文提出一种结合Canny算子的图像分割方法,该方法充分利用了Canny算子边缘检测的优良特性,结合轮廓提取,有效实现图像分割,经过Canny算子处理以后,图像分割更加精确,效果更好[2~3]。同时,为了提高计数效率,本文提出一种轮廓回填抹除图像逐次分割方法,每进行一次分割以后,通过判断轮廓数量决定是否继续分割,若继续分割,则将之前已经实现计数的微小片式元件从图像中去除,并将这幅图像用于下一步的处理。
2.2.1 Canny算法的步骤
1)用高斯滤波器平滑图像
图像在进行边缘检测时,首先要处理原始数据,以便于更好地实现边缘检测图像分割效果[4]。所以开始时就需要原始数据与高斯mask做卷积,处理后的图像比原来模糊了一些,有利于图像边缘检测的进行[5]。由于高斯函数经傅里叶变换后还是高斯函数,能构成一个在频域具有平滑性能的低通滤波器:
2)用一阶偏导的有限差分计算梯度的幅值和方向
3)对梯度幅值进行非极大值抑制
仅仅得到全局的梯度并不足以确定边缘,要确定边缘,必须保留局部梯度最大的点,即非极大值抑制[6]。在此过程中,使用3×3大小串口从8个方向的邻域对M[i , j]的所有元素沿梯度方向进行梯度幅值的插值。在每一个点中心元素 m[i , j]与沿梯度方向的2个梯度幅值的插值结果进行比较。如果邻域中心点的阈值M[i , j]比梯度方向上的2个插值结果大。则将m[i , j]对应的边缘保留,否则将该点的梯度值设为零。
4)边缘连接
经过非极大值抑制处理后的边缘梯度图中,梯度值不为零的点可能为边缘点。如果将所有的可能边缘点连成边缘,则检测结果将包含很多虚假边缘。所以为了去除虚假边缘。引入双阈值和边缘连接,设高低阈值分别为Th、Tl,其中Th>Tl,对于所有可能的边缘点,若其梯度值T(i , j)>Th,则点为边缘点Te(i , j)[7~8]。但是,这样得到的边缘是非连续的,所以为了使边缘连续,对于处于边缘端点处的点,采用递归边界跟踪方法,将八邻城区域内梯度值大于Tl的点判定为边缘点并连接。从而获得去除了虚假边缘点的连续边缘。
2.2.2 Canny算法图像分割效果
当两个元器件之间存在很小的缝隙的时候,就会发生明显的光的衍射现象[9],图像上呈现出“虚边”现象。直接对图像进行阈值分割时[10~11],阈值取过小,分割不完全,如图3(a)所示;阈值过大,会引起图像剧烈变形,如图3(b)所示。采用Canny边缘检测算法对图像进行分割时,检测到的边缘点距离实际边缘点位置最近,能够检测到足够多的图像中实际边缘,减少真实边缘的漏检率和误检率[12~13]。采用Canny算子进行图像处理后,使用相同的阈值进行分割后的效果如图4(a)和图4(b)所示。
图3
图4
图5 轮廓回填消除图像逐次分割基本过程
为了提高计数效率,本文提出一种轮廓回填抹除图像逐次分割算法,每进行一次图像处理计数以后,在进入下一图像处理过程之前做一个判断:除了本过程处理的轮廓中,是否还有别的轮廓存在,如果不存在,则输出总的计数结果;若需要继续进行图像分割处理,则将已经实现计数的微小片式元件从图像中去除之后再次进行图像处理,并在进行图像逐次分割的过程中对不同的粘连情况进行着色,每一种颜色代表一个分割过程,使计数结果更加准确[14~15]。轮廓回填消除图像逐次分割基本过程如图5所示。
本论文的算法采用图像分割进行微小片式元件的计数,不仅计数的效率高,其准确率也到了99.99%以上。算法的关键因素是二值化以及Canny双阈值的选取,选取的基本原则就是使得该阈值可以很好地分离粘连的微小片式元件。文中图像处理过程中采用了双阈值Canny算法和轮廓回填消除图像逐次分割,不仅可以提取边缘特征进行有效的图像分割,还提高了算法的执行效率。
图6 算法流程图
微小片式元件自动计数系统利用OPENCV中的相关函数来实现上述的算法,用户界面的设计采用的是Qt介面库来实现的。为验证算法的准确性,将2807只0402尺寸的片式电阻器无上下重叠的随机放置片式元件盘上,采用计数系统进行计数,计数50次的结果如表1所示。系统计数结果表明,本文算法可以高精度地实现微小片式元件的实时自动计数,计数效率高,计数结果准确率高。
表1 系统计数结果及误差率
本文提出一种基于图像处理的微小片式元件的自动计数算法,较好地解决了人工计数低效、耗时且容易产生误差的问题。该算法通过结合Canny算子的图像分割方法,能有效地提高图像分割的准确性,并且利用轮廓回填消除图像和利用轮廓数量判断算法是否继续的机制有效地提高了算法的运行速度。设计的微小片式元件自动计数系统具有高效、高准确率的特点,具有一定的应用价值。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!