基于ZYNQ的PCB缺陷检测系统实验设计_张丽丽.pdf
《基于ZYNQ的PCB缺陷检测系统实验设计_张丽丽.pdf》由会员分享,可在线阅读,更多相关《基于ZYNQ的PCB缺陷检测系统实验设计_张丽丽.pdf(7页珍藏版)》请在咨信网上搜索。
1、 实 验 技 术 与 管 理 第 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
2、,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 缺陷检测系统实验设计 张丽丽,陈 真,刘雨轩,蔡健楠(沈阳
3、航空航天大学 电子信息工程学院,辽宁 沈阳 110136)摘 要:印刷电路板(PCB)检测方法对于确保产品正常工作至关重要。该文针对传统的人工检测方法易存在漏检、误检等问题,采用深度学习方法对 PCB 缺陷进行检测,并搭建了基于 ZYNQ 的硬件实现平台;采用软硬件协同设计方法,使用 FPGA 对算法进行了硬件加速,其中包括采用了 YOLOv3-SPP 网络模型,并对该结构进行了优化,使其适用于 ZYNQ 端的部署。在搭建硬件平台时,首先通过 Vivado 配置硬件基本信息,然后使用 PetaLinux创建 Linux 系统,在 Vitis 中调用该系统并添加 DPU IP 核,最后在 ZYN
4、Q 的 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(Co
5、llege 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 mis
6、s 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
7、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 progr
8、ams 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 learnin
9、g;YOLOv3-SPP;ZYNQ;DPU 1 PCB 缺陷及缺陷检测 随着电子制造业的发展,电子产品趋向于多功能化、智能化、小型化,作为电子产品重要的精密零部件,印刷电路板(printed circuit board,PCB)在其中扮演着重要角色,承载着电路元件和导线的布局。随着集成电路封装技术的飞速发展,电子产品也逐渐变得轻薄、精小,使得 PCB 上的布线越来越拥挤,对PCB 的质量要求也越来越高。为了保证电子设备的性能,PCB 缺陷检测技术已成为现代电子产品行业中一项非常关键的技术。在印制 PCB 时,可能会存在诸多缺陷,如图 1 所示。早期的 PCB 缺陷检测以人工检测为主,主要检测方
10、法包括在线测试、功能测试等,通过电气性质进行验证测试。这些方法测试流程复杂,不能复用,测试 张丽丽,等:基于 ZYNQ 的 PCB 缺陷检测系统实验设计 97 图 1 PCB 缺陷示意图 器成本高,检测效率低,因而应用受到限制,且随着PCB 制作工艺的进步,人工检测愈发困难。而深度学习非常擅长于视觉任务。随着深度学习的发展,一些深度学习模型在图像分类、目标检测等领域的准确度甚至超越了人类,已被应用于 PCB 缺陷检测中1。Ghosh 等人2基于迁移学习方法,从预训练的 Inception-V3 模型中提取参数,并从预训练模型中间层的输出中提取 PCB 图像的中间层表示,用于训练自适应网络,进而
11、进行缺陷检测。Jang 等人3提出一种使用缺陷概率图像(DPI)的缺陷检测技术,将 DPI与灰度图像的叠加作为神经网络的输入。耿朝晖等人通过改进 Faster R-CNN4,构建特征金字塔对多尺度特征进行融合,使检测精度平均值 mAP 达到了96.65%。郑子毅5使用 SwinTransformer 成功完成了锡膏缺陷检测,在自建数据上的准确率达到 99.45%。徐胜军等人6通过增强上下文信息获取不同尺度的特征信息,使用注意力机制强化目标特征表征能力,使mAP 提升至 98.70%。Park 等人7设计了 MarsNet,该网络通过改进膨胀残留网络(dilated residual netwo
12、rk,DRN)获得更高分辨率的特征图,并设计了水平垂直池化收集特征图中的位置信息,提高了池化效率,且采用多标签评分模块和阈值估计模块实现了多标签分类,最后在锡膏检测图像上验证了该网络所具有的良好性能。苏佳等人8使用 YOLO-J 算法,通过增加注意力机制、改进 PANet 结构、将激活函数更改为H-Swish 函数,并使用 K-means 对初始锚框进行分类等措施,获得了 0.29%的性能提升。Ding9等人在Faster R-CNN 基础上提出了微小缺陷检测网络,该网络采用 ResNet-101 作为骨干,通过特征金字塔网络进行特征融合,使用多种 PCB 缺陷 anchor 尺寸,在公共 P
13、CB 缺陷数据集上的 mAP 达到了 98.90%。深度学习的发展也带来了计算冗杂、网络参数繁多、计算复杂度大幅增加等问题,使其只能在高性能计算机上运行。对实时性要求更高的应用场景,传统中央处理器的计算架构无法满足需求,这就需要硬件加速器进行计算加速,降低延时,一种主流的解决方法是采用 FPGA 提高运算速度。FPGA 具有高实时性、低功耗以及并行处理等特点,能够完成多种情形工作,具有较好的实用性和灵活性,适用于目标检测算法的各种应用场景。在文献10中,Wei 等人实现了 YOLO网络的加速,并将网络中的 Leaky ReLU 激活函数替换为 ReLU 激活函数以减少资源消耗,在 ZYNQ70
14、35中实现了 19 帧率(FPS)的性能。文献11提出一种轻量级 YOLOv2 的实现方法,该方法通过使用二值化的 特 征 提 取 网 络 减 少 了 计 算 量 与 内 存 消 耗,在XCZU9EG 器件上实现了 40.81 FPS 的性能。文献12对 YOLO 网络进行了优化,针对优化后的网络,使用AXI4 总线封装了应用程序接口,并使用 ReLU 激活函数替换 Leaky ReLU 激活函数,将参数模型全部存储在片上存储器中,以减少对外部存储器的访问,实现了 19.6 FPS 的性能。文献13通过将 YOLOv3-Tiny 网络中的特征图映射为矩阵,并将归一化层与卷积层合并,以降低计算复
15、杂度,在 XCZU7EV 器件上实现了8.3 FPS 的性能。针对硬件加速需求,Xilinx 推出了 ZYNQ 系列产品。该系列产品包含 PS(processing system)端与 PL(programmable logic)端,适合软硬件协同工作场景。将其引入 FPGA 课程实践,学生可以通过实验案例,学习基于 ZYNQ 平台及深度学习的 PCB 缺陷检测算法。其中,图像数据的预处理及后处理是依托 ZYNQ的 PS 部分通过 Python 语言实现的,检测结果显示是通过 OpenCV 以及 SSH 工具实现的。在实验中,学生能够学习使用ZYNQ进行开发设计的全过程和基本概念,学习搭建硬件
16、实现平台和算法移植过程,解决在ZYNQ 设计、调试过程中出现的问题,为今后使用ZYNQ 进行软硬件协同设计和开发工作打下良好基础。2 目标检测算法分析 在深度学习中,常用的目标检测算法可大致分为两类,分别是 One-stage 网络和 Two-stage 网络。相比Two-stage 网络,One-stage 网络虽然识别精度较低,但其结构简单,可以取得更高的运算速度,更适合部署在资源有限的硬件设备上。在 One-stage 网络中,YOLO 系列网络14-16同时兼顾了检测精度和检测速度,因而得到了广泛应用和研究。本文选择 YOLOv3-SPP 网络模型进行部署,因为其网络结构比 YOLOv
17、1和 v2 更完善,并且与 YOLO 的更高系列和其他的改98 实 验 技 术 与 管 理 进版本相比网络结构更简洁直观,更适合学生理解与掌握。在使用 ZYNQ 芯片中的 FPGA 部分对 YOLOv3-SPP 网络进行加速时,由于其网络参数量较大,需要进行量化、编译等操作以使其适用于 FPGA 的部署。YOLOv3-SPP 中包含的 Spatial Pyramid Pooling(SPP)模块由一系列最大池化核组成,由于不包含额外的网络参数,同时能给予网络更复杂的感受野,增强网络提取全局信息的能力,因此可以很好地补偿由于量化等操作带来的精度损失17。但是,由于 FPGA 上支持的最大池化核尺
18、寸为 8818,而 YOLOv3-SPP 中的SPP 模块包含的池化核尺寸最大为 1313。如果保持SPP结构不变,则需要将模型的中间计算结果从 FPGA传回至 CPU 处理,待 CPU 计算完成后再将结果传回至 FPGA 完成后续计算。这样所带来的额外数据搬移会成为整体性能的瓶颈。因此,本文将 SPP 结构进行更改,将最大池化核尺寸设置为 88,并去除其中尺寸大于 88 的池化核。修改后的 SPP 模块如图 2 所示。图 2 修改后的 SPP 模块 3 实验硬件结构 本实验实现 PCB 缺陷检测系统框图如图 3 所示,所用芯片为 Xilinx 的 ZYNQ UltraScale+MPSoCs
19、 系列芯片,型号为 XCZU15EG-ffvb1156-2-i。ZYNQ 芯片由两部分构成,为 Processing System(PS)端和 图 3 系统框图 Progarmmable Logic(PL)端,所用编译环境为 Vivado 2021.2、Petalinux 2021.2、Vitis 2021.2 以及 Vitis AI 1.4.0。系统采用软硬协同方式来实现目标检测功能,PS 端挂载一张 SD 卡,卡中烧录 Linux 操作系统,系统中包含 OpenCV、NumPy 等常用 Python 库及 Xilinx工具包,通过以太网和串口与外部进行数据交互。数据传入 PS 端进行预处理
20、,处理后数据通过 AXI 总线传输至 PL 端的 DPU IP 核中进行运算,PL 端将运算结果返回至 PS 端,PS 端对模型输出结果进行后处理,得到最终输出结果,从而实现 PCB 缺陷检测。4 实验流程 PCB 缺陷检测实验的目的是,使学生学习如何在ZYNQ 中对深度学习模型进行硬件加速,培养学生软硬件结合的设计思想,了解 ZYNQ 以及深度学习在实际工程中的应用,在 ZYNQ 平台中实现 PCB 缺陷检测算法。在进行实验时,需要进行硬件及软件两方面的设计,硬件设计方面包括 SD 卡、USB、串口、以太网等外设接口的配置,在 PL 端需完成 DPU IP 核的配置等。在软件设计方面,要完成
21、深度学习模型的量化、编译,xmodel 文件的生成,Linux 操作系统的创建,PS 端 Python 程序的编写等。PC 机使用串口或以太网接口对开发板进行调试。在使用以太网接口进行调试时,需将 PC 机与板卡配置为同一网段。4.1 Vivado 配置 首先打开Vivado软件,选择芯片型号为XCZU15EG-ffvb1156-2-i,在 Block Design 中添加 ZYNQ IP 核后,在 I/O configuration 界面,将 bank0bank2 电压配置为 LVCMOS18,将 bank3 电压配置为 LVCMOS33,并对 ZYNQ IP 核进行如下配置。勾选 UART
22、0 用于配置串口,MIO 选择 42.43;将 SD1 配置为 SD 卡,MIO 选择 46.51,Slot Type 选择 SD2.0,Data Transfer Mode 为 4 bit,勾选 CD,用于检测 SD 卡插入,MIO 选择 45;勾选 GEM3 用于配置以太网,MIO 选择 64.75,勾选 MDIO3,MIO选择 76.77;勾选 USB0 用于检测外部 USB 设备,MIO 选择 52.63,勾选 USB3.0,选择 GT Lane1,USB Reset 选择 Separate MIO Pin,复位选择低有效,MIO选择 32。添加时钟 IP 核,输入时钟为 100 MH
23、z,输出时钟分别为 100 MHz、300 MHz 和 600 MHz。该时钟 IP 核使用 ZYNQ IP 核输出的 pl_clk0 作为输入时钟,其输出时钟作为整个逻辑设计所需的时钟,其中输出的100 MHz 时钟作为 axi_lite 控制总线时钟。300 MHz和 600 MHz 时钟为 DPU(deeplearning process unity)IP 核接口时钟和内核时钟,各时钟域如图 4 所示。其 张丽丽,等:基于 ZYNQ 的 PCB 缺陷检测系统实验设计 99 中 s_axiclk 用于寄存器配置,数据控制器模块工作在m_axi_dpu_clk 时钟域下,计算时钟计算单元模块
24、工作在 m_axi_dpu_2xclk 时钟域下,该时钟为数据控制器模块的时钟频率的两倍。时钟复位设为低有效。添加Processor System Reset IP 核,为平台启用时钟并配置串口中断;添加 AXI Interrupt Controller IP 核,并将其 Interrupt Output Connection 属性更改为 Single,然后将 axi_intc_0.irq 端口与 zynq_ultra_ps_e_0.pl_ps_irq端口相连;在 zynq_ultra_ps_e_0 下,启用所有 AXI slave接 口 以 允 许 内 核 访 问DDR内 存,将S_AXI_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ZYNQ PCB 缺陷 检测 系统 实验设计 张丽丽
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。