基于改进YOLOv7⁃tiny的PCB表面缺陷检测

解琳 ,  韩跃平 ,  翟倩 ,  李瑞红

测试技术学报 ›› 2025, Vol. 39 ›› Issue (01) : 81 -87.

PDF (2322KB)
测试技术学报 ›› 2025, Vol. 39 ›› Issue (01) : 81 -87. DOI: 10.62756/csjs.1671-7449.2025012
数据采集与图像处理

基于改进YOLOv7⁃tiny的PCB表面缺陷检测

作者信息 +

PCB Surface Defect Detection Based on Improved YOLOv7⁃tiny

Author information +
文章历史 +
PDF (2377K)

摘要

实现实时印刷电路板(Printed Circuit Board, PCB)表面缺陷检测是提高PCB制作工艺流程智能化的基础, 针对原始PCB检测方法耗时长、 精度低、 不易移动的问题, 提出了一种基于YOLOv7-tiny的改进模型。将YOLOv7-tiny中的SiLU激活函数替换为ELU函数, 引入集中综合卷积模块(C3模块), 将深度可分离卷积与C3相结合, 构成集中综合深度可分离模块, 并添加卷积块注意模块。经实验, 改进后的模型在检测准确性、 召回率以及均值平均精度上都表现出色, 相较于原模型大小下降了2.8 MB。与其他主流的目标检测方案对比, 也表现出较好的检测效果。改进后的YOLOv7-tiny能够保持更高的准确性, 同时还减少了模型的内存需求, 这为PCB缺陷的实时检测以及边缘部署提供了新的可能性。

Abstract

Realizing real-time printed circuit board(PCB) surface defect detection is the basis for improving the intelligence of the PCB fabrication process. Aiming at the original PCB inspection method which is time-consuming, low-accuracy and not easy to move, this paper proposes an improved model based on YOLOv7-tiny. Replace the SiLU activation function in YOLOv7-tiny with the ELU function; introduce a centralized integrated convolutional module (C3 module), and combine depthwise separable convolution with C3 to form a centralized integrated depthwise separable convolution module; and add a convolutional block attention module. Experimentally, the improved model performs well in detection accuracy, recall rate, and mean average precision, and the size of the model drops by 2.8 MB compared to the original model. It also shows better detection results when compared with other mainstream target detection schemes. The ability of the improved YOLOv7-tiny to maintain higher accuracy while also reducing the memory requirements of the model opens up new possibilities for real-time detection of PCB defects as well as edge deployment.

Graphical abstract

关键词

目标检测 / YOLOv7-tiny / 激活函数 / 集中综合深度可分离模块 / 注意力机制

Key words

target detection / YOLOv7-tiny / activation function / centralized comprehensive depth separable module / attention mechanism

引用本文

引用格式 ▾
解琳,韩跃平,翟倩,李瑞红. 基于改进YOLOv7⁃tiny的PCB表面缺陷检测[J]. 测试技术学报, 2025, 39(01): 81-87 DOI:10.62756/csjs.1671-7449.2025012

登录浏览全文

4963

注册一个新账户 忘记密码

0 引 言

随着现代电子技术的发展, 多种电子产品在各行各业中都发挥着其不可替代的作用。印刷电路板(Printed Circuit Board, PCB)是电子设备中一个关键的组成部分, 其质量的好坏直接关系到电子产品的功能性及其使用寿命[1]。在工业制作PCB的过程中有可能造成PCB的缺陷, 如短路、 断路、 毛刺等。在早期通常利用人工对其进行检测, 但这种办法所需的时间和成本都很高[2], 因此, 运用现代技术对PCB进行缺陷检测是十分必要的。在流水线生产过程中, 依赖机器视觉的检测系统与人工检测相比, 具有非接触、 速度快、 精度高、 准确率高等优势[3]。在早期的PCB检测领域, 最常见的方法是自动光学检测(Automated Optical Inspection, AOI)[4], 该方法虽然可以稳定地对PCB板缺陷进行检测识别, 但在实际使用中需经过很多步骤, 针对性强且计算量较大。随着神经网络的发展, 利用其相关技术可有效地提高缺陷检测系统的精度与鲁棒性[5]。在目标检测领域, R-CNN、 SSD、 YOLO等算法模型的发展进一步推进了研究者朝着检测速度更快、 精度更高、 尺度更广的方向探索。因此, 研究深度学习在PCB缺陷检测领域的可能性具有重要的现实意义。

