基于matlab使用卷积神经网络对晶圆图上的八种制造缺陷进行分类(附源码)

一、前言

此示例展示了如何使用简单的卷积神经网络 (CNN) 对晶圆图上的八种制造缺陷进行分类。

晶圆是半导体材料(通常是硅)的薄盘,用作集成电路的基础。每个晶圆产生几个单独的电路(IC),分成芯片。自动检测机测试晶圆上IC的性能。这些机器生成称为晶圆图的图像,指示哪些芯片性能正确(通过),哪些芯片不符合性能标准(失败)。

晶圆图上合格和失效芯片的空间模式可以指示制造过程中的特定问题。深度学习方法可以有效地对大量晶圆上的缺陷图案进行分类。因此,通过使用深度学习,您可以快速识别制造问题,从而及时修复制造过程并减少浪费。

此示例演示如何训练检测和分类八种制造缺陷模式的分类网络。该示例还演示如何评估网络的性能。

二、下载WM-811K晶圆缺陷图数据

此示例使用 WM-811K 晶圆缺陷图数据集。该数据集由811,457张晶圆图图像组成,其中包括172,950张标记图像。每个图像只有三个像素值。该值表示背景,该值表示行为正确的模具,该值表示有缺陷的模具。标记的图像具有基于缺陷模具空间模式的九个标签之一。数据集的大小为 3.5 GB。

设置为数据集的所需位置。使用帮助程序函数下载数据集。

二、预处理和扩充数据

数据作为结构数组存储在MAT文件中。将数据集加载到工作区中。

通过显示结构的第一个元素来浏览数据。该字段包含图像数据。该字段包含缺陷的标签。

2.1 重新格式化数据

此示例仅使用带标签的图像。从结构中删除未标记的图像。

该示例使用与字段指定的约定不同的约定将数据分区为训练集、验证集和测试集。

指定图像类。

要对数据应用其他预处理操作,例如调整图像大小以匹配网络输入大小或应用随机训练网络进行分类,可以使用增强图像数据存储。您无法从结构中的数据创建增强映像数据存储,但可以从表中的数据创建数据存储。将数据转换为具有两个变量的表:

  • WaferImage- 晶圆缺陷图图像

  • FailureType- 每个图像的分类标签

使用帮助程序函数显示每个输入图像类的示例图像。此函数作为支持文件附加到示例。

2.2 通过过采样平衡数据

显示每个类的图像数量。数据集严重不平衡,每个缺陷类别的图像明显少于没有缺陷的图像数量。

要改进类平衡,请使用帮助程序函数对缺陷类进行过采样。此函数作为支持文件附加到示例。帮助程序函数在数据集后附加每个缺陷图像的五个修改副本。每个副本都有以下修改之一:水平反射、垂直反射或旋转 90 度的倍数。

显示类平衡后每个类的图像数量。

2.3 将数据划分为训练集、验证集和测试集

将过采样数据集拆分为训练集、验证集和测试集。大约 90% 的数据用于训练,5% 用于验证,5% 用于测试。

2.4 扩充训练数据

对象指定一组要应用于训练数据的随机增强。向训练图像添加随机增强可以避免网络过度拟合训练数据。

指定网络的输入大小。创建一个增强图像数据存储(深度学习工具箱),用于读取训练数据,将数据大小调整为网络输入大小,并应用随机增强。

创建用于读取验证和测试数据的数据存储,并将数据大小调整为网络输入大小。您无需对验证或测试数据应用随机增强。

三、创建网络

定义卷积神经网络架构。图像输入层的范围反映了晶圆图只有三个级别的事实。

四、指定训练选项

指定 Adam 优化的训练选项。训练网络 30 个纪元。

五、训练网络或下载预训练网络

默认情况下,该示例加载预训练的晶圆缺陷分类网络。预训练网络使您能够运行整个示例,而无需等待训练完成。

六、根据测试数据量化网络性能

使用分类(深度学习工具箱)函数对每个测试图像进行分类。使用混淆垫(深度学习工具箱)函数以混淆矩阵的形式计算网络与地面实况分类相比的性能。使用混淆图(深度学习工具箱)函数可视化混淆矩阵。此矩阵对角线上的值表示正确的分类。完美分类器的混淆矩阵仅在对角线上具有值。

6.1 精度、召回率和 F1 分数

此示例使用多个指标评估网络性能:精度、召回率和 F1 分数。这些指标是为二元分类定义的。为了克服此多类问题的限制,您可以将预测视为一组二元分类,每个分类对应一个分类。

精度是正确预测属于某个类的图像的比例。

对于每个类,使用混淆矩阵中可用的 TP、FP 和 FN 结果计数计算精度、召回率和 F1 分数。

显示每个类的指标。分数接近 1 表示网络性能越好。

6.2 精确召回曲线和曲线下面积 (AUC)

除了返回每个测试图像的分类外,网络还可以预测测试图像是每个缺陷类别的概率。在这种情况下,精度-召回率曲线提供了一种评估网络性能的替代方法。

要计算精度-召回率曲线,首先通过将概率与任意阈值进行比较,对每个缺陷类执行二元分类。当概率超过阈值时,可以将图像分配给目标类。阈值的选择会影响 TP、FP 和 FN 结果的数量以及准确度和召回率分数。若要评估网络性能,必须考虑阈值范围内的性能。精度-召回率曲线在调整二元分类的阈值时绘制精度和召回率值之间的权衡。AUC 指标将类的精度-召回率曲线汇总为 [0, 1] 范围内的单个数字,其中 1 表示无论阈值如何,都是完美分类。

使用该函数计算每个类在阈值范围内的精度、召回率和 AUC。绘制精度-召回率曲线。

理想分类器的精度-召回率曲线通过点 (1, 1)。具有趋向于 (1, 1) 的精度召回率曲线的类(如 和 )是网络性能最佳的类。该网络的性能在该类中最差。计算并显示每个类的精度/召回率曲线的 AUC 值。

七、使用 GradCAM 可视化网络决策

梯度加权类激活映射(Grad-CAM)对网络做出的决策产生可视化解释。您可以使用 gradCAM(深度学习工具箱)函数来识别对网络预测影响最大的图像部分。

7.1 Donut缺陷类别

缺陷的特征是图像具有围绕芯片中心聚集在同心圆中的缺陷像素。缺陷类别的大多数图像在芯片边缘周围没有缺陷像素。

这两个图像都显示了带有缺陷的数据。网络将左侧的图像正确分类为缺陷。网络将右侧的图像错误分类为缺陷。图像具有与函数输出相对应的颜色叠加。对网络分类影响最大的影像区域在叠加层上以鲜艳的颜色显示。对于分类为缺陷的图像,模具边界处的缺陷被视为重要。造成这种情况的一个可能原因可能是,与图像相比,训练集中的图像要多得多。

7.2 Loc缺陷类别

缺陷的特征是图像具有缺陷像素聚集在远离芯片边缘的斑点中。这两个图像都显示了具有 Loc 缺陷的数据。网络将左侧的图像正确分类为缺陷。网络错误地分类了右侧的图像,并将缺陷分类为缺陷。对于分类为缺陷的图像,芯片边界处的缺陷对网络预测的影响最大。缺陷与缺陷的区别主要在于缺陷簇的位置。

八、程序

使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)

程序有偿获取:评论区下留言,博主看到会私信你。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>