CN111968100B - 机器视觉检测方法与系统 - Google Patents
机器视觉检测方法与系统 Download PDFInfo
- Publication number
- CN111968100B CN111968100B CN202010867054.3A CN202010867054A CN111968100B CN 111968100 B CN111968100 B CN 111968100B CN 202010867054 A CN202010867054 A CN 202010867054A CN 111968100 B CN111968100 B CN 111968100B
- Authority
- CN
- China
- Prior art keywords
- value
- pixel
- row
- workpiece
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20048—Transform domain processing
- G06T2207/20061—Hough transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)
Abstract
本发明公开了一种机器视觉检测方法,其特征在于,包含:包含:取得具有工件表面的工件检测区域影像;针对该工件检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将处理后的检测区域影像的对应像素的值设为该像素的值与该均值u的差值,否则设为第二值;以及根据该处理后的检测区域影像当中设为该差值与第一值的像素,判断该工件的表面是否具有缺陷。
Description
技术领域
本发明属于机器视觉领域,涉及利用机器视觉对于工件表面缺陷进行检测的技术。
背景技术
随着我国机械工业的发展,特别是大量生产的金属机械工件,可能会在制作加工过程当中出现种种的瑕疵或缺陷,例如裂纹、凹坑、刮擦、孔洞、锈蚀、油渍、水斑等问题。这些缺陷可能会降低工件的抗腐蚀性、疲劳强度、耐磨等机械特性。必须要在制作加工之后,利用人工抽样检测的方式进行质量检查,缺乏普遍检测的一致性及效率。如果要利用人工全部检验,还需要负担人工与时间的成本。
为了提高检测的数量与效率,降低检测的人工与时间成本,需要在机械工业当中,使用机器视觉对于工件表面缺陷进行自动化检测的技术,还能够提供质量检测的一致性标准。
发明内容
本发明是为了解决现有技术中的不足而提出的机器视觉检测方法与系统,目的是提供工件表面的自动化机器视觉检测系统与方法,能够提供质量检测的一致性标准,还能提高检测的数量与效率,降低检测的人工与时间成本。
为了实现上述目的,本发明采用了如下技术方案:
根据本申请的一个方案,提供一种机器视觉检测方法,其特征在于,包含:取得具有工件表面的工件检测区域影像;针对该工件检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将处理后的检测区域影像的对应像素的值设为该像素的值与该均值u的差值,否则设为第二值;以及根据该处理后的检测区域影像当中设为该差值与第二值的像素,判断该工件的表面是否具有缺陷。当该像素的值大于该第一区域所对应的该上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留下限阈值以下的缺陷,该机器视觉检测方法还包含以下步骤:根据每一个该第一区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的下限阈值;以及遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值小于该第一区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为该第一值。当该像素的值小于该第一区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了提供全局扫描算法、行扫描算法或列扫描算法,该第一区域为下列其中之一:该工件检测区域影像的全局;该工件检测区域影像的一行;以及该工件检测区域影像的一列。
进一步的,为了提供行列扫描算法,该机器视觉检测方法还包含以下步骤:针对该工件检测区域影像的一或多个行计算对应的行均值u与行标准偏差s;针对该工件检测区域影像的一或多个列计算对应的列均值u与列标准偏差s;根据每一个该行相对应的正向阈值、该行均值u与该行标准偏差s,分别计算每一个该行所对应的行上限阈值;根据每一个该列相对应的正向阈值、该列均值u与该列标准偏差s,分别计算每一个该列所对应的列上限阈值;以及遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行上限阈值与该列上限阈值,计算行列上限阈值,当该像素的值大于所对应的该行列上限阈值时,将处理后的检测区域影像的对应像素的值设为其与该行均值或列均值的差值,否则设为第二值。当该像素的值大于所对应的该行列上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留行列扫描算法当中在下限阈值以下的缺陷,该行列扫描算法还包含以下步骤:根据每一个该行相对应的负向阈值、该行均值u与该行标准偏差s,分别计算每一个该行区域所对应的下限阈值;根据每一个该列相对应的负向阈值、该列均值u与该列标准偏差s,分别计算每一个该列区域所对应的下限阈值;以及遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行下限阈值与该列下限阈值,计算行列下限阈值,当该像素的值小于所对应的该行列下限阈值时,将该检测区域影像的对应像素的值设为该第一值。当该像素的值小于所对应的该行列下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了判断表面缺陷的型态,该机器视觉检测方法还包含:将该处理后的检测区域影像进行霍夫变换,以得到霍夫检测区域影像;在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;以及根据该最小外接矩形,判断该缺陷区域是否为裂纹或凹坑,其中上述之判断该工件中表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含凹坑时,判断该工件的表面具有缺陷。
进一步的,为了滤除孤点以避免对霍夫变换进行干扰,该机器视觉检测方法更包含:在进行该霍夫变换步骤之前,当该处理后的检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
进一步的,为了滤除过小的缺陷区域,该机器视觉检测方法还包含:当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:该缺陷区域的轮廓面积小于阈值;以及该缺陷区域的长度小于另一阈值。
进一步的,为了判断缺陷是否为裂纹或凹坑,在上述判断该缺陷区域是否为裂纹或凹坑的步骤当中,更包含:计算该缺陷区域所对应的该最小外接矩形的比例;以及当该比例大于阈值时,为判断该缺陷区域为裂纹或凹坑,其中该比例为下列其中之一:该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
进一步的,为了更容易地检测到裂纹,该机器视觉检测方法还包含:在该取得步骤之前,先撒布磁粉在该工件检测区域之上。
根据本申请的一个方案,提供一种机器视觉检测系统,其特征在于,包含:摄像模块,用于拍摄所欲检测的工件;以及计算器模块,用于执行软件,以实现下列的步骤:自该摄像模块取得具有工件表面的工件检测区域影像;针对该工件检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将处理后的检测区域影像的对应像素的值设为该像素的值与该均值u的差值,否则设为第二值;以及根据该处理后的检测区域影像当中设为该差值与第二值的像素,判断该工件的表面是否具有缺陷。当该像素的值大于该第一区域所对应的该上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留下限阈值以下的缺陷,该处理模块还用于实现以下步骤:根据每一个该第一区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的下限阈值;以及遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值小于该第一区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为该第一值。当该像素的值小于该第一区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了提供全局扫描算法、行扫描算法或列扫描算法,该第一区域为下列其中之一:该工件检测区域影像的全局;该工件检测区域影像的一行;以及该工件检测区域影像的一列。
进一步的,为了提供行列扫描算法,该处理模块还用于实现以下步骤:针对该工件检测区域影像的一或多个行计算对应的行均值u与行标准偏差s;针对该工件检测区域影像的一或多个列计算对应的列均值u与列标准偏差s;根据每一个该行相对应的正向阈值、该行均值u与该行标准偏差s,分别计算每一个该行所对应的行上限阈值;根据每一个该列相对应的正向阈值、该列均值u与该列标准偏差s,分别计算每一个该列所对应的列上限阈值;以及遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行上限阈值与该列上限阈值,计算行列上限阈值,当该像素的值大于所对应的该行列上限阈值时,将处理后的检测区域影像的对应像素的值设为其与该行均值或列均值的差值,否则设为第二值。当该像素的值大于所对应的该行列上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留行列扫描算法当中在下限阈值以下的缺陷,该处理模块还用于实现以下步骤:根据每一个该行相对应的负向阈值、该行均值u与该行标准偏差s,分别计算每一个该行区域所对应的下限阈值;根据每一个该列相对应的负向阈值、该列均值u与该列标准偏差s,分别计算每一个该列区域所对应的下限阈值;以及遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行下限阈值与该列下限阈值,计算行列下限阈值,当该像素的值小于所对应的该行列下限阈值时,将该检测区域影像的对应像素的值设为该第一值。当该像素的值小于所对应的该行列下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了判断表面缺陷的型态,该计算器模块还用于实现以下步骤:将该处理后的检测区域影像进行霍夫变换,以得到霍夫检测区域影像;在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;以及根据该最小外接矩形,判断该缺陷区域是否为裂纹或凹坑,其中上述之判断该工件的表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含凹坑时,判断该工件的表面具有缺陷。
进一步的,为了滤除孤点以避免对霍夫变换进行干扰,该计算器模块还更用于实现以下步骤:在进行该霍夫变换步骤之前,当该检测结果检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
进一步的,为了滤除过小的缺陷区域,该计算器模块还用于实现以下步骤:当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:该缺陷区域的轮廓面积小于阈值;以及该缺陷区域的长度小于另一阈值。
进一步的,为了判断缺陷是否为裂纹或凹坑,在上述判断该缺陷区域是否为裂纹或凹坑的步骤当中,还包含:计算该缺陷区域所对应的该最小外接矩形的比例;以及当该比例大于阈值时,为判断该缺陷区域为裂纹或凹坑,其中该比例为下列其中之一:该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
进一步的,为了提高检测出表面缺陷的机率,该摄像模块的中心线与照明模块的灯光中心线的夹角,介于70度到110度之间,该照明模块的灯光中心线与该工件表面的夹角,介于0度到30度之间。
进一步的,为了减少不合格钢铁制品的庞大运输成本,该工件为锻造加工的钢板。
进一步的,为了更容易地检测到裂纹,在拍摄所欲检测的工件之前,该工件检测区域上已经被撒布磁粉。
由于采用上述方案,本发明的有益效果为:有效地进行工件表面的自动化机器视觉检测,能够提供质量检测的一致性标准,还能提高检测的数量与效率,降低检测的人工与时间成本。
附图说明
图1A是根据本申请实施例的机器视觉检测系统的方框示意图。
图1B是根据本申请另一实施例的机器视觉检测系统的方框示意图。
图2是根据本申请实施例的计算器模块的方框示意图。
图3是根据本申请实施例的加速计算模块的方框示意图。
图4是根据本申请实施例的工件拍摄情况的示意图。
图5是根据本申请实施例的机器视觉检测方法的流程示意图。
图6是根据本申请实施例的扫描算法的流程示意图。
图7是根据本申请实施例的扫描算法的流程示意图。
图8是根据本申请实施例的表面缺陷型态判断方法的流程示意图。
图9是根据本申请实施例的工件拍摄情况的照片图。
图10是根据本申请实施例的工件的样图。
图11是根据本申请实施例的工件的表面缺陷的方框示意图。
图12是根据本申请实施例的机器视觉检测方法的结果图。
图13是根据本申请实施例的具有油渍的工件的照片图。
图14是根据本申请实施例的机器视觉检测方法的结果图。
图15是根据本申请实施例的具有浅裂纹的工件的照片图。
图16是根据本申请实施例的具有浅裂纹的工件在非优选打光环境下的照片图。
图17是根据本申请实施例的具有浅裂纹的工件优选打光环境下的照片图。
图18是根据本申请实施例的机器视觉检测方法的结果图。
图19是根据本申请实施例的具有浅裂纹下深裂纹的工件的照片图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
本申请的说明书主要包含几个部分,首先介绍机器视觉检测系统,也就是硬件部分。接着,介绍可以实施于机器视觉检测系统的机器视觉检测方法,也就是软件部分。再来是使用上述系统与方法所得到的几个结果,用于说明验证本申请所提供之系统与方法的效能。最后,说明本申请所提供的多种实施例与其变化。
请参考图1A,其为根据本申请实施例的机器视觉检测系统100的方框示意图。该机器视觉检测系统100是用来自动化检测一或多个工件199表面缺陷的电子机械系统,可以由以下的模块来组成。由于可能需要安装在工厂环境,因此该机器视觉检测系统100的各个模块可以适应工业环境的规格,例如防尘、防水、防摔与温度等设计需要达标。
在一实施例当中,上述的工件199可以是平面钢板,特别是锻造加工的宽厚板工件的表面,也就是平面的宽厚钢板。机器视觉检测系统100可以用于检测表面上是否具有撞击后的凹坑、火焰切割失败所造成的氧化皮、锈蚀、剥落、油渍、水斑等缺陷。由于平面钢板是许多机械的原材料,例如用于制造船舶、大厦等,表面缺陷会减弱钢板的应力强度。因此,在钢板加工之前,制造钢板的厂商必须针对客户的要求对钢板表面进行检查。如果没有检出表面缺陷,而花费成本将重量很沉的钢板运送到客户端再被退货,则制钢厂必须负担来回运输的成本。甚至是当客户端制成成品之后,再因为原材料钢板的质量不合格而被要求赔偿,也都会造成制钢厂的损失。此外,诸如钢板之类的工件在锻造加工之后,往往需要喷涂防锈层。如果不能检测出工件表面的油渍和水斑,在喷涂防锈层时,很难覆盖工件表面有油渍或水斑的部分。而覆有油渍和水斑的部分将可能会生锈而降低强度。至于其他材质的工件,也可能因为油渍和水斑而无法上漆而影响外观。因此,制钢厂或购买钢板的客户端,可以利用本申请所提供的机器视觉检测系统100来检测工件表面是否具有不合格的缺陷。
计算器模块110是该机器视觉检测系统100的核心,用于控制整个机器视觉检测系统 100。在一实施例当中,该计算器模块110可以是工业级控制主机,但本申请并不限定该计算器模块110必然是工业级控制主机。举例来说,该计算器模块110可以包含执行x86或x64指令集的中央处理器,也可以包含执行其他种类指令集的中央处理器。该计算器模块110可以用于连接以下的各个模块,并且执行操作系统与应用程序,以便实现本申请所提供的机器视觉检测方法。本领域普通技术人员应当具有计算器结构与组织的常识,可以理解该计算器模块110所可能具有的变化。
该机器视觉检测系统100可以包含一或多个摄像模块120,每个摄像模块120均具备镜头组与电子感光组件,用于拍摄工件199的表面。当单一工件199具有多个需要检测的面向时,可以使用多个摄像模块120对多个面向同时进行拍摄工作,以节省检测的时间。
该摄像模块120的电子感光组件可以是单色,也可以是多色或彩色。本申请并不限定该摄像模块120的感光光谱频段。举例来说,在进行表面检测时,可以在工件表面加上带有荧光的磁粉,以便凸显出表面缺陷。由于具有表面缺陷的工件部分的磁力线外露,因此可以聚集更多的磁粉。当该摄像模块120的感光频段包含了紫外线频段时,可以更有效地检测出聚集了磁粉的缺陷。在另一个范例当中,加热后的工件在冷却时,表面缺陷的部分的冷却速率与其他部分不一样。当该摄像模块120的感光频段包含了红外线频段时,可以更有效地检测出冷热程度与其他部分不同的表面缺陷。
该机器视觉检测系统100可以包含可选的照明模块130,用于配合上述的该摄像模块 120。由于在各个摄像模块120进行拍摄时,可能需要启闭调整光源,因此该计算器模块110可以控制每一个该照明模块130的启闭、亮度、色温、频段等参数。在一实施例当中,当该摄像模块120的电子感光组件是多色或彩色时,本实施例中的光源可以是白光。因为白光包含各个不同波段的光,电子感光组件收到的信息量更大,如油渍、铁锈、裂纹等能反射出不同的颜色。本实施例照明模块130所使用的光源可以不是激光光源,由于激光所使用的光源设备以及相应的感光组件比较特殊昂贵,还需要控制激光的扫描方向与速度。此外,激光可能会伤害人眼,而且激光光源是单一波长的单色光源,使用激光光源反而无法得到较丰富的信息量。
该机器视觉检测系统100可以包含输送带模块140,用于流水线式的移动多个待检测的工件199。由于检测每个工件需要时间,因此该计算器模块110可以控制该输送带模块140的移动速度、距离、方向等。在一实施例当中,当检测到有缺陷的工件199时,该计算器模块110还可以令该输送带模块140将该工件199送往异常工件的收集区。由于输送带模块140已经是工业上经常使用的模块,故本申请不再详述其工作原理。
在进行检测工作时,可能还是需要检测人员监控该机器视觉检测系统100。因此,可以包含一个显示模块150,用于显示摄影原图、检测图像、检测报告、系统配置等讯息。而当检测到有缺陷的工件199时,该计算器模块110还可以透过告警模块160,利用视觉或听觉讯息提示检测人员。
请参考图1B所示,其为根据本申请另一实施例的机器视觉检测系统100的方框示意图。图1A所示的组件,可以适用于图1B的实施例当中。图1A所示的实施例,可以适用于尺寸较小的工件。但对于大型工件,例如说大型宽厚钢板材料,所需要检测的表面面积太大,无法靠固定位置的摄像模块120就能完成所有表面的检测。因此,在图1B所示的实施例,还加入了可移动的机械手臂模块来帮助检测工件199的多个表面或是广大的单一表面。在另一实施例当中,机械手臂模块所搭载的摄像模块120与/或照明模块130可以自由移动到较佳的位置,使得工件的不同表面区域有较统一的光线角度和摄像镜头角度。据此,可以让不同表面区域的影像都能落入较佳的摄像范围当中。由于机械手臂模块已经是工业上经常使用的模块,故本申请不再详述其工作原理。本申请也不限定机械手臂的数量、型态等。
在图1B所示的实施例当中,机械手臂模块170A搭载了一个摄像模块120与一个照明模块130。机械手臂模块170B搭载了一个摄像模块120。机械手臂模块170C搭载了一个照明模块130。机械手臂模块170C所搭载的照明模块130,可以用于配合机械手臂模块 170B所搭载的摄像模块120的拍摄。本申请不限定在同一个机器视觉检测系统100当中的多个机械手臂模块都是相同型式,可以包含不同种型式的机械手臂模块。而且一个机械手臂模块可以搭载一或多个摄像模块120或照明模块130。本申请不限定在一个机械手臂模块只能搭载一个摄像模块120或照明模块130。
该计算器模块110可以控制每一个机械手臂模块的运动,使得其所搭载的摄像模块 120或照明模块130可以运动到适当的位置。接着控制摄像模块120或照明模块130的工作时序,以便完成检测工件199的某一个面向的表面缺陷。
虽然在图1B所示的实施例当中,所有的摄像模块120或照明模块130都是安装在机械手臂模块上,但还可以包含固定的摄像模块120或照明模块130。此外,工件199也可以安装在某一个机械手臂模块上,让工件199在检测时进行运动。不一定只有安装摄像模块 120或照明模块130的机械手臂模块才能运动。本领域普通技术人员可以理解到,无论是工件199或摄像模块120运动,都可以达成利用同一摄像模块120对同一工件199的多个面向进行摄像。
请参考图2所示,其为根据本申请实施例的计算器模块110的方框示意图。如前所述,在某些实施例当中,该计算器模块110可以是一部工业级控制主机。该计算器模块110可以包含中央处理器模块210、总线模块220与一或多个加速计算模块230,以及与中央处理器模块210连接的内存模块215和与加速计算模块230连接的内存模块340。举例来说,该总线模块220可以是常见的SCSI、iSCSI、PCI、PCT-Express、I2C、USB之类的工业标准总线,也可以是专属的总线。该总线模块220也可以用于连接图1A与1B所示的各模块。为了清省图式起见,图2并未画出该总线模块220或该中央处理器模块210与图1A与 1B所示各模块的连接关系。本领域普通技术人员应当具有计算器结构与组织的常识,可以理解该总线模块220所可能具有的变化。
为了要提高检测表面缺陷的速度,图2所示的实施例包含了两个加速计算模块230。但计算器模块110也可以只包含单一个加速计算模块230。该加速计算模块230可以用于进行影像数据的处理,以免中央处理器模块210的处理速度不足以应付高速的计算。在图2的实施例当中,中央处理器模块210主要是用于控制与协调图1A与图1B所示各个模块的运作,而不用于影像数据的处理,但本申请并不一定需要加速处理模块230。由于摩尔定律,中央处理器模块210的处理速度也日益增加,其可以包含多个处理核心,以利于并行处理。在某些实施例当中,中央处理器模块210就可以用于处理影像数据,而不需要动用到加速计算模块230。
如图2的实施例所示,一个加速计算模块230可以直接连接到一或多个摄像模块120。在某些实施例当中,该摄像模块120所拍摄的影像,可以直接透过总线模块220传送到该加速计算模块230当中,也可以透过中央处理器模块210来传送到各个加速计算模块230。当摄像模块120直接连接到固定的加速计算模块230时,整体系统的设计比较简单。但是当该加速计算模块230的效能被占满时,摄像模块120就无法将影像数据转给其余空闲的加速计算模块230来处理。反之,当摄像模块120可以动态地对应到不同的加速计算模块230时,会增加整体系统的复杂度。但当某一个加速计算模块230的效能被占满时,摄像模块120可以将影像数据转给其余空闲的加速计算模块230来处理。
请参考图3所示,其为根据本申请实施例的加速计算模块230的方框示意图。该加速计算模块230包含处理器模块310、硬件加速处理模块320、外部存储器模块330、内存模块340。该处理器模块310可以是嵌入式处理器,例如是执行ARM指令集或是8051指令集的微处理器。该处理器模块310可以用于执行实时操作系统,连接该总线模块220,以便调度控制该加速计算器模块230的运作。
该硬件加速处理模块320可以是特别为了某些运算的硬件处理模块。举例来说,可以包含利用现场可程序化逻辑门阵列(FPGA,field programmable gate array)所设置的电路。这些电路可以特别用于执行某一些算法的某一些运算。比起使用处理器执行软件执行相同的运算,利用硬件加速处理模块320能够在更短的时间内完成。
该外部存储器模块330可以用来升级或修改该处理器模块310所执行的程序。在一实施例当中,该外部存储器模块330可以包含如SD记忆卡之类的可插拔式存储器,以利更新该处理器模块310所执行的程序,以及进行处理所需的数据与配置,例如后面将要提到的算法的配置参数。
该处理器模块310与该硬件加速处理模块320可以利用该内存模块340来存放摄像模块120所拍摄的影像、处理工作中暂存的影像、实现算法所用的程序与数据。
请参考图4所示,其为根据本申请实施例的工件拍摄情况的示意图。图4是工件拍摄场景侧面的示意图。工件199可以是一片宽厚钢板。为了检测工件199上表面的缺陷,照明模块130向工件199的上表面进行照明,摄像模块120在工件199的上表面进行拍摄。
在图4所示的实施例当中,照明模块130的灯光中心线在接触到欲检测的表面后,约略转90度,即为摄像模块120的拍摄位置。换言之,图4所示的角度410,约略为90 度。在一实施例当中,可以介于70度~110度之间。在另一实施例当中,可以介于80度~100度之间。本领域普通技术人员可以理解到,根据不同的工件表面,可以配置不同的角度410。本申请并不限制照明与摄像的角度410。当角度410介于上述的适当角度时,裂纹所造成的阴影就会越加明显,也就更容易检测出裂纹的缺陷。
除此之外,照明模块130的灯光中心线与所欲检测的表面的角度420,可以尽可能接近零度。在一实施例当中,角度420可以低于30度。为了检测出宽厚钢板表面的凹坑、凹痕、或是剥起的锈皮等,当角度420越小时,凹坑、凹痕、或是剥起的锈皮所造成的阴影就会变大。因此,更容易检测出上述的缺陷。
当凹坑、凹痕、或是剥起的锈皮的表面延伸方向垂直于灯光中心线时,其阴影面积也会最大,也就更容易检测出上述的缺陷。但是当凹坑、凹痕、或是剥起的锈皮的表面延伸方向平行于灯光中心线时,其阴影面积会最小,不容易检测出上述的缺陷。因此,针对同一表面,可以用两个照明模块130分别进行照射,由单一摄像模块120进行拍摄。而这两个照明模块130的两条灯光中心线投射在所欲检测的表面时,可以是接近垂直的。如此一来,即便是缺陷在第一个照明模块130的照明下不明显而不被检测出来,还是可以在第二个照明模块130的照明而检测出来。
请参考图5所示,其为根据本申请实施例的机器视觉检测方法500的流程示意图。该机器视觉检测方法500可以由图1A或图1B所示的计算器模块110来执行。某些步骤或某一个步骤的一部份可以由中央处理器模块210或加速计算模块230来实施。某些步骤或某一个步骤的一部份还可以由硬件加速处理模块320来执行。
机器视觉检测方法500可以自可选的步骤510开始进行,或者从可选的步骤515、518开始进行,也可以从步骤520开始进行。本发明并不限定可选的步骤510或515、518 执行的先后顺序。在一实施例当中,机器视觉检测方法500可以是在线运行的。意思是在摄像模块120进行拍摄之后,即进行步骤520~570,可以当场判断工件199的表面是否合格。在另一实施例当中,机器视觉检测方法500可以是线下运行的。亦即脱机取得工件检测区域影像,在拍摄事后才判断所拍摄的工件199的表面是否合格。
可选的步骤510:配置照明模块与摄像模块。可以如图4所示实施例的说明,或是根据上述段落实时配置照明模块与摄像模块。本步骤可以包含控制照明模块130与/或运动机械手臂模块。使得所取得的工件检测区域影像的明暗程度与位置都是适宜的,可以配合后续的算法。
可选的步骤515:当工件的本身具有磁性或铁磁性时,可以喷洒磁粉在磁性工件的表面上。工件是否会出现裂纹,主要是根据加工过程而定的。在某些加工工序或工艺当中,工件并不会产生裂纹。举例来说,切削工艺通常不会产生裂纹。因此,并不是每一种工件在进行机器视觉检测方法500时,都需要执行步骤515。当欲检测的工件表面在加工过程中可能会产生裂纹时,由于裂痕在表面上造成不连续线段或破裂段,使得工件表面或近表面的磁力线在不连续的破裂段部分发生局部畸变而产生漏磁场,可以吸附撒布在工件表面的磁粉。即便是工件本身不具有磁性,或是磁性非常微弱,颗粒很小的磁粉也很容易堆积在裂纹当中。这些磁粉在光线照射后,可以特别显示在检测区域影像当中,其亮度或量度会比周围区域来得高,以至于利用后述的算法对检测区域影像进行处理之后,可以得到裂纹。
在一实施例当中,可以利用喷洒磁粉的机器进行步骤515。例如将工件通电或使工件通过磁场以便磁化工件。接着,将磁粉均匀喷洒到欲检测的磁性工件的表面上。可以根据工件表面的特性,来调整磁化的步骤与喷洒磁粉的步骤。在另一实施例当中,磁粉可以具有较亮的颜色,或是具有荧光。在实施完步骤515之后,流程可以继续前往步骤518或520。
可选的步骤518:接收算法与配置参数。若没有预设的算法与配置参数时,在本步骤当中,可以接收机器视觉检测方法500、扫描算法600与扫描算法700所运用到蒙板、算法与配置参数,以及表面缺陷型态判断方法800所运用到的参数。举例来说,参数的类型包含了(1)扫描算法相关的参数,例如在步骤530、扫描算法600或扫描算法700所提到的参数,像是正向阈值与负向阈值等;在表面缺陷型态判断方法800所使用的各类型参数,例如(2) 步骤830的降噪步骤所使用的面积阈值参数或长度阈值参数;以及(3)形态学参数,诸如在步骤860当中所使用的面积比阈值参数或长宽比阈值参数。虽然在本申请当中,只提到上述的几种参数,但本领域的普通技术人员可以理解到,本申请无法穷举各算法所要配置的所有参数值。特别是当使用算法的各类变形或衍生算法时,可能需要更多的相关配置参数,但都可以在此步骤中接收这些配置参数。在一实施例当中,步骤518可以只接收与算法相关的配置参数,而不需要接收算法。在一实施例当中,步骤518可以只接收已经内含配置参数的算法,不须要再额外接收与算法相关的配置参数。除此之外,本申请并不限定步骤518的执行顺序,只需要在步骤530之前接收到算法与配置参数即可。
步骤520:取得工件表面的工件检测区域影像。本步骤包含自摄像模块120取得工件检测区域影像。按照经验,若能调整照明,使得待检测的表面区域的受光均匀,避免高亮反射,可以提高检测到缺陷的机会。在一实施例当中,该检测区域影像可以包含一个维度的颜色。例如每个像素值的深度是8位,可以表示0-255的灰度值。如果所取的检测区域影像包含多个维度的颜色,例如红蓝绿三个维度的颜色,可以先执行灰度化,将多个维度的数值转换成单一维度的灰度值。举例来说,灰度值为第一倍数的红色值与第二倍数的蓝色值与第三倍数的绿色值的和,该第一倍数、该第二倍数与第三倍数是可调的参数值。
步骤530:对该工件检测区域影像进行计算。该算法与配置参数的组合可以是在可选的步骤518当中接收的。在本申请当中,步骤530所使用的算法,至少可以自以下的四种算法当中选出:全局扫描模式、行扫描模式、列扫描模式与行列扫描模式。这四种算法各有优劣,并不能适用于各种工件。因此,可以根据工件的特性,如表面粗糙度与照明光源的角度,选择相应于该表面最适合的算法。
按照经验,可得如下结论:1)针对于表面均一性好、检测干扰项少的工件,其表面伤痕检测宜采用全局扫描;2)针对于表面在水平方向均一性好、伤痕具有一定倾斜角度的工件,其表面伤痕检测宜采用行扫描;3)针对于表面在垂直方向均一性好、伤痕倾斜角度较小的工件,其表面伤痕检测宜采用列扫描;4)针对于表面均一性不好、检测干扰项较多的工件,其表面伤痕检测宜采用行列扫描。言而总之,应根据工件表面均一性(如粗糙度等),和表面伤痕的特性(如倾斜角度、面积大小、伤痕类型等),以选择相应的伤痕检测模式,进而获得较佳的检测效果。关于这四种算法,将在稍后介绍。但本领域普通技术人员可以理解到,除了这四种算法或其变形以外,还可以使用其他种类的算法,例如高通滤波法。只要能够有效地检测出表面缺陷,都可以使用。
在一实施例当中,进行算法处理之后,会得到表面缺陷的影像。举例来说,该处理过后的影像可以是二值图。一个表面缺陷包含一个相连的区域,该区域内的像素值可以是缺陷值,例如是1。非表面缺陷的像素值可以是非缺陷值,例如是0。该影像可能包含一或多个表面缺陷。据此,可以判断每一个表面缺陷的区域尺寸,长度,高度等参数。在另一实施例当中,该影像的像素值的深度可以超过一位。
步骤540:寻找表面缺陷。当步骤530所得到的处理完成的检测区域影像的任一像素值具有缺陷值时,则表示其可能具有缺陷。在本步骤当中,可以略去面积较小的缺陷,其可能是噪讯。举例来说,当缺陷区域的像素数量低于门限值时,可以略去不计,将其缺陷值改为非缺陷値。接着,流程可以进到可选的步骤550,或是进到步骤560。
可选的步骤550:可以将检测区域影像或二值图,进行霍夫变换(Houghtransform)来进行表面缺陷形态学的判定。霍夫变换或者是霍夫变换的衍生算法是一种特征提取的方法,被广泛地应用在图像分析、机器视觉与数字图像处理方面。其算法是用来当因为影像中表面缺陷的不完整,导致某些像素点的缺漏,或是有噪声干扰,所以无法很准确地将缺陷的形状分成直线、圆形、椭圆形或其他形状的集合。可以藉由霍夫变换的算法,来找出表面缺陷的形状,进而判定所找到的表面缺陷是甚么样的型态。
步骤560:根据所找到的缺陷,判断工件是否合格。在某些实施例中,不能在工件找到任何缺陷。在其他实施例中,制造商可以接受工件具有某一型态的表面缺陷时。换言之,不一定是找到任一个表面缺陷,就认为工件不合格。
可选的步骤570:当判断工件不合格时,可以令告警模块160发出告警,也可以令输送带模块140将不合格的工件踢出。
接着,将介绍先前在步骤530当中提到的四种算法。
第一种全局扫描模式,计算工件检测区域影像的均值u、方差v与标准偏差s。其中均值的计算式如下:
式1-1是全局均值u的计算式,其中,m与n分别为工件检测区域影像的行数与列数,aij是第i行第j列的像素值,t为像素值的个数。
从式1-2可以导出式1-3,其为全局标准差s的计算公式。
接着,取得全局正向阈值ko_up与全局负向阈值ko_down,然后再依据全局均值u与标准偏差s来计算全局上限阈值与全局下限阈值。其中,全局上限阈值是标准偏差s乘以全局正向阈值ko_up的积,再加上均值u的和值,全局下限阈值是均值u减去标准偏差s乘以全局负向阈值ko_down之积的差值。全局上限阈值必然会大于全局下限阈值。
当工件检测区域影像中,具有小于全局下限阈值的像素值时,则将处理结果检测区域影像resImage当中所对应位置的像素值设为第一值。当工件检测区域影像中,具有介于全局上限阈值与全局下限阈值之间的像素值时,则将处理结果检测区域影像resImage当中所对应位置的像素值设为第二值。当工件检测区域影像中,具有大于全局上限阈值的像素值时,则将处理结果检测区域影像resImage当中所对应位置的像素值设为原像素值与全局均值u的差值。
处理结果检测区域影像的行数列数与工件检测区域影像相同,其每一个像素点值的表达式为:
式1-4当中,rij值为处理结果检测区域影像resImage的第i行第j列像素点的值。在式1-4 当中,第一值为255,第二值为0,差值不为第一值255,也不为第二值0。因此,处理结果检测区域影像resImage的每一个像素值占用八位。本申请并不限定每一个像素值所占用的储存位。
第二种行扫描模式。针对工件检测区域影像的每一行,先计算工件检测区域影像的第i行的均值u、方差v、标准偏差s。其中,计算公式如下所示。
式2-1为第i行像素点均值u的计算公式,其中,m、n分别为图像像素点的行数和列数,aij为第i行第j列像素点的像素值,t为图像第i行像素点个数,则u即为图像第i行像素点的像素平均值。
式2-2为第i行方差v的计算公式,则v即为图像第i行像素点的像素方差,为图像第i行像素点的像素标准差s的平方。
式2-3为第i行标准差s的计算公式。
接着,取得行正向阈值krow_up与行负向阈值krow_down,然后再依据均值u与标准偏差s来计算行上限阈值与行下限阈值。其中,行上限阈值是标准偏差s乘以行正向阈值krow_up的积,再加上均值u的和值,行下限阈值是均值u减去标准偏差s乘以行负向阈值krow_down之积的差值。行上限阈值必然会大于行下限阈值。
当工件检测区域影像中,具有小于行下限阈值的像素值时,则将处理结果检测区域影像当中所对应位置的像素值设为第一值。当工件检测区域影像中,具有介于行上限阈值与行下限阈值之间的像素值时,则将处理结果检测区域影像当中所对应位置的像素值设为第二值。当工件检测区域影像srcImage中,具有大于行上限阈值的像素值时,则将处理结果检测区域影像resImage当中所对应位置的像素值设为原像素值与行均值u的差值。
处理结果检测区域影像resImage的行数列数与工件检测区域影像相同,在第i行当中每一个像素点值的表达式为:
式2-4中,rij值即为处理结果检测区域影像resImage中第i行第j列像素点的值。在式2-4 当中,第一值为255,第二值为0,差值不为第一值255,也不为第二值0。因此,处理结果检测区域影像resImage的每一个像素值占用八位。本申请并不限定每一个像素值所占用的储存位。
接着,再对下一行重复进行上述的过程,直到得到整个处理结果检测区域影像resImage为止。
第三种算法是列扫描模式。针对工件检测区域影像的每一列,先计算工件检测区域影像的第j列的均值u、方差v、标准偏差s。其中,计算公式如下所示。
式3-1为第j列像素点均值u的计算公式,其中,m、n分别为图像像素点的行数和列数,aij为第i行第j列像素点的像素值,t为图像第j列像素点个数,则u即为图像第j列像素点的像素平均值。
式3-2为第j列方差v的计算公式,v即为图像第j列像素点的像素方差,即第j列标准差s 的平方。
式3-3为第j列标准差s的计算公式。
接着,取得列正向阈值kc_up与列负向阈值kc_down,然后再依据均值u与标准偏差s来计算列上限阈值与列下限阈值。其中,列上限阈值是标准偏差s乘以列正向阈值kc_up的积,再加上均值u的和值,列下限阈值是均值u减去标准偏差s乘以列负向阈值krow_down之积的差值。列上限阈值必然会大于列下限阈值。
当工件检测区域影像srcImage中,具有小于列下限阈值的像素值时,则将处理结果检测区域影像当中所对应位置的像素值设为第一值。否则,当原检测区域影像srcImage中,具有介于列上限阈值与列下限阈值之间的像素值时,则将处理结果检测区域影像当中所对应位置的像素值设为第二值。当原检测区域影像srcImage中,具有大于列上限阈值的像素值时,则将处理结果检测区域影像resImage当中所对应位置的像素值设为原像素值与列均值u的差值。
处理结果检测区域影像resImage的行数列数与工件检测区域影像相同,其每一个像素点值的表达式为:
式3-4中,rij值即为处理结果检测区域影像resImage中第i行第j列像素点的值。在式3-4 当中,第一值为255,第二值为0,差值不为第一值255,也不为第二值0。因此,处理结果检测区域影像resImage的每一个像素值占用八位。本申请并不限定每一个像素值所占用的储存位。
接着,再对下一列重复进行上述的过程,直到得到整个处理结果检测区域影像resImage为止。
第四种算法是行列扫描模式。在本扫描模式当中,可以如行扫描模式,取得每一行对应的行上限阈值与行下限阈值。可以如列扫描模式,取得每一列对应的列上限阈值与列下限阈值。换言之,对于每一个像素值来说,都可以对应到的行上限阈值、行下限阈值、列上限阈值与列下限阈值。接着,可以比较行上限阈值与列上限阈值,取得两者当中较小的值作为行列上限阈值。还可以比较行下限阈值与列下限阈值,取得两者当中较大的值作为行列下限阈值。在另一实施例当中,可以比较行上限阈值与列上限阈值,取得两者当中较大的值作为行列上限阈值。还可以比较行下限阈值与列下限阈值,取得两者当中较小的值作为行列下限阈值。在其他的实施例当中,可以将行上限阈值与列上限阈值的平均值或加权后的平均值作为行列上限阈值,也可以将行下限阈值与列下限阈值的平均值或加权后的平均值作为行列下限阈值。换言之,行列上限阈值是根据行上限阈值与列上限阈值计算得来,行列下限阈值是根据行下限阈值与列下限阈值计算得来。
当原检测区域影像srcImage中,具有小于行列下限阈值的像素值时,则将处理结果检测区域影像当中所对应位置的像素值设为第一值。否则,当原检测区域影像srcImage中,具有介于行列上限阈值与行列下限阈值之间的像素值时,则将处理结果检测区域影像当中所对应位置的像素值设为第二值。当原检测区域影像srcImage中,具有大于行列上限阈值的像素值时,则将处理结果检测区域影像resImage当中所对应位置的像素值设为原像素值与行均值或列均值的差值。
上式4-7中,rij值即为处理结果检测区域影像resImage中第i行第j列像素点的值,aij值即为工件检测区域影像中第i行第j列像素点的值。
在上述的四种算法当中,若三个负向阈值ko_down、kr_down、kc_down被设为0,则并不计算均值u与标准偏差s和相应负向阈值之积的减法,自然也就无需进行像素值与差值的比较,可以减少计算量。
在上述的四种算法当中,在一实施例当中,当处理结果检测区域影像resImage的某个像素值不是第一值(255),也不是第二值(0)时,表示该像素值大于上限阈值,可以将该像素值视为缺陷。在一实施例当中,当处理结果检测区域影像resImage的某个像素值为第一值(255)时,表示该像素值小于下限阈值,也可以将该像素值视为缺陷。换言之,缺陷存在于大于上限阈值与/或小于下限阈值的像素值所在的位置。如果将处理结果检测区域影像转换为贰值图时,可以将具有缺陷的像素值,例如差值与/或第一值设为缺陷值,其余的像素值设为非缺陷值。
在前述可选的步骤505当中,提到当工件的本身具有磁性或铁磁性时,可撒布磁粉在磁性工件的表面上。吸附磁粉的裂纹区域在经过算法检测之后,通常会出现高于上限阈值的情况,因此可以检测到工件表面上的裂纹。
而对于光线照射不到的凹坑或是黑皮的区域,由于其对应的像素值通常会出现低于下限阈值的情况,因此可以检测到工件表面上的凹坑或是黑皮的区域。藉由在正态分布的灰度图设置上限阈值与下限阈值,本发明所提供的四种算法可以检测出上下两端的异常部分。
请参考图6所示,其为根据本申请实施例的扫描算法600的流程示意图。该扫描算法600可以是图5所示之步骤530的一部分,由图1A或图1B所示的计算器模块110来执行。某些步骤或某一个步骤的一部份可以由中央处理器模块210或加速计算模块230来实施。某些步骤或某一个步骤的一部份还可以由硬件加速处理模块320来执行。该扫描算法 600可以是先前提过的全局扫描模式、行扫描模式或列扫描模式其中之一。该扫描算法600 可以参考前述关于步骤530的解说。
步骤610:计算工件检测区域影像的一个区域计算均值u与标准偏差s。如前所述,当该区域为工件检测区域影像时,则该扫描算法600可以是全局扫描模式。当该区域为工件检测区域影像某一行的像素值时,则该扫描算法600可以是行扫描模式。当该区域为工件检测区域影像某一列的像素值时,则该扫描算法600可以是列扫描模式。
步骤620:根据该区域相对应的正向阈值、均值u与标准偏差s,计算上限阈值。当扫描算法600为全局扫描模式时,该正向阈值可以是全局正向阈值ko_up。上限阈值是标准偏差s乘以全局正向阈值ko_up的积,再加上全局均值u的和值。当扫描算法600为行扫描模式时,该正向阈值可以是行正向阈值krow_up。上限阈值是标准偏差s乘以行正向阈值krow_up的积,再加上行均值u的和值。当扫描算法600为列扫描模式时,该正向阈值可以是列正向阈值kc_up。上限阈值是标准偏差s乘以列正向阈值kc_up的积,再加上列均值u的和值。
可选的步骤625:根据该区域相对应的负向阈值、均值u与标准偏差s,计算下限阈值。当扫描算法600为全局扫描模式时,该负向阈值可以是全局负向阈值ko_down。下限阈值是全局均值u减去标准偏差s乘以全局负向阈值ko_down之积的差值。当扫描算法600为行扫描模式时,该负向阈值可以是行负向阈值krow_down。下限阈值是行均值u减去标准偏差s乘以行负向阈值krow_down之积的差值。当扫描算法600为列扫描模式时,该负向阈值可以是负向阈值kc_down。下限阈值是全局均值u减去标准偏差s乘以列负向阈值kc_down之积的差值。如前所述,步骤625是可选的。
步骤630:当工件检测区域影像相对应的该区域内的像素值高于该上限阈值时,将处理后的检测区域影像的对应像素值设为其与均值u的差值。在前述可选的步骤515当中,提到当工件的本身具有磁性或铁磁性时,可撒布磁粉在磁性工件的表面上。吸附磁粉的裂纹区域在经过算法检测之后,通常会出现高于上限阈值的情况,因此可以检测到工件表面上的裂纹。
可选的步骤635:当原检测区域影像相对应的该区域内的像素值低于该下限阈值时,将处理后的检测区域影像的对应像素值设为第一值。该第一值可以是255或1。当不执行步骤625时,也就无需执行步骤635。对于光线照射不到的凹坑或是黑皮的区域,由于其对应的像素值通常会出现低于下限阈值的情况,因此可以检测到工件表面上的凹坑或是黑皮的区域。
步骤640:将处理后的检测区域影像的该区域内其余的对应像素值设为第二值。换言之,除了在步骤630与635当中被设为差值与第一值的像素值外,该区域内其余的像素值可以设为第二值。该第二值可以是0。
步骤650:判断工件检测区域影像所有区域是否处理完毕。当该扫描算法是行扫描模式或列扫描模式时,则必须针对每一行或每一列进行上述的处理。当所有区域均已处理完毕时,则流程结束。否则,流程回到步骤610,对于新的区域进行处理。
请参考图7所示,其为根据本申请实施例的扫描算法700的流程示意图。该扫描算法700可以是图5所示之步骤530的一部分,由图1A或图1B所示的计算器模块110来执行。某些步骤或某一个步骤的一部分可以由中央处理器模块210或加速计算模块230来实施。某些步骤或某一个步骤的一部分还可以由硬件加速处理模块320来执行。该扫描算法 700可以是先前提过的行列扫描模式。
步骤740:针对工件检测区域影像的每一行与每一列分别计算均值u与标准偏差s。此步骤如同图6的步骤610一般,但是针对每一行与每一列进行。步骤750:根据每一行所分别对应的行正向阈值、行负向阈值、均值u和标准偏差s,计算行上限阈值与行下限阈值。
步骤755:根据每一列所分别对应的列正向阈值、列负向阈值、均值u和标准偏差s,计算列上限阈值与列下限阈值。
步骤760:根据原检测区域影像的像素值所对应的行上限阈值与列上限阈值,计算行列上限阈值。
步骤765:根据原检测区域影像的像素值所对应的行下限阈值与列下限阈值,计算行列下限阈值。
步骤770:将处理后的检测区域影像的对应像素值设为第二值。该第二值可以是0。在本步骤当中,先将检测区域影像中所有的像素值先设为第二值,在后面的步骤780与785当中,再将高于或低于该行列上限阈值或该行列下限阈值的像素值从第二值修改为别的值。
步骤780:当工件检测区域影像相对应的像素值高于该行列上限阈值时,将处理后的检测区域影像的对应像素值设为其与行均值或列均值的差值。在前述可选的步骤515当中,提到当工件的本身具有磁性或铁磁性时,可撒布磁粉在磁性工件的表面上。吸附磁粉的裂纹区域在经过算法检测之后,通常会出现高于上限阈值的情况,因此可以检测到工件表面上的裂纹。
步骤785:当工件检测区域影像相对应的像素值低于该行列下限阈值时,将处理后的检测区域影像的对应像素值设为第一值。该第一值可以是255或1。对于光线照射不到的凹坑或是黑皮的区域,由于其对应的像素值通常会出现低于下限阈值的情况,因此可以检测到工件表面上的凹坑或是黑皮的区域。
步骤790:判断所有像素值是否处理完毕。当所有像素值均已处理完毕时,则流程结束。否则,流程回到步骤760,对于新的像素值进行处理。
请参考图8所示,其为根据本申请实施例的表面缺陷型态判断方法800的流程示意图。该表面缺陷型态判断方法800可以是图5所示的步骤560的一个实施例,用于判断步骤550所计算出的表面缺陷是否为所欲寻找的裂纹、深凹坑或锈皮,藉以进一步过滤出达标或不达目标工件。该表面缺陷型态判断方法800可以由图1A或图1B所示的计算器模块110 来执行。某些步骤或某一个步骤的一部份可以由中央处理器模块210或加速计算模块230来实施。某些步骤或某一个步骤的一部份还可以由硬件加速处理模块320来执行。
步骤810:滤除孤点噪声。当某一像素点的左右、上下两个像素点,或是上下左右四个点均为非缺陷值,而其本身的像素值为缺陷值,则将该像素点的像素值设为非缺陷值。
步骤820:进行霍夫变换。举例来说,公开的软件openCV函式库即包含了霍夫变换的函式。本领域普通技术人员可以理解到,在本步骤当中,可以实施霍夫变换或其变化型,以产生霍夫检测区域影像houghImage。该工件检测区域影像与霍夫检测区域影像houghImage的尺寸相同。
可选的步骤830:降噪。寻找霍夫检测区域影像houghImage当中各连通区域的轮廓面积,接着去除轮廓面积小于一阈值或是区域轮廓长度小于另一阈值的区域。换言之,过小的缺陷区域可以视为噪讯而忽略不计。该轮廓面积参数阈值或是长度阈值可以是在可选的步骤518当中接收的。
步骤840:设定每个区域的最小外接矩形。亦即找出一个最小的方框来框住每一个连通区域。
步骤850:根据该最小外接矩形,计算每个区域的比例。记第i个连通区域的最小外接矩形的长宽分别为xi、yi;记第i个连通区域的轮廓内的面积为areai;记第i个连通区域为contoursi。在一实施例当中,该比例可以是在另一实施例当中,该比例可以是当该比例的值越接近1,则该连通区域为裂纹、深凹坑或锈皮的可能性越大。
步骤860:判断该比例是否大于阈值。现设长宽比阈值aspect_ratio或面积比阈值area_ratio,若连通区域及其轮廓符合大于长宽比阈值aspect_ratio或大于面积比阈值area_ratio,则认为此连通区域为裂纹印迹,即:
换言之,可以判断该最小外接矩形的长边远大于宽边,则可以判断是裂纹。或者是可以判断最小外接矩形的面积远大于连接区域的面积,则可以判断是裂纹。当步骤860判断结果为是时,流程进到步骤870,否则流程进到步骤880。该轮廓面积参数阈值或是长度阈值可以是在可选的步骤518当中接收的。
步骤870:判断该区域为裂纹、深凹坑或锈皮。
步骤880:判断该区域为非裂纹、深凹坑或锈皮。可能是浅凹坑、刮擦痕迹、斑块或灰尘。
步骤890:判断全部区域是否处理完毕。当处理尚未完毕时,流程回到步骤840,否则流程结束。
以下是申请人实际根据上述的实施例进行宽厚钢板工件表面缺陷的检测试验。请参考图9所示,其为根据本申请实施例的工件拍摄情况的照片图。图9的桌面上放置所欲检测的工件,工件的上方是摄像模块120,工件的右方是长条型的照明模块130。若按照图4的示意图来比对图9的实施例,图9实施例的角度410接近90度,角度420接近0度。
在图9的实施例当中,计算器模块110与摄像模块110设置在同一个机壳内。而照明模块130的位置与启闭可以利用手动配置,并不一定需要由计算器模块110控制启闭。
请参考图10所示,其为根据本申请实施例的工件的样图。该工件是国内某钢铁集团锻造加工的厚宽板工件表面的检测。由于该工件为废旧了很久的钢板,其表面与刚锻造加工完成的宽厚板表面有一定的差别,故本实施例的实验工件实际上比刚加工完成的工件更难以检测,更可以验证本申请所提供之机器视觉检测系统与方法的效能。
请参考图11所示,其为根据本申请实施例的工件的表面缺陷的方框示意图。在图11 可以看到,左侧蓝色方框圈的是合格的多个浅凹坑,而右侧多个红色方框圈起的是不合格的深凹坑。换言之,检测结果必须找到深凹坑,而略过浅凹坑。
请参考图12所示,其为根据本申请实施例的机器视觉检测方法的结果图。图12的检测结果是根据行列扫描算法所进行,也就是检测算法700。在步骤710中所使用的是行扫描算法,也就是图6所示的算法,其区域为每一行。在步骤720中所使用的是行扫描算法,也就是图6所示的算法,其区域为每一列。
测试结论:如图12所示的检测效果图能够排除钢板工件表面浅凹坑的影响,只显示钢板工件表面深度较深的凹坑印迹,即表示本申请所提供的机器视觉检测方法可以适用于锻造加工的厚宽板工件表面缺陷检测。需要特别说明的是,图12只示出图11的1#处深凹坑的部分印迹。这是因为该处深凹坑只有中间部分的深度超过合格门限,故图12只显示该处深凹坑当中的深处印痕。
本领域的普通技术人员可以理解到,为了找到某一深度范围的凹坑,也就是滤除较浅的凹坑,相关的系数是前述的正向阈值与负向阈值。这两个阈值是各个算法当中的标准偏差s的倍数,影响着上限阈值与下限阈值。而上限阈值与下限阈值是用来寻找适当深度凹坑的上下限。换言之,适当地配置正向阈值与负向阈值,可以设定寻找深度凹坑的上下限。
请参考图13所示,其为根据本申请实施例的具有油渍的工件的照片图。在图13当中,工件的表面具有两处油渍的渍痕。请参考图14所示,其为根据本申请实施例的机器视觉检测方法,针对图13所得到的结果图。可以从图14看出两处油渍,根据本申请的机器视觉检测方法可以有效的检测出宽厚板表面的油斑水渍缺陷。
请参考图15所示,其是根据本申请实施例的具有浅裂纹的工件的照片图。从图15中看来,在钢板工件的表面从左到右有两道相当浅的裂纹。依据现有技术的检测方法,通常不能有效地检测到这么浅的裂纹。然而,除了本申请所提供的算法较为有效以外,本申请可以检测到浅裂纹的另一个原因,可能是因为打光的问题。根据图4所示的实施例,由于该摄像模块120的中心线与照明模块的灯光中心线的夹角410介在70度到110度之间,所以光线照射到浅裂纹之后,有较大的机会反射到摄像模块120。在发明人所作的实验当中,将上述的夹角410作为变量。当介在70度到110度之间,有较大的概率检测出浅裂纹。而现有技术当中,通常是光源配置在摄像头旁边,也就是让光源与摄像头的中心线的夹角配置为 30度以下的锐角。
在发明人所作的实验当中,发现这样的安排较难检测到浅裂纹。图16和图17分别是具有浅裂纹的工件在非优选打光环境和优选打光环境下的照片图。图16与图17是同一拍摄环境下,但调整光源与摄像模块中心线夹角的不同情况下实验中拍摄的两张照片图。图17的夹角410在上述的优选范围之内,而图16的夹角410在上述的优选范围之外。两张图都有方框,可以很容易地从图17的方框中,看出对比较为明显的黑色浅裂纹。而图16的方框中,黑色浅裂纹与周围部分的对比并不明显。
请参考图18所示,其为根据本申请实施例的机器视觉检测方法的结果图。图18是根据本申请实施例的机器视觉检测方法,针对图15所得到的结果图。虽然还是不能检测出完整的浅裂纹,但至少检测出了浅裂纹的部分。检测人员可以根据经验,对浅裂纹的部分作进一步的破坏性或非破坏性的检测,以判断浅裂纹是否只存在于工件的表面。
请参考图19所示,其为根据本申请实施例的具有浅裂纹下深裂纹的工件的照片图。发明人将图15所示的工件的浅裂纹表面磨开之后,发现在浅裂纹表面之下,具有深度的裂纹。这类的深裂纹严重影响工件的强度,存在很大的安全隐患。例如将具有深裂纹的钢板工件用于防洪防汛或制作水利闸门等耐压部位时,由于裂纹部分的强度不足,使得钢板在水流的冲击或耐压下发生断裂的情况。本申请所提供的机器视觉检测方法与系统,可以有效地检测出浅裂纹,进一步而发现隐藏在表面浅裂纹之下的深裂纹。
根据本申请的一个方案,提供一种机器视觉检测方法,其特征在于,包含:取得具有工件表面的工件检测区域影像;针对该工件检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将处理后的检测区域影像的对应像素的值设为该像素的值与该均值u的差值,否则设为第二值;以及根据该处理后的检测区域影像当中设为该差值与第二值的像素,判断该工件的表面是否具有缺陷。当该像素的值大于该第一区域所对应的该上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留下限阈值以下的缺陷,该机器视觉检测方法还包含以下步骤:根据每一个该第一区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的下限阈值;以及遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值小于该第一区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为该第一值。当该像素的值小于该第一区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了提供全局扫描算法、行扫描算法或列扫描算法,该第一区域为下列其中之一:该工件检测区域影像的全局;该工件检测区域影像的一行;以及该工件检测区域影像的一列。
进一步的,为了提供行列扫描算法,该机器视觉检测方法还包含以下步骤:针对该工件检测区域影像的一或多个行计算对应的行均值u与行标准偏差s;针对该工件检测区域影像的一或多个列计算对应的列均值u与列标准偏差s;根据每一个该行相对应的正向阈值、该行均值u与该行标准偏差s,分别计算每一个该行所对应的行上限阈值;根据每一个该列相对应的正向阈值、该列均值u与该列标准偏差s,分别计算每一个该列所对应的列上限阈值;以及遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行上限阈值与该列上限阈值,计算行列上限阈值,当该像素的值大于所对应的该行列上限阈值时,将处理后的检测区域影像的对应像素的值设为其与该行均值或列均值的差值,否则设为第二值。当该像素的值大于所对应的该行列上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留行列扫描算法当中在下限阈值以下的缺陷,该行列扫描算法还包含以下步骤:根据每一个该行相对应的负向阈值、该行均值u与该行标准偏差s,分别计算每一个该行区域所对应的下限阈值;根据每一个该列相对应的负向阈值、该列均值u与该列标准偏差s,分别计算每一个该列区域所对应的下限阈值;以及遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行下限阈值与该列下限阈值,计算行列下限阈值,当该像素的值小于所对应的该行列下限阈值时,将该检测区域影像的对应像素的值设为该第一值。当该像素的值小于所对应的该行列下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了判断表面缺陷的型态,该机器视觉检测方法还包含:将该处理后的检测区域影像进行霍夫变换,以得到霍夫检测区域影像;在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;以及根据该最小外接矩形,判断该缺陷区域是否为裂纹或凹坑,其中上述之判断该工件中表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含凹坑时,判断该工件的表面具有缺陷。
进一步的,为了滤除孤点以避免对霍夫变换进行干扰,该机器视觉检测方法更包含:在进行该霍夫变换步骤之前,当该处理后的检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
进一步的,为了滤除过小的缺陷区域,该机器视觉检测方法还包含:当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:该缺陷区域的轮廓面积小于阈值;以及该缺陷区域的长度小于另一阈值。
进一步的,为了判断缺陷是否为裂纹或凹坑,在上述判断该缺陷区域是否为裂纹或凹坑的步骤当中,更包含:计算该缺陷区域所对应的该最小外接矩形的比例;以及当该比例大于阈值时,为判断该缺陷区域为裂纹或凹坑,其中该比例为下列其中之一:该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
进一步的,为了更容易地检测到裂纹,该机器视觉检测方法还包含:在该取得步骤之前,先撒布磁粉在该工件检测区域之上。
根据本申请的一个方案,提供一种机器视觉检测系统,其特征在于,包含:摄像模块,用于拍摄所欲检测的工件;以及计算器模块,用于执行软件,以实现下列的步骤:自该摄像模块取得具有工件表面的工件检测区域影像;针对该工件检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将处理后的检测区域影像的对应像素的值设为该像素的值与该均值u的差值,否则设为第二值;以及根据该处理后的检测区域影像当中设为该差值与第二值的像素,判断该工件的表面是否具有缺陷。当该像素的值大于该第一区域所对应的该上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留下限阈值以下的缺陷,该处理模块还用于实现以下步骤:根据每一个该第一区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的下限阈值;以及遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值小于该第一区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为该第一值。当该像素的值小于该第一区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了提供全局扫描算法、行扫描算法或列扫描算法,该第一区域为下列其中之一:该工件检测区域影像的全局;该工件检测区域影像的一行;以及该工件检测区域影像的一列。
进一步的,为了提供行列扫描算法,该处理模块还用于实现以下步骤:针对该工件检测区域影像的一或多个行计算对应的行均值u与行标准偏差s;针对该工件检测区域影像的一或多个列计算对应的列均值u与列标准偏差s;根据每一个该行相对应的正向阈值、该行均值u与该行标准偏差s,分别计算每一个该行所对应的行上限阈值;根据每一个该列相对应的正向阈值、该列均值u与该列标准偏差s,分别计算每一个该列所对应的列上限阈值;以及遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行上限阈值与该列上限阈值,计算行列上限阈值,当该像素的值大于所对应的该行列上限阈值时,将处理后的检测区域影像的对应像素的值设为其与该行均值或列均值的差值,否则设为第二值。当该像素的值大于所对应的该行列上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留行列扫描算法当中在下限阈值以下的缺陷,该处理模块还用于实现以下步骤:根据每一个该行相对应的负向阈值、该行均值u与该行标准偏差s,分别计算每一个该行区域所对应的下限阈值;根据每一个该列相对应的负向阈值、该列均值u与该列标准偏差s,分别计算每一个该列区域所对应的下限阈值;以及遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行下限阈值与该列下限阈值,计算行列下限阈值,当该像素的值小于所对应的该行列下限阈值时,将该检测区域影像的对应像素的值设为该第一值。当该像素的值小于所对应的该行列下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了判断表面缺陷的型态,该计算器模块还用于实现以下步骤:将该处理后的检测区域影像进行霍夫变换,以得到霍夫检测区域影像;在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;以及根据该最小外接矩形,判断该缺陷区域是否为裂纹或凹坑,其中上述之判断该工件的表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含凹坑时,判断该工件的表面具有缺陷。
进一步的,为了滤除孤点以避免对霍夫变换进行干扰,该计算器模块还更用于实现以下步骤:在进行该霍夫变换步骤之前,当该检测结果检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
进一步的,为了滤除过小的缺陷区域,该计算器模块还用于实现以下步骤:当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:该缺陷区域的轮廓面积小于阈值;以及该缺陷区域的长度小于另一阈值。
进一步的,为了判断缺陷是否为裂纹或凹坑,在上述判断该缺陷区域是否为裂纹或凹坑的步骤当中,还包含:计算该缺陷区域所对应的该最小外接矩形的比例;以及当该比例大于阈值时,为判断该缺陷区域为裂纹或凹坑,其中该比例为下列其中之一:该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
进一步的,为了提高检测出表面缺陷的机率,该摄像模块的中心线与照明模块的灯光中心线的夹角,介于70度到110度之间,该照明模块的灯光中心线与该工件表面的夹角,介于0度到30度之间。
进一步的,为了减少不合格钢铁制品的庞大运输成本,该工件为锻造加工的钢板。
进一步的,为了更容易地检测到裂纹,在拍摄所欲检测的工件之前,该工件检测区域上已经被撒布磁粉。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (20)
1.一种机器视觉检测方法,其特征在于,包含:
取得具有工件表面的工件检测区域影像;
针对该工件检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;
根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;
遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将处理后的检测区域影像的对应像素的值设为该像素的值与该均值u的差值,否则设为第二值;以及
根据该处理后的检测区域影像当中设为该差值与第二值的像素,判断该工件的表面是否具有缺陷,将该处理后的检测区域影像进行霍夫变换,以得到霍夫检测区域影像;在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;并根据该最小外接矩形,判断该缺陷区域是否为裂纹或凹坑,当该像素的值大于该第一区域所对应的该上限阈值时,所述缺陷区域为裂纹。
2.如权利要求1所述的机器视觉检测方法,其特征在于,还包含以下步骤:
根据每一个该第一区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的下限阈值;以及
遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值小于该第一区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。
3.如权利要求1所述的机器视觉检测方法,其特征在于,该第一区域为下列其中之一:
该工件检测区域影像的全局;
该工件检测区域影像的一行;以及
该工件检测区域影像的一列。
4.如权利要求1所述的机器视觉检测方法,其特征在于,还包含以下步骤:
针对该工件检测区域影像的一或多个行计算对应的行均值u与行标准偏差s;
针对该工件检测区域影像的一或多个列计算对应的列均值u与列标准偏差s;
根据每一个该行相对应的正向阈值、该行均值u与该行标准偏差s,分别计算每一个该行所对应的行上限阈值;
根据每一个该列相对应的正向阈值、该列均值u与该列标准偏差s,分别计算每一个该列所对应的列上限阈值;以及
遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行上限阈值与该列上限阈值,计算行列上限阈值,当该像素的值大于所对应的该行列上限阈值时,将处理后的检测区域影像的对应像素的值设为其与该行均值或列均值的差值,否则设为第二值。
5.如权利要求4所述的机器视觉检测方法,其特征在于,还包含以下步骤:
根据每一个该行相对应的负向阈值、该行均值u与该行标准偏差s,分别计算每一个该行区域所对应的下限阈值;
根据每一个该列相对应的负向阈值、该列均值u与该列标准偏差s,分别计算每一个该列区域所对应的下限阈值;以及
遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行下限阈值与该列下限阈值,计算行列下限阈值,当该像素的值小于所对应的该行列下限阈值时,将该检测区域影像的对应像素的值设为第一值。
6.如权利要求1所述的机器视觉检测方法,其特征在于,还包含以下步骤:
其中上述之判断该工件的表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含凹坑时,判断该工件的表面有缺陷。
7.如权利要求1所述的机器视觉检测方法,其特征在于,还包含以下步骤:
在进行该霍夫变换步骤之前,当该处理后的检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
8.如权利要求1所述的机器视觉检测方法,其特征在于,还包含以下步骤:
当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:
该缺陷区域的轮廓面积小于阈值;以及
该缺陷区域的长度小于另一阈值。
9.如权利要求1所述的机器视觉检测方法,其特征在于,在上述判断该缺陷区域是否为裂纹或凹坑的步骤当中,还包含:
计算该缺陷区域所对应的该最小外接矩形的比例;以及
当该比例大于阈值时,为判断该缺陷区域为裂纹或凹坑,其中该比例为下列其中之一:
该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及
该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
10.一种机器视觉检测系统,其特征在于,包含:
摄像模块,用于拍摄所欲检测的工件;以及
计算器模块,用于执行软件,以实现下列的步骤:
自该摄像模块取得具有工件表面的工件检测区域影像;
针对该工件检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;
根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;
遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将处理后的检测区域影像的对应像素的值设为该像素的值与该均值u的差值,否则设为第二值;以及
根据该处理后的检测区域影像当中设为该差值与第二值的像素,判断该工件的表面是否具有缺陷,将该处理后的检测区域影像进行霍夫变换,以得到霍夫检测区域影像;在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;并根据该最小外接矩形,判断该缺陷区域是否为裂纹或凹坑,当该像素的值大于该第一区域所对应的该上限阈值时,所述缺陷区域为裂纹。
11.如权利要求10所述的机器视觉检测系统,其特征在于,该计算器模块还用于实现以下步骤:
根据每一个该第一区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的下限阈值;以及
遍历该工件检测区域影像的每一个该第一区域的像素,当该像素的值小于该第一区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。
12.如权利要求10所述的机器视觉检测系统,其特征在于,该第一区域为下列其中之一:
该工件检测区域影像的全局;
该工件检测区域影像的一行;以及
该工件检测区域影像的一列。
13.如权利要求10所述的机器视觉检测系统,其特征在于,该计算器模块还用于实现以下步骤:
针对该工件检测区域影像的一或多个行计算对应的行均值u与行标准偏差s;
针对该工件检测区域影像的一或多个列计算对应的列均值u与列标准偏差s;
根据每一个该行相对应的正向阈值、该行均值u与该行标准偏差s,分别计算每一个该行所对应的行上限阈值;
根据每一个该列相对应的正向阈值、该列均值u与该列标准偏差s,分别计算每一个该列所对应的列上限阈值;以及
遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行上限阈值与该列上限阈值,计算行列上限阈值,当该像素的值大于所对应的该行列上限阈值时,将处理后的检测区域影像的对应像素的值设为其与该行均值或列均值的差值,否则设为第二值。
14.如权利要求13所述的机器视觉检测系统,其特征在于,该计算器模块还用于实现以下步骤:
根据每一个该行相对应的负向阈值、该行均值u与该行标准偏差s,分别计算每一个该行区域所对应的下限阈值;
根据每一个该列相对应的负向阈值、该列均值u与该列标准偏差s,分别计算每一个该列区域所对应的下限阈值;以及
遍历该工件检测区域影像的每一个像素,根据该像素所对应的该行下限阈值与该列下限阈值,计算行列下限阈值,当该像素的值小于所对应的该行列下限阈值时,将该检测区域影像的对应像素的值设为第一值。
15.如权利要求10所述的机器视觉检测系统,其特征在于,该计算器模块还用于实现以下步骤:
其中上述之判断该工件的表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含凹坑时,判断该工件的表面具有缺陷。
16.如权利要求10所述的机器视觉检测系统,其特征在于,该计算器模块还用于实现以下步骤:
在进行该霍夫变换步骤之前,当该处理后的检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
17.如权利要求10所述的机器视觉检测系统,其特征在于,该计算器模块还用于实现以下步骤:
当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:
该缺陷区域的轮廓面积小于阈值;以及
该缺陷区域的长度小于另一阈值。
18.如权利要求10所述的机器视觉检测系统,其特征在于,在上述判断该缺陷区域是否为裂纹或凹坑的步骤当中,还包含:
计算该缺陷区域所对应的该最小外接矩形的比例;以及
当该比例大于阈值时,为判断该缺陷区域为裂纹或凹坑,其中该比例为下列其中之一:
该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
19.如权利要求10所述的机器视觉检测系统,其特征在于,该摄像模块的中心线与照明模块的灯光中心线的夹角,介于70度到110度之间,该照明模块的灯光中心线与该工件表面的夹角,介于0度到30度之间。
20.如权利要求10所述的机器视觉检测系统,其特征在于,该工件为锻造加工的钢板。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010867054.3A CN111968100B (zh) | 2020-08-26 | 2020-08-26 | 机器视觉检测方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010867054.3A CN111968100B (zh) | 2020-08-26 | 2020-08-26 | 机器视觉检测方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111968100A CN111968100A (zh) | 2020-11-20 |
CN111968100B true CN111968100B (zh) | 2021-10-26 |
Family
ID=73390368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010867054.3A Active CN111968100B (zh) | 2020-08-26 | 2020-08-26 | 机器视觉检测方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111968100B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114046749B (zh) * | 2021-10-26 | 2022-07-08 | 刘红霞 | 预制混凝土构件点状凹坑结合面粗糙度检测方法及系统 |
CN114782419B (zh) * | 2022-06-17 | 2022-08-23 | 山东水利建设集团有限公司 | 一种水利建设倾斜度检测方法 |
CN115060731B (zh) * | 2022-08-04 | 2022-12-02 | 楚能新能源股份有限公司 | 一种方差算法检测负极膜片颗粒划痕露金属的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102353680A (zh) * | 2011-07-08 | 2012-02-15 | 中国科学院宁波材料技术与工程研究所 | 小型工件表面缺陷的评估方法以及检测不合格工件的流程 |
CN104156913A (zh) * | 2014-07-15 | 2014-11-19 | 电子科技大学 | 金属圆柱工件表观缺陷自动光学检测方法 |
CN106204614A (zh) * | 2016-07-21 | 2016-12-07 | 湘潭大学 | 一种基于机器视觉的工件外观缺陷检测方法 |
CN109544506A (zh) * | 2018-10-17 | 2019-03-29 | 潍坊路加精工有限公司 | 工件外观缺陷的检测方法及装置 |
CN110070524A (zh) * | 2019-04-03 | 2019-07-30 | 北京东舟技术股份有限公司 | 一种智能终端面板视觉故障检测系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070000434A1 (en) * | 2005-06-30 | 2007-01-04 | Accent Optical Technologies, Inc. | Apparatuses and methods for detecting defects in semiconductor workpieces |
JP5710314B2 (ja) * | 2011-02-25 | 2015-04-30 | 株式会社東芝 | マスク検査方法およびその装置 |
-
2020
- 2020-08-26 CN CN202010867054.3A patent/CN111968100B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102353680A (zh) * | 2011-07-08 | 2012-02-15 | 中国科学院宁波材料技术与工程研究所 | 小型工件表面缺陷的评估方法以及检测不合格工件的流程 |
CN104156913A (zh) * | 2014-07-15 | 2014-11-19 | 电子科技大学 | 金属圆柱工件表观缺陷自动光学检测方法 |
CN106204614A (zh) * | 2016-07-21 | 2016-12-07 | 湘潭大学 | 一种基于机器视觉的工件外观缺陷检测方法 |
CN109544506A (zh) * | 2018-10-17 | 2019-03-29 | 潍坊路加精工有限公司 | 工件外观缺陷的检测方法及装置 |
CN110070524A (zh) * | 2019-04-03 | 2019-07-30 | 北京东舟技术股份有限公司 | 一种智能终端面板视觉故障检测系统 |
Non-Patent Citations (1)
Title |
---|
基于双阈值自适应分割的轴承滚子表面缺陷提取技术研究;易礼燕等;《计算机科学与应用》;20190213;第9卷(第02期);第2.2节第2段和第2.3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN111968100A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111968100B (zh) | 机器视觉检测方法与系统 | |
CN109115785B (zh) | 一种铸件打磨质量检测方法、装置及其使用方法 | |
Choi et al. | Detection of pinholes in steel slabs using Gabor filter combination and morphological features | |
CN109772733B (zh) | 一种基于视觉的缺陷竹块检测分拣装置及方法 | |
US20200018707A1 (en) | Appearance inspection device, lighting device, and imaging lighting device | |
CN117152161B (zh) | 一种基于图像识别的刨花板质量检测方法及系统 | |
JP6264132B2 (ja) | 車体塗装面の検査装置および検査方法 | |
Lin et al. | Image data assessment approach for deep learning-based metal surface defect-detection systems | |
CN106501272B (zh) | 机器视觉焊锡定位检测系统 | |
JP4739044B2 (ja) | 外観検査装置 | |
CN114719749B (zh) | 基于机器视觉的金属表面裂纹检测及真实尺寸测量方法及系统 | |
Fan et al. | Development of auto defect classification system on porosity powder metallurgy products | |
Kong et al. | Online detection of external thread surface defects based on an improved template matching algorithm | |
CN111539927A (zh) | 汽车塑料组合件紧固卡扣缺装检测装置的检测过程及算法 | |
CN111833350B (zh) | 机器视觉检测方法与系统 | |
Xia et al. | An automatic machine vision-based algorithm for inspection of hardwood flooring defects during manufacturing | |
KR102000907B1 (ko) | 페라이트 외관 비전 검사방법 | |
US6232617B1 (en) | Apparatus for detecting surface defects on running metal strip | |
Kaushik et al. | Machine vision based automated inspection approach for clutch friction disc (CFD) | |
CN113177925B (zh) | 一种无损检测水果表面缺陷的方法 | |
CN109785290A (zh) | 基于局部光照归一化的钢板缺陷检测方法 | |
CN111062939A (zh) | 一种带钢表面快速质量甄别与缺陷特征自动提取方法 | |
KR102196396B1 (ko) | 유동적인 디스플레이 패널 글래스의 표면 결함 검사 방법 | |
JP7469740B2 (ja) | ベルト検査システムおよびベルト検査プログラム | |
CN114187269A (zh) | 小零器件表面缺陷边缘快速检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |