工件外观缺陷的检测方法及装置与流程

文档序号:17246180发布日期:2019-03-30 08:49阅读:326来源:国知局
工件外观缺陷的检测方法及装置与流程

本发明涉及外观缺陷检测技术领域,更具体地,涉及一种工件外观缺陷的检测方法以及一种工件外观缺陷的检测装置。



背景技术:

机器视觉检测是指通过相机对工件进行拍摄,然后对拍摄得到的图像进行处理,得到工件的质量情况。

机器视觉检测应用越来越广泛,主要应用于尺寸测量和外观缺陷检测。其中,外观缺陷检测对提高整个产品的质量起着决定性作用。

目前,利用机器视觉检测技术检测得到的工件的外观缺陷的准确率较低。

因此,需要提供一种新的技术方案,针对上述现有技术中的技术问题进行改进。



技术实现要素:

本发明的一个目的是提供一种工件外观缺陷检测的新技术方案。

根据本发明的第一方面,提供了一种工件外观缺陷的检测方法,包括:

从工件检测图像中获取工件对应的图像的各像素点的灰度值;

从所述各像素点的灰度值中确定最大灰度值和中值灰度值,其中,所述中值灰度值为具有相同灰度值的像素点最多时对应的灰度值;

根据所述最大灰度值和所述中值灰度值确定缺陷点对应的灰度值阈值;

从所述各像素点的灰度值中确定是否存在灰度值小于所述灰度值阈值的像素点;

在存在灰度值小于所述灰度值阈值的像素点的情况下,确定所述工件外观存在缺陷,并将所述灰度值小于所述灰度值阈值的像素点作为缺陷点。

可选地,所述方法还包括:

从所述缺陷点中去除离散缺陷点,得到至少一个缺陷点集合;

利用面积最小的外接矩形包围所述缺陷点集合,并得到所述外接矩形的长宽比值;

根据所述外接矩形的长宽比值确定所述工件的缺陷类型,其中,

所述工件的缺陷类型为裂纹和凹坑中任一种。

可选地,在存在灰度值小于所述灰度值阈值的像素点的情况下,所述方法还包括:

确定灰度值小于所述灰度值阈值的各像素点的第一平均灰度值,以及灰度值小于所述灰度值阈值的像素点除外的各像素点的第二平均灰度值;

计算得到所述第一平均灰度值和所述第二平均灰度值的差值,并记作为第一差值;

将所述第一差值与第一预设差值进行比较,得到比较结果;

在所述比较结果为所述第一差值大于所述第一预设差值的情况下,将所述灰度值小于所述灰度值阈值的像素点作为缺陷点。

可选地,根据所述最大灰度值和所述中值灰度值确定缺陷点对应的灰度值阈值,包括:

基于以下计算式得到缺陷点对应的灰度值阈值g,

g=gm-(gmax-gm),其中,gmax为最大灰度值,gm为中值灰度值。

可选地,从所述各像素点的灰度值中确定最大灰度值包括:

确定各像素点的最大灰度值以及第二大灰度值,并计算得到所述最大灰度值和所述第二大灰度值的差值,记作为第二差值;

将所述第二差值与第二预设差值进行比较,得到比较结果;

在所述比较结果为所述第二差值未超过所述第二预设差值时,将各像素点的最大灰度值作为最终的最大灰度值;

在所述比较结果为所述第二差值超过所述第二预设差值时,将各像素点的第二大灰度值作为最终的最大灰度值。

可选地,从工件检测图像中获取工件对应的图像中各像素点的灰度值,包括:

从所述工件检测图像中截取工件对应的图像,并获取工件对应的图像的各像素点的灰度值。

根据本发明的第二方面,提供了一种工件外观缺陷的检测装置,包括:

获取模块,用于从工件检测图像中获取工件对应的图像的各像素点的灰度值;

第一确定模块,用于从所述各像素点的灰度值中确定最大灰度值和中值灰度值,其中,所述中值灰度值为具有相同灰度值的像素点最多时对应的灰度值;

灰度值阈值确定模块,用于根据所述最大灰度值和所述中值灰度值确定缺陷点对应的灰度值阈值;

第二确定模块,用于从所述各像素点的灰度值中确定是否存在灰度值小于所述灰度值阈值的像素点;

缺陷点确定模块,用于在存在灰度值小于所述灰度值阈值的像素点的情况下,确定所述工件外观存在缺陷,并将所述灰度值小于所述灰度值阈值的像素点作为缺陷点。