2012年, Hinton等[6]提出一种利用卷积神经网络(CNN)对图像中的隐藏特征进行提取的方法, 该方法被称为AlexNet网络。CNN在目标特征提取领域展现的非凡能力使越来越多的学者参与到对其的研究中。与传统方法相比, 采用深度学习的目标检测技术不仅运算速度更快、 准确度更高, 且在移植性和鲁棒性上都展现更强的优势。在现阶段, 目标检测算法可简单分为两阶段(two stage)和单阶段(one stage)两类。两阶段算法需通过特征提取生成可能含有检测目标的预选框, 再运用神经网络对目标进行分类和对锚框的进一步定位; 单阶段算法则直接对图像进行特征提取, 然后进行分类与定位回归操作, 得到输出结果[7]。2023年, 罗仁泽等[8]在Faster R-CNN算法中引入特征金字塔结构提高检测准确率以及三支路区域预测候选区提高检测速度。2021年, Du等[9]根据RestNet50对小锚点进行设计, 同时将面向目标的浅层特征与面向语义的深层特征相结合, 算法的精度与速度都表现出不错的性能。

与两阶段检测相比, 单阶段检测不需要对图片中的候选区域进行深入提取, 从而可以提升检测速度, 并在实时检测技术中展现出更大的优势。2019年, 施辉等[10] 运用K-means算法确定先验框, 设计改进YOLOv3算法模型将不同层次的特征图进行多尺度融合, 在确保准确率的基础上, 有效提高了检测速度。2020年, 刘芳等[11]在darknet-19中引入残差结构, 实现前后层特征复用, 融合多尺度特征信息, 有效地对番茄果实的成熟情况进行检测。2022年, 陈旭等[12]对YOLOv5s的骨干网络进行改进, 并设计了跨阶段注意力模块增强对细节信息的利用, 改进检测头结构, 实验证实该方法适用于无人机图像的检测任务。2023年, 赵春江等[13]将YOLOv7-tiny中ELAN模块的常规卷积替换为深度卷积, 使用ELU激活函数, 并引入CA注意力机制, 提高了鸡只与鸡蛋的识别精度, 并有效减小了模型大小。2024年, 张利丰等[14]提出一种基于YOLOv8的改进算法, 对模型的主干网络以及颈部网络进行重构, 并增加了轻量化的注意力机制, 满足了在小型设备上部署的需求。2024年, Wang等[15]提出了YOLOv9, 在骨干网络部分设计了基于ELAN结构的G-ELAN结构, 并提出了可编程梯度信息, 进一步提高了模型的平均精度。

双阶段目标检测算法会在第一阶段生成特征的预测框, 但其结构较为复杂, 难以实现高效的实时检测。YOLOv8与YOLOv9虽采用更优异的技术在复杂场景中表现出更好的检测效果, 但其在实际运用中需要更多的计算资源。YOLOv7-tiny模型较小且计算复杂度较低, 在PCB实时缺陷检测领域其速度、 性能以及部署难度都较为优异, 因此, 本文在YOLOv7-tiny基础上进行改进, 提出一种对PCB表面缺陷的快速检测方法, 该方法通过替换激活函数提升模型的收敛能力, 并提出集中综合深度可分离模块(DSC3), 大量减少了模型运算所需要的参数与计算量, 还融入了卷积块注意模块(Convolutional Block Attention Module, CBAM), 增强网络在PCB表面缺陷的识别以及特征提取方面的能力。

1 YOLOv7⁃tiny算法改进

1.1 整体概述

本文研究算法技术路线如图 1 所示, 其网络架构主要包括三部分: 输入端(input)、 骨干网络(backbone)、 头部网络(head)。在输入端输入待检测图像, 并进行数据增强等预处理后传送至骨干网络; 在骨干网络部分实现对图像的特征提取, 得到3张尺度不同的特征图, 并将其传送至头部网络; 头部网络再对其进行特征融合得到新的特征图, 然后对其进行预测确定缺陷的检验框位置及置信度等其他信息。

改进后的YOLOv7-tiny算法将头部网络中部分CBS模块替换为CBE模块, 使用ELU激活函数代替SiLU函数; 针对YOLOv7-tiny在PCB缺陷检测时计算难度大、 所需参数多的问题, 引入深度可分离卷积(Depthwise Separable Convolution, DSConv)设计了集中综合深度可分离模块(DSC3)代替原始的集中综合卷积(C3)模块; 并引入CBAM扩大模型的感受野, 提高模型的特征提取能力。通过这些改进, 在保证检测精度的前提下降低模型计算难度, 进一步实现了PCB缺陷的实时检测及边缘部署。

1.2 激活函数

