基于缺陷导向多点定位神经网络的芯片表面缺陷自动检测方
法及系统
技术领域
本发明属于芯片缺陷检测以及机器视觉领域,具体涉及一种基于缺陷导向多点定位神经网络的芯片表面缺陷自动检测方法及系统。
背景技术
自从21世纪以来,集成芯片产业高速发展,但因生产技术复杂、过程繁复,所以在芯片制造的各个环节中对芯片进行缺陷检测,过滤掉存在缺陷的产品,保证成品的可靠性,同时找出芯片生产过程中的工艺缺陷,便于及时改进。于是,芯片表面缺陷检测也成为了整个芯片产业中的一个重要领域。
在以往的芯片表面检测中,往往采用的是人工肉眼抽检,该检测方法有着检测实时性差、检测成功率低等缺点。随着芯片生产规模的扩大,传统的人工肉眼检测显然不适应现代的工业生产需求。
因此,正是在此背景下,将芯片表面缺陷检测和深度学习相结合,利用深度神经网络对芯片表面图像进行特征提取与识别,最终实现芯片表面不同宏观缺陷的检测和分类。
发明内容
基于现有的缺陷检测和深度学习技术,本发明提供了一种基于缺陷导向多点定位神经网络的芯片表面缺陷自动检测方法及系统。
为了达到上述发明目的,本发明采用以下技术方案:
一方面,本申请提出了一种基于缺陷导向多点定位神经网络的芯片表面缺陷自动检测方法,该方法包括以下步骤:
(1)样本采集:使用环形白炽灯对目标芯片进行照明,使用工业摄像头进行图像采集,获取若干目标芯片彩色图像。
(2)样本预处理:进行图像缩放、图像滤波、图像光照矫正、图像倾斜矫正、芯片框选操作,得到预处理图像集。
(3)构造训练集:将预处理后的芯片图像人工标上标签;创建一张与芯片图像相同大小的二值图,黑色为背景色,缺陷由白色标出,作为芯片原图标签;复制二值图,缩放到14×14大小,作为缺陷掩码标签。
(4)构建缺陷导向多点定位神经网络,该网络包括缺陷定位子网络、缺陷裁剪模块、缺陷放大模块和缺陷标记子网络;
缺陷定位子网络:基于VGG19实现,将缩放为224×224×3的芯片图像作为VGG19的输入,首先使用VGG19最后一层卷积层输出作为提取的视觉特征,即提取出14×14×512维视觉特征,然后再使用全局平均池化将视觉特征转化为1×1×512维视觉映射,再使用两个512×512的全连接层将视觉映射转化为512维视觉特征通道权值,并利用该通道权值将视觉特征加权求和,合并视觉特征中512个通道,使14×14×512维视觉特征转化为14×14维缺陷掩码。
缺陷裁剪模块:将14×14维缺陷掩码作为输入,利用图像阈值分割、形态学处理、轮廓提取、外接矩形计算将缺陷掩码映射为若干缺陷检测窗口,利用缺陷检测窗口从原图上截取缺陷矩形图。
缺陷放大模块:将截取的缺陷矩形图放大至四倍边长。
缺陷标记子网络:该子网络包含四个卷积层和两个池化层,第一层是卷积核为3×3×32的卷积层,第二层是卷积核为3×3×16的卷积层,第三层是2×2的池化层,第四层是卷积核为3×3×8的卷积层,第五层是卷积核为3×3×1的卷积层,第六层是2×2的池化层;将放大后的缺陷矩形图作为输入,输出缺陷标记图像;将缺陷标记图像对应缺陷检测窗口复制到与原图相同大小的黑色图像上,得到完整芯片缺陷标记图。
(5)模型训练:利用步骤(3)构造的训练集对步骤(4)构建的缺陷导向多点定位神经网络进行训练,得到训练后的神经网络模型。
(6)缺陷检测:将待测试芯片图像输入训练好的模型中,获得缺陷数量、缺陷类型、缺陷位置以及缺陷尺寸信息,完成芯片表面缺陷检测。
进一步地,所述步骤(2)具体为:首先通过中值滤波算法对芯片图像进行噪声抑制,然后通过多尺度Retinex算法对芯片图像进行光照校正,接着使用Hough变换法对芯片图像进行倾斜校正,继续使用阈值分割和腐蚀、膨胀操作将芯片图像转化为二值图,最后使用Suzuki轮廓跟踪算法将芯片从背景中分割出来并调整为方形。
进一步地,所述缺陷裁剪模块的实现具体为:首先通过阈值分割将缺陷掩码二值化,然后使用Suzuki轮廓跟踪算法标记出缺陷掩码中的缺陷轮廓,接着使用Sklansky算法求出轮廓点集的凸包,最后使用旋转卡尺算法求出缺陷的最小外接矩形,根据该最小外接矩形的四个顶点,再做最小外接矩形,得到无偏转的矩形框,按照最小外接矩形在缺陷掩码中的位置,等比放大到芯片原图中,即得到芯片原图中缺陷的最小外接矩形,称这个最小外接矩形为缺陷检测窗口,用[Tx,Ty,Tm,Tn]表示,其中Tx、Ty表示缺陷检测窗口左上角位置坐标,Tm、Tn表示矩形窗口边长。
进一步地,所述缺陷放大模块中,将芯片原图按照缺陷检测窗口裁剪下来的缺陷矩形图用双线性插值法放大至四倍边长。
进一步地,所述步骤(5)中模型训练具体为:
通过优化以下损失函数来训练缺陷定位子网络:
其中,M*表示人工标定的缺陷掩码,M表示缺陷定位子网络最终输出的缺陷掩码,n为掩码中像素总数。
通过优化以下损失函数来训练缺陷标记子网络:
其中,Pi j*表示按照缺陷检测窗口从人工标定的芯片原图标签中截取的第j个缺陷区域标签,Pi j表示缺陷标记子网络输出的第j个缺陷标记图像,nj为第j个缺陷区域像素总数,m为缺陷数。
进一步地,依靠缺陷检测窗口可以知道缺陷的个数和位置;依靠对完整芯片缺陷标记图使用缺陷裁剪模块中相同的轮廓检测方法,可以知道缺陷的类型和尺寸。
进一步地,所述缺陷导向多点定位神经网络模型放大了高度局部的缺陷区域,从一个更精细的大尺度角度去观察缺陷,从而更准确的识别出缺陷的类型和尺寸;该模型不局限于特定芯片;该模型考虑多种因素,综合考量一颗芯片是否达到合格标准。
另一方面,本申请还提出了一种基于缺陷导向多点定位神经网络的芯片表面缺陷自动检测系统,该系统包括:
样本采集单元:使用环形白炽灯对目标芯片进行照明,使用工业摄像头进行图像采集,获取若干目标芯片彩色图像。
样本预处理单元:进行图像缩放、图像滤波、图像光照矫正、图像倾斜矫正、芯片框选操作,得到预处理图像集。
训练集构造单元:将预处理后的芯片图像人工标上标签;创建一张与芯片图像相同大小的二值图,黑色为背景色,缺陷由白色标出,作为芯片原图标签;复制二值图,缩放到14×14大小,作为缺陷掩码标签。
缺陷导向多点定位神经网络构建单元,该单元包括缺陷定位子网络模块、缺陷裁剪模块、缺陷放大模块和缺陷标记子网络模块;
缺陷定位子网络模块:缺陷定位子网络基于VGG19实现,将缩放为224×224×3的芯片图像作为VGG19的输入,首先使用VGG19最后一层卷积层输出作为提取的视觉特征,即提取出14×14×512维视觉特征,然后再使用全局平均池化将视觉特征转化为1×1×512维视觉映射,再使用两个512×512的全连接层将视觉映射转化为512维视觉特征通道权值,并利用该通道权值将视觉特征加权求和,合并视觉特征中512个通道,使14×14×512维视觉特征转化为14×14维缺陷掩码。
缺陷裁剪模块:将14×14维缺陷掩码作为输入,利用图像阈值分割、形态学处理、轮廓提取、外接矩形计算将缺陷掩码映射为若干缺陷检测窗口,利用缺陷检测窗口从原图上截取缺陷矩形图。
缺陷放大模块:将截取的缺陷矩形图放大至四倍边长。
缺陷标记子网络模块:缺陷标记子网络包含四个卷积层和两个池化层,第一层是卷积核为3×3×32的卷积层,第二层是卷积核为3×3×16的卷积层,第三层是2×2的池化层,第四层是卷积核为3×3×8的卷积层,第五层是卷积核为3×3×1的卷积层,第六层是2×2的池化层;将放大后的缺陷矩形图作为输入,输出缺陷标记图像;将缺陷标记图像对应缺陷检测窗口复制到与原图相同大小的黑色图像上,得到完整芯片缺陷标记图。
模型训练单元:利用训练集对缺陷导向多点定位神经网络进行训练,得到训练后的神经网络模型。
缺陷检测单元:将待测试芯片图像输入训练好的模型中,获得缺陷数量、缺陷类型、缺陷位置以及缺陷尺寸信息,完成芯片表面缺陷检测。
此外,本申请还提出了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明与现有技术相比,本发明的有益效果是:本发明利用缺陷导向多点定位神经网络实现芯片表面缺陷检测,通过缺陷导向多点定位神经网络对芯片表面缺陷进行定位、裁剪、放大、标记、识别,提高了芯片表面缺陷检测的准确率,并且做到对芯片进行实时检测,对比人工检测,大大缩短了检测时间,提高了检测效率。
附图说明
图1是本发明实施例的缺陷导向多点定位神经网络的训练流程图;
图2是本发明实施例的缺陷导向多点定位神经网络的测试流程图;
图3是本发明实施例的缺陷导向多点定位神经网络的结构图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
本申请提出的一种基于缺陷导向多点定位神经网络的芯片表面缺陷自动检测方法,如图1、2所示,该方法主要包括预处理部分、模型训练部分和实时检测部分,具体实现过程如下:
(1)样本采集。使用环形白炽灯对目标芯片进行照明,尽可能消除芯片阴影。再使用工业摄像头进行图像采集,获取一定数量关于目标芯片的彩色图像。
(2)样本预处理。利用图像预处理算法,进行图像缩放、图像滤波、图像光照矫正、图像倾斜矫正、芯片框选操作等。处理所有采集到的芯片图像,得到预处理图像集。
在本申请实施例中,首先通过中值滤波算法对芯片图像进行噪声抑制,然后通过多尺度Retinex算法对芯片图像进行光照校正,接着使用Hough变换法对芯片图像进行倾斜校正,继续使用阈值分割和腐蚀、膨胀操作将芯片图像转化为二值图,最后使用Suzuki轮廓跟踪算法将芯片从背景中分割出来并调整为方形。
(3)构造训练集。将预处理后的芯片图像人工标上标签,即将芯片图像中缺陷部分进行人工标定形成样本标记,将一张样本图像和与之对应的样本标记称为一个样本。
其中,标签分为两部分:
①创建一张与芯片图像相同大小的二值图,黑色为背景色,缺陷由白色标出,作为芯片原图标签;
②将二值图复制一份,缩放到14×14大小,作为缺陷掩码的标签。
(4)构建缺陷导向多点定位神经网络,该网络包括缺陷定位子网络、缺陷裁剪模块、缺陷放大模块和缺陷标记子网络,网络结构如图3所示;
缺陷定位子网络:基于VGG19实现,将缩放为224×224×3的芯片图像作为VGG19的输入,首先使用VGG19最后一层卷积层输出作为提取的视觉特征,即提取出14×14×512维视觉特征,然后再使用全局平均池化将视觉特征转化为1×1×512维视觉映射,再使用两个512×512的全连接层将视觉映射转化为512维视觉特征通道权值,并利用该通道权值将视觉特征加权求和,合并视觉特征中512个通道,使14×14×512维视觉特征转化为14×14维缺陷掩码。缺陷定位子网络的最终输出为14×14维缺陷掩码,记为M。通过缺陷定位子网络进行多特征定位,精确定位缺陷位置。
缺陷裁剪模块:首先通过阈值分割将缺陷掩码二值化,然后使用Suzuki轮廓跟踪算法标记出缺陷掩码中的缺陷轮廓,接着使用Sklansky算法求出轮廓点集的凸包,最后使用旋转卡尺算法求出缺陷的最小外接矩形,根据该最小外接矩形的四个顶点,我们再做最小外接矩形,得到无偏转的矩形框,按照最小外接矩形在缺陷掩码中的位置,等比放大到芯片原图中,即得到芯片原图中缺陷的最小外接矩形,我们称这个最小外接矩形为缺陷检测窗口,用[Tx,Ty,Tm,Tn]来表示,其中Tx、Ty表示缺陷检测窗口左上角位置坐标,Tm、Tn表示矩形窗口边长。
缺陷放大模块:将芯片原图按照缺陷检测窗口裁剪下来的缺陷矩形图用双线性插值法放大至四倍边长,即放大至4Tm×4Tn×3。
缺陷标记子网络:该子网络一共包含四个卷积层和两个池化层,第一层是卷积核为3×3×32的卷积层,第二层是卷积核为3×3×16的卷积层,第三层是2×2的池化层,第四层是卷积核为3×3×8的卷积层,第五层是卷积核为3×3×1的卷积层,第六层是2×2的池化层;将放大后的缺陷矩形图作为输入,最终输出Tm×Tn的缺陷标记图像。
将缺陷标记图像对应缺陷检测窗口复制到与原图相同大小的黑色图像上,得到完整芯片缺陷标记图,如图3所示。
依靠缺陷检测窗口我们可以知道缺陷的个数和位置;依靠对完整芯片缺陷标记图使用缺陷裁剪模块中相同的轮廓检测方法,我们可以知道缺陷的类型和尺寸。
将预处理后的各图像数据输入缺陷导向多点定位神经网络,最终得到缺陷数量、缺陷类型、缺陷位置以及缺陷尺寸信息。
本发明提出的缺陷导向多点定位神经网络模型,该模型放大了高度局部的缺陷区域,从一个更精细的大尺度角度去观察缺陷,从而更准确的识别出缺陷的类型和尺寸;该模型不局限于特定芯片,是一种通用芯片检测方法;该模型考虑多种因素,综合考量一颗芯片是否达到合格标准。
(5)模型训练
利用步骤(3)构造的训练集对步骤(4)构建的缺陷导向多点定位神经网络进行训练,得到训练后的神经网络模型。具体地:
通过优化以下损失函数来训练缺陷定位子网络:
其中,M*表示人工标定的缺陷掩码,M表示缺陷定位子网络最终输出的缺陷掩码,n为掩码中像素总数。
通过优化以下损失函数来训练缺陷标记子网络:
其中,Pi j*表示按照缺陷检测窗口从人工标定的芯片原图标签中截取的第j个缺陷区域标签,Pi j表示缺陷标记子网络输出的第j个缺陷标记图像,nj为第j个缺陷区域像素总数,m为缺陷数。
(6)缺陷检测
将待测试芯片图像输入训练好的模型中,获得缺陷数量、缺陷类型、缺陷位置以及缺陷尺寸等信息,从而综合判断该芯片是否达到合格标准。
此外,本申请还提出了一种基于缺陷导向多点定位神经网络的芯片表面缺陷自动检测系统,该系统包括:
样本采集单元。使用环形白炽灯对目标芯片进行照明,尽可能消除芯片阴影。再使用工业摄像头进行图像采集,获取一定数量关于目标芯片的彩色图像。
样本预处理单元。利用图像预处理算法,进行图像缩放、图像滤波、图像光照矫正、图像倾斜矫正、芯片框选操作等。处理所有采集到的芯片图像,得到预处理图像集。
训练集构造单元。将预处理后的芯片图像人工标上标签,即将芯片图像中缺陷部分进行人工标定形成样本标记,将一张样本图像和与之对应的样本标记称为一个样本。标签分为芯片原图标签和缺陷掩码的标签;创建一张与芯片图像相同大小的二值图,黑色为背景色,缺陷由白色标出,作为芯片原图标签;将二值图复制一份,缩放到14×14大小,作为缺陷掩码的标签。
缺陷导向多点定位神经网络构建单元。该单元包括缺陷定位子网络模块、缺陷裁剪模块、缺陷放大模块和缺陷标记子网络模块;
缺陷定位子网络模块:缺陷定位子网络基于VGG19实现,将缩放为224×224×3的芯片图像作为VGG19的输入,首先使用VGG19最后一层卷积层输出作为提取的视觉特征,即提取出14×14×512维视觉特征,然后再使用全局平均池化将视觉特征转化为1×1×512维视觉映射,再使用两个512×512的全连接层将视觉映射转化为512维视觉特征通道权值,并利用该通道权值将视觉特征加权求和,合并视觉特征中512个通道,使14×14×512维视觉特征转化为14×14维缺陷掩码。
缺陷裁剪模块:首先通过阈值分割将缺陷掩码二值化,然后使用Suzuki轮廓跟踪算法标记出缺陷掩码中的缺陷轮廓,接着使用Sklansky算法求出轮廓点集的凸包,最后使用旋转卡尺算法求出缺陷的最小外接矩形,根据该最小外接矩形的四个顶点,我们再做最小外接矩形,得到无偏转的矩形框,按照最小外接矩形在缺陷掩码中的位置,等比放大到芯片原图中,即得到芯片原图中缺陷的最小外接矩形,我们称这个最小外接矩形为缺陷检测窗口,用[Tx,Ty,Tm,Tn]来表示,其中Tx、Ty表示缺陷检测窗口左上角位置坐标,Tm、Tn表示矩形窗口边长。
缺陷放大模块:将芯片原图按照缺陷检测窗口裁剪下来的缺陷矩形图用双线性插值法放大至四倍边长,即放大至4Tm×4Tn×3。
缺陷标记子网络模块:缺陷标记子网络一共包含四个卷积层和两个池化层,第一层是卷积核为3×3×32的卷积层,第二层是卷积核为3×3×16的卷积层,第三层是2×2的池化层,第四层是卷积核为3×3×8的卷积层,第五层是卷积核为3×3×1的卷积层,第六层是2×2的池化层;将放大后的缺陷矩形图作为输入,最终输出Tm×Tn的缺陷标记图像。
将缺陷标记图像对应缺陷检测窗口复制到与原图相同大小的黑色图像上,得到完整芯片缺陷标记图。依靠缺陷检测窗口我们可以知道缺陷的个数和位置;依靠对完整芯片缺陷标记图使用缺陷裁剪模块中相同的轮廓检测方法,我们可以知道缺陷的类型和尺寸。
模型训练单元。利用训练集对缺陷导向多点定位神经网络进行训练,得到训练后的神经网络模型。具体地:
通过优化以下损失函数来训练缺陷定位子网络:
其中,M*表示人工标定的缺陷掩码,M表示缺陷定位子网络最终输出的缺陷掩码,n为掩码中像素总数。
通过优化以下损失函数来训练缺陷标记子网络:
其中,Pi j*表示按照缺陷检测窗口从人工标定的芯片原图标签中截取的第j个缺陷区域标签,Pi j表示缺陷标记子网络输出的第j个缺陷标记图像,nj为第j个缺陷区域像素总数,m为缺陷数。
缺陷检测单元。将待测试芯片图像输入训练好的模型中,获得缺陷数量、缺陷类型、缺陷位置以及缺陷尺寸等信息,从而综合判断该芯片是否达到合格标准。
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。