许思昂,李艺杰,梁桥康,杨彬
基于改进YOLOv5算法的PCB裸板缺陷检测
许思昂1,2,3,李艺杰1,2,3,梁桥康1,2,3,杨彬1,2,3
(1.湖南大学 电气与信息工程学院,长沙 410082;2.电子制造业智能机器人技术湖南省重点实验室,长沙 410082;3.机器人视觉感知与控制技术国家工程实验室,长沙 410082)
将基于深度学习的YOLOv5算法应用于PCB裸板的缺陷检测上,以提高检测的准确率。通过增加特征融合通路,将C2、C3、C4层直接与P2、P3、P4层相连,从而减小信息的损耗;引入更浅层的C2、F2、P2特征图以增加图像的细节信息;并且使用注意力机制SE_block,大幅提高原算法的准确率。改进后的网络的平均精度由91.54%提高至97.36%,提高了5.82%,并且对于各类缺陷,算法的检测精度都能保持在90%以上,满足工业的需求。文中的算法提高了检测精度,体现了浅层信息在小目标检测上的作用,验证了多信息融合通路的优势,彰显了注意力机制的优越性,相比于原算法具有一定的优势。
PCB裸板;YOLOv5;缺陷检测;深度学习;目标检测
传统印刷电路板检测是工人借助检测设备,通过肉眼和经验来检测目标的一种检测方法。这种方法因人的主观因素的存在而产生准确率低、人员成本投入较大等缺点。之后出现了利用元件的电性质来检测印刷电路板的故障的电检测法,这种方法相比人工检测来说减少了成本,但需要元件与检测器产生电接触,可能存在损坏元件的问题。
随着机器视觉的逐渐成熟,机器视觉由于其更低的成本、更高的准确率和效率等优势而被人们逐渐应用于各大检测现场。目前,基于机器视觉的PCB板缺陷检测方法[1]主要有三大类:参考法[2]常表示使用图像分割的检测方法,如文献[3]提出通过比较目标与标准图像的像素来分辨缺陷;非参考法[4]主要指使用机器学习的检测方法;混合法[5]是同时使用以上2种方法。图像分割方法包括:基于阈值分割方法的PCB缺陷检测,如Ardhy等[6]通过自适应的高斯阈值分割,在参数量较小的情况下实现了快速检测,但在光线条件不同的地方,检测效果会有较大变化;基于边缘分割方法的缺陷检测,如Baygin等[7]使用Hough变换进行边缘分割,并结合Canny算子,使检测效率得到了提高;基于区域分割的缺陷检测,如Ma等[8]改进了区域生长算法,以此获得了更好的检测效果。这些方法都需要人工设定模型的参数,无法保证精确度和效率。
近些年卷积神经网络的性能得到了验证,一系列利用卷积神经网络进行识别的算法应用广泛,如以高检测精度著称的二阶段检测算法(如R–CNN[9]、Faster R–CNN[10])和精度和速度并重的一阶段检测算法(如YOLO[11]、SSD[12])等。相较于传统的机器学习方法,深度学习的算法网络更深,非线性能力较强,适用于更多复杂场所,具有更高的鲁棒性[13]。其中,在Faster R–CNN的基础上,贺贤珍[14]提出的一种改进措施,使精度达到了96.91%;耿朝晖等[15]提出一种改进检测方法,将损失函数改为focal loss并替换主干网络为ResNet50,使检测精度达到了96.65%。但Faster R–CNN算法作为先生成候选区域,再进行分类的二阶段算法,它检测速度较YOLO算法慢,在实际工业应用中缺少优势。同时2种算法都采用了FPN特征金字塔的多尺度融合方式,但没有针对小目标的数据集为多个尺度赋予不同的注意力,而是对所有的尺度给予相同的权重。基于以上算法存在的缺陷,文中以YOLOv5算法为基础,通过构建更浅层的F2、P2层,利用特征提取网络的C2、C3、C4特征层将它们与最终的P2、P3、P4层相连,并引入注意力机制SE_block,改进对于PCB的检测算法,在一定程度上减小这些缺点对算法的影响。
YOLO(You Only Look Once)从v1发展到如今的v5,已经发展为兼顾准确率与速度的算法。根据网络深度与宽度的不同,yolov5又可分为s、m、l、x这4个版本。文中采用的算法为YOLOv5s,其结构见图1。
YOLOv5借鉴了跨阶段局部网络[16](Cross Stage Partial Network,CSPNet)的思想,使用CSPdarknet作为主干网络,并引入了Focus切片结构。Focus在图片进入网络前,将其切片为4张图片,使得三通道的图片扩展为12个通道,然后将其卷积操作得到最终输入网络的特征图,以此来保留更多的图像信息。Focus操作过程见图2。
图1 YOLOv5结构
图2 Focus结构
Focus切片后的图片,经过CONV卷积层,对数据进行卷积、正则化、激活函数激活后,通过C3进行残差块的堆叠,能够在减少计算量的同时保持准确,提高模型的学习能力。文中使用的C3及bottleneck的结构见图3。YOLOv5设计了2种不同的bottleneck结构:使用了残差边的bottleneckTrue和不使用残差边的bottleneckFalse。这2种结构分别应用于不同的C3中。C3的一部分仅仅通过卷积处理,另一部分经过卷积块和Bottlenect堆叠,与残差部分按通道拼接后,再经过一个CONV模块得到最终输出。
图3 C3结构图
与YOLOv3不同的是,YOLOv5采用了ReLU的改进版SiLU作为激活函数。SiLU激活函数图像见图4,SiLU的表达式见式(1)。
在YOLOv3采用的特征金字塔网络[17](Feature Pyramid Networks,FPN)结构的基础上,为了增加信息的传递通路,减少信息的损耗,YOLOv5与YOLOv4一样使用了FPN+PANet的结构,见图5。YOLOv5借鉴了实例分割路径聚合网络(Path Aggregation Network for Instance Segmentation,PAnet)[18]的思想,通过加入反金字塔的双向融合,加强信息在网络中的流通,实现了3个维度的特征图的反复融合。
对小目标检测来说,难点主要在于网络的加深会引起图像信息的丢失。在网络加深的过程中,小目标在特征图中占据的像素会越来越小,导致检测分类的效果不好。针对以上原因,文中考虑将特征提取网络中的C2、C3、C4层以通道融合的方式直接与P2、P3、P4连接,以此增加信息的传输通路,减少信息的损耗;同时构建更浅层的F2、P2模块并引入注意力机制。最终改动后的特征融合网络见图6。
在FPN中,在主干网络向深层延伸的过程中,会使用很多个卷积块。经过如此多的网络层,浅层信息会得到较大的损失,使得网络对于部分占比较小的目标不敏感导致漏检。因此,PANet在FPN后添加了一个倒金字塔结构,可以让浅层的信息经过很少的网络传到网络深处。借鉴PANet的思想,文中考虑将YOLOv5的特征提取网络CSPdarknet的一部分特征层直接与PANet相连,增加信息在网络中的流通通路,以此减少信息在网络中的损失。同时随着网络的加深,感受野一直增大,主干网络在不断进行下采样的同时,也会损失许多细节信息。相比深层网络,浅层网络由于保留了更多的信息,对小目标更敏感。由于文中所面对的数据集主要为小目标,故文中同时也尝试充分利用浅层信息,引入了更浅层的特征层,将特征提取网络CSPdarknet中尺度为(160, 160)的特征层与网络融合,以保留更多细节。
为了方便理解,文中以式(2)的形式表达特征融合过程。
式中:为融合后的特征图; [ ]表示按通道维度拼接;123为融合的3个特征图。那么,特征图3可用式(3)表示。
同理2可用式(4)表示。
图6中F2、P2特征层及4个SE_block结构为文中改动新增加的结构。特征图2、3、4可用式(5)—(7)表示它的形成过程。
(7)
图6 文中数据融合结构
其中,CSP表示文中采用的C3结构,其结构见图1。
当输入图片为(640, 640)时,YOLOv5输出3个不同尺度的预测层分别为(80, 80)、(40, 40)、(20, 20),分别负责预测小、中、大3个不同尺度的目标。而PCB板的缺陷基本局限于小目标上,很少有尺寸较大的目标。因为原网络给3个不同尺度的输出层给予了相同的权重,而没有给不同大小的特征层赋予不同的注意力,所以文中引入了注意力机制SE_Block模块[19],尝试通过给不同尺度预测层附加权重来突出占比更高的部分。SE_block结构见图7。
图7 SE_block结构
Fsq为压缩(Squeeze)模块,将c通过全局平均池化压缩为一个维度为1×1×的特征向量。
接下来是激励模块
1的维度为/,是一个缩放系数,文中将其赋值为16;缩放后分网络经过ReLU激活后进行全连接,恢复通道数为;之后通过阈值函数sigmoid得到最终的权重;最后将原输入特征层乘上得到的权值即可。
为了验证文中改动对小目标缺件检测的有效性和先进性,文中使用CPU为Intel(R) Core(TM) i7–7820X CPU @ 3.60 GHz, GPU为GeForce RTX 2080 Ti,开发语言为Python,深度学习框架为pytorch的环境进行实验。
3.2.1 PCB图像简介
文中采用北京大学智能机器人开放实验室Ding公开的数据集,一共有6种缺陷类型。每张图片上有3~5个缺陷。表1列出了图片的张数和缺陷数量。
表1 各缺陷图片数量及各类型缺陷数量
Tab.1 Number of defective images and number of defects of each type
图8为数据集中PCB裸板存在的各种缺陷放大后的图像,其中框出来的部分是存在缺陷的部分。
3.2.2 数据增强
由于使用的数据集仅有693张图片,如果仅仅只用原数据集进行训练,很可能因为数据量较小而难以得到好的结果。并且,数据集中拍摄的PCB板均为规整的矩形,倾斜角度较小。若实际使用时PCB板的摆放有倾斜或其他扰动,很可能干扰检测的结果,同时,使用时的光照等其他条件同样对检测结果有影响。所以文中使用随机数据增强,将原数据集中的图片进行随机的旋转、水平平移、垂直平移、缩放、水平反转、对图像的亮度进行随机增强等方式,得到扩充后的数据集。
图9为对一张图片进行数据增强得到的一部分结果。由于在对图片进行数据增强的同时,标记框的坐标也会随之改变。所以要同步变换图片扭曲后标记框的坐标。改变标记框的数据增强示例见图10。
图8 6种缺陷类型图
3.2.3 评价指标
文中采用平均精度(mean Average Precision, mAP)、准确率(Precision)、召回率(Recall)作为评价指标。
当检测框与真实框的交并比IoU的值大于0.5时,将该样本记为正样本(P);反之记为负样本(P)。将正样本的数量与所有检测出的该类目标的比记为精确度。即:
图10 改变标记框的数据增强示意图
式中:P为被分为正样本但实际为负样本的样本。
召回率Recall为检测出的正类与所有正类的比,即:
式中:N为被分为负样本但实际为正样本的样本。
单独使用精确度或单独使用召回率都无法客观地反映检测结果的好坏,因此,文中使用综合了2项评价指标的精度指标(Average Precision,AP)来衡量算法的性能。利用不同的精确度和召回率的点的组合,可以画出PR曲线。AP就是PR曲线下的面积,将所有类别的AP求和后除类别数即得到平均精度(mAP)。
文中将训练集与验证集的比例设为9∶1,设立4组不同条件的实验:未改动的YOLOv5、仅改动特征融合网络的YOLOv5、仅添加注意力机制的YOLOv5和文中算法,通过比较4组实验的mAP来验证文中算法的有效性。这4组实验的mAP见表2。
表2 文中算法与YOLOv5算法精度比较
Tab.2 Comparison between proposed algorithm accuracy and YOLOv5 accuracy
由表2可知,改动后的算法相比原算法,精度得到了大幅提升。这说明改动的算法可以有效的检测中小目标。这也验证了前文的猜想,即通过使用浅层信息C2以及增加信息在网络中的传递路径,可以有效减少信息的损耗,保留小目标的信息。
图11 检测结果对比
图11为改动前后检测效果的对比图。从图11中可发现,针对原版YOLOv5没有检测出来的小目标,改动后的算法能将其检测并标记出来。图12为该目标的局部放大对比图。
文中实验结果见图13,文中算法可以准确地识别故障类型并在图片中标记。
图12 检测结果局部放大图
将文中算法与文献[14―15]所示算法的平均精度进行对比,结果见表3。
将文中算法与文献[15]所示算法的不同种类缺陷的AP进行对比,结果见表4。
表3 文中算法与文献算法平均精度对比
Tab.3 Comparison between average accuracy of proposed algorithm and other algorithms
表4 文中算法与文献[15]算法各类缺陷精度对比
Tab.4 Comparison between detection accuracy of various defects of proposed algorithm and algorithms in literature [15]
由表4可以看出,除余铜与鼠咬2类文中算法略低于文献[15]算法外,其余各类精度均更高,彰显了文中算法的优势。
文中提出的基于YOLOv5的PCB板缺陷检测方法通过增加特征融合通路,并且引入注意力机制SE_block,提升了算法对于印刷电路板的缺陷识别的精度。改进后的模型比原模型更适合小目标的检测,在6种缺陷上的精度均值均高于90%,满足工业的需求。总体来说,文中的方法体现了浅层信息在小目标检测上的作用,验证了多信息融合通路的优势,彰显了注意力机制的优越性,相比于其他算法具有一定的优势。
[1] 董静毅, 吕文涛, 包晓敏, 等. 基于机器视觉的PCB板表面缺陷检测方法研究进展[J]. 浙江理工大学学报(自然科学版), 2021, 45(3): 379-389.
DONG Jing-yi, LYU Wen-tao, BAO Xiao-min, et al. Research Progress of the PCB Surface Defect Detection Method Based on Machine Vision[J]. Journal of Zhejiang Sci-Tech University (Natural Sciences Edition), 2021, 45(3): 379-389.
[2] 陈殊. 探析基于图像处理的PCB缺陷检测技术及其重要性[J]. 数字技术与应用, 2016(10): 64-65.
CHEN Shu. Analysis of PCB Defect Detection Technology Based on Image Processing and Its Importance[J]. Digital Technology and Application, 2016(10): 64-65.
[3] 王家宏. 基于图像处理的印制电路板缺陷检测研究[J]. 通讯世界, 2017(4): 175-176.
WANG Jia-hong. Research on Defect Detection of Printed Circuit Board Based on Image Processing[J]. Telecom World, 2017(4): 175-176.
[4] 刘百芬, 李海文, 张姝颖, 等. 基于机器视觉PCB裸板缺陷自动检测研究[J]. 工业控制计算机, 2014, 27(10): 7-8.
LIU Bai-fen, LI Hai-wen, ZHANG Shu-ying, et al. Automatic Defect Inspection of PCB Bare Board Based on Machine Vision[J]. Industrial Control Computer, 2014, 27(10): 7-8.
[5] MOGANTI M, ERCAL F. Automatic PCB Inspection Systems[J]. IEEE Potentials, 1995, 14(3): 6-10.
[6] ARDHY F, HARIADI F I. Development of SBC Based Machine-Vision System for PCB Board Assembly Automatic Optical Inspection[C]// 2016 International Symposium on Electronics and Smart Devices (ISESD), Bandung, Indonesia, 2016: 387-393.
[7] BAYGIN M, KARAKOSE M, SARIMADEN A. Machine Vision Based Defect Detection Approach Using Image Processing[C]// 2017 International Artificial Intelligence and Data Processing symposium (IDAP), Malatya, Turkey, 2017: 1-5.
[8] MA J. Defect Detection and Recognition of Bare PCB Based on Computer Vision[C]// 2017 36th Chinese Control Conference (CCC), Dalian, China, 2017: 11023-11028.
[9] GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[C]// Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2014: 580-587.
[10] GIRSHICK R. Fast R-Cnn[C]// Proceedings of the IEEE International Conference on Computer Vision, 2015: 1440-1448.
[11] REDMON J, DIVVALA S, GIRSHICK R, et al. You only Look Once: Unified, Real-Time Object Detection[J]. Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2016, 2016-December: 779-788.
[12] LIU WEI, ANGUELOV D, ERHAN D, et al. SSD: Single Shot MultiBox Detector[C]// European Conference on Computer Vision, Springer, Cham, 2016: 22-37.
[13] 卢荣胜, 吴昂, 张腾达, 等. 自动光学(视觉)检测技术及其在缺陷检测中的应用综述[J]. 光学学报, 2018, 38(8): 23-58.
LU Rong-sheng, WU Ang, ZHANG Teng-da, et al. Review on Automated Optical (Visual) Inspection and Its Applications in Defect Detection[J]. Acta Optica Sinica, 2018, 38(8): 23-58.
[14] 贺贤珍. 基于深度学习的焊点缺陷图像检测研究[D]. 绵阳: 西南科技大学, 2021: 30-38.
HE Xian-zhen. Research on Image Detection of Solder Joint Defects Based on Deep Learning[D]. Mianyang: Southwest University of Science and Technology, 2021: 30-38.
[15] 耿朝晖, 龚涛. 基于改进Faster R-CNN的PCB板表面缺陷检测[J]. 现代计算机, 2021(19): 89-93.
GENG Zhao-hui, GONG Tao. PCB Surface Defect Detection Based on Improved Faster R-CNN[J]. Modern Computer, 2021(19): 89-93.
[16] WANG C Y, LIAO H Y M, YEH I H, et al. CSPNet: A New Backbone that can Enhance Learning Capability of CNN[C]// IEEE Conference on Computer Vision and Pattern Recognition Workshop, 2020: 1003-1012.
[17] LIN T Y, DOLLÁR P, GIRSHICK R, et al. Feature Pyramid Networks for Object Detection[C]// IEEE Conference on Computer Vision and Pattern Recognition, 2017: 2117-2125.
[18] DENG J, DONG W, SOCHER R, et al. 2009 IEEE Conference on Computer Vision and Pattern Recognition[C]// IEEE Conference on Computer Vision and Pattern Recognition, 2018: 8759-8768.
[19] HU Jie, SHEN Li, SUN Gang.Squeeze-and-Excitation Networks[C]// IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2018, 42(8): 7132-7141.
Bare PCB Defect Detection Based on Improved YOLOv5 Algorithm
XU Si-ang1,2,3,LI Yi-jie1,2,3, LIANG Qiao-kang1,2,3, YANG Bin1,2,3
(1. College of Electrical and Information Engineering, Hunan University, Changsha 410082, China; 2. Hunan Key Laboratory of Intelligent Robot Technology in Electronic Manufacturing, Changsha 410082, China;3. National Engineering Laboratory for Robot Vision Perception and Control Technologies, Changsha 410082, China)
The work aims to apply YOLOv5 algorithm to defect detection of bare PCB, so as to improve detection accuracy. Feature fusion path was added to directly connect layers C2, C3 and C4 with layers P2, P3 and P4, so as to reduce the loss of information. Shallower C2, F2 and P2 feature images were introduced to increase the details of the image. Moreover, the attention mechanism SE_block was used to improve the accuracy of the original algorithm. The average accuracy of the improved network increased from 91.54% to 97.36%, with a growth of 5.82%. For all kinds of defects, the algorithm could keep a detection accuracy above 90%, which met the needs of industry. The proposed algorithm improves the detection accuracy, reflects the role of shallow information in small target detection, verifies the advantages of multi-information fusion pathway, and highlights the advantages of attention mechanism. Compared with the original algorithm, the proposed algorithm has certain advantages.
bare PCB; YOLOv5; defect detection; deep learning; object detection
TP391.4
A
1001-3563(2022)15-0033-09
10.19554/j.cnki.1001-3563.2022.15.004
2022–04–21
许思昂(2000—),男,湖南大学本科生,主攻仿生机器人运动控制与决策。
梁桥康(1986—),男,博士,湖南大学教授,主要研究方向为仿生机器人运动控制与决策。
责任编辑:曾钰婵