激活函数帮助卷积神经网络实现对结果的非线性映射, 可确保神经网络具有一致的逼近能力, 这些函数通常需具备连续可微的特点。YOLOv7网络架构中所使用的SiLU激活函数虽具备连续且可微的特点, 但仅适用于神经网络的隐藏层。考虑上述问题, 引入ELU函数为激活函数, 两函数及其导数为

SiLUx=x1+exp -x,
SiLU'x=11+exp -x+x1+exp -x×
1-11+exp -x,
ELUx=x,x>0,∂×expx-∂,x≤0,
ELU'x=1,x>0,∂×expx,x≤0。

当∂取1时, 两函数曲线图及导数图如图 2 所示。

1.3 集中综合深度可分离模块

集中综合卷积模块通过瓶颈结构和卷积层将低层次的特征图联系到高层次特征图上, 对目标检测领域的进步提供了帮助[16], 其中卷积部分会涉及到许多参数的定义及计算。为了减小模型的内存占用以及参数量和计算难度, 本文将DSConv应用于C3模块, 将C3中普通卷积换为DSConv, 从而得到DSC3。C3模块与DSC3模块结构如图 3 所示。

DSConv由两部分构成, 分别为逐深度卷积(Depthwise Convolution, DWConv)和逐点卷积(Pointwise Convolution, PWConv)[17]。如图 4 所示, 与普通卷积相比, DSConv可显著降低所需卷积核的参数量, 降低计算难度。

就普通卷积而言, 当输入特征图大小为H×W×C, 卷积步长为1时, 为获得大小为H×W×N的输出特征图, 需要N个K×K×C的卷积核进行操作。进行普通卷积操作时所需要的参数量与计算量为

Parmconv=N×K2×C,
Calcconv=N×K2×W×H×C。

DSConv首先基于逐深度卷积对空间特征进行提取, 再运用逐点卷积对通道特征进行提取, 并同时调整输出特征图的通道数量。对于DWConv, 输入特征图的每个通道仅需一个二维卷积核与其进行运算, 即当输入特征图大小为H×W×C时, 则需要C个大小为K×K的二维卷积。在PWConv部分通过使用N个1×1×C的三维卷积进行操作, 实现通道数的改变。进行DSConv时所需要的参数量与计算量为

Parmdsc=K2×C+C×N,
Calcdsc=K2×W×H×C+W×H×C×N。

DSConv与普通卷积参数量与计算量关系为

ParmdscParmconv=CalcdscCalcconv=1N+1K2。

在实际操作中, 通道数N一般大于卷积核宽度K, 因此, 采用DSConv代替普通卷积可有效地减少卷积操作所需的参数量并降低计算难度, 从而加快检测速度。

1.4 卷积块注意模块

注意力机制用于自动学习和计算输入数据对输出数据的影响程度。这种机制在某种程度上与人眼的选择性注意类似, 主要集中在更为关键的信息上, 在深度学习模型中引入注意力机制可以有效地提高模型的性能和泛化能力。

CBAM[18] 由通道注意力模块(Channel Attention Module, CAM)与空间注意力模块(Spatial Attention Module, SAM)组合构成, 先经CAM对输入特征进行自适应特征修正, 再由SAM对其进行校正得到最后的输出特征图, 如图 5 所示。

CAM会对特征图在空间维度上进行压缩。首先, 要对特征图进行全局最大池化与全局平均池化操作, 再将其分别传至多层感知机得到输出的特征信息, 再对其结果进行逐元相加并加以sigmoid激活操作, 从而获得通道注意力权值。

CAM可表示为

McF=αMLPAvgPoolF+MLPMaxPoolF,

式中: α为sigmoid激活函数; MLP为多层感知机; AvgPool为全局平均池化操作; MaxPool为全局最大池化操作; F为输入特征。

将CAM所获得的权重信息与最初的输入特征逐元相乘, 所得到的结果就是SAM的输入特征。与通道注意力不同, 空间注意力模块会对输入特征沿通道维度进行全局最大池化操作与全局平均池化操作, 并对结果进行拼接, 得到尺寸为1×H×W的特征图。然后对其进行7×7的卷积操作, 将特征图的尺寸降为1×H×W, 这一步拓宽了特征图的感受野。最后对结果进行Sigmoid激活操作, 得到空间注意力权重信息。SAM可表示为

MsF=αf7×7AvgPoolF;MaxPoolF。

2 实验及结果分析

2.1 数据集与评价指标

实验所用数据集为北京大学智能机器人开放实验室的印刷电路板瑕疵数据集, 具有漏孔、 鼠咬、 开路、 短路、 毛刺和杂铜6种缺陷, 共计1 386张图像。经图像变换等数据增强后扩充至4 158张图像, 将扩充后的数据按9∶1的比例划分为训练验证集与测试集, 其中训练集与验证集的比例为9∶1。

