摘要
随着电子信息产品制造业的快速发展,印刷电路板(Printed Circuit Board,PCB)作为电子信息产品中不可或缺的元器件,正在被广泛地应用于计算机、通信电子、消费电子、汽车电子、医疗设备、工业控制以及军事航天等领域。但在实际PCB生产过程中,由于生产技术和不确定因素的影响,其表面会产生各式各样的缺陷。因此,为了确保电子产品的质量和性能不受PCB缺陷的影响,对PCB缺陷进行精确、实时检测具有极其重要的研究意义。传统的PCB缺陷检测方法和基于机器视觉的PCB缺陷检测方法主要采用人工目测法、线上仪器检测法、功能测试法、视觉检测法,但这些方法存在效率低、成本高、精度差、速度慢、误检、漏检等问题,已经不能满足目前工业生产中高效率、高精度、实时性的检测要求。针对当前技术的不足和缺陷,本文提出了基于深度学习的PCB缺陷检测方法,并将其系统地应用于实践中。本文的主要研究工作如下: (1)PCB数据集预处理。针对当前公开的PCB缺陷数据集存在样本较少、采集状态较好、样本不够丰富等问题,会导致训练得到的算法模型过拟合以及在复杂环境状态下检测效果不佳。因此,本文在训练算法模型时,采用HSV颜色空间转换、图像平移、图像翻转、图像缩放、Mosaic、Mixup、Paste_in等数据增强方法对训练样本进行图像增强,从而增加目标样本多样性与丰富性,以提升算法模型的检测精度以及泛化能力和鲁棒性,使得检测模型在处理真实场景下的复杂数据表现的更好。 (2)基于注意力机制和SPD-Conv模块的PCB缺陷检测方法。针对复杂线路下PCB缺陷种类多、大小形态复杂、目标缺陷区域小、缺陷特征与非缺陷特征相似,难以对其进行精确捕捉和分辨等问题,提出了基于注意力机制和SPD-Conv模块的PCB缺陷检测方法。通过对SE、CBAM、CA三种注意力机制的相关原理和结构分析,发现CA注意力机制可以更有效增强网络模型对PCB缺陷目标的关键特征提取和位置信息捕捉,于是在YOLOv7网络结构的主干网络层和Head网络层的MP模块中引入CA注意力机制。通过对SPD-Conv模块的相关原理和结构分析,发现SPD-Conv模块可以降低网络模型对细粒度信息的丢失并有效捕捉不同尺度下的目标特征,于是在YOLOv7网络结构的Head网络层输出端的REP模块前引入以检测小目标效果见长的SPD-Conv模块。然后,将所提出的改进YOLOv7算法在PCB缺陷数据集DE上进行实验。实验结果表明,改进后的YOLOv7算法检测精度mAP@0.5为98.9%,mAP@0.5:0.95提升了1.3%,达到了63.5%。最后,通过将所提出的改进YOLOv7算法与经典的目标检测算法在相同实验条件下进行对比实验,相较于YOLOv3、YOLOv3-spp、YOLOv4-csp、YOLOv5n、YOLOv5s、YOLOv5m算法,mAP@0.5分别提高了0.3%、0.6%、0.9%、3.2%、2.4%、2.4%,mAP@0.5:0.95分别提高了3.1%、5.6%、9.6%、8.3%、4.3%、1.7%。实验结果表明,本文所提出的改进YOLOv7算法对PCB小目标缺陷和复杂缺陷具有明显的检测优越性。 (3)基于轻量化模型的PCB缺陷检测方法。针对YOLOv7算法模型参数量大、计算复杂程度高、容易受限于硬件平台、难以部署于嵌入式边缘设备满足实际工业应用需求等问题,提出了基于轻量化模型的PCB缺陷检测方法。通过对MobileNetV1-V3、GhostNet、PP-LCNet、FasterNet轻量级网络的相关原理与结构分析,发现轻量级网络模块的模型参数量小、计算复杂程度低,能够有效地轻量化算法模型。因此,通过将YOLOv7-tiny算法的主干特征提取网络分别替换为MobileNetV3、GhostNet、PP-LCNet、FasterNet四种轻量级网络模块开展实验。实验结果表明,将YOLOv7-tiny算法主干网络分别替换为四种轻量级网络模块较原算法在仅牺牲少许检测性能的条件下,均可起到轻量化模型的作用。但YOLOv7-tiny-PP-LCNet轻量级网络的效果更佳,在检测精度mAP@0.5为98.5%和检测速度为103.1FPS的条件下,可以将YOLOv7-tiny算法模型参数量从6.02MB减少到4.45MB,降低了26.1%;模型计算复杂程度从13.2GFLOPs减少到8.7GFLOPs,降低了34.1%。相较于原YOLOv7算法模型参数量大且计算复杂程度高,极大满足了嵌入式边缘设备的部署应用。 (4)基于PySide6的PCB缺陷检测系统的设计与实现。为满足PCB工业生产中的检测需求以及本文研究算法模型的系统化应用。在PyCharm开发平台上利用PySide6和QtDesigner设计了一个PCB缺陷检测系统界面,并编写了相关程序实现PCB缺陷检测、导入检测模型、选择检测模型、调节检测阈值、预览检测图像、显示检测结果、导出检测图像等功能。本文的研究工作可以实现PCB缺陷的智能化检测,检测用户通过上传PCB图像、选择检测模型、调节检测阈值等功能实现不同需求的PCB缺陷检测与识别,并得出PCB图像存在缺陷的类别、位置、置信度以及数量,用于指导检测用户进行PCB缺陷筛选工作,具有实际的商业价值和应用前景。