可选地,所述装置还包括:

去除模块,用于从所述缺陷点中去除离散缺陷点,得到至少一个缺陷点集合;

矩形长宽比值确定模块,用于利用面积最小的外接矩形包围所述缺陷点集合,并得到所述外接矩形的长宽比值;

缺陷类型确定模块,用于根据所述外接矩形的长宽比值确定所述工件的缺陷类型,其中,

所述工件的缺陷类型为裂纹和凹坑中任一种。

可选地,所述第一确定模块进一步用于:

确定各像素点的最大灰度值以及第二大灰度值,并计算得到所述最大灰度值和所述第二大灰度值的差值,记作为第二差值;

将所述第二差值与第二预设差值进行比较,得到比较结果;

在所述比较结果为所述第二差值未超过所述第二预设差值时,将各像素点的最大灰度值作为最终的最大灰度值;

在所述比较结果为所述第二差值超过所述第二预设差值时,将各像素点的第二大灰度值作为最终的最大灰度值。

根据本发明的第三方面,提供了一种工件外观缺陷的检测装置,包括:存储器和处理器,其中,所述存储器存储可执行指令,所述可执行指令控制所述处理器进行操作以执行根据第一方面中的任何一项所述的工件外观缺陷的检测方法。

本发明的一个实施例的有益效果在于,提高了工件外观缺陷检测的准确性。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1是根据本发明一个实施例的工件外观缺陷的检测方法的处理流程图。

图2示出了根据本发明的一个实施例的工件对应的图像的示意图。

图3是根据本发明一个实施例的工件外观缺陷的检测装置的结构示意图。

图4示出了根据本发明一个实施例的工件外观缺陷的检测装置的硬件结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

<方法>

图1是根据本发明一个实施例的工件外观缺陷的检测方法的处理流程图。

根据图1所示,该工件外观缺陷的检测方法至少包括如下步骤:

步骤s1100,从工件检测图像中获取工件对应的图像的各像素点的灰度值。

该工件检测图像是利用黑白相机对工件进行拍摄得到的灰度图像。

该工件检测图像包括有工件对应的图像和背景图像。工件对应的图像和背景图像具有高的对比度,以便于后续的分割处理。

本发明实施例中,在获取工件检测图像后,从工件检测图像中截取工件对应的图像,然后获取工件对应的图像的各像素点的灰度值。

在本发明的一个实施例中,利用blob算法,对工件检测图像进行分割处理,截取得到工件对应的图像和背景图像。

步骤s1200,从各像素点的灰度值中确定最大灰度值和中值灰度值,其中,中值灰度值为具有相同灰度值的像素点最多时对应的灰度值。

步骤s1300,根据最大灰度值和中值灰度值确定缺陷点对应的灰度值阈值。

本发明实施例中,利用工件对应的图像的各像素点的灰度值生成直方图,其中,该直方图的横坐标代表像素点的灰度值,纵坐标代表各灰度值对应的像素点的数量。

本发明实施例中,当工件外观不存在缺陷时,该直方图表现为单峰且两侧对称分布。

当工件外观存在缺陷时,由于缺陷区域的各像素点的灰度值较低,例如为与0的差值小于预设阈值的灰度值,使得工件对应的图像的各像素点的灰度值中存在较多接近0的值,进而使得直方图不再呈现两侧对称分布,表现为直方图的峰值左侧分布出现异常,即直方图的峰值左侧接近0的各灰度值的像素点的数量较多,直方图的峰值右侧分布表现正常。

当工件外观存在缺陷时,直方图的峰值右侧分布表现正常,可利用直方图的右侧分布得到对称的峰值左侧分布。由于缺陷区域的各像素点的灰度值较低,使得缺陷区域的各像素点位于峰值左侧分布区间之外,这样可以以峰值左侧分布区间的左端点值作为判断像素点是否为缺陷点的灰度值阈值。

由于峰值左侧分布和峰值右侧分布是对称的,使得峰值左侧分布区间宽度与峰值右侧区间宽度相同。直方图的峰值右侧分布区间的左端点值为中值灰度值,右端点值为最大灰度值。直方图的峰值右侧分布的区间宽度可利用最大灰度值和中值灰度值确定。根据中值灰度值和峰值右侧分布的区间宽度可以确定峰值左侧分布区间。峰值左侧分布的右端点值为中值灰度值,峰值左侧分布的左端点值作为判断像素点是否为缺陷点的灰度值阈值,可基于以下计算式计算得到,