为了更好地评估网络模型在检测PCB表面缺陷方面的能力, 本文引入模型评价: 准确率(Precision, P)、 召回率(Recall, R)、 平均精度均值(mean Average Precision, mAP)、 模型内存占用量(Model Size)、 帧率(Frames per Seconds, FPS)。各指标计算公式为

P=TPTP+FP,
R=TPTP+FN,
PA=∫01Prdr,
mAP=1n∑i=1nPAi,

式中: TP为检测正确的目标数量即真正例; FP为错检数量即假正例; FN为漏检的目标数量即假反例; n为样本类别量, 即缺陷种类, 本文n=6。

图 6 所示为该数据集在本文检测方法下的可视化结果图。

2.2 消融实验

本文针对原始YOLOv7-tiny算法对PCB表面缺陷检测时表现出的不足提出3处改进, 通过逐一增加改进部分的办法进行了消融实验, 以验证各个改进部分的效果。实验分别验证了改变激活函数、 引入DSC3模块、 引入 CBAM对模型缺陷检测效果的影响, 结果如表 1 所示。

根据消融实验结果可知, 将原始SiLU激活函数替换为ELU函数后, 检测精度有小幅度提升, 但模型内存占用量提升; 加入DSC3之后, 因DSConv极大地减少了模型对参数的需求, 模型的内存占用大幅度降低且检测精度下降; 加入CBAM后, 模型检测精度有了提升, 但模型占用内存也有少量提高。综合比较, 本文方法和基准方法相比, 在模型大小降低的情况下检测精度也有小幅度提升。

2.3 对比实验

将本文方法与目前主流目标检测算法模型YOLOv5、 YOLOX、 Faster R-CNN、 SSD、 YOLOv8n在 PCB缺陷检测数据集上进行对比试验, 并以mAP、 模型大小、 帧率作为评价指标进行分析, 实验结果如表 2 所示。

由表 2 可得, 本文方法相较于Faster R-CNN、 SSD、 YOLOX、 YOLOv5、 YOLOv7算法模型, 精度都有所提高且模型大小与帧率都较小, 与YOLOv8n相比精度下降了0.63百分点, 但模型大小与帧率在实现实时检测与边缘部署仍占优势且精度基本满足检测要求。因此, 本文提出的算法在识别PCB表面缺陷方面具有一定的实用性。

3 结 论

针对PCB表面缺陷检测数据集, 对YOLOv7-tiny网络模型进行改进。本文将CBS模块中SiLU激活函数替换为ELU激活函数, 降低模型计算难度, 使模型能够更好的收敛; 对头部网络中的原始ELAN结构进行改进, 将 C3模块与DSConv相结合, 降低算法模型所需要的参数量以及计算难度, 并保证了模型的检测精度; 为进一步提高模型的检测精度, 在头部网络中引入了CBAM, 提高网络对缺陷部位的关注度, 增强网络的特征提取能力。最后对改进部分进行消融实验、 与主流检测算法的对比实验, 验证了网络的有效性。

参考文献

[1]

李大华, 徐傲, 王笋, 等. 基于改进YOLOv5的印刷电路板缺陷检测[J]. 电子测量技术, 2023, 46(23): 112-119.

[2]

LI Dahua, XU Ao, WANG Sun, et al. Printed circuit board defect detection based on improved YOLOv5[J]. Electronic Measurement Technology, 2023, 46(23): 112-119. (in Chinese)

[3]

王淑青, 鲁濠, 鲁东林, 等. 基于轻量化人工神经网络的PCB板缺陷检测[J]. 仪表技术与传感器, 2022(5): 98-104.

[4]

WANG Shuqing, LU Hao, LU Donglin, et al. PCB board defect detection based on lightweight artificial neural network[J]. Instrument Technique and Sensor, 2022(5): 98-104. (in Chinese)

[5]

李奎, 陈曼龙, 燕立志, 等. 基于机器视觉的石墨密封圈表面质量检测方法[J]. 陕西理工大学学报(自然科学版), 2021, 37(2): 29-34.

[6]

LI Kui, CHEN Manlong, YAN Lizhi, et al. Surface quality detection method of graphite seal ring based on machine vision[J]. Journal of Shaanxi University of Technology (Natural Science Edition), 2021, 37(2): 29-34. (in Chinese)

[7]

JUDI H M, KAPOYAH K, ASHAARI N S. Visualising automatic product inspection of PCB units[C]// 2009 International Conference on Electrical Engineering and Informatics, 2009: 204-207.

