随着半导体集成电路技术的迅速发展,芯片的制造工艺和结构设计越来越精细化和复杂化,质量要求也越来越高。芯片缺陷检测作为芯片生产流程中的重要环节,不仅关系到产品质量的稳定性和可靠性,还直接影响到整个生产线的效率和成本。对于现代半导体企业而言,及时准确地检测芯片缺陷是保障产品性能和用户体验的关键因素。
传统的芯片缺陷检测方法主要依赖于人工检测或传统机器视觉技术。然而,人工检测费时费力,且受限于人为因素,检测效率和准确性难以保证。传统机器视觉虽然在一定程度上提高了自动化水平,但在小尺寸、多类别的复杂缺陷检测上仍然存在技术瓶颈,难以实现高效且高精度的识别。为此,深度学习技术在缺陷检测领域的引入,尤其是目标检测算法的发展,为解决这一问题提供了新的解决方案。
在本文中,我们提出了一种基于YOLOv8深度学习的芯片缺陷检测系统。YOLOv8(You Only Look Once Version 8)是YOLO系列算法的最新版本,其优越的实时检测性能和高精度特性,使其在目标检测领域处于领先地位。YOLOv8模型通过多尺度特征提取、网络结构优化等技术,使得它能够更好地适应小物体检测和复杂背景环境。在本研究中,YOLOv8被用于检测四类常见的芯片缺陷:芯片划痕缺陷、芯片引脚缺陷、芯片污渍缺陷和芯片封装缺陷。这些缺陷类型代表了芯片制造过程中不同环节中可能出现的典型问题,覆盖了较广泛的应用场景。
为实现这一系统的便捷操作和实时响应,我们在YOLOv8检测算法的基础上集成了PyQt5界面。PyQt5作为一个强大的Python GUI框架,能够支持丰富的界面功能,便于用户在图形界面上进行缺陷检测操作、显示检测结果和管理检测记录。系统用户可以通过界面上传芯片图像,系统将自动进行缺陷检测并高亮显示检测结果。界面直观的反馈机制为用户提供了便捷的操作体验,使得检测流程更加人性化和高效化。
此外,为了提升模型的检测准确性和适应性,我们自己构建了一个包含7810张图像的定制数据集。该数据集经过严格的标注,并采用了YOLO格式进行数据标记。图像标注涵盖了四类缺陷,并对每张图像中的缺陷位置和类别进行了精细化的框选。通过使用该数据集进行模型训练,系统能够在实际应用中实现高效的缺陷检测效果。
在实验评估中,我们对系统进行了多次测试,测试结果表明,该系统在检测准确率和召回率方面均达到了较高的水平,具备优越的检测能力。实验结果验证了系统在芯片缺陷检测领域的有效性和可靠性,展示了其在提高检测效率和降低生产成本方面的潜力。
综上所述,本研究所提出的基于YOLOv8深度学习的芯片缺陷检测系统为芯片制造业的质量控制和缺陷管理提供了一种高效可靠的技术支持。未来,随着芯片制造工艺的进一步发展,我们还可以在数据集规模、检测类别和系统界面功能等方面进行进一步优化,以适应更广泛的应用需求并提升系统的综合性能。
算法流程
项目数据
通过搜集关于数据集为各种各样的芯片缺陷检测相关图像,并使用Labelimg标注工具对每张图片进行标注,分4检测类别,分别是’芯片划痕缺陷’, ‘芯片引脚缺陷’, ‘芯片污渍缺陷’, ‘芯片封装缺陷’。
目标检测标注工具
(1)labelimg:开源的图像标注工具,标签可用于分类和目标检测,它是用python写的,并使用Qt作为其图形界面,简单好用(虽然是英文版的)。其注释以 PASCAL VOC格式保存为XML文件,这是ImageNet使用的格式。此外,它还支持 COCO数据集格式。
(2)安装labelimg 在cmd输入以下命令 pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
结束后,在cmd中输入labelimg
初识labelimg
打开后,我们自己设置一下
在View中勾选Auto Save mode
接下来我们打开需要标注的图片文件夹
并设置标注文件保存的目录(上图中的Change Save Dir)
接下来就开始标注,画框,标记目标的label,然后d切换到下一张继续标注,不断重复重复。
Labelimg的快捷键
(3)数据准备
这里建议新建一个名为data的文件夹(这个是约定俗成,不这么做也行),里面创建一个名为images的文件夹存放我们需要打标签的图片文件;再创建一个名为labels存放标注的标签文件;最后创建一个名为 classes.txt 的txt文件来存放所要标注的类别名称。
data的目录结构如下:
│─img_data
│─images 存放需要打标签的图片文件
│─labels 存放标注的标签文件
└ classes.txt 定义自己要标注的所有类别(这个文件可有可无,但是在我们定义类别比较多的时候,最好有这个创建一个这样的txt文件来存放类别)
首先在images这个文件夹放置待标注的图片。
生成文件如下:
“classes.txt”定义了你的 YOLO 标签所引用的类名列表。