• 全国 [切换]
  • 深圳市鼎达信装备有限公司

    扫一扫关注

    当前位置: 首页 » 新闻动态 » 真空技术 » 正文

    基于OpenCV 的石英晶片污垢检测技术研究

    放大字体  缩小字体 发布日期:2021-11-24 14:26:44    浏览次数:238    评论:0
    导读

    摘要:污垢检测是石英晶片缺陷检测的重要组成部分。为实现比较理想的污垢检测,采用基于开源计算机视觉库OpenCV的图像处理技术对石英晶片污垢缺陷进行检测。在此通过依次对图像进行平滑去噪、二值化阈值分割、轮廓提取和跟踪等处理,计算出轮廓的周长,将有缺陷与无缺陷晶片轮廓进行比较,为晶片污垢检测提供依据。实验结果

     污垢检测是石英晶片缺陷检测的重要组成部分。为实现比较理想的污垢检测,采用基于开源计算机视觉库OpenCV的图像处理技术对石英晶片污垢缺陷进行检测。在此通过依次对图像进行平滑去噪、二值化阈值分割、轮廓提取和跟踪等处理,计算出轮廓的周长,将有缺陷与无缺陷晶片轮廓进行比较,为晶片污垢检测提供依据。实验结果表明在Visual Studio 2008环境下,利用OpenCV库函数缩短了大量编程时间,提高了工作效率。

    关键词OpenCV; 石英晶片; 轮廓提取; 污垢检测

    石英晶体谐振器是当今电子设备不可缺少的关键组件,被广泛应用于电子钟表、彩电、音响、DVD、计算机、移动数码设备,无线通信、电视信号转播等各领域,随着电子信息产业的飞速发展,尤其是数字化电路的广泛应用,石英晶体谐振器的市场需求量快速增长[1]。石英晶片(以下简称晶片)是石英晶体在镀电极和封装前的半成品,对石英晶体谐振器进行封装前要首先检测石英晶片的电参数,然后对其进行分选,将其合格石英晶片成品封装。石英晶片自身存在的任何微小缺陷都会破坏其工作性能,其中污垢是自身缺陷之一。目前,国内外大多采用人工目测检测的方式。这种方法主观性强、误判率高,且工作人员易眼部疲劳,造成检测精度降低。

    计算机检测技术在工业生产中有着广泛的应用,产品成品和次品的检测很大程度上依赖于图像处理技术。本文采用图像处理技术,利用OpenCV函数库,对CCD相机采集的图像进行处理,从而利用少量的代码实现对晶片是否有污垢缺陷的检测,提高了检测精度和工作效率。实验证明对石英晶片的污垢缺陷能可靠的检测出。

    1 晶片污垢检测原理图

    本文主要目的是利用OpenCV提供的图像处理函数,对采集的晶片图像进行一系列预处理,提取到晶片的轮廓,利用轮廓特征参数进行污垢缺陷的检测[2],检测原理如图1所示。

    图1 晶片污点检测原理图

    2 晶片污垢检测具体实现方法

    2.1 OpenCV优点

    OpenCV是由Intel公司资助的开源计算机视觉库,它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法;拥有包括 300 多个C/C++函数的跨平台的中、高层 API;不依赖于其他的外部库,同时也可以使用某些外部库;它为图像处理、模式识别、三维重建、物体跟踪、机器学习和线性代数提供了各种各样的算法;OpenCV 对非商业应用和商业应用都是免费(Free)的,研究者可以通过调用OpenCV算法库,在前人已完成的成熟算法基础上快速有效的开展自己的工作[3]。本文采用OpenCV2.1版本,主要模块具体功能是:CV主要的OpenCV函数,包含图像处理和计算机视觉的算法;CVAUX辅助的(实验性)OpenCV函数;CXCORE包含数据结构及线性代数的基本运算;HIGHGUI包含图像界面函数、视频输入输出函数以及一些系统调用函数;ML机器学习,包括模式分类和回归分析等。在编程过程中只需包含OpenCV库,调用相关函数即可,较以前的OpenCV版本代码更简洁,缩短了编程时间,提高了开发效率。

    2.2 图像平滑去噪

    本文利用黑白CCD照相机和黑白图像采集卡采集图像,对采集到的灰度图像进行处理,数据量少,效率高[4]。采集到的晶片的灰度图像如图2所示,(a)为无缺陷晶片,(b)为有污垢缺陷的晶片。在图像采集过程中,因光线、成像条件、光电转换、A/D转换等因素,会使采集的图像产生一定的噪声,并使图像模糊,从而恶化了图像的质量[5]。因此对图像处理之前必须进行平滑去噪,常见的平滑去噪方法有:频域去噪法、邻域平均法、噪声消除法、中值滤波法、选择式掩膜平滑法等。结合本系统特点采用中值滤波法[6],基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点,是一种非线性滤波。实验证明该方法能很好的抑制噪声、有效的保留图像细节、且处理速度快。

    图2 晶片的灰度图像

    对图像的中值滤波由函数medianBlur(const Mat& src, Mat& dst, int ksize)实现,src为输入图像,dst为输出图像,ksize为线性光圈的大小,此处设置为5。经平滑去噪后的处理结果如图3所示。

    由图3可知,图像中一些琐碎的细节融入背景中变得模糊,减小了孤立的噪声点。由于中值滤波不是简单的取均值,产生的模糊比较少,晶片边界细节得到了较好的保持。

    图3 平滑去噪后的图像

    2.3 图像二值化阈值分割

    阈值分割是一种基于区域的图像分割技术,其基本原理是:通过设定不同的特征阈值,把图像象素点分为若干类。二值化阈值分割就是,设原始图像为f(x,y),按一定准则在 f(x,y)中找到灰度值T作为分割阈值,然后将大于等于T的像素判为1(白色),将小于T的像素判为0(黑色),结果是把灰度图像二值化。本文目的是利用二值化阈值分割将晶片对象与背景有效的分割开来[7],即通过实验设定好阈值,经过二值化阈值分割将晶片对象处理为比较容易识别的白色,背景处理为黑色。从而尽可能的去除无效区域,完整的保存感兴趣的部分,提高污垢识别的精度。图像二值化阈值分割由函数threshold(const Mat& src, Mat& dst, double thresh, double maxVal, int thresholdType)实现。经过多次实验,取thresh=200,maxVal=255,thresholdType设为THRESH_BINARY即二值化滤波。当图像中某点像素值大于200时,该点被判为1;小于200时,该点被判为0。二值化阈值分割后的图像如图4所示。

    图4 二值化阈值分割后图像

    2.4 轮廓提取和跟踪

    轮廓提取的原理就是掏空内部点,如果图中有一点为黑,且它的8个相邻点都是黑色时,则判断该点是内部点,并将该点删除[8]。轮廓跟踪就是通过顺序查找边缘点来跟踪出边界,其基本原理为:首先在图像中按照从左到右、从上到下的顺序搜索图像的所有像素点,首先找到晶片左上方的边界点,它的下,左下,右,右下4个邻点中至少有一个是边界点,记为B。从B开始找起,按右,右下,下,左下,左,左上,上,右上的顺序找相邻点中的边界点C。如果C是A点,则表示边界查找已经循环一次,查找结束;否则从C点继续找,直到找到A或找不到点为止[9]

    二值图像中轮廓的查找由函数findContours(const Mat& image, vector<vector<Point>>&

    contours, int mode, int method, Point offset=Point())实现,image为输入的8 b,单通道图像,即threshold函数的输出图像;contours 为检测到轮廓的存储容器,轮廓以向量点的形式被存储;本文要找的是所有的轮廓,所以mode设置为CV_RETR_TREE提取所有轮廓,method设置为CV_CHAIN_APPROX_NONE将所有点由链码形式翻译(转化)为点序列形式。

    找到轮廓后将轮廓绘制出来由函数:

    drawContours(Mat& image, const

    vector<vector<Point> >& contours, int

    contourIdx, const Scalar& color,int

    thickness=1,int lineType=8, const

    vector<Vec4i>& hierarchy=vector<Vec4i>(), int

    maxLevel=INT_MAX, Point offset=Point())实现

    image为输出图像,contours为输入的轮廓,轮廓是以点向量的形式存储的;contourIdx指示绘制的轮廓;由于图像背景是黑色,为了让绘制的轮廓清晰可见,将颜色设为白色即color为Scalar(255)。轮廓跟踪提取后图像如图5所示。

    图5 轮廓跟踪提取后图像

    3 污垢缺陷识别和结论

    通过对轮廓的提取和跟踪后的图像可知,由于一般情况下污垢覆盖在晶片表面,导致有污垢缺陷的晶片边缘大轮廓内部会有些小轮廓,而无缺陷晶片只有一个大的边缘轮廓,其内部没有小轮廓。通过计算出图像中每个轮廓的像素点个数,将其与无缺陷晶片的轮廓像素点个数进行比较,实现对晶片污垢缺陷的检测。实验结果如下:无缺陷晶片轮廓长度[10]为429;有污垢缺陷的晶片轮廓长度分别为:426,10,8,4,10,40。通过查找相关资料并由多次实验采集到的数据得出,晶片污垢大小一般不会超过晶片大小的1/4,所以本文将阈值设置为(1/4)×429(标准轮廓的长度),在计算轮廓长度时如果发现存在轮廓像素个数小于(1/4)×429的,则将其视为有污垢缺陷的晶片,在工业生产中应将其剔除。本实验是在CPU为 Intel Core(TM)2 E7200 ,主频为2.53 GHz,内存为2 GB的硬件平台下进行的,取10次实验的时间平均值,完成整个图像处理的时间为115 ms。目前石英晶片自动分选技术每小时检测3 600个晶片,用在图像处理上的时间约为400 ms/个,与本文的图像处理时间115 ms/个相比较,该论文的方法明显提高了工作效率。

    4 结 语

    本文重点介绍了石英晶片污垢缺陷的检测过程,并给出各个步骤的实验结果。通过实验可以看出,在Visual Studio 2008环境下,利用OpenCV库函数能够方便地对图像进行预处理,比较完整地将目标从背景中分离出来,得到比较理想的晶片轮廓,方便对轮廓进行运算,为晶片缺陷识别检测打下基础。代码量少,大大减少了计算机视觉方面的编程时间,提高了检测精度,缩短了开发周期,具有很高的工业使用价值。


     
    (文/小编)
    打赏
    免责声明
    • 
    本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://2024.dingdx.com/news/show.php?itemid=4057 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
    0相关评论
     

    © Copyright 深圳市鼎达信装备有限公司 版权所有 2015-2022. All Rights Reserved.
    声明:本站内容仅供参考,具体参数请咨询我们工程师!鼎达信作为创新真空产品研发制造商,我们提供海绵吸具,海绵吸盘,真空吸盘,真空发生器,真空泵,真空鼓风机,缓冲支杆,真空配件,真空吊具等等产品

    粤ICP备17119653号