[8]

罗东亮, 蔡雨萱, 杨子豪, 等. 工业缺陷检测深度学习方法综述[J]. 中国科学: 信息科学, 2022, 52(6): 1002-1039.

[9]

LUO Dongliang, CAI Yuxuan, YANG Zihao, et al. Survey on industrial defect detection with deep learning[J]. Scientia Sinica(Informationis), 2022, 52(6): 1002-1039. (in Chinese)

[10]

HINTON G, DENG L, YU D, et al. Deep neural networks for acoustic modeling in speech recognition: the shared views of four research groups[J]. IEEE Signal Processing Magazine, 2012, 29(6): 82-97.

[11]

王贺, 樊星. 基于改进SSD的轻量级目标检测算法[J]. 测试技术学报, 2023, 37(2): 152-157.

[12]

WANG He, FAN Xing. A lightweight object detection algorithm based on improved SSD[J]. Journal of Test and Measurement Technology, 2023, 37(2): 152-157. (in Chinese)

[13]

罗仁泽, 唐祥, 余泓, 等. 基于改进Faster RCNN的射线图像焊缝缺陷检测方法[J]. 电子测量技术, 2023, 46(22): 160-168.

[14]

LUO Renze, TANG Xiang, YU Hong, et al. Weld defect detection method of ray image based on improved Faster RCNN[J]. Electronic Measurement Technology, 2023, 46(22): 160-168. (in Chinese)

[15]

DU J, LU H, HU M, et al. CNN‐based infrared dim small target detection algorithm using target‐oriented shallow‐deep features and effective small anchor[J]. IET Image Processing, 2021, 15(1): 1-15.

[16]

施辉, 陈先桥, 杨英. 改进YOLOv3的安全帽佩戴检测方法[J]. 计算机工程与应用, 2019, 55(11): 213-220.

[17]

SHI Hui, CHEN Xianqiao, YANG Ying. Safety helmet wearing detection method of improved YOLOv3[J]. Computer Engineering and Applications, 2019, 55(11): 213-220. (in Chinese)

[18]

刘芳, 刘玉坤, 林森, 等. 基于改进型YOLO的复杂环境下番茄果实快速识别方法[J]. 农业机械学报, 2020, 51(6): 229-237.

[19]

LIU Fang, LIU Yukun, LIN Sen, et al. Fast recognition method for tomatoes under complex environments based on improved YOLO[J]. Transactions of the Chinese Society for Agricultural Machinery, 2020, 51(6): 229-237. (in Chinese)

[20]

陈旭, 彭冬亮, 谷雨. 基于改进YOLOv5s的无人机图像实时目标检测[J]. 光电工程, 2022, 49(3): 69-81.

[21]

CHEN Xu, PENG Dongliang, GU Yu. Real-time object detection for UAV images based on improved YOLOv5s[J]. Opto-Electronic Engineering, 2022, 49(3): 69-81. (in Chinese)

[22]

赵春江, 梁雪文, 于合龙, 等. 基于改进YOLO v7的笼养鸡/蛋自动识别与计数方法[J]. 农业机械学报, 2023, 54(7): 300-312.

[23]

ZHAO Chunjiang, LIANG Xuewen, YU Helong, et al. Automatic identification and counting method of caged hens and eggs based on improved YOLO v7[J]. Transactions of the Chinese Society for Agricultural Machinery, 2023, 54(7): 300-312. (in Chinese)

[24]

张利丰, 田莹. 改进YOLOv8的多尺度轻量型车辆目标检测算法[J]. 计算机工程与应用, 2024, 60(3): 129-137.

[25]

ZHANG Lifeng, TIAN Ying. Improved YOLOv8 multi-scale and lightweight vehicle object detection algorithm[J]. Computer Engineering and Applications, 2024, 60(3): 129-137. (in Chinese)

[26]

WANG C, YEH I, LIAO H. Yolov9: learning what you want to learn using programmable gradient information[C]//IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2024.

[27]

PARK H, YOO Y, SEO G, et al . C 3: concentrated-comprehensive convolution and its application to semantic segmentation[C]//IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.

[28]

CHOLLET, F. Xception: deep learning with depthwise separable convolutions[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition, 2017: 1800-1807.

[29]

WOO S, PARK J, LEE J Y, et al. CBAM: convolutional block attention module[C]//European Conference on Computer Vision, 2018: 3-19.

AI Summary AI Mindmap
PDF (2322KB)

777

访问

0

被引

详细

导航
相关文章

AI思维导图

/

〈 〉