发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种电子器件表面缺陷的检测方法及装置,能够实现对电子器件表面缺陷的自动检测。
根据本发明的一个方面,提供一种电子器件表面缺陷的检测方法,包括:获取拍照装置拍摄的电子器件的原始表面图像;对所述原始表面图像进行预处理,用以得到去除了干扰的预处理图像;在所述预处理图像中确定检测目标图像并基于检测内容将所述检测目标图像分割为一个或多个检测区域图像;从所述检测区域图像中提取特征参数,并根据缺陷判定规则和所述特征参数确定所述电子器件的表面是否具有缺陷。
可选地,所述对所述原始表面图像进行预处理包括:采用平滑滤波器对所述原始表面图像进行滤波处理。
可选地,所述采用平滑滤波器对所述原始表面图像进行滤波处理包括:基于高斯函数生成高斯滤波模板,采用所述高斯滤波模板对所述原始表面图像进行卷积运算。
可选地,所述高斯函数为
其中,r,c为图像中当前点到对应点的距离,σ是滤波器尺度,σ的取值范围为1.3-1.5。
可选地,所述电子器件包括:端子和与端子连接的筒状壳体;将所述检测目标图像分割为端子检测图像和壳体检测图像。
可选地,确定端子模板图像,基于图像匹配算法并使用所述端子模板图像在所述预处理图像中进行图像匹配;确定所述预处理图像中与所述端子模板图像相似度最高的子图并获取所述子图所对应的坐标值;其中,所述子图为所述端子检测图像。
可选地,所述图像匹配算法包括:基于灰度的图像匹配算法;其中,所述基于灰度的图像匹配算法包括:平均绝对差MAD算法、误差平方和SSD算法。
可选地,在所述端子检测图像的被测边界处生成第一直线网,其中,所述第一直线网由多条相互平行、并且与所述被测边界垂直的第一直线组成;沿所述第一直线计算所述预处理图像的二阶导数,将得到的零交叉点设定为端子边界点;对所述端子边界点进行直线拟合,生成端子边界线;确定所述端子边界线在基础坐标系中的角度,基于所述角度以及端子角度阈值判定端子的角度是否合格。
可选地,所述第一直线网的宽度为40-55像素,所述第一直线网的高度为30-40像素。
可选地,对所述端子检测图像进行二值化处理;对经过二值化处理后的所述端子检测图像进行粒子分析,提取与端子表面打焦程度相关的特征值;基于所述特征值以及打焦缺陷判断阈值确定端子的表面是否具有打焦缺陷。
可选地,所述特征值包括:面积、长宽比、周长面积比;所述打焦缺陷判断阈值包括:面积阈值、长宽比阈值、周长面积比阈值;当所述面积大于所述面积阈值、所述长宽比小于所述长宽比阈值并且所述周长面积比小于所述周长面积比阈值时,则确定端子的表面具有打焦缺陷。
可选地,对所述端子检测图像进行二值化处理的二值化阈值为110-140。
可选地,获取所述壳体检测图像,在所述壳体检测图像上生成第二直线网,其中,所述第二直线网由多条相互平行的第二直线组成,所述第二直线与相对设置的所述壳体检测图像的第一侧边和第二侧边相垂直;沿所述第二直线并采用拉普拉斯算子搜索所述壳体检测图像的边缘,得到第一边缘和第二边缘,所述第一边缘包括多个第一边缘点,所述第二边缘包括多个第二边缘点;计算位于同一条第二直线上的第一边缘点与第二边缘点之间的边缘距离;根据壳体缺陷判定规则和所述边缘距离确定所述壳体的表面是否具有缺陷。
可选地,当连续的指定数量的边缘距离都大于最大距离阈值或者都小于最小距离阈值,则确定所述壳体的表面具有夹扁或凸起缺陷;其中,所述指定数量为3-5个。
可选地,采用多线程从多个所述检测区域图像中提取特征参数,并根据缺陷判定规则和所述特征参数确定所述电子器件的表面是否具有缺陷。
可选地,所述原始表面图像的格式包括:bmp、jpeg、png。
根据本发明的另一方面,提供一种电子器件表面缺陷的检测装置,包括:图像获取模块,用于获取拍照装置拍摄的电子器件的原始表面图像;噪声去除模块,用于对所述原始表面图像进行预处理,用以得到去除了干扰的预处理图像;检测区域分割模块,用于在所述预处理图像中确定检测目标图像并基于检测内容将所述检测目标图像分割为一个或多个检测区域图像;缺陷确定模块,用于从所述检测区域图像中提取特征参数,并根据缺陷判定规则和所述特征参数确定所述电子器件的表面是否具有缺陷。
可选地,所述噪声去除模块,还用于采用平滑滤波器对所述原始表面图像进行滤波处理。
可选地,所述噪声去除模块具体用于基于高斯函数生成高斯滤波模板,采用所述高斯滤波模板对所述原始表面图像进行卷积运算。
可选地,所述高斯函数为
其中,r,c为图像中当前点到对应点的距离,σ是滤波器尺度,σ的取值范围为1.3-1.5。
可选地,所述电子器件包括:端子和与端子连接的筒状壳体;所述检测区域分割模块,还用于将所述检测目标图像分割为端子检测图像和壳体检测图像。
可选地,所述检测区域分割模块,包括:端子区域确定模块,用于确定端子模板图像,基于图像匹配算法并使用所述端子模板图像在所述预处理图像中进行图像匹配;确定所述预处理图像中与所述端子模板图像相似度最高的子图并获取所述子图所对应的坐标值;其中,所述子图为所述端子检测图像。
可选地,所述图像匹配算法包括:基于灰度的图像匹配算法;其中,所述基于灰度的图像匹配算法包括:平均绝对差MAD算法、误差平方和SSD算法。
可选地,所述缺陷确定模块,包括:端子角度缺陷确定模块,用于在所述端子检测图像的被测边界处生成第一直线网,其中,所述第一直线网由多条相互平行、并且与所述被测边界垂直的第一直线组成;沿所述第一直线计算所述预处理图像的二阶导数,将得到的零交叉点设定为端子边界点;对所述端子边界点进行直线拟合,生成端子边界线;确定所述端子边界线在基础坐标系中的角度,基于所述角度以及端子角度阈值判定端子的角度是否合格。
可选地,所述第一直线网的宽度为40-55像素,所述第一直线网的高度为30-40像素。
可选地,所述缺陷确定模块,包括:端子打焦缺陷确定模块,用于对所述端子检测图像进行二值化处理;对经过二值化处理后的所述端子检测图像进行粒子分析,提取与端子表面打焦程度相关的特征值;基于所述特征值以及打焦缺陷判断阈值确定端子的表面是否具有打焦缺陷。
可选地,所述特征值包括:面积、长宽比、周长面积比;所述打焦缺陷判断阈值包括:面积阈值、长宽比阈值、周长面积比阈值;所述端子打焦缺陷确定模块,还用于当所述面积大于所述面积阈值、所述长宽比小于所述长宽比阈值并且所述周长面积比小于所述周长面积比阈值时,则确定端子的表面具有打焦缺陷。
可选地,对所述端子检测图像进行二值化处理的二值化阈值为110-140。
可选地,所述缺陷确定模块,包括:壳体缺陷确定模块,用于获取所述壳体检测图像,在所述壳体检测图像上生成第二直线网,其中,所述第二直线网由多条相互平行的第二直线组成,所述第二直线与相对设置的所述壳体检测图像的第一侧边和第二侧边相垂直;沿所述第二直线并采用拉普拉斯算子搜索所述壳体检测图像的边缘,得到第一边缘和第二边缘,所述第一边缘包括多个第一边缘点,所述第二边缘包括多个第二边缘点;计算位于同一条第二直线上的第一边缘点与第二边缘点之间的边缘距离;根据壳体缺陷判定规则和所述边缘距离确定所述壳体的表面是否具有缺陷。
可选地,所述壳体缺陷确定模块,还用于当连续的指定数量的边缘距离都大于最大距离阈值或者都小于最小距离阈值,则确定所述壳体的表面具有夹扁或凸起缺陷;其中,所述指定数量为3-5个。
可选地,所述缺陷确定模块,还用于采用多线程从多个所述检测区域图像中提取特征参数,并根据缺陷判定规则和所述特征参数确定所述电子器件的表面是否具有缺陷。
本发明的电子器件表面缺陷的检测方法及装置,将电子器件的表面图像进行预处理,并根据检测缺陷内容分割出不同的检测区域,从检测区域提取中多种特征参数,综合判断电子器件的表面是否具有缺陷,采用多线程技术可以使多种缺陷检测同时进行,能够实现对电子器件表面缺陷的自动检测,检测效率高、误判率低,可以缩短检测时间,提高生产效率。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案进行多方面的描述。
下文中的“第一”、“第二”等仅用于描述上相区别,并没有其它特殊的含义。
图1为根据本发明的电子器件表面缺陷的检测方法的一个实施例的流程示意图,如图1所示:
步骤101,获取拍照装置拍摄的电子器件的原始表面图像,原始表面图像的格式包括:bmp、jpeg、png等。
步骤102,对原始表面图像进行预处理,用以去除干扰,得到预处理图像。
步骤103,在预处理图像中确定检测目标图像并基于检测内容将检测目标图像分割为一个或多个检测区域图像。
步骤104,从检测区域图像中提取特征参数,并根据缺陷判定规则和特征参数确定电子器件的表面是否具有缺陷。
上述实施例中的电子器件表面缺陷的检测方法,能够实现对电子器件表面缺陷的自动检测,并能够检测多种缺陷,可以缩短检测时间,提高生产效率。
在一个实施例中,通过拍照装置拍摄被检测电子器件的外观图片或视频信息。例如,电子器件为焊片电容,在焊片电容旋转的状态下,拍照装置拍摄焊片电容的220张图像,图像可以为灰度图,覆盖焊片电容侧面的360度。由于电子器件本身的碎屑、光照原因产生的局部反光等干扰,使得原始表面图像中的干扰比较大,采用平滑滤波器对原始表面图像进行滤波处理。
可以采用多种平滑滤波器对原始表面图像进行滤波处理,平滑滤波器可以为高斯滤波器等。例如,采用高斯滤波器,基于高斯函数生成高斯滤波模板,采用高斯滤波模板对原始表面图像进行卷积运算。原始表面图像为二维图像,表示为f(x,y),x,y表示图像中像素点以及位置点的坐标。
可以预先确定基础坐标系,例如,基础坐标系的原点为原始表面图像左下角,基础坐标系横坐标为X坐标,即为原始表面图像的水平方向,基础坐标系的纵坐标为Y坐标,即为原始表面图像的水平方向。
高斯函数在二维空间的定义为:
r,c为图像中当前点到对应点的距离,σ是滤波器尺度,σ的取值范围可以为1.3-1.5,例如,滤波器尺寸σ=1.41。高斯滤波模板可以为3x3矩阵,采用高斯滤波模板对原始表面图像进行卷积运算,可以在抑制原始表面图像噪声的同时,使原始表面图像的边缘更加锐利。
在一个实施例中,电子器件包括:端子和与端子连接的筒状壳体,此种电子器件包括焊片电容等。由于拍照装置以及焊片电容的位置固定,焊片电容的图像在原始表面图像中的位置及坐标是确定的。如图2所示,在拍照装置拍摄的焊片电容的原始表面图像中,焊片电容具有端子21和与端子连接的筒状壳体22。
在使用平滑滤波器对原始表面图像进行滤波处理后,得到预处理图像。在预处理图像中确定需要检测的焊片电容图片最为检测目标图像,并将检测目标图像分割为端子检测图像和壳体检测图像。需要检测的焊片电容的壳体图像在原始表面图像以及预处理图像中为一个光条,壳体图像在原始表面图像中的位置是确定的,可以根据光条在原始表面图像中位置确定壳体检测图像。
确定端子模板图像,如图3所示,基于图像匹配算法将端子模板图像在预处理图像中进行图像匹配。确定预处理图像中与端子模板图像相似度最高的子图并获取子图所对应的坐标值,获取的子图为端子检测图像。图像匹配算法可以有多种,例如基于灰度的图像匹配算法等。基于灰度的图像匹配算法包括:平均绝对差MAD算法、误差平方和SSD算法等。
在包含端子的预处理图像中,使用基于灰度的图像匹配算法对端子进行定位,基于灰度的图像匹配算法为MAD算法等。例如,计算公式为:
式(1-2)中的S为被搜索图,即为预处理图像,T为端子模板图像(灰度信息),m,n端子模板图像的长度和宽度。式(1-2)由三部分组成,式(1-2)中的第三部分是端子模板图像,在包含端子图像的预处理图像中采用金字塔搜索策略搜索与端子模板图像相似的子图像,式(1-2)中的中间部分是端子模板图像和预处理图像中子图的相关项,式(1-2)中的第一部分是预处理图像中的子图的能量,确定其在整个图像中的坐标位置。
基于端子模板进行图像匹配,在预处理图像中移动端子模板,并在端子模板移动到预处理图像中的位置点时计算相似度值,式(1-2)中的第一项、第三项都与端子模板无关,式(1-2)中的第二项随(i,j)改变,当端子模板图像和预处理图像中子图匹配时,此项有最大值。找到最大值,其对应的子图即为匹配目标,并确定此时端子模板移动到预处理图像中的位置点的坐标值,即为子图所对应的坐标值。
在端子检测图像的被测边界处生成第一直线网,第一直线网由多条相互平行、并且与被测边界垂直的第一直线组成,如图4所示,被测边界为端子检测图像的底边。沿第一直线计算预处理图像的二阶导数,将得到的零交叉点设定为端子边界点。对端子边界点进行直线拟合,生成端子边界线,确定端子边界线在基础坐标系中的角度,基于角度以及端子角度阈值判定端子的角度是否合格。基础坐标系的原点可以为整个原始表面图像的左下角,横坐标为X坐标,纵坐标为Y坐标。例如,端子角度阈值为10°,端子边界线的角度为3.6°,端子边界线的角度小于端子角度阈值,则此端子的角度符合要求,不存在缺陷。
第一直线网可以根据端子检测图像的大小进行设置,第一直线网的宽度为40-55像素,高度为30-40像素等。例如,第一直线网的步距为5,宽度为48,高度为35(单位为像素)。沿第一直线计算灰度值二阶导,得到的零交叉点为边界点,可以采用补零差值法进行直线拟合,计算端子边界线的角度α,与设定的端子角度阈值进行比较,判断端子的角度是否符合要求。
图像的二值化处理是将图像上的点的灰度值设为0或255,也就是将整个图像呈现出明显的黑白效果。对端子检测图像进行二值化处理,对经过二值化处理后的端子检测图像进行粒子分析,提取与端子表面打焦程度相关的特征值,基于特征值以及打焦缺陷判断阈值确定端子的表面是否具有打焦缺陷。
确定端子的表面是否具有打焦缺陷可以有多种方法。例如,获取端子表面确定为打焦区域的面积、长宽比、周长面积比等。打焦缺陷判断阈值包括:面积阈值、长宽比阈值、周长面积比阈值等。当打焦区域的面积大于面积阈值、长宽比小于长宽比阈值并且周长面积比小于周长面积比阈值时,则确定端子的表面具有打焦缺陷。
对端子检测图像进行二值化处理的公式如下:
其中,f(x,y)表示原图像的灰度值,g(x,y)表示二值化之后的图像,0表示黑,1表示白,或者。图像中的灰度值范围[0-255],对端子检测图像进行二值化处理的二值化阈值设置为110-140。例如,二值化阈值为125(灰度值),图像中某一点位置为(x,y)的灰度值为200,则置为1,若值为20,则置为0。
在一个实施例中,在对焊片电容进行拍照时需要进行打光处理,焊片电容的曲面壳体出现矩形光条,焊片电容旋转,使整个壳体分为220个光条,图像中的光条边缘的凹凸则体现出壳体的夹扁或突起,通过检测光条边缘的凹凸能够判断焊片电容壳体是否具有夹扁或突起情况。
拍照装置以及焊片电容的位置固定,需要检测的焊片电容的壳体图像在原始表面图像中为一个光条,壳体图像在原始表面图像中的位置是确定的,根据光条在原始表面图像中位置确定壳体检测图像。
获取壳体检测图像,在壳体检测图像上生成第二直线网,壳体与第二直线网垂直,第二直线网由多条相互平行的第二直线组成,第二直线与相对设置的壳体检测图像的第一侧边和第二侧边相垂直。如图5A所示,壳体检测图像为位于中心的光条,第一侧边和第二侧边分别为光条的上、下边。第二直线网(第二直线在图5A中未画出)的长、宽、步长等数值可以根据光条的大小进行设置。
对壳体检测图像进行边缘检测可以采用多种方法。例如,沿第二直线并采用拉普拉斯算子搜索壳体检测图像(图5A中的光条)的边缘,得到第一边缘和第二边缘,第一边缘包括多个第一边缘点,第二边缘包括多个第二边缘点。图5A中的上、下排边界点分别为第一边缘和第二边缘。
f(x,y)表示图像,采用各向同性微分的拉普拉斯算子搜索边缘,二阶导数零交叉点即为边缘所在,可以提取出两条边缘。拉普拉斯算子的离散形式为:
其中,
拉普拉斯算子可以采用模板形式,例如采用3×3区域,如图5B所示,计算公式变为:
▽2f=4z5-(z2+z4+z6+z8) (1-7)。
根据图像的边缘处灰度值的变化,其二阶导数零交叉点即为边缘所在,因此通过拉普拉斯算子找到零交叉点,设置拉普拉斯算子的模板z1=z3=z7=z9=0,z2=z4=z6=z8=-1;z5=4。
对壳体检测图像进行边缘检测也可以采用其它的方法。例如,f(x,y)表示图像,先将平滑函数(例如高斯函数)做拉普拉斯变换,然后再和图像进行卷积。边缘检测的判断依据是二阶导数零交叉点并对应一阶导数的较大峰值,使用线性内插方法在亚像素分辨率水平上估计边缘的位置。
在一个实施例中,计算位于同一条第二直线上的第一边缘点与第二边缘点之间的边缘距离,根据壳体缺陷判定规则和边缘距离确定壳体的表面是否具有缺陷。可以设置多种壳体缺陷判定规则,例如,当连续的指定数量的边缘距离都大于最大距离阈值Dmax或者都小于最小距离阈值Dmin,则确定壳体的表面具有夹扁或凸起缺陷,指定数量为3-5个,例如,指定数量设置为3个。
对电子器件表面缺陷进行检测时可以使用多线程技术。例如,采用多线程从多个检测区域图像中提取特征参数,并根据缺陷判定规则和特征参数确定电子器件的表面是否具有缺陷;上一个电子器件的图像处理线程与下一个电子器件的图像采集线程同时运行;端子检测区域的检测算法和壳体检测区域的检测算法可以同时进行等。
上述实施例中的电子器件表面缺陷的检测方法,将电子器件的表面图像进行预处理,并根据检测缺陷内容分割出不同的检测区域,从检测区域提取中多种特征参数,综合判断电子器件的表面是否具有缺陷,采用多线程技术可以使多种缺陷检测同时进行,能够实现对电子器件表面缺陷的自动检测,检测效率高、误判率低,可以缩短检测时间,提高生产效率。
如图6所示,本发明提供一种电子器件表面缺陷的检测装置60,包括:图像获取模块61、噪声去除模块62、检测区域分割模块63和缺陷确定模块64。图像获取模块61获取拍照装置拍摄的电子器件的原始表面图像。噪声去除模块62对原始表面图像进行预处理,用以得到去除了干扰的预处理图像。
检测区域分割模块63在预处理图像中确定检测目标图像并基于检测内容将检测目标图像分割为一个或多个检测区域图像。缺陷确定模块64从检测区域图像中提取特征参数,并根据缺陷判定规则和特征参数确定电子器件的表面是否具有缺陷。
在一个实施例中,噪声去除模块62采用平滑滤波器对原始表面图像进行滤波处理。噪声去除模块62基于高斯函数生成高斯滤波模板,采用高斯滤波模板对原始表面图像进行卷积运算。
原始表面图像为二维图像,高斯函数为
其中,r,c为图像中当前点到对应点的距离,σ是滤波器尺度,σ的取值范围为1.3-1.5。
缺陷确定模块64采用多线程从多个检测区域图像中提取特征参数,并根据缺陷判定规则和特征参数确定电子器件的表面是否具有缺陷。
电子器件包括:端子和与端子连接的筒状壳体。检测区域分割模块63将检测目标图像分割为端子检测图像和壳体检测图像。如图7所示,检测区域分割模块63包括:端子区域确定模块631。端子区域确定模块631确定端子模板图像,基于图像匹配算法将端子模板图像在预处理图像中进行图像匹配,确定预处理图像中与端子模板图像相似度最高的子图并获取子图所对应的坐标值,子图为端子检测图像。
如图8所示,缺陷确定模块64包括:端子角度缺陷确定模块641、端子打焦缺陷确定模块642和壳体缺陷确定模块643。端子角度缺陷确定模块641在端子检测图像的被测边界处生成第一直线网,其中,第一直线网由多条相互平行、并且与被测边界垂直的第一直线组成。
端子角度缺陷确定模块641沿第一直线计算预处理图像的二阶导数,将得到的零交叉点设定为端子边界点。端子角度缺陷确定模块641对端子边界点进行直线拟合,生成端子边界线。端子角度缺陷确定模块641确定端子边界线在基础坐标系中的角度,基于角度以及端子角度阈值判定端子的角度是否合格。
端子打焦缺陷确定模块642对端子检测图像进行二值化处理,对经过二值化处理后的端子检测图像进行粒子分析,提取与端子表面打焦程度相关的特征值。端子打焦缺陷确定模块642基于特征值以及打焦缺陷判断阈值确定端子的表面是否具有打焦缺陷。
特征值包括:面积、长宽比、周长面积比等。打焦缺陷判断阈值包括:面积阈值、长宽比阈值、周长面积比阈值等。当面积大于面积阈值、长宽比小于长宽比阈值并且周长面积比小于周长面积比阈值时,则端子打焦缺陷确定模块642确定端子的表面具有打焦缺陷。
壳体缺陷确定模块643获取壳体检测图像,在壳体检测图像上生成第二直线网,其中,第二直线网由多条相互平行的第二直线组成,第二直线与相对设置的壳体检测图像的第一侧边和第二侧边相垂直。壳体缺陷确定模块643沿第二直线并采用拉普拉斯算子对壳体检测图像进行卷积处理,将得到的零交叉点作为边缘点,得到第一边缘和第二边缘,第一边缘包括多个第一边缘点,第二边缘包括多个第二边缘点。
壳体缺陷确定模块643计算位于同一条第二直线上的第一边缘点与第二边缘点之间的边缘距离,根据壳体缺陷判定规则和边缘距离确定壳体的表面是否具有缺陷。例如,当连续的指定数量的边缘距离都大于最大距离阈值或者都小于最小距离阈值,则壳体缺陷确定模块643确定壳体的表面具有夹扁或凸起缺陷;指定数量为3-5个。
上述实施例中的电子器件表面缺陷的检测方法及装置,将电子器件的表面图像进行预处理,并根据检测缺陷内容分割出不同的检测区域,从检测区域提取中多种特征参数,综合判断电子器件的表面是否具有缺陷,采用多线程技术可以使多种缺陷检测同时进行,能够实现对电子器件表面缺陷的自动检测,并能够同时检测多种缺陷,克服了人工检测外观缺陷的不足,检测效率高、误判率低,可以缩短检测时间,提高生产效率。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。