CN111833350A - 机器视觉检测方法与*** - Google Patents
机器视觉检测方法与*** Download PDFInfo
- Publication number
- CN111833350A CN111833350A CN202010867013.4A CN202010867013A CN111833350A CN 111833350 A CN111833350 A CN 111833350A CN 202010867013 A CN202010867013 A CN 202010867013A CN 111833350 A CN111833350 A CN 111833350A
- Authority
- CN
- China
- Prior art keywords
- value
- pixel
- row
- image
- detection 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.)
- Granted
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
- G06T7/001—Industrial image inspection using an image reference approach
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- 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/10016—Video; Image sequence
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Geometry (AREA)
- Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种机器视觉检测方法,其特征在于,包含:取得具有复杂表面的工件检测区域影像;利用多个蒙板与算法、参数的组合,对该工件检测区域影像进行计算,以分别得到多个处理后的检测区域影像;结合该多个处理后的检测区域影像以得到检测结果检测区域影像;以及根据该检测结果检测区域影像当中的缺陷,判断该工件中对应到该多个蒙板的表面是否具有缺陷。
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与该标准偏差s,分别计算每一个该第二区域所对应的下限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值小于该第二区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。当该像素的值小于该第二区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了计算到相邻蒙板之间的重迭部分的缺陷,当该第一算法所对应的蒙板与该第二算法所对应的蒙板有部分重迭时,在上述结合该第一算法处理后的第一检测区域影像与该第二算法处理后的第二检测区域影像的步骤当中,还包含将该第一检测区域影像与第二列检测区域影像重迭部分的对应的两个像素进行逻辑运算,当该两个像素当中的一个像素的值为该第一值或该差值时,将该检测结果检测区域影像的对应像素的值设为缺陷值,否则设为非缺陷值。
进一步的,为了判断表面缺陷的型态,该机器视觉检测方法还包含:将该检测结果检测区域影像进行霍夫变换,以得到霍夫检测区域影像;在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;以及根据该最小外接矩形,判断该缺陷区域是否为裂纹,其中上述之判断该工件中对应到该多个蒙板的表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含裂纹时,判断该工作中对应到该多个蒙板的表面具有缺陷。
进一步的,为了滤除孤点以避免对霍夫变换进行干扰,该机器视觉检测方法还包含:在进行该霍夫变换步骤之前,当该检测结果检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
进一步的,为了滤除噪声,该机器视觉检测方法还包含:当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:该缺陷区域的轮廓面积小于阈值;以及该缺陷区域的长度小于另一阈值。
进一步的,为了判断缺陷是否为狭长的裂纹,在上述判断该缺陷区域是否为裂纹的步骤当中,还包含:计算该缺陷区域所对应的该最小外接矩形的比例;以及当该比例大于阈值时,为判断该缺陷区域为裂纹,其中该比例为下列其中之一:该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
进一步的,为了更容易地检测到裂纹,该机器视觉检测方法还包含:在该取得步骤之前,先撒布磁粉在该工件检测区域之上。
根据本申请的一个方案,提供一种机器视觉检测***,其特征在于,包含:摄像模块,用于拍摄所欲检测的工件;以及计算器模块,用于执行软件,以实现下列的步骤:令该摄像模块拍摄所欲检测的工件;自该摄像模块取得具有复杂表面的工件检测区域影像;利用多个蒙板与算法、参数的组合,对该工件检测区域影像进行计算,以分别得到多个处理后的检测区域影像;结合该多个处理后的检测区域影像以得到检测结果检测区域影像;以及根据该检测结果检测区域影像当中的缺陷,判断该工件中对应到该多个蒙板的表面是否具有缺陷。
进一步的,为了利用某一块区域内非零值的均值与标准偏差来计算表面缺陷,该多个算法当中的第一算法包含以下步骤:利用该第一算法所对应的该蒙板对该工件检测区域影像进行屏蔽;将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;针对该工作检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将该处理后的检测区域影像的对应像素的值设为其与该上限阈值的差值,否则设为第二值。当该像素的值大于该第一区域所对应的该上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留下限阈值以下的缺陷,该多个算法当中的该第一算法还包含以下步骤:根据每一个该第一区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的下限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第一区域的像素,当该像素的值小于该第一区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。当该像素的值小于该第一区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了提供全局扫描算法、行扫描算法或列扫描算法,该第一区域为下列其中之一:该工作检测区域影像的全局;该工作检测区域影像的一行,该行包含至少一个非零像素值的像素;以及该工作检测区域影像的一列,该列包含至少一个非零像素值的像素。
进一步的,为了提供行列扫描算法,该多个算法当中的行列扫描算法包含以下步骤:利用该行列扫描算法所对应的该蒙板对该工件检测区域影像进行屏蔽;将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;针对该工作检测区域影像的一或多个行计算对应的行均值u与行标准偏差s;针对该工作检测区域影像的一或多个列计算对应的列均值u与列标准偏差s;根据每一个该行相对应的正向阈值、该行均值u与该行标准偏差s,分别计算每一个该行所对应的行上限阈值;根据每一个该列相对应的正向阈值、该列均值u与该列标准偏差s,分别计算每一个该列所对应的列上限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个像素,当该像素的值大于所对应的该上限阈值时,根据该像素所对应的该行上限阈值与该列上限阈值,计算行列上限阈值,将处理后的检测区域影像的对应像素的值设为其与该行列上限阈值的差值,否则设为第二值。当该像素的值大于所对应的该行列上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留行列扫描算法当中在下限阈值以下的缺陷,该行列扫描算法还包含以下步骤:根据每一个该行相对应的负向阈值、该行均值u与该行标准偏差s,分别计算每一个该行区域所对应的下限阈值;根据每一个该列相对应的负向阈值、该列均值u与该列标准偏差s,分别计算每一个该列区域所对应的下限阈值;遍历屏蔽后的该工件检测区域影像的每一个像素,根据该像素所对应的该行下限阈值与该列下限阈值,计算行列下限阈值,当该像素的值小于所对应的该行列下限阈值时,将该检测区域影像的对应像素的值设为第一值。当该像素的值小于所对应的该行列下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了使用多个蒙板与算法、参数的组合对工件的一个面向进行检测,该多个算法当中的第二算法包含以下步骤:利用该第二算法所对应的该蒙板对该工件检测区域影像进行屏蔽;将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;针对该工作检测区域影像的一或多个第二区域计算对应的均值u与标准偏差s;根据每一个该第二区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第二区域所对应的上限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值大于该第二区域所对应的该上限阈值时,将该处理后的检测区域影像的对应像素的值设为其与该上限阈值的差值,否则设为该第二值,其中该第一区域与该第二区域为下列其中之一,且该第一区域不同于该第二区域:该工作检测区域影像的全局;该工作检测区域影像的一行,该行包含至少一个非零像素值的像素;以及该工作检测区域影像的一列,该列包含至少一个非零像素值的像素。当该像素的值大于该第二区域所对应的该上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留下限阈值以下的缺陷,该多个算法当中的该第二算法还包含以下步骤:根据每一个该第二区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第二区域所对应的下限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值小于该第二区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。当该像素的值小于该第二区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了计算到相邻蒙板之间的重迭部分的缺陷,当该第一算法所对应的蒙板与该第二算法所对应的蒙板有部分重迭时,在上述结合该第一算法处理后的第一检测区域影像与该第二算法处理后的第二检测区域影像的步骤当中,还包含将该第一检测区域影像与第二列检测区域影像重迭部分的对应的两个像素进行逻辑运算,当该两个像素当中的一个像素的值为第一值或该差值时,将该检测结果检测区域影像的对应像素的值设为缺陷值,否则设为非缺陷值。
进一步的,为了判断表面缺陷的型态,该计算器模块还用于:将该检测结果检测区域影像进行霍夫变换,以得到霍夫检测区域影像;在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;以及根据该最小外接矩形,判断该缺陷区域是否为裂纹,其中上述之判断该工件中对应到该多个蒙板的表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含裂纹时,判断该工作中对应到该多个蒙板的表面具有缺陷。
进一步的,为了滤除孤点以避免对霍夫变换进行干扰,该计算器模块还用于:在进行该霍夫变换步骤之前,当该检测结果检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
进一步的,为了降噪,该计算器模块还用于:当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:该缺陷区域的轮廓面积小于阈值;以及该缺陷区域的长度小于另一阈值。
进一步的,为了判断缺陷是否为狭长的裂纹,上述判断该缺陷区域是否为裂纹的步骤当中,还包含:计算该缺陷区域所对应的该最小外接矩形的比例;以及当该比例大于阈值时,为判断该缺陷区域为裂纹,其中该比例为下列其中之一:该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
进一步的,为了检测大型或大量的工件,该机器视觉检测***还包含下列模块的其中之一或其任意组合:机械手臂模块,用于承载该摄像模块;照明模块,用于照明所欲检测的该工件;以及输送带模块,用于移动承载所欲检测的该工件至该摄像模块相应的拍摄位置。
进一步的,为了利用可程序化的硬件来加速工件表面缺陷的检测,该计算器模块还包含现场可程序化逻辑门阵列所组成的并行加速计算模块,用于执行该软件的该计算步骤。
进一步的,为了更容易地检测到裂纹,在拍摄所欲检测的工件之前,该工件检测区域上已经被撒布磁粉。
由于采用上述方案,本发明的有益效果为:针对具有复杂表面的工件的不同的区域,可以根据光线等的不同,设置不同的阈值,进而有效地进行自动化机器视觉检测,能够提供质量检测的一致性标准,还能提高检测的数量与效率,降低检测的人工与时间成本。
附图说明
图1A是根据本申请实施例的机器视觉检测***的方框示意图。
图1B是根据本申请另一实施例的机器视觉检测***的方框示意图。
图2是根据本申请实施例的计算器模块的方框示意图。
图3是根据本申请实施例的加速计算模块的方框示意图。
图4是根据本申请实施例的内存模块所存储数据的方框示意图。
图5是根据本申请实施例的机器视觉检测方法的流程示意图。
图6是根据本申请实施例的扫描算法的流程示意图。
图7是根据本申请实施例的扫描算法的流程示意图。
图8是根据本申请实施例的表面缺陷型态判断方法的流程示意图。
图9是根据本申请实施例的机器视觉检测方法的各步骤执行后的图。
图10是根据本申请实施例的机器视觉检测方法的工件图与裂纹识别图。
图11是根据本申请实施例的蒙板的示意图。
图12A是根据本申请实施例的工件的图。
图12B与图12C分别是图12A的工件的蒙板的图。
图13A是根据本申请实施例的工件的图。
图13B与图13C分别是图13A的工件的蒙板的图。
图14A至图14D是根据本申请实施例的机器视觉检测方法的各步骤执行后的图。
图15A是根据本申请实施例的爪极工件的图。
图15B是图15A所示的爪极工件某一爪的三片蒙板的示意图。
图15C是图15A所示的工件的表面缺陷的示意图。
图15D是图15C所示的工件的检测区域的示意图。
图15E是图15C所示的工件的检测结果的示意图。
图16A是图15A所示的工件的表面缺陷的示意图。
图16B是图16A所示的工件的检测区域的示意图。
图16C是图16A所示的工件的检测结果的示意图。
图17A是图15A所示的工件的表面缺陷的示意图。
图17B是图17A所示的工件的检测区域的示意图。
图17C是图17A所示的工件的检测结果的示意图。
图18A是图15A所示的工件的表面缺陷的示意图。
图18B是图18A所示的工件的检测区域的示意图。
图18C是图18A所示的工件的检测结果的示意图。
图19A是图15A所示的工件的表面缺陷的示意图。
图19B是图19A所示的工件的检测区域的示意图。
图19C是图19A所示的工件的检测结果的示意图。
图20A是图15A所示的工件的表面缺陷的示意图。
图20B是图20A所示的工件的检测区域的示意图。
图20C是图20A所示的工件的检测结果的示意图。
图21A是图15A所示的不具表面缺陷的工件的示意图。
图21B是图21A所示的工件的检测区域的示意图。
图21C是图21A所示的工件的检测结果的示意图。
图22是根据本申请实施例的球笼工件的图。
图23A是图22所示的工件的表面缺陷的示意图。
图23B是图23A所示的工件的检测区域的示意图。
图23C是图23A所示的工件的检测结果的示意图。
图24A是图22所示的工件的表面缺陷的示意图。
图24B是图24A所示的工件的检测区域的示意图。
图24C是图24A所示的工件的检测结果的示意图。
图25A是图22所示的工件的表面缺陷的示意图。
图25B是图25A所示的工件的检测区域的示意图。
图25C是图25A所示的工件的检测结果的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
本申请的说明书主要包含几个部分,首先介绍机器视觉检测***,也就是硬件部分。接着,介绍可以实施于机器视觉检测***的机器视觉检测方法,也就是软件部分。再来是使用上述***与方法所得到的几个结果,用于说明验证本申请所提供之***与方法的效能。最后,说明本申请所提供的多种实施例与其变化。
请参考图1A,其为根据本申请实施例的机器视觉检测***100的方框示意图。该机器视觉检测***100是用来自动化检测一或多个工件199表面缺陷的电子机械***,可以由以下的模块来组成。由于可能需要安装在工厂环境,因此该机器视觉检测***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的启闭、亮度、色温、频段等参数。
该机器视觉检测***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所示,其为根据本申请实施例的内存模块340所存储数据的方框示意图。由于本申请并不限定内存模块340的容量大小,也不限定摄像模块120所拍摄的影像分辨率与尺寸,因此图4所示的实施例只是一个范例。在内存当中,可以包含多个内存块。如图4的左侧,示意有八个内存块。在图4的右侧,可以根据影像分辨率与尺寸,将每个内存块再分割成多个区域。每一个区域可以包含多个检测区域影像大小的存储区,用于存放摄像模块120所拍摄的影像、处理工作中暂存的影像、实现算法所用的程序与数据,也就是所谓的蒙板。
请参考图5所示,其为根据本申请实施例的机器视觉检测方法500的流程示意图。该机器视觉检测方法500可以由图1A或图1B所示的计算器模块110来执行。某些步骤或某一个步骤的一部份可以由中央处理器模块210或加速计算模块230来实施。某些步骤或某一个步骤的一部份还可以由硬件加速处理模块320来执行。
可选的步骤505:当工件的本身具有磁性或铁磁性时,可以喷洒磁粉在磁性工件的表面上。工件是否会出现裂纹,主要是根据加工过程而定的。在某些加工工序或工艺当中,工件并不会产生裂纹。举例来说,切削工艺通常不会产生裂纹。因此,并不是每一种工件在进行机器视觉检测方法500时,都需要执行步骤505。当欲检测的工件表面在加工过程中可能会产生裂纹时,由于裂痕在表面上造成不连续线段或破裂段,使得工件表面或近表面的磁力线在不连续的破裂段部分发生局部畸变而产生漏磁场,可以吸附撒布在工件表面的磁粉。即便是工件本身不具有磁性,或是磁性非常微弱,颗粒很小的磁粉也很容易堆积在裂纹当中。这些磁粉在光线照射后,可以特别显示在检测区域影像当中,其亮度或量度会比周围区域来得高,以至于利用后述的算法对检测区域影像进行处理之后,可以得到裂纹。
在一实施例当中,可以利用喷洒磁粉的机器进行步骤505。例如将工件通电或使工件通过磁场以便磁化工件。接着,将磁粉均匀喷洒到欲检测的磁性工件的表面上。可以根据工件表面的特性,来调整磁化的步骤与喷洒磁粉的步骤。在另一实施例当中,磁粉可以具有较亮的颜色,或是具有荧光。在实施完步骤505之后,流程可以继续前往步骤508或步骤510。
可选的步骤508:接收蒙板、算法与配置参数。若没有预设的蒙板、算法与配置参数时,在本步骤当中,可以接收机器视觉检测方法500、扫描算法600与扫描算法700所运用到蒙板、算法与配置参数,以及表面缺陷型态判断方法800所运用到的参数。举例来说,参数的类型包含了(1)蒙板与扫描算法相关的参数,例如在步骤530、扫描算法600或扫描算法700所提到的与蒙板相关的参数,像是正向阈值与负向阈值等;在表面缺陷型态判断方法800所使用的各类型参数,例如(2)步骤830的降噪步骤所使用的面积阈值参数或长度阈值参数;以及(3)形态学参数,诸如在步骤860当中所使用的面积比阈值参数或长宽比阈值参数。虽然在本申请当中,只提到上述的几种参数,但本领域的普通技术人员可以理解到,本申请无法穷举各算法所要配置的所有参数值。特别是当使用算法的各类变形或衍生算法时,可能需要更多的相关配置参数,但都可以在此步骤中接收这些配置参数。在一实施例当中,步骤508可以只接收与算法相关的配置参数,而不需要接收蒙板与算法。在一实施例当中,步骤508可以只接收已经内含配置参数的算法,不须要再额外接收与算法相关的配置参数。除此之外,本申请并不限定步骤508的执行顺序,只需要在步骤530之前接收到蒙板、算法与配置参数即可。
步骤510:拍摄工件的视频流。可以令摄像模块120对于所要检测的工件199的表面进行拍摄。由于后续处理的计算时间并不固定,因此可以令摄像模块120持续地拍摄视频流,等到有空进行数据处理时,再提取视频流当中的检测区域影像。
步骤520:取得具有复杂表面的工件检测区域影像。本步骤还可以包含控制照明模块130与/或运动机械手臂模块。使得从视频流所取得的工件检测区域影像的明暗程度与位置都是适宜的,可以配合后续的蒙板及算法、参数的组合。按照经验,若能调整照明,使得待检测的表面区域的受光均匀,避免高亮反射,可以提高检测到缺陷的机会。在一实施例当中,该检测区域影像可以包含一个维度的颜色。例如在图4所示的实施例当中,每个像素值的深度是8位,可以表示0-255的灰度值。如果所取的检测区域影像包含多个维度的颜色,例如红蓝绿三个维度的颜色,可以先执行灰度化,将多个维度的数值转换成单一维度的灰度值。举例来说,灰度值为第一倍数的红色值与第二倍数的蓝色值与第三倍数的绿色值的和,该第一倍数、该第二倍数与第三倍数是可调的参数值。
步骤530:利用一个蒙板与算法、配置参数的组合,对该工件检测区域影像进行计算。该蒙板与算法、配置参数的组合可以是在可选的步骤508当中接收的。由于工件的表面复杂,如果是对检测区域影像内的工件整体进行运作的话,可能将复杂表面上的两个连续面之间的转折线误判成缺陷。因此,可以先将工件的复杂表面拆解成一个个的连续面。接着,再针对每一个连续面进行计算。由于不同的连续面有不同的成像,因此可以针对每一个连续面或相应的蒙板,指定一个效果最好的算法进行处理。但本申请并不禁止相邻的连续面使用相同的算法。
在本申请当中,步骤530所使用的算法,至少可以自以下的四种算法当中选出:全局扫描模式、行扫描模式、列扫描模式与行列扫描模式。这四种算法各有优劣,并不能适用于各种工件。因此,可以根据工件的特性,如表面粗糙度与照明光源的角度,选择相应于该蒙板最适合的算法。
按照经验,可得如下结论:1) 针对于表面均一性好、检测干扰项少的工件,其表面伤痕检测宜采用全局扫描;2) 针对于表面在水平方向均一性好、伤痕具有一定倾斜角度的工件,其表面伤痕检测宜采用行扫描;3) 针对于表面在垂直方向均一性好、伤痕倾斜角度较小的工件,其表面伤痕检测宜采用列扫描;4) 针对于表面均一性不好、检测干扰项较多的工件,其表面伤痕检测宜采用行列扫描。言而总之,应根据工件表面均一性(如粗糙度等),和表面伤痕的特性(如倾斜角度、面积大小、伤痕类型等),以选择相应的伤痕检测模式及制作相应蒙板,进而获得较佳的检测效果。关于这四种算法,将在稍后介绍。但本领域普通技术人员可以理解到,除了这四种算法或其变形以外,还可以使用其他种类的算法,例如高通滤波法。只要能够有效地检测出表面缺陷,都可以和相应的蒙板一起使用。
蒙板是一种屏蔽,用于遮住不欲处理的部分。也就是说,可以通过蒙板,将工件分割成不同的区域分别进行处理。因此,蒙板可以是一张二值图。在所欲进行计算的区域,设置为第一值。通常来说,一个蒙板仅处理一个区域。在该区域以外的部分,设置为第二值。举例来说,第一值可以是1,第二值可以是0。因此,当检测区域影像的每个像素值和蒙板的相应像素值相乘,或者是进行与(AND)逻辑运算之后,可以将不欲处理的部分变成为0,而想要进行处理的部分,仍然保留原值。因此,在往后的算法说明当中,有提到非零值才进行处理的部分,零值的部分不处理,都是考虑到蒙板的遮蔽效果。当在该蒙板所欲进行计算的区域中发现缺陷之后,可以根据该蒙板定位出缺陷在工件表面的位置,以便于在检测之后,对于还可以进行修补的工件的缺陷部位进行修补。
当工件有两个相邻的连续面需要进行检测,而这两个连续面被一条转折线相隔时,可以设置第一组蒙板与算法来计算第一个连续面,设置第二组蒙板与算法来计算第二个连续面。为了解决转折线的两边分别使用不同算法而造成的不连续问题,第一组蒙板的屏蔽区域可以包含该转折线与其附近区域,第二组蒙板的屏蔽区域同样可以包含该转折线与其附近区域。换言之,第一组蒙板与算法计算到该转折线与其附近区域,第二组蒙板与算法同样也计算到该转折线与其附近区域。
在一实施例当中,进行算法处理之后,会得到表面缺陷的影像。举例来说,该处理过后的影像可以是二值图。一个表面缺陷包含一个相连的区域,该区域内的像素值可以是第一值,例如是1。非表面缺陷的像素值可以是第二值,例如是0。该影像可能包含一或多个表面缺陷。据此,可以判断每一个表面缺陷的区域尺寸,长度,高度等参数。
在另一实施例当中,该影像的像素值的深度可以超过一位。
步骤540:判断工件是否摄像完毕。当该工件所欲检测的所有面向全部摄像处理完毕时,流程可以进到步骤550。否则,流程可以回到步骤520,继续处理待检测的表面。
步骤550:结合每一个计算结果,以寻找表面缺陷。当工件的某一个面向的处理工作全部结束之后,可以得到一或多组蒙板与算法相应的一或多个计算结果。当工件的一个面向包含多个蒙板时,可以将多个蒙板与算法的处理结果,也就是多张二值图进行或(OR)逻辑运算。如前所述,由于两个蒙板所对应的两个连续面具有转折线时,该转折线与其附近区域会在该两个蒙板所分别对应的两个算法进行两次处理。只要在任一次处理当中,该转折线与其附近区域具有表面缺陷,则在对两张影像进行逻辑运算时,该转折线与其附近区域的表面缺陷都会被保留下来。
在结合两张影像时,需要考虑的部分包含了两张蒙板与算法的处理结果的联集部分。当所欲检测的区域设为第一值时,两张蒙板与算法的处理结果当中任一张具有第一值的区域,都是上述要进行结合的区域。在结合之后,就可以在两张蒙板所欲检测的区域当中,找到一或多个表面缺陷。接着,流程可以进到可选的步骤560,或是直接进到步骤570。
可选的步骤560:可以将结合后的影像或二值图,进行霍夫变换(Houghtransform)来进行表面缺陷形态学的判定。霍夫变换或者是霍夫变换的衍生算法是一种特征提取的方法,被广泛地应用在图像分析、机器视觉与数字图像处理方面。其算法是用来当因为影像中表面缺陷的不完整,导致某些像素点的缺漏,或是有噪声干扰,所以无法很准确地将缺陷的形状分成直线、圆形、椭圆形或其他形状的集合。可以通过霍夫变换的算法,来找出表面缺陷的形状,进而判定所找到的表面缺陷的型态。
步骤570:根据所找到的缺陷,判断工件是否合格。在某些实施例中,不能在工件找到任何缺陷。在其他实施例中,制造商可以接受工件具有某一型态的表面缺陷。
可选的步骤580:当判断工件不合格时,可以令告警模块160发出告警,也可以令输送带模块140将不合格的工件踢出。
接着,将介绍先前在步骤530当中提到的四种算法。在执行这四种算法之前,工件的原检测区域影像srcImage已经利用蒙板进行屏蔽,得到工作检测区域影像temp。接着在一个可选的步骤当中,把某一门限值以下的像素值都当成噪声,举例来说,将像素值大于2的点保留到工作检测区域影像temp当中。换言之,该工作检测区域影像temp的像素点不是等于0,就是大于2。当记录蒙板的检测区域影像的每个像素值的深度不是一位时,则蒙板边缘的锯齿部分的像素值,可能会出现第三值。举例来说,当像素值的深度是八位时,第一值是255,第二值是0,而在蒙板边缘的锯齿部分的像素值可能是第三值1。因此,要通过此步骤把蒙板边缘部分的噪声拿掉。
第一种全局扫描模式计算工作检测区域影像temp的均值u、方差v与标准偏差s。其中均值的计算式如下:
式1-1是全局均值u的计算式,其中,m与n分别为工作检测区域影像temp的行数与列数,aij是非0的第i行第j列的像素值,t为非零像素值的个数。换言之,可以只计算非零像素值的均值,被当成噪声的像素值可以不参与计算。
式1-2为全局方差v的计算公式,v即为图像全局像素点的像素方差,为图像全局像素点的像素标准差s的平方。可以只计算非零像素值的方差v,被当成噪声的像素值可以不参与计算。
从式1-2可以导出式1-3,其为全局标准差s的计算公式。
接着,取得全局正向阈值ko_up与全局负向阈值ko_down,然后再依据全局均值u与标准偏差s来计算全局上限阈值与全局下限阈值。其中,全局上限阈值是标准偏差s乘以全局正向阈值ko_up的积,再加上均值u的和值,全局下限阈值是均值u减去标准偏差s乘以全局负向阈值ko_down之积的差值。全局上限阈值必然会大于全局下限阈值。
当原检测区域影像srcImage中,具有小于全局下限阈值的像素值时,则将处理结果检测区域影像resImage当中所对应位置的像素值设为第一值。当原检测区域影像srcImage中,具有介于全局上限阈值与全局下限阈值之间的像素值时,则将处理结果检测区域影像resImage当中所对应位置的像素值设为第二值。当原检测区域影像srcImage中,具有大于全局上限阈值的像素值时,则将处理结果检测区域影像resImage当中所对应位置的像素值设为原像素值与均值u的差值。
处理结果检测区域影像resImage的行数列数与工作检测区域影像相同,其每一个像素点值的表达式为:
式1-4当中,rij值为处理结果检测区域影像resImage的第i行第j列像素点的值。在式1-4当中,第一值为255,第二值为0,差值不为第一值255,也不为第二值0。因此,处理结果检测区域影像resImage的每一个像素值占用八位。本申请并不限定每一个像素值所占用的储存位。
第二种行扫描模式。针对工作检测区域影像temp的每一行,先计算工作检测区域影像temp的第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中,具有小于行下限阈值的像素值时,则将处理结果检测区域影像当中所对应位置的像素值设为第一值。当原检测区域影像srcImage中,具有介于行上限阈值与行下限阈值之间的像素值时,则将处理结果检测区域影像当中所对应位置的像素值设为第二值。当原检测区域影像srcImage中,具有大于行上限阈值的像素值时,则将处理结果检测区域影像resImage当中所对应位置的像素值设为原像素值与行均值u的差值。
处理结果检测区域影像resImage的行数列数与工作检测区域影像相同,在第i行当中每一个像素点值的表达式为:
式2-4中,rij值即为处理结果检测区域影像resImage中第i行第j列像素点的值。注意,只有当像素值非零时才加入计算。在式2-4当中,第一值为255,第二值为0,差值不为第一值255,也不为第二值0。因此,处理结果检测区域影像resImage的每一个像素值占用八位。本申请并不限定每一个像素值所占用的储存位。
接着,再对下一行重复进行上述的过程,直到得到整个处理结果检测区域影像resImage为止。
第三种算法是列扫描模式。针对工作检测区域影像temp的每一列,先计算工作检测区域影像temp的第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乘以列负向阈值kc_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值即为原检测区域影像srcImage中第i行第j列像素点的值。注意,只有当像素值非零时才加入计算。
在上述的四种算法当中,若三个负向阈值ko_down、krow_down、kc_down被设为0,则并不计算均值u与标准偏差s和相应负向阈值之积的减法,自然也就无需进行像素值与差值的比较,可以减少计算量。此外,在进行比较时,只对非零的像素值进行计算,也就是对于蒙板遮蔽的区域不进行计算。换句话说,当在进行行扫描模式与列扫描模式时,当整行或整列的像素值全为0时,就不需要对该行或该列进行计算。
在上述的四种算法当中,在一实施例当中,当处理结果检测区域影像resImage的某个像素值不是第一值(255),也不是第二值(0)时,表示该像素值大于上限阈值,可以将该像素值视为缺陷。在一实施例当中,当处理结果检测区域影像resImage的某个像素值为第一值(255)时,表示该像素值小于下限阈值,也可以将该像素值视为缺陷。换言之,缺陷存在于大于上限阈值与/或小于下限阈值的像素值所在的位置。如果将处理结果检测区域影像转换为二值图时,可以将具有缺陷的像素值,例如差值与/或第一值设为缺陷值,其余的像素值设为非缺陷值。
由于在检测表面时,不同的正向阈值与负向阈值会影响到检测表面缺陷凹坑的深度。因此可以根据复杂表面所反射光线的不同情况,针对不同的算法设置不同的正向阈值与负向阈值,因此能够提高在复杂表面检出缺陷的机率。
在前述可选的步骤505当中,提到当工件的本身具有磁性或铁磁性时,可撒布磁粉在磁性工件的表面上。吸附磁粉的裂纹区域在经过算法检测之后,通常会出现高于上限阈值的情况,因此可以检测到工件表面上的裂纹。
而对于光线照射不到的凹坑或是黑皮的区域,由于其对应的像素值通常会出现低于下限阈值的情况,因此可以检测到工件表面上的凹坑或是黑皮的区域。藉由在正态分布的灰度图设置上限阈值与下限阈值,本发明所提供的四种算法可以检测出上下两端的异常部分。
请参考图6所示,其为根据本申请实施例的扫描算法600的流程示意图。该扫描算法600可以是图5所示步骤530的一部分,由图1A或图1B所示的计算器模块110来执行。某些步骤或某一个步骤的一部分可以由中央处理器模块210或加速计算模块230来实施。某些步骤或某一个步骤的一部分还可以由硬件加速处理模块320来执行。该扫描算法600可以是先前提过的全局扫描模式、行扫描模式或列扫描模式其中之一。该扫描算法600可以参考前述关于步骤530的解说。
步骤610:利用蒙板对原检测区域影像进行屏蔽。
可选的步骤620:将蒙板边缘的锯齿部分对应的像素值清零。例如,在门限值2以下的数值清零。
步骤630:将非零像素值复制到工作检测区域影像。该工作检测区域影像如先前所述的工作检测区域影像temp。
步骤640:针对工作检测区域影像的一个区域计算均值u与标准偏差s。如前所述,当该区域为工作检测区域影像temp全部非零像素值时,则该扫描算法600可以是全局扫描模式。当该区域为工作检测区域影像某一行的非零像素值时,则该扫描算法600可以是行扫描模式。当该区域为工作检测区域影像某一列的非零像素值时,则该扫描算法600可以是列扫描模式。
步骤650:根据该区域相对应的正向阈值、均值u与标准偏差s,计算上限阈值。当扫描算法600为全局扫描模式时,该正向阈值可以是全局正向阈值ko_up。上限阈值是标准偏差s乘以全局正向阈值ko_up的积,再加上全局均值u的和值。当扫描算法600为行扫描模式时,该正向阈值可以是行正向阈值krow_up。上限阈值是标准偏差s乘以行正向阈值krow_up的积,再加上行均值u的和值。当扫描算法600为列扫描模式时,该正向阈值可以是列正向阈值kc_up。上限阈值是标准偏差s乘以列正向阈值kc_up的积,再加上列均值u的和值。
可选的步骤655:根据该区域相对应的负向阈值、均值u与标准偏差s,计算下限阈值。当扫描算法600为全局扫描模式时,该负向阈值可以是全局负向阈值ko_down。下限阈值是全局均值u减去标准偏差s乘以全局负向阈值ko_down之积的差值。当扫描算法600为行扫描模式时,该负向阈值可以是行负向阈值krow_down。下限阈值是行均值u减去标准偏差s乘以行负向阈值krow_down之积的差值。当扫描算法600为列扫描模式时,该负向阈值可以是列负向阈值kc_down。下限阈值是全局均值u减去标准偏差s乘以列负向阈值kc_down之积的差值。如前所述,步骤655是可选的。
步骤660:当原检测区域影像相对应的该区域内的像素值高于该上限阈值时,将处理后的检测区域影像的对应像素值设为其与均值的差值。在前述可选的步骤505当中,提到当工件的本身具有磁性或铁磁性时,可撒布磁粉在磁性工件的表面上。吸附磁粉的裂纹区域在经过算法检测之后,通常会出现高于上限阈值的情况,因此可以检测到工件表面上的裂纹。
可选的步骤665:当原检测区域影像相对应的该区域内的像素值低于该下限阈值时,将处理后的检测区域影像的对应像素值设为第一值。该第一值可以是255或1。当不执行步骤655时,也就无需执行步骤665。对于光线照射不到的凹坑或是黑皮的区域,由于其对应的像素值通常会出现低于下限阈值的情况,因此可以检测到工件表面上的凹坑或是黑皮的区域。
步骤670:将处理后的检测区域影像的该区域内其余的对应像素值设为第二值。换言之,除了在步骤660与665当中被设为差值与第一值的像素值外,该区域内其余的像素值可以设为第二值。该第二值可以是0。
步骤680:判断工作检测区域影像所有区域是否处理完毕。当该扫描算法是行扫描模式或列扫描模式时,则必须针对每一行或每一列进行上述的处理。当所有区域均已处理完毕时,则流程结束。否则,流程回到步骤640,对于新的区域进行处理。
请参考图7所示,其为根据本申请实施例的扫描算法700的流程示意图。该扫描算法700可以是图5所示步骤530的一部分,由图1A或图1B所示的计算器模块110来执行。某些步骤或某一个步骤的一部分可以由中央处理器模块210或加速计算模块230来实施。某些步骤或某一个步骤的一部分还可以由硬件加速处理模块320来执行。该扫描算法700可以是先前提过的行列扫描模式。前三个步骤610~630,可以参考图6所示实施例的说明。
步骤740:针对工作检测区域影像的每一行与每一列分别计算均值u与标准偏差s。此步骤如同图6的步骤640一般,但是针对每一行与每一列进行。步骤750:根据每一行所分别对应的行正向阈值、行负向阈值、均值u和标准偏差s,计算行上限阈值与行下限阈值。
步骤755:根据每一列所分别对应的列正向阈值、列负向阈值、均值u和标准偏差s,计算列上限阈值与列下限阈值。
步骤760:根据原检测区域影像的像素值所对应的行上限阈值与列上限阈值,计算行列上限阈值。
步骤765:根据原检测区域影像的像素值所对应的行下限阈值与列下限阈值,计算行列下限阈值。
步骤770:将处理后的检测区域影像的对应像素值设为第二值。该第二值可以是0。
步骤780:当工作检测区域影像相对应的像素值高于该行列上限阈值时,将处理后的检测区域影像的对应像素值设为其与行均值或列均值的差值。在前述可选的步骤505当中,提到当工件的本身具有磁性或铁磁性时,可撒布磁粉在磁性工件的表面上。吸附磁粉的裂纹区域在经过算法检测之后,通常会出现高于上限阈值的情况,因此可以检测到工件表面上的裂纹。
步骤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当中各连通区域的轮廓面积,接着去除轮廓面积小于一阈值或是区域轮廓长度小于另一阈值的区域。换言之,过小的缺陷区域可以视为噪声而忽略不计。该轮廓面积参数阈值或是长度阈值可以是在可选的步骤508当中接收的。
步骤840:设定每个区域的最小外接矩形。亦即找出一个最小的方框来框住每一个连通区域。
步骤850:根据该最小外接矩形,计算每个区域的比例。记第i个连通区域的最小外接矩形的长宽分别为xi、yi;记第i个连通区域的轮廓内的面积为areai;记第i个连通区域为contoursi。在一实施例当中,该比例可以是。在另一实施例当中,该比例可以是。当该比例的值越接近1,则该连通区域为裂纹的可能性越大。
步骤860:判断该比例是否大于阈值。现设长宽比阈值aspect_ratio或面积比阈值area_ratio,若连通区域及其轮廓符合大于长宽比阈值aspect_ratio或大于面积比阈值area_ratio,则认为此连通区域为裂纹印迹,即:
换言之,可以判断该最小外接矩形的长边远大于宽边,则可以判断是裂纹。或者是可以判断最小外接矩形的面积远大于连接区域的面积,则可以判断是裂纹。当步骤860判断结果为是时,流程进到步骤870,否则流程进到步骤880。该长宽比阈值aspect_ratio或面积比阈值area_ratio可以是在可选的步骤508当中接收的。
步骤870:判断该区域为裂纹。
步骤880:判断该区域为非裂纹。可能是斑块或灰尘。
步骤890:判断全部区域是否处理完毕。当处理尚未完毕时,流程回到步骤840,否则流程结束。
请参考图9所示,其为根据本申请实施例的机器视觉检测方法500的各步骤执行后的图。从左到右,图9包含了原图、经过上中下三个蒙板所屏蔽的三个原图区域、经过步骤530所计算后的三个二值图、经过霍夫转换后表面缺陷图、以及结合三个区域后的结果图。可以从图9看到,原本必须要用肉眼仔细检测的裂纹,经过本申请所提供的机器视觉检测方法500进行探伤检测之后,可以很清楚地呈现出在工件中间的一道不连续的裂纹。
请参考图10,其为根据本申请实施例的机器视觉检测方法的工件图与裂纹识别图。图10省略了图9所示的各步骤执行后的图。同样可以从图10看到,原本必须要用肉眼仔细检测的裂纹,经过本申请所提供的机器视觉检测方法500进行探伤检测之后,可以很清楚地呈现出在工件中间的一道不连续的裂纹。
请参考图11,其为根据本申请实施例的蒙板的示意图。一个蒙板数据主要包含两个信息:检测部分的切割边界和抠像信息。值得注意的是,同一种类型工件可能有多个蒙板,而非只有一个。
请参考图12A,其为根据本申请实施例的工件的图。请再参考图12B与图12C,其分别是图12A的工件的蒙板的图。这两个蒙板把图12A所示工件分成中间,以及左右两边。
请参考图13A,其为根据本申请实施例的工件的图。请再参考图13B与图13C,其分别是图13A的工件的蒙板的图。如同图12B与12C相同,这两个蒙板把图13A所示工件分成中间,以及左右两边。
请参考图14A至图14D,其分别为根据本申请实施例的机器视觉检测方法的各步骤执行后的图。图14A是原图。图14B是执行完步骤530之后的结果图。图14C是执行完步骤820之后的结果图。图14D则是执行完步骤560或是890之后的结果图。
在图14A至图14D的实施例当中,算法为行列扫描模式。行正向阈值krow_up、行负向阈值krow_down、列正向阈值kc_up与列负向阈值kc_down都是2.5。在该实施例当中,执行了扫描算法700。在步骤830当中,面积的最小阈值设为80。在步骤860当中,长宽比阈值aspect_ratio设为0.8,面积比阈值area_ratio设为0.9。
请参考图15A,其为根据本申请实施例的爪极工件的图。在以下的多个实施例当中,均使用图15A所示的爪极工件。以下的实验是用于验证本申请所提供的***与方法是否适用于锻造加工的爪极工件表面缺陷(如凹坑、氧化皮)检测。本次实验共选取6件表面有缺陷的爪极样件进行表面缺陷检测测试,以验证本机器视觉探伤算法应用于爪极工件表面缺陷检测的正确性、可行性和实用性。
请参考图15B,其为图15A所示的爪极工件某一爪的三片蒙板的示意图。可以从图15B见到,该爪极工件的每一爪表面具有三个连续面,由两条转折线隔开。因此,以下的实验均使用三个蒙板对该爪的表面进行探伤。这三个蒙板在两条转折线的部分可以是重迭的,以避免过滤掉在转折线附近的表面缺陷被滤除。
爪极工件实验一:1号爪极样件(外圆处有凹坑)表面缺陷检测实验
请参考图15C,其为图15A所示的工件的表面缺陷的示意图。这个工件的表面缺陷是在外圆处有凹坑,位在图示的方框当中。
请参考图15D,其为图15C所示的工件的检测区域的示意图。此图是经过蒙板屏蔽后的结果图。
请参考图15E,其为图15C所示的工件的检测结果的示意图。可以清楚地看到该凹坑。
测试结论:如图15C至图15E所示,检测效果图均能够显示爪极外圆较深的凹坑印迹,即表明本申请可适用于锻造加工的爪极工件外圆缺陷检测。
爪极工件实验二:2号爪极样件(磁倒角处表面缺陷)表面缺陷检测实验
测试结论:如图16A至图16C所示,检测效果图均能够显示爪极磁倒角处表面缺陷较深的凹坑印迹,即表明本申请可适用于锻造加工的爪极工件磁倒角处表面缺陷检测。
爪极工件实验三:3号爪极样件(爪弯处有凹坑)表面缺陷检测实验
测试结论:如图17A至图17C所示,检测效果图能够显示爪极爪弯处深度较深的凹坑印迹,即表明本申请可适用于锻造加工的爪极工件爪弯处表面缺陷检测。
爪极工件实验四:4号爪极样件(外圆、磁倒角处有凹坑)表面缺陷检测实验
测试结论:如图18A至图18C所示,检测效果图能够显示爪极外圆和磁倒角处深度较深的凹坑印迹,即表明本申请可适用于锻造加工的爪极工件外圆和磁倒角处表面缺陷检测。
爪极工件实验五:5号爪极样件(外圆与磁倒角交接处有凹坑)表面缺陷检测实验
测试结论:如图18A至图18C所示,检测效果图能够显示爪极外圆和磁倒角交接处深度较深的凹坑印迹,且并未显示爪极磁倒角处的浅凹坑印迹,即表明本申请可不受表面浅凹坑的影响,适用于锻造加工的爪极工件外圆和磁倒角交接处表面缺陷检测。
爪极工件实验六:6号爪极样件(磁倒角处有凹坑)表面缺陷检测实验
测试结论:如图19A至图19C所示,检测效果图能够显示爪极磁倒角处深度较深的凹坑印迹,即表明本申请可适用于锻造加工的爪极工件磁倒角处表面缺陷检测。
爪极工件实验七:7号爪极样件(爪弯处深度较深的凹坑)表面缺陷检测实验
测试结论:如图20A至图20C所示,检测效果图能够显示爪极爪弯处深度较深的凹坑印迹,即表明本申请可适用于锻造加工的爪极工件爪弯处表面缺陷检测。
爪极工件实验八:8号爪极样件(完好表面)表面缺陷检测实验
测试结论:如图21A至图21C所示,爪极样件完好表面的检测效果图未显示任何异常印迹,即未发送误检现象,表明本申请可适用于锻造加工的爪极工件表面缺陷检测,且其稳定性较好。
根据上述爪极工件表面缺陷检测实验结果,可得出以下结论:
检测效果图能够显示爪极外圆、磁倒角及两者交接处等表面深度较深的凹坑印迹,即表明本申请适用于爪极工件外圆、磁倒角及两者交接处等表面缺陷检测。
检测效果图对于爪极完好表面或浅凹坑的检测未显示任何异常印迹,即未发送误检现象,表明本申请可适用于锻造加工的爪极工件表面缺陷检测,且其稳定性较好。
请参考图22,其为根据本申请实施例的球笼工件的图。在以下的多个实施例当中,均使用图22所示的爪极工件。以下的实验是用于验证本申请所提供的***与方法是否适用于球笼工件表面缺陷(如裂纹、凹坑等)检测。本次实验共采集球笼样件表面图片进行工件表面缺陷检测测试,以验证本机器视觉探伤算法应用于球笼工件表面缺陷检测的正确性、可行性和实用性。
球笼实验一A:表面有缺陷的球笼样件表面缺陷检测实验
请参考图23A,其为图22所示的球笼工件表面缺陷的示意图。这个工件的表面缺陷是在球笼内侧的上缘处有裂纹,位在图示的方框当中。
请参考图23B,其为图23A所示的工件的检测区域的示意图。此图是经过蒙板屏蔽后的结果图。
请参考图23C,其为图23A所示的工件的检测结果的示意图。可以清楚地看到多道裂纹。
球笼实验一B:表面有缺陷的球笼样件表面缺陷检测实验
请参考图24A,其为图22所示的球笼工件表面缺陷的示意图。这个工件的表面缺陷是在球笼内侧的下缘处有裂纹,位在图示的方框当中。
请参考图24B,其为图24A所示的工件的检测区域的示意图。此图是经过蒙板屏蔽后的结果图。
请参考图24C,其为图24A所示的工件的检测结果的示意图。可以清楚地看到多道裂纹。
测试结论:如上图23A-图24C所示,机器视觉探伤算法的检测效果图均能够显示球笼样件表面的裂纹印迹,即表明机器视觉探伤算法可检测出球笼样件表面缺陷。
球笼实验二:表面无缺陷的球笼样件表面缺陷检测实验
请参考图25A,其为图22所示的球笼工件表面缺陷的示意图。这个工件并没有表面缺陷。
请参考图25B,其为图25A所示的工件的检测区域的示意图。此图是经过蒙板屏蔽后的结果图。
请参考图25C,其为图25A所示的工件的检测结果的示意图。可以清楚地看到并没有表面缺陷。
测试结论:如上图25A-25C所示,球笼样件完好表面的检测效果图未显示任何异常印迹,即未发生误检现象,即表明机器视觉探伤算法可用于球笼工件表面缺陷检测,且其稳定性较好。
由球笼实验一A与B可知,机器视觉探伤算法的检测效果图均能够显示球笼样件表面的裂纹印迹,即表明机器视觉探伤算法可检测出球笼样件表面缺陷。
由球笼实验二可知,球笼样件完好表面的检测效果图未显示任何异常印迹,即未发生误检现象,即表明机器视觉探伤算法可用于球笼工件表面缺陷检测,且其稳定性较好。
根据本申请的一个方案,提供一种机器视觉检测方法,其特征在于,包含:取得具有复杂表面的工件检测区域影像;利用多个蒙板与算法、参数的组合,对该工件检测区域影像进行计算,以分别得到多个处理后的检测区域影像;结合该多个处理后的检测区域影像以得到检测结果检测区域影像;以及根据该检测结果检测区域影像当中的缺陷,判断该工件中对应到该多个蒙板的表面是否具有缺陷。
进一步的,为了利用某一块区域内非零值的均值与标准偏差来计算表面缺陷,该多个算法当中的第一算法包含以下步骤:利用该第一算法所对应的该蒙板对该工件检测区域影像进行屏蔽;将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;针对该工作检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将该处理后的检测区域影像的对应像素的值设为其与该均值u的差值,否则设为第二值。当该像素的值大于该第一区域所对应的该上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留下限阈值以下的缺陷,该多个算法当中的该第一算法还包含以下步骤:根据每一个该第一区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的下限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第一区域的像素,当该像素的值小于该第一区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。当该像素的值小于该第一区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了提供全局扫描算法、行扫描算法或列扫描算法,该第一区域为下列其中之一:该工作检测区域影像的全局;该工作检测区域影像的一行,该行包含至少一个非零像素值的像素;以及该工作检测区域影像的一列,该列包含至少一个非零像素值的像素。
进一步的,为了提供行列扫描算法,该多个算法当中的行列扫描算法包含以下步骤:利用行列扫描算法所对应的该蒙板对该工件检测区域影像进行屏蔽;将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;针对该工作检测区域影像的一或多个行计算对应的行均值u与行标准偏差s;针对该工作检测区域影像的一或多个列计算对应的列均值u与列标准偏差s;根据每一个该行相对应的正向阈值、该行均值u与该行标准偏差s,分别计算每一个该行所对应的行上限阈值;根据每一个该列相对应的正向阈值、该列均值u与该列标准偏差s,分别计算每一个该列所对应的列上限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个像素,根据该像素所对应的该行上限阈值与该列上限阈值,计算行列上限阈值,当该像素的值大于所对应的该行列上限阈值时,将处理后的检测区域影像的对应像素的值设为其与该行均值或列均值的差值,否则设为第二值。当该像素的值大于所对应的该行列上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留行列扫描算法当中在下限阈值以下的缺陷,该行列扫描算法还包含以下步骤:根据每一个该行相对应的负向阈值、该行均值u与该行标准偏差s,分别计算每一个该行区域所对应的下限阈值;根据每一个该列相对应的负向阈值、该列均值u与该列标准偏差s,分别计算每一个该列区域所对应的下限阈值;遍历屏蔽后的该工件检测区域影像的每一个像素,根据该像素所对应的该行下限阈值与该列下限阈值,计算行列下限阈值,当该像素的值小于所对应的该行列下限阈值时,将该检测区域影像的对应像素的值设为第一值。当该像素的值小于所对应的该行列下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了使用多个蒙板与算法、参数的组合对工件的一个面向进行检测,该多个算法当中的第二算法包含以下步骤:利用该第二算法所对应的该蒙板对该工件检测区域影像进行屏蔽;将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;针对该工作检测区域影像的一或多个第二区域计算对应的均值u与标准偏差s;根据每一个该第二区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第二区域所对应的上限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值大于该第二区域所对应的该上限阈值时,将该处理后的检测区域影像的对应像素的值设为其与该上限阈值的差值,否则设为该第二值,其中该第一区域与该第二区域为下列其中之一,且该第一区域不同于该第二区域:该工作检测区域影像的全局;该工作检测区域影像的一行,该行包含至少一个非零像素值的像素;以及该工作检测区域影像的一列,该列包含至少一个非零像素值的像素。当该像素的值大于该第二区域所对应的该上限阈值时,,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留下限阈值以下的缺陷,该多个算法当中的该第二算法还包含以下步骤:根据每一个该第二区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第二区域所对应的下限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值小于该第二区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。当该像素的值小于该第二区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了计算到相邻蒙板之间的重迭部分的缺陷,当该第一算法所对应的蒙板与该第二算法所对应的蒙板有部分重迭时,在上述结合该第一算法处理后的第一检测区域影像与该第二算法处理后的第二检测区域影像的步骤当中,还包含将该第一检测区域影像与第二列检测区域影像重迭部分的对应的两个像素进行逻辑运算,当该两个像素当中的一个像素的值为该第一值或该差值时,将该检测结果检测区域影像的对应像素的值设为缺陷值,否则设为非缺陷值。
进一步的,为了判断表面缺陷的型态,该机器视觉检测方法还包含:将该检测结果检测区域影像进行霍夫变换,以得到霍夫检测区域影像;在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;以及根据该最小外接矩形,判断该缺陷区域是否为裂纹,其中上述之判断该工件中对应到该多个蒙板的表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含裂纹时,判断该工作中对应到该多个蒙板的表面具有缺陷。
进一步的,为了滤除孤点以避免对霍夫变换进行干扰,该机器视觉检测方法还包含:在进行该霍夫变换步骤之前,当该检测结果检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
进一步的,为了滤除噪声,该机器视觉检测方法还包含:当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:该缺陷区域的轮廓面积小于阈值;以及该缺陷区域的长度小于另一阈值。
进一步的,为了判断缺陷是否为狭长的裂纹,在上述判断该缺陷区域是否为裂纹的步骤当中,还包含:计算该缺陷区域所对应的该最小外接矩形的比例;以及当该比例大于阈值时,为判断该缺陷区域为裂纹,其中该比例为下列其中之一:该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
进一步的,为了更容易地检测到裂纹,该机器视觉检测方法还包含:在该取得步骤之前,先撒布磁粉在该工件检测区域之上。
根据本申请的一个方案,提供一种机器视觉检测***,其特征在于,包含:摄像模块,用于拍摄所欲检测的工件;以及计算器模块,用于执行软件,以实现下列的步骤:令该摄像模块拍摄所欲检测的工件;自该摄像模块取得具有复杂表面的工件检测区域影像;利用多个蒙板与算法、参数的组合,对该工件检测区域影像进行计算,以分别得到多个处理后的检测区域影像;结合该多个处理后的检测区域影像以得到检测结果检测区域影像;以及根据该检测结果检测区域影像当中的缺陷,判断该工件中对应到该多个蒙板的表面是否具有缺陷。
进一步的,为了利用某一块区域内非零值的均值与标准偏差来计算表面缺陷,该多个算法当中的第一算法包含以下步骤:利用该第一算法所对应的该蒙板对该工件检测区域影像进行屏蔽;将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;针对该工作检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将该处理后的检测区域影像的对应像素的值设为其与该上限阈值的差值,否则设为第二值。当该像素的值大于该第一区域所对应的该上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留下限阈值以下的缺陷,该多个算法当中的该第一算法还包含以下步骤:根据每一个该第一区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的下限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第一区域的像素,当该像素的值小于该第一区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。当该像素的值小于该第一区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了提供全局扫描算法、行扫描算法或列扫描算法,该第一区域为下列其中之一:该工作检测区域影像的全局;该工作检测区域影像的一行,该行包含至少一个非零像素值的像素;以及该工作检测区域影像的一列,该列包含至少一个非零像素值的像素。
进一步的,为了提供行列扫描算法,该多个算法当中的行列扫描算法包含以下步骤:利用该行列扫描算法所对应的该蒙板对该工件检测区域影像进行屏蔽;将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;针对该工作检测区域影像的一或多个行计算对应的行均值u与行标准偏差s;针对该工作检测区域影像的一或多个列计算对应的列均值u与列标准偏差s;根据每一个该行相对应的正向阈值、该行均值u与该行标准偏差s,分别计算每一个该行所对应的行上限阈值;根据每一个该列相对应的正向阈值、该列均值u与该列标准偏差s,分别计算每一个该列所对应的列上限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个像素,当该像素的值大于所对应的该上限阈值时,根据该像素所对应的该行上限阈值与该列上限阈值,计算行列上限阈值,将处理后的检测区域影像的对应像素的值设为其与该行列上限阈值的差值,否则设为第二值。当该像素的值大于所对应的该行列上限阈值时,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留行列扫描算法当中在下限阈值以下的缺陷,该行列扫描算法还包含以下步骤:根据每一个该行相对应的负向阈值、该行均值u与该行标准偏差s,分别计算每一个该行区域所对应的下限阈值;根据每一个该列相对应的负向阈值、该列均值u与该列标准偏差s,分别计算每一个该列区域所对应的下限阈值;遍历屏蔽后的该工件检测区域影像的每一个像素,根据该像素所对应的该行下限阈值与该列下限阈值,计算行列下限阈值,当该像素的值小于所对应的该行列下限阈值时,将该检测区域影像的对应像素的值设为第一值。当该像素的值小于所对应的该行列下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了使用多个蒙板与算法、参数的组合对工件的一个面向进行检测,该多个算法当中的第二算法包含以下步骤:利用该第二算法所对应的该蒙板对该工件检测区域影像进行屏蔽;将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;针对该工作检测区域影像的一或多个第二区域计算对应的均值u与标准偏差s;根据每一个该第二区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第二区域所对应的上限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值大于该第二区域所对应的该上限阈值时,将该处理后的检测区域影像的对应像素的值设为其与该上限阈值的差值,否则设为该第二值,其中该第一区域与该第二区域为下列其中之一,且该第一区域不同于该第二区域:该工作检测区域影像的全局;该工作检测区域影像的一行,该行包含至少一个非零像素值的像素;以及该工作检测区域影像的一列,该列包含至少一个非零像素值的像素。当该像素的值大于该第二区域所对应的该上限阈值时,,该像素可能是该工件检测区域的裂纹部分。
进一步的,为了保留下限阈值以下的缺陷,该多个算法当中的该第二算法还包含以下步骤:根据每一个该第二区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第二区域所对应的下限阈值;以及遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值小于该第二区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。当该像素的值小于该第二区域所对应的该下限阈值时,该像素可能是该工件检测区域的凹坑或黑皮部分。
进一步的,为了计算到相邻蒙板之间的重迭部分的缺陷,当该第一算法所对应的蒙板与该第二算法所对应的蒙板有部分重迭时,在上述结合该第一算法处理后的第一检测区域影像与该第二算法处理后的第二检测区域影像的步骤当中,还包含将该第一检测区域影像与第二列检测区域影像重迭部分的对应的两个像素进行逻辑运算,当该两个像素当中的一个像素的值为第一值或该差值时,将该检测结果检测区域影像的对应像素的值设为缺陷值,否则设为非缺陷值。
进一步的,为了判断表面缺陷的型态,该计算器模块还用于:将该检测结果检测区域影像进行霍夫变换,以得到霍夫检测区域影像;在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;以及根据该最小外接矩形,判断该缺陷区域是否为裂纹,其中上述之判断该工件中对应到该多个蒙板的表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含裂纹时,判断该工作中对应到该多个蒙板的表面具有缺陷。
进一步的,为了滤除孤点以避免对霍夫变换进行干扰,该计算器模块还用于:在进行该霍夫变换步骤之前,当该检测结果检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
进一步的,为了降噪,该计算器模块还用于:当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:该缺陷区域的轮廓面积小于阈值;以及该缺陷区域的长度小于另一阈值。
进一步的,为了判断缺陷是否为狭长的裂纹,上述判断该缺陷区域是否为裂纹的步骤当中,还包含:计算该缺陷区域所对应的该最小外接矩形的比例;以及当该比例大于阈值时,为判断该缺陷区域为裂纹,其中该比例为下列其中之一:该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
进一步的,为了检测大型或大量的工件,该机器视觉检测***还包含下列模块的其中之一或其任意组合:机械手臂模块,用于承载该摄像模块;照明模块,用于照明所欲检测的该工件;以及输送带模块,用于移动承载所欲检测的该工件至该摄像模块相应的拍摄位置。
进一步的,为了利用可程序化的硬件来加速工件表面缺陷的检测,该计算器模块还包含现场可程序化逻辑门阵列所组成的并行加速计算模块,用于执行该软件的该计算步骤。
进一步的,为了更容易地检测到裂纹,在拍摄所欲检测的工件之前,该工件检测区域上已经被撒布磁粉。
由于采用上述方案,本发明的有益效果为:针对具有复杂表面的工件的不同的区域,可以根据光线等的不同,设置不同的阈值,进而有效地进行自动化机器视觉检测,能够提供质量检测的一致性标准,还能提高检测的数量与效率,降低检测的人工与时间成本。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (26)
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所述的机器视觉检测方法,其特征在于,该多个算法当中的第二算法包含以下步骤:
利用该第二算法所对应的该蒙板对该工件检测区域影像进行屏蔽;
将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;
针对该工作检测区域影像的一或多个第二区域计算对应的均值u与标准偏差s;
根据每一个该第二区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第二区域所对应的上限阈值;以及
遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值大于该第二区域所对应的该上限阈值时,将该处理后的检测区域影像的对应像素的值设为其与该均值u的差值,否则设为该第二值,
其中该第一区域与该第二区域为下列其中之一,且该第一区域不同于该第二区域:
该工作检测区域影像的全局;
该工作检测区域影像的一行,该行包含至少一个非零像素值的像素;以及
该工作检测区域影像的一列,该列包含至少一个非零像素值的像素。
7.如权利要求6所述的机器视觉检测方法,其特征在于,该多个算法当中的该第二算法还包含以下步骤:
根据每一个该第二区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第二区域所对应的下限阈值;以及
遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值小于该第二区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。
8.如权利要求6所述的机器视觉检测方法,其特征在于,当该第一算法所对应的蒙板与该第二算法所对应的蒙板有部分重迭时,在上述结合该第一算法处理后的第一检测区域影像与该第二算法处理后的第二检测区域影像的步骤当中,还包含将该第一检测区域影像与第二列检测区域影像重迭部分的对应的两个像素进行逻辑运算,当该两个像素当中的一个像素的值为该第一值或该差值时,将该检测结果检测区域影像的对应像素的值设为缺陷值,否则设为非缺陷值。
9.如权利要求1所述的机器视觉检测方法,其特征在于,还包含:
将该检测结果检测区域影像进行霍夫变换,以得到霍夫检测区域影像;
在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;以及
根据该最小外接矩形,判断该缺陷区域是否为裂纹,
其中上述之判断该工件中对应到该多个蒙板的表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含裂纹时,判断该工作中对应到该多个蒙板的表面具有缺陷。
10.如权利要求9所述的机器视觉检测方法,其特征在于,还包含:
在进行该霍夫变换步骤之前,当该检测结果检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
11.如权利要求9所述的机器视觉检测方法,其特征在于,还包含:当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:
该缺陷区域的轮廓面积小于阈值;以及
该缺陷区域的长度小于另一阈值。
12.如权利要求9所述的机器视觉检测方法,其特征在于,在上述判断该缺陷区域是否为裂纹的步骤当中,还包含:
计算该缺陷区域所对应的该最小外接矩形的比例;以及
当该比例大于阈值时,为判断该缺陷区域为裂纹,
其中该比例为下列其中之一:
该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及
该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
13.一种机器视觉检测***,其特征在于,包含:
摄像模块,用于拍摄所欲检测的工件;以及
计算器模块,用于执行软件,以实现下列的步骤:
令该摄像模块拍摄所欲检测的工件;
自该摄像模块取得具有复杂表面的工件检测区域影像;
利用多个蒙板与算法、参数的组合,对该工件检测区域影像进行计算,以分别得到多个处理后的检测区域影像;
结合该多个处理后的检测区域影像以得到检测结果检测区域影像;以及
根据该检测结果检测区域影像当中的缺陷,判断该工件中对应到该多个蒙板的表面是否具有缺陷,
该多个算法当中的第一算法包含以下步骤:
利用该第一算法所对应的该蒙板对该工件检测区域影像进行屏蔽;
将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;
针对该工作检测区域影像的一或多个第一区域计算对应的均值u与标准偏差s;
根据每一个该第一区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的上限阈值;以及
遍历屏蔽后的该工件检测区域影像的每一个该第一区域的像素,当该像素的值大于该第一区域所对应的该上限阈值时,将该处理后的检测区域影像的对应像素的值设为其与该均值u的差值,否则设为第二值。
14.如权利要求13所述的机器视觉检测***,其特征在于,该多个算法当中的该第一算法还包含以下步骤:
根据每一个该第一区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第一区域所对应的下限阈值;以及
遍历屏蔽后的该工件检测区域影像的每一个该第一区域的像素,当该像素的值小于该第一区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。
15.如权利要求13所述的机器视觉检测***,其特征在于,该第一区域为下列其中之一:
该工作检测区域影像的全局;
该工作检测区域影像的一行,该行包含至少一个非零像素值的像素;以及
该工作检测区域影像的一列,该列包含至少一个非零像素值的像素。
16.如权利要求13所述的机器视觉检测***,其特征在于,该多个算法当中的行列扫描算法包含以下步骤:
利用该行列扫描算法所对应的该蒙板对该工件检测区域影像进行屏蔽;
将利用该行列扫描算法所对应的该蒙板屏蔽后的该工件检测区域影像的非零像素值复制到该行列扫描算法所对应的工作检测区域影像;
针对该行列扫描算法所对应的该工作检测区域影像的一或多个行计算对应的行均值u与行标准偏差s;
针对该行列扫描算法所对应的该工作检测区域影像的一或多个列计算对应的列均值u与列标准偏差s;
根据每一个该行相对应的正向阈值、该行均值u与该行标准偏差s,分别计算每一个该行所对应的行上限阈值;
根据每一个该列相对应的正向阈值、该列均值u与该列标准偏差s,分别计算每一个该列所对应的列上限阈值;以及
遍历利用该行列扫描算法所对应的该蒙板屏蔽后的该工件检测区域影像的每一个像素,根据该像素所对应的该行上限阈值与该列上限阈值,计算行列上限阈值,当该像素的值大于所对应的该行列上限阈值时,将该处理后的检测区域影像的对应像素的值设为其与该行列上限阈值的差值,否则设为第二值。
17.如权利要求16所述的机器视觉检测***,其特征在于,该行列扫描算法还包含以下步骤:
根据每一个该行相对应的负向阈值、该行均值u与该行标准偏差s,分别计算每一个该行区域所对应的下限阈值;
根据每一个该列相对应的负向阈值、该列均值u与该列标准偏差s,分别计算每一个该列区域所对应的下限阈值;以及
遍历屏蔽后的该行列扫描算法所对应的该工件检测区域影像的每一个像素,根据该像素所对应的该行下限阈值与该列下限阈值,计算行列下限阈值,当该像素的值小于所对应的该行列下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。
18.如权利要求13所述的机器视觉检测***,其特征在于,该多个算法当中的第二算法包含以下步骤:
利用该第二算法所对应的该蒙板对该工件检测区域影像进行屏蔽;
将屏蔽后的该工件检测区域影像的非零像素值复制到工作检测区域影像;
针对该工作检测区域影像的一或多个第二区域计算对应的均值u与标准偏差s;
根据每一个该第二区域相对应的正向阈值、该均值u与该标准偏差s,分别计算每一个该第二区域所对应的上限阈值;以及
遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值大于该第二区域所对应的该上限阈值时,将该处理后的检测区域影像的对应像素的值设为其与该上限阈值的差值,否则设为该第二值,
其中该第一区域与该第二区域为下列其中之一,且该第一区域不同于该第二区域:
该工作检测区域影像的全局;
该工作检测区域影像的一行,该行包含至少一个非零像素值的像素;以及
该工作检测区域影像的一列,该列包含至少一个非零像素值的像素。
19.如权利要求18所述的机器视觉检测***,其特征在于,该多个算法当中的该第二算法还包含以下步骤:
根据每一个该第二区域相对应的负向阈值、该均值u与该标准偏差s,分别计算每一个该第二区域所对应的下限阈值;以及
遍历屏蔽后的该工件检测区域影像的每一个该第二区域的像素,当该像素的值小于该第二区域所对应的该下限阈值时,将该处理后的检测区域影像的对应像素的值设为第一值。
20.如权利要求18所述的机器视觉检测***,其特征在于,当该第一算法所对应的蒙板与该第二算法所对应的蒙板有部分重迭时,在上述结合该第一算法处理后的第一检测区域影像与该第二算法处理后的第二检测区域影像的步骤当中,还包含将该第一检测区域影像与第二列检测区域影像重迭部分的对应的两个像素进行逻辑运算,当该两个像素当中的一个像素的值为第一值或该差值时,将该检测结果检测区域影像的对应像素的值设为缺陷值,否则设为非缺陷值。
21.如权利要求13所述的机器视觉检测***,其特征在于,该计算器模块还用于:
将该检测结果检测区域影像进行霍夫变换,以得到霍夫检测区域影像;
在该霍夫检测区域影像当中,设定每一个缺陷区域对应的最小外接矩形;以及
根据该最小外接矩形,判断该缺陷区域是否为裂纹,
其中上述之判断该工件中对应到该多个蒙板的表面是否具有缺陷的步骤,还包含当该霍夫检测区域影像中包含裂纹时,判断该工作中对应到该多个蒙板的表面具有缺陷。
22.如权利要求21所述的机器视觉检测***,其特征在于,该计算器模块还用于:
在进行该霍夫变换步骤之前,当该检测结果检测区域影像的某像素的值为缺陷值,而该像素相邻的多个像素的值为非缺陷值时,将该像素的值设为该非缺陷值。
23.如权利要求21所述的机器视觉检测***,其特征在于,该计算器模块还用于:当该缺陷区域满足下列条件之一时,不设定该缺陷区域的该最小外接矩形:
该缺陷区域的轮廓面积小于阈值;以及
该缺陷区域的长度小于另一阈值。
24.如权利要求21所述的机器视觉检测***,其特征在于,在上述判断该缺陷区域是否为裂纹的步骤当中,还包含:
计算该缺陷区域所对应的该最小外接矩形的比例;以及
当该比例大于阈值时,为判断该缺陷区域为裂纹,
其中该比例为下列其中之一:
该最小外接矩形面积与该缺陷区域面积的差值,对比该最小外接矩形面积;以及
该最小外接矩形的长边长度与该最小外接矩形的短边长度的差值,对比该最小外接矩形的长边长度。
25.如权利要求13所述的机器视觉检测***,其特征在于,还包含下列模块的其中之一或其任意组合:
机械手臂模块,用于承载该摄像模块;
照明模块,用于照明所欲检测的该工件;以及
输送带模块,用于移动承载所欲检测的该工件至该摄像模块相应的拍摄位置。
26.如权利要求13所述的机器视觉检测***,其特征在于,该计算器模块还包含现场可程序化逻辑门阵列所组成的并行加速计算模块,用于执行该软件的该计算步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010867013.4A CN111833350B (zh) | 2020-08-26 | 2020-08-26 | 机器视觉检测方法与*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010867013.4A CN111833350B (zh) | 2020-08-26 | 2020-08-26 | 机器视觉检测方法与*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111833350A true CN111833350A (zh) | 2020-10-27 |
CN111833350B CN111833350B (zh) | 2023-06-06 |
Family
ID=72918915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010867013.4A Active CN111833350B (zh) | 2020-08-26 | 2020-08-26 | 机器视觉检测方法与*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111833350B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113554648A (zh) * | 2021-09-18 | 2021-10-26 | 四川太平洋药业有限责任公司 | 生产线检测方法 |
CN113724258A (zh) * | 2021-11-02 | 2021-11-30 | 山东中都机器有限公司 | 一种基于图像处理的传送带撕裂检测方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060233434A1 (en) * | 2005-04-15 | 2006-10-19 | Akira Hamamatsu | Method and apparatus for inspection |
JP2012159376A (ja) * | 2011-01-31 | 2012-08-23 | Jfe Steel Corp | 表面欠陥検出装置および表面欠陥検出方法 |
CN103914827A (zh) * | 2013-09-06 | 2014-07-09 | 贵州大学 | 汽车密封条轮廓缺陷的视觉检测方法 |
CN109447989A (zh) * | 2019-01-08 | 2019-03-08 | 哈尔滨理工大学 | 基于电机铜排毛刺生长区域的缺陷检测装置和方法 |
-
2020
- 2020-08-26 CN CN202010867013.4A patent/CN111833350B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060233434A1 (en) * | 2005-04-15 | 2006-10-19 | Akira Hamamatsu | Method and apparatus for inspection |
JP2012159376A (ja) * | 2011-01-31 | 2012-08-23 | Jfe Steel Corp | 表面欠陥検出装置および表面欠陥検出方法 |
CN103914827A (zh) * | 2013-09-06 | 2014-07-09 | 贵州大学 | 汽车密封条轮廓缺陷的视觉检测方法 |
CN109447989A (zh) * | 2019-01-08 | 2019-03-08 | 哈尔滨理工大学 | 基于电机铜排毛刺生长区域的缺陷检测装置和方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113554648A (zh) * | 2021-09-18 | 2021-10-26 | 四川太平洋药业有限责任公司 | 生产线检测方法 |
CN113724258A (zh) * | 2021-11-02 | 2021-11-30 | 山东中都机器有限公司 | 一种基于图像处理的传送带撕裂检测方法及*** |
CN113724258B (zh) * | 2021-11-02 | 2022-02-08 | 山东中都机器有限公司 | 一种基于图像处理的传送带撕裂检测方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN111833350B (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109141232B (zh) | 一种基于机器视觉的盘类铸件在线检测方法 | |
CN116758061B (zh) | 基于计算机视觉的铸件表面缺陷检测方法 | |
CN109772733B (zh) | 一种基于视觉的缺陷竹块检测分拣装置及方法 | |
CN109872300B (zh) | 一种摩擦片外观缺陷的视觉显著性检测方法 | |
WO2017141611A1 (ja) | 欠陥検出装置、欠陥検出方法およびプログラム | |
CN107490582B (zh) | 一种流水线工件检测*** | |
CN111968100B (zh) | 机器视觉检测方法与*** | |
CN108257171A (zh) | 基于光视觉的汽车雷达装配孔径检测方法 | |
CN114881915A (zh) | 一种基于对称性的手机玻璃盖板视窗区缺陷检测方法 | |
CN111539927B (zh) | 汽车塑料组合件紧固卡扣缺装检测装置的检测方法 | |
CN113177924A (zh) | 一种工业流水线产品瑕疵检测方法 | |
CN113077437B (zh) | 工件质量检测方法及其*** | |
CN106529551B (zh) | 面向包装行业的类圆对象智能识别计数检测方法 | |
CN111833350A (zh) | 机器视觉检测方法与*** | |
CN115931898A (zh) | 一种陶瓷基板表面缺陷视觉检测方法、装置及存储介质 | |
CN114719749A (zh) | 基于机器视觉的金属表面裂纹检测及真实尺寸测量方法及*** | |
CN114897881A (zh) | 一种基于边缘特征的晶粒缺陷检测方法 | |
Hashmi et al. | Computer-vision based visual inspection and crack detection of railroad tracks | |
JP2017166957A (ja) | 欠陥検出装置、欠陥検出方法およびプログラム | |
CN110516725B (zh) | 基于机器视觉的木板条纹间距和颜色的检测方法 | |
CN114266748B (zh) | 一种轨交检修领域工艺板表面完整性判定的方法及装置 | |
CN115753791A (zh) | 基于机器视觉的缺陷检测方法、装置以及*** | |
CN114354631A (zh) | 一种基于视觉的阀门毛坯表面缺陷检测方法 | |
JPH03175343A (ja) | 外観検査による欠陥抽出方法 | |
KR20190119801A (ko) | 차량 헤드라이트 얼라인먼트 보정 및 분류 방법 및 이를 이용한 차량 헤드라이트 불량검사 방법 |
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 |