温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
ZYNQ
PCB
缺陷
检测
系统
实验设计
张丽丽
实 验 技 术 与 管 理 第 40 卷 第 4 期 2023 年 4 月 Experimental Technology and Management Vol.40 No.4 Apr.2023 收稿日期:2022-11-29 基金项目:国家自然科学基金资助项目(61671310);辽宁省教育厅资助项目(LJKZ0174);辽宁省教改资助项目(辽教办2021254 号)作者简介:张丽丽(1979)女,黑龙江讷河,博士,副教授,系主任,主要研究方向为 FPGA 系统设计与深度学习,。引文格式:张丽丽,陈真,刘雨轩,等.基于 ZYNQ 的 PCB 缺陷检测系统实验设计J.实验技术与管理,2023,40(4):96-102.Cite this article:ZHANG L L,CHEN Z,LIU Y X,et al.Experimental design of PCB defect detection system based on ZYNQJ.Experimental Technology and Management,2023,40(4):96-102.(in Chinese)ISSN 1002-4956 CN11-2034/T DOI:10.16791/ki.sjg.2023.04.013 基于 ZYNQ 的 PCB 缺陷检测系统实验设计 张丽丽,陈 真,刘雨轩,蔡健楠(沈阳航空航天大学 电子信息工程学院,辽宁 沈阳 110136)摘 要:印刷电路板(PCB)检测方法对于确保产品正常工作至关重要。该文针对传统的人工检测方法易存在漏检、误检等问题,采用深度学习方法对 PCB 缺陷进行检测,并搭建了基于 ZYNQ 的硬件实现平台;采用软硬件协同设计方法,使用 FPGA 对算法进行了硬件加速,其中包括采用了 YOLOv3-SPP 网络模型,并对该结构进行了优化,使其适用于 ZYNQ 端的部署。在搭建硬件平台时,首先通过 Vivado 配置硬件基本信息,然后使用 PetaLinux创建 Linux 系统,在 Vitis 中调用该系统并添加 DPU IP 核,最后在 ZYNQ 的 PS 端采用多线程思想编写 Python 程序,实现 PCB 缺陷的检测。实验结果显示,该系统对各类型 PCB 缺陷的检测精度均在 0.95 以上,检测精度平均值(mAP)为 0.97。关键词:PCB 缺陷检测;深度学习;YOLOv3-SPP;ZYNQ;DPU 中图分类号:TN919.81 文献标识码:A 文章编号:1002-4956(2023)04-0096-07 Experimental design of PCB defect detection system based on ZYNQ ZHANG Lili,CHEN Zhen,LIU Yuxuan,CAI Jiannan(College of Electronical and Information Engineering,Shenyang Aerospace University,Shenyang 110136,China)Abstract:The detection method of printed circuit board(PCB)is crucial to ensure the normal operation of the product.In view of the problems that traditional manual detection methods are prone to miss detection and false detection,this paper uses the deep learning method to detect PCB defects,and builds a hardware implementation platform based on ZYNQ.It uses the software and hardware co-design method to accelerate the algorithm using FPGA.Among them,YOLOv3-SPP network model is adopted,and the structure is optimized to make it suitable for the deployment of ZYNQ terminal.When building the hardware platform,first configure the basic hardware information through Vivado,then use PetaLinux to create a Linux system,call the system in Vitis and add the DPU IP core,and finally write Python programs on the PS side of ZYNQ with the idea of multithreading to achieve PCB defect detection.The experimental results show that the detection accuracy of the system for various types of PCB defects is above 0.95,and the average detection accuracy(mAP)is 0.97.Key words:PCB defect detection;Deep learning;YOLOv3-SPP;ZYNQ;DPU 1 PCB 缺陷及缺陷检测 随着电子制造业的发展,电子产品趋向于多功能化、智能化、小型化,作为电子产品重要的精密零部件,印刷电路板(printed circuit board,PCB)在其中扮演着重要角色,承载着电路元件和导线的布局。随着集成电路封装技术的飞速发展,电子产品也逐渐变得轻薄、精小,使得 PCB 上的布线越来越拥挤,对PCB 的质量要求也越来越高。为了保证电子设备的性能,PCB 缺陷检测技术已成为现代电子产品行业中一项非常关键的技术。在印制 PCB 时,可能会存在诸多缺陷,如图 1 所示。早期的 PCB 缺陷检测以人工检测为主,主要检测方法包括在线测试、功能测试等,通过电气性质进行验证测试。这些方法测试流程复杂,不能复用,测试 张丽丽,等:基于 ZYNQ 的 PCB 缺陷检测系统实验设计 97 图 1 PCB 缺陷示意图 器成本高,检测效率低,因而应用受到限制,且随着PCB 制作工艺的进步,人工检测愈发困难。而深度学习非常擅长于视觉任务。随着深度学习的发展,一些深度学习模型在图像分类、目标检测等领域的准确度甚至超越了人类,已被应用于 PCB 缺陷检测中1。Ghosh 等人2基于迁移学习方法,从预训练的 Inception-V3 模型中提取参数,并从预训练模型中间层的输出中提取 PCB 图像的中间层表示,用于训练自适应网络,进而进行缺陷检测。Jang 等人3提出一种使用缺陷概率图像(DPI)的缺陷检测技术,将 DPI与灰度图像的叠加作为神经网络的输入。耿朝晖等人通过改进 Faster R-CNN4,构建特征金字塔对多尺度特征进行融合,使检测精度平均值 mAP 达到了96.65%。郑子毅5使用 SwinTransformer 成功完成了锡膏缺陷检测,在自建数据上的准确率达到 99.45%。徐胜军等人6通过增强上下文信息获取不同尺度的特征信息,使用注意力机制强化目标特征表征能力,使mAP 提升至 98.70%。Park 等人7设计了 MarsNet,该网络通过改进膨胀残留网络(dilated residual network,DRN)获得更高分辨率的特征图,并设计了水平垂直池化收集特征图中的位置信息,提高了池化效率,且采用多标签评分模块和阈值估计模块实现了多标签分类,最后在锡膏检测图像上验证了该网络所具有的良好性能。苏佳等人8使用 YOLO-J 算法,通过增加注意力机制、改进 PANet 结构、将激活函数更改为H-Swish 函数,并使用 K-means 对初始锚框进行分类等措施,获得了 0.29%的性能提升。Ding9等人在Faster R-CNN 基础上提出了微小缺陷检测网络,该网络采用 ResNet-101 作为骨干,通过特征金字塔网络进行特征融合,使用多种 PCB 缺陷 anchor 尺寸,在公共 PCB 缺陷数据集上的 mAP 达到了 98.90%。深度学习的发展也带来了计算冗杂、网络参数繁多、计算复杂度大幅增加等问题,使其只能在高性能计算机上运行。对实时性要求更高的应用场景,传统中央处理器的计算架构无法满足需求,这就需要硬件加速器进行计算加速,降低延时,一种主流的解决方法是采用 FPGA 提高运算速度。FPGA 具有高实时性、低功耗以及并行处理等特点,能够完成多种情形工作,具有较好的实用性和灵活性,适用于目标检测算法的各种应用场景。在文献10中,Wei 等人实现了 YOLO网络的加速,并将网络中的 Leaky ReLU 激活函数替换为 ReLU 激活函数以减少资源消耗,在 ZYNQ7035中实现了 19 帧率(FPS)的性能。文献11提出一种轻量级 YOLOv2 的实现方法,该方法通过使用二值化的 特 征 提 取 网 络 减 少 了 计 算 量 与 内 存 消 耗,在XCZU9EG 器件上实现了 40.81 FPS 的性能。文献12对 YOLO 网络进行了优化,针对优化后的网络,使用AXI4 总线封装了应用程序接口,并使用 ReLU 激活函数替换 Leaky ReLU 激活函数,将参数模型全部存储在片上存储器中,以减少对外部存储器的访问,实现了 19.6 FPS 的性能。文献13通过将 YOLOv3-Tiny 网络中的特征图映射为矩阵,并将归一化层与卷积层合并,以降低计算复杂度,在 XCZU7EV 器件上实现了8.3 FPS 的性能。针对硬件加速需求,Xilinx 推出了 ZYNQ 系列产品。该系列产品包含 PS(processing system)端与 PL(programmable logic)端,适合软硬件协同工作场景。将其引入 FPGA 课程实践,学生可以通过实验案例,学习基于 ZYNQ 平台及深度学习的 PCB 缺陷检测算法。其中,图像数据的预处理及后处理是依托 ZYNQ的 PS 部分通过 Python 语言实现的,检测结果显示是通过 OpenCV 以及 SSH 工具实现的。在实验中,学生能够学习使用ZYNQ进行开发设计的全过程和基本概念,学习搭建硬件实现平台和算法移植过程,解决在ZYNQ 设计、调试过程中出现的问题,为今后使用ZYNQ 进行软硬件协同设计和开发工作打下良好基础。2 目标检测算法分析 在深度学习中,常用的目标检测算法可大致分为两类,分别是 One-stage 网络和 Two-stage 网络。相比Two-stage 网络,One-stage 网络虽然识别精度较低,但其结构简单,可以取得更高的运算速度,更适合部署在资源有限的硬件设备上。在 One-stage 网络中,YOLO 系列网络14-16同时兼顾了检测精度和检测速度,因而得到了广泛应用和研究。本文选择 YOLOv3-SPP 网络模型进行部署,因为其网络结构比 YOLOv1和 v2 更完善,并且与 YOLO 的更高系列和其他的改98 实 验 技 术 与 管 理 进版本相比网络结构更简洁直观,更适合学生理解与掌握。在使用 ZYNQ 芯片中的 FPGA 部分对 YOLOv3-SPP 网络进行加速时,由于其网络参数量较大,需要进行量化、编译等操作以使其适用于 FPGA 的部署。YOLOv3-SPP 中包含的 Spatial Pyramid Pooling(SPP)模块由