g=gm-(gmax-gm),

其中,g为缺陷点对应的灰度值阈值,gmax为最大灰度值,gm为中值灰度值。

在本发明的一个实施例中,工件对应的图像可能存在单个或者较少的白色像素点,该白色像素点的灰度值为255,或者,可能存在单个或者较少的灰度值较高的像素点,其中该像素点的灰度值与255的差值小于预设灰度差值。该白色像素点或者灰度值较高的像素点是由拍摄原因或者其他原因造成的,并不是工件自身对应的像素点。

如果将该白色像素点的灰度值或者灰度值较高的像素点的灰度值作为最大灰度值,在利用直方图的右侧分布得到对称的峰值左侧分布时,得到的峰值左侧分布的区间宽度较大,可能导致缺陷区域的各像素点位于峰值左侧分布区间内,进而导致不能确定缺陷点的情况。

为了解决这一问题,在本发明的一个实施例中,确定各像素点的最大灰度值和第二大灰度值,并计算得到最大灰度值和第二大灰度值的差值,记作为第二差值。将第二差值与第二预设差值进行比较,得到比较结果。

在比较结果为第二差值未超过第二预设差值时,将各像素点的最大灰度值作为最终的最大灰度值。在比较结果为第二差值超过第二预设差值时,将各像素点的第二大灰度值作为最终的最大灰度值。

步骤s1400,从各像素点的灰度值中确定是否存在灰度值小于灰度值阈值的像素点。

步骤s1500,在存在灰度值小于灰度值阈值的像素点的情况下,确定工件外观存在缺陷,并将灰度值小于灰度值阈值的像素点作为缺陷点。

本发明实施例中,在不存在灰度值小于灰度值阈值的像素点的情况下,确定工件外观不存在缺陷。

本发明实施例提供的工件外观缺陷的检测方法,提高了工件外观缺陷检测的准确性。

在本发明的一个实施例中,在存在灰度值小于灰度值阈值的像素点的情况下,确定灰度值小于灰度值阈值的各像素点的第一平均灰度值,以及灰度值小于灰度值阈值的像素点除外的各像素点的第二平均灰度值,并计算得到第一平均灰度值和第二平均灰度值的差值,记作为第一差值。第一平均灰度值和第二平均灰度值为算术平均值。然后将第一差值与第一预设差值进行比较,得到比较结果。在比较结果为第一差值大于第一预设差值的情况下,将灰度值小于灰度值阈值的像素点作为缺陷点。这样提高了缺陷点确定的准确性,避免了误将灰度值小于峰值左侧分布的左端点值,且与峰值左侧分布的左端点值的差值小于预设灰度差值的像素点作为缺陷点。

在本发明的一个实施例中,在确定出工件对应的图像中的缺陷点后,可利用缺陷点确定工件的缺陷类型。工件的缺陷类型为裂纹和凹坑中任一种。

例如,从缺陷点中去除离散缺陷点,得到至少一个缺陷点集合。利用面积最小的外接矩形包围缺陷点集合,并得到外接矩形的长宽比值。根据外接矩形的长宽比值确定工件的缺陷类型。

在外接矩形的长宽比值超过预设长宽比值时,确定工件外观存在裂纹缺陷。在外接矩形的长宽比值未超过预设长宽比值时,确定工件外观存在凹坑缺陷。这是由于如果工件的外观缺陷为裂纹时,包围缺陷点集合的外接矩形的长度值和宽度值相差较多,使得长宽比值较大。如果工件的外观缺陷为凹坑时,包围缺陷点集合的外接矩形的长度值和宽度值比较接近,使得长宽比值较小。

图2示出了根据本发明的一个实施例的工件对应的图像的示意图。根据图2所示,一个外接矩形包围缺陷点集合。该外接矩形的长宽比值较大,因此可以确定工件外观存在裂纹缺陷。

<例子>

本发明实施例提供的工件外观缺陷的检测方法的具体处理步骤至少包括:

步骤s2010,从工件检测图像中获取工件对应的图像的各像素点的灰度值。

步骤s2020,确定各像素点的最大灰度值和第二大灰度值,并计算得到最大灰度值和第二大灰度值的差值,记作为第二差值。

步骤s2030,将第二差值与第二预设差值进行比较,得到比较结果。

步骤s2040,在比较结果为第二差值未超过第二预设差值时,将各像素点的最大灰度值作为最终的最大灰度值,在比较结果为第二差值超过第二预设差值时,将各像素点的第二大灰度值作为最终的最大灰度值。

步骤s2050,确定各像素点的中值灰度值,其中,中值灰度值为具有相同灰度值的像素点最多时对应的灰度值。

步骤s2060,根据最大灰度值和中值灰度值确定缺陷点对应的灰度值阈值。

步骤s2070,判断是否存在灰度值小于灰度值阈值的像素点。

在存在灰度值小于灰度值阈值的像素点的情况下,执行步骤s2080,确定工件外观存在缺陷,并将灰度值小于灰度值阈值的像素点作为缺陷点。

步骤s2090,从缺陷点中去除离散缺陷点,得到至少一个缺陷点集合。

步骤s2100,利用面积最小的外接矩形包围缺陷点集合,并得到外接矩形的长宽比值。

步骤s2110,根据外接矩形的长宽比值确定工件的缺陷类型。

在外接矩形的长宽比值超过预设长宽比值时,确定工件外观存在裂纹缺陷。在外接矩形的长宽比值未超过预设长宽比值时,确定工件外观存在凹坑缺陷。

<装置>

图3是根据本发明一个实施例的工件外观缺陷的检测装置的结构示意图。根据图3所示,该装置至少包括:获取模块310、第一确定模块320、灰度值阈值确定模块330、第二确定模块340、缺陷点确定模块350。

获取模块310,用于从工件检测图像中获取工件对应的图像的各像素点的灰度值.

第一确定模块320,用于从各像素点的灰度值中确定最大灰度值和中值灰度值,其中,中值灰度值为具有相同灰度值的像素点最多时对应的灰度值。

灰度值阈值确定模块330,用于根据最大灰度值和中值灰度值确定缺陷点对应的灰度值阈值。

第二确定模块340,用于从各像素点的灰度值中确定是否存在灰度值小于灰度值阈值的像素点。

缺陷点确定模块350,用于在存在灰度值小于灰度值阈值的像素点的情况下,确定工件外观存在缺陷,并将灰度值小于灰度值阈值的像素点作为缺陷点。

在本发明的一个实施例中,第一确定模块320进一步用于:确定各像素点的最大灰度值以及第二大灰度值,并计算得到最大灰度值和第二大灰度值的差值,记作为第二差值;将第二差值与第二预设差值进行比较,得到比较结果;在比较结果为第二差值未超过第二预设差值时,将各像素点的最大灰度值作为最终的最大灰度值;在比较结果为第二差值超过第二预设差值时,将各像素点的第二大灰度值作为最终的最大灰度值。

在本发明的一个实施例中,灰度值阈值确定模块330进一步用于:基于以下计算式得到缺陷点对应的灰度值阈值g,

g=gm-(gmax-gm),其中,gmax为最大灰度值,gm为中值灰度值。

在本发明的一个实施例中,缺陷点确定模块350进一步用于在存在灰度值小于灰度值阈值的像素点的情况下,确定灰度值小于灰度值阈值的各像素点的第一平均灰度值,以及灰度值小于灰度值阈值的像素点除外的各像素点的第二平均灰度值;计算得到第一平均灰度值和第二平均灰度值的差值,并记作为第一差值;将第一差值与第一预设差值进行比较,得到比较结果;在比较结果为第一差值大于第一预设差值的情况下,将灰度值小于灰度值阈值的像素点作为缺陷点。

在本发明的一个实施例中,该装置还包括:去除模块,用于从缺陷点中去除离散缺陷点,得到至少一个缺陷点集合;矩形长宽比值确定模块,用于利用面积最小的外接矩形包围缺陷点集合,并得到外接矩形的长宽比值;缺陷类型确定模块,用于根据外接矩形的长宽比值确定工件的缺陷类型,其中,工件的缺陷类型为裂纹和凹坑中任一种。

图4示出了根据本发明一个实施例的工件外观缺陷的检测装置的硬件结构示意图。参见图4,该装置至少包括:存储器420和处理器410,其中,存储器420存储可执行指令,可执行指令控制处理器410进行操作以执行上述任何一项的工件外观缺陷的检测方法。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1