1. 引言
印刷电路板(Printed Circuit Board, PCB)作为电子设备核心载体,广泛应用于计算机、汽车电子、航空航天等领域。随着电子设备向微型化、高密度发展,PCB线宽与孔径持续缩小,制造工艺复杂度提升,易产生咬边、残铜、短路等缺陷,缺陷可能导致的电子设备故障,成为质量控制关键环节。传统检测方法存在显著局限:人工目视检测主观性强、漏检率高,且效率难以适配大规模生产;传统AOI系统泛化能力弱,对微小缺陷和光照变化敏感。深度学习技术的发展为PCB缺陷检测提供新路径,YOLO系列算法凭借端到端架构和速度与精度平衡成为工业检测优选[1]。王玲等提出改进YOLOv7算法,mAP达95.3%但实时性不足[2];Xia等人为解决印刷电路板中大量微小目标和复杂背景纹理导致的漏检和误检问题,提出了一个全局上下文注意力增强YOLO模型[3]。吴葛等对YOLOv11进行改进,提升了PCB表面缺陷检测准确率[4]。尽管现有YOLO算法对PCB表面缺陷检测有一定的提升,但仍存在小目标漏检、复杂背景干扰导致的伪缺陷误报、多缺陷关联识别和参数较多的问题。
YOLOv12针对传统YOLO框架侧重CNN改进、注意力机制性能优但速度不足的痛点,提出以注意力为中心的实时目标检测器。它兼顾注意力的性能优势与CNN类YOLO的速度,资源消耗大幅降低,是当前精度领先且速度具有竞争力的实时目标检测器[5]。
本文设计实现基于YOLOv12的PCB缺陷检测系统,解决传统方法的核心痛点,实现自动化、高精度、实时检测,对提升电子制造业质量控制水平、降低生产成本具有重要理论与工程价值。
2. 基于YOLOv12的PCB缺陷检测
2.1. YOLOv12
YOLOv12的网络通过三大创新模块突破传统CNN主导的设计局限,实现性能与实时性的平衡。首先,区域注意力模块采用均等分区策略,将特征图沿水平或垂直方向分为4个区域,以简单reshape操作替代复杂窗口划分,在维持大感受野的同时,将注意力计算成本大幅降低;其次,残差高效层聚合网络针对注意力机制带来的优化不稳定问题,在ELAN基础上新增块级残差缩放连接,减少计算量与参数规模的同时保障梯度流畅传递;此外,架构层面的适配优化进一步强化实用性,保留YOLO经典分层设计,移除主干网最后阶段的多块堆叠,采用Conv2d + BN替代Linear + LN以提升计算效率,引入FlashAttention解决内存访问瓶颈,在补充位置信息的同时不牺牲推理速度,三大模块协同使YOLOv12充分发挥注意力建模优势,兼顾实时检测需求。
2.2. PCB缺陷数据集
本研究采用DeepPCB公开基准数据集,该数据集由Tang等人于2019年发布[6],为PCB缺陷检测算法性能对比提供统一标准。数据集包含1500对无缺陷模板图像和含缺陷测试图像,单张图像分辨率640 × 640像素,采样精度达48像素/毫米,可清晰呈现微小缺陷细节。
原始标注为Pascal VOC格式XML文件,本研究转换为YOLO格式用于模型训练。涵盖6类典型工业缺陷:开路(open)、短路(short)、鼠咬(mousebite)、毛刺(spur)、针孔(pin hole)、杂铜(spurious copper)。数据集按8:1:1比例随机划分为训练集(1200张)、验证集(150张)、测试集(150张),适配深度学习模型训练与性能评估流程。
2.3. 模型训练
本研究的实验硬件环境配置如下:中央处理器采用Intel(R) Core(TM) i5-11400H,图形处理器为NVIDIA RTX 3050,配备16GB运行内存与4GB显存,能够满足YOLOv12模型训练与推理的基础硬件需求;软件环境基于PyTorch 2.2.0深度学习框架搭建,为模型训练提供稳定支撑。模型训练过程中设置具体参数如下:训练轮数为300轮,确保模型充分收敛学习缺陷特征;批次大小设为4,适配4 GB显存的硬件限制,避免出现显存溢出问题;输入图像尺寸统一调整为640 × 640像素,兼顾检测精度与计算效率;初始学习率设定为0.01,权重衰减系数为0.0005,用于平衡模型训练速度与防止过拟合;数据增强方面,马赛克增强概率设置为0.3,用于提升模型对复杂场景的泛化能力,混合增强设置为0,避免过度增强导致微小缺陷特征丢失,保障DeepPCB数据集上的缺陷检测效果。
Figure 1. Training process
图1. 训练过程
为清晰呈现YOLOv12模型在DeepPCB数据集上完成缺陷检测任务的训练进程及性能变化规律,本研究对损失函数、检测精度、召回率以及平均精度均值等核心评价指标展开全程监控与可视化分析,相关结果如图1所示。从训练损失变化曲线可见,边界框损失(train/box_loss)、类别损失(train/cls_loss)与分布焦点损失(train/dfl_loss)均从较高初始值快速回落,并逐渐趋于收敛平稳,这意味着模型对PCB缺陷的目标定位、类别判别以及边界框精细化回归能力得到持续优化。同时,验证集的边界框损失与类别损失变化趋势与训练集高度吻合,无显著偏离,佐证模型泛化性能优良,未出现过拟合问题。此外,检测精度(metrics/precision (B))与召回率(metrics/recall (B))均快速攀升并趋近于1,各类平均精度指标也趋于饱和,充分说明模型检测性能优异,已充分习得PCB缺陷的核心视觉特征。
3. 系统软件架构设计
3.1. 整体架构设计
系统遵循分层解耦、模块化、易用性、可扩展性与数据安全性原则,确保系统稳定运行、便于维护,支持模型升级与功能扩展。系统采用数据层、业务层、表现层三级分层架构,见图2,各层通过标准化接口交互,实现低耦合高内聚。
Figure 2. Software architecture
图2. 软件架构
表现层包含自动化检测界面、台账管理界面、界面辅助功能。自动化检测界面布局分为五部分:左侧图像列表区、中间窗口PCB缺陷图像预览区、右侧检测详情表格区、下方左侧参数设置区、下方右侧检测数量统计区。台账管理界面布局分为三部分:上方查询区、中间缺陷台账表格区、下方详情编辑区。界面辅助功能为功能快捷键和分辨率自适应功能。
业务层包含图像采集模块、缺陷检测模块、结果展示模块、台账管理模块、数据导出模块、参数配置模块六大核心功能模块,协同实现PCB缺陷检测全流程处理。图像采集模块基于相机联动采集PCB图像,生成唯一PCB图像编号。缺陷检测模块封装训练好的基于YOLOv12的PCB缺陷检测模型,对PCB图像进行实时缺陷检测。结果展示模块呈现PCB实时图像,如果当前PCB图像含缺陷,将显示缺陷标注结果。台账管理模块实现缺陷PCB管理,提供PCB编号模糊查询、缺陷类型选择多条件组合查询,支持台账记录单条/批量增删改,设置或修改处理状态,备注支持多行输入,操作日志自动记录。数据导出模块通过工具栏下拉菜单提供Excel、PDF两种格式,Excel含汇总表与明细表,PDF采用预设标准模板并预留签名栏,文件自动按“PCB检测_日期_批次_用户名”命名,支持自定义存储路径。参数配置模块可以设置缺陷置信度阈值,值越大检测越严格,同时可以设置检测速度与是否自动保存结果。
数据层采用MySQL数据库和文件系统混合存储,MySQL数据库存储结构化数据,包括PCB唯一编号、缺陷类型、置信度、缺陷位置、检测时间、处理状态、备注说明等台账信息;本地文件系统按日期加批次方式自动创建文件夹,存储非结构化数据,包括PCB缺陷图像、导出的检测报告等,通过文件路径与数据库关联。
3.2. 模块交互流程
PCB缺陷检测系统各核心模块的交互闭环逻辑见图3,用户首先通过参数配置模块完成检测阈值、相机参数等设置,参数同步至相关功能模块并持久化存储至数据层;图像采集模块将采集的图像预处理后传递至缺陷检测模块;缺陷检测模块加载训练好的YOLOv12模型执行推理与后处理,检测结果同步至结果展示模块和台账管理模块;用户可对台账数据进行多条件查询、增删改操作,通过数据导出本地文件存储;各模块通过标准化接口交互,保障系统高效稳定运行。
Figure 3. Interaction flow chart of each software module
图3. 软件各模块交互流程图
4. 系统实现
4.1. 开发环境
系统的软硬件环境配置充分满足PCB缺陷检测的实时性与准确性需求。硬件层面采用Intel (R) Core (TM) i5-11400H处理器,搭配NVIDIA RTX 3050独立显卡,配备16 GB运行内存与4 GB显存,既能够支撑YOLOv12模型的轻量化训练,又可保障工业场景下的实时推理效率,避免因硬件性能不足导致的检测延迟。软件层面基于PyTorch 2.2.0深度学习框架搭建模型训练与推理环境,采用PyQt5开发可视化人机交互界面[7],依托OpenCV库完成图像的预处理与增强操作,利用MySQL数据库存储缺陷台账数据,构建起“采集–处理–检测–存储”的完整技术链路,软硬件协同配合确保系统在复杂工业工况下高效稳定运行。
4.2. 核心功能实现
Figure 4. System main interface
图4. 系统主界面
Figure 5. Ledger management interface
图5. 台账管理界面
PCB缺陷检测系统基于YOLOv12深度学习模型与PyQt5可视化框架开发,围绕图像采集、缺陷检测、结果展示、台账管理、数据导出、参数配置六大核心模块构建完整技术链路。系统界面采用模块化布局设计,遵循工业软件操作习惯,兼顾专业性与易用性,各模块功能协同配合,实现从图像采集到数据归档的全流程自动化处理。
4.2.1. 图像采集模块实现
图像采集模块为系统核心数据输入单元,点击启动自动化检测按钮后,系统采用多线程技术使用OpenCV读取摄像头采集的PCB图像,将采集到的PCB图像实时推送至界面左侧实时图像列表,同步在中间预览区显示,见图4。采集的图像经缩放、归一化预处理后,直接传递至缺陷检测模块,无需人工干预。
4.2.2. 缺陷检测模块实现
缺陷检测模块是系统核心处理单元,基于训练完成的YOLOv12模型实现PCB缺陷的自动识别与定位。首先对YOLOv12模型进行工程化封装,通过PyTorch框架的加载预训练权重文件。其次,通过参数设置模块提供置信度阈值的调节功能,来得到不同严格程度的检测结果。为平衡检测精度与速度,模块集成了GPU加速,提升缺陷识别时的推理速度。检测流程启动后,模块接收来自图像采集模块的预处理图像,经模型推理后输出缺陷预测框坐标、类别概率与置信度,再通过IOU阈值过滤去除冗余预测框,最终得到精准的缺陷检测结果。经测试,在本文环境下,系统对单张PCB图像的检测耗时小于20 ms,满足工业场景下的批量检测需求。
4.2.3. 结果展示模块实现
结果展示模块负责将缺陷检测结果以可视化方式呈现,帮助用户快速直观地查看缺陷位置、类型与关键信息,其运行截图如图4所示。结果展示模块分为PCB检测结果实时预览与检测结果详情。PCB检测结果实时预览显示PCB图像与缺陷标注信息。不同缺陷类型采用差异化颜色标识,标注框内部叠加显示缺陷类型名称与置信度,标注框边缘采用加粗线条确保清晰可见,即使在复杂背景的PCB图像中也能快速定位缺陷位置。缺陷标注信息以表格形式展示当前PCB缺陷,采用PyQt5的QTableWidget组件构建,列项包含缺陷编号、类型、置信度、像素坐标、处理状态。表格中像素坐标数据直接来源于模型推理输出,经坐标转换后与原始图像像素一一对应,处理状态列默认显示“处理中”。为提升数据可读性,模块还支持标注图像的放大功能,用户通过鼠标滚轮实现放大PCB缺陷图像,方便用户确认缺陷特征。
4.2.4. 台账管理模块实现
台账管理模块作为系统数据存储与管理核心,实现PCB唯一编号与多缺陷的一对多关联管理,支持检测数据的查询、新增、修改、删除等全生命周期操作,见图5所示。模块采用MySQL数据库存储结构化数据,设计PCB信息表(存储PCB编号、生产批次、检测时间等)与缺陷信息表(存储缺陷编号、PCB关联编号、缺陷类型、置信度、坐标等),通过外键关联实现数据的一致性管理;非结构化数据采用本地文件系统存储,文件路径通过数据库字段关联,确保数据可追溯。
在数据查询功能方面,模块提供多条件组合查询功能,用户可通过PCB编号模糊查询、缺陷类型下拉选择与检测时间三种条件组合查询,查询逻辑通过SQL语句动态拼接实现,点击查询按钮后返回查询结果并显示在台账表格中。为提升查询效率,系统对数据库进行索引优化,在PCB编号、检测时间、缺陷类型等关键字段建立索引。
台账编辑功能支持单条记录增删改与批量删除操作,用户通过点击新增按钮弹出编辑窗口,输入PCB编号、选择生产批次等信息后,系统自动生成唯一台账记录;通过选中表格中的一条或多条记录,点击删除按钮可实现数据删除,删除前弹出确认提示,避免误操作;通过双击表格单元格或点击修改按钮可直接修改缺陷类型、处理状态等字段,备注栏支持多行文本输入,方便用户记录缺陷处理方案、原因分析等详细信息。所有编辑操作均会触发日志记录功能,系统自动记录修改人、修改时间、修改前值与修改后值,存储至操作日志表,支持用户后续追溯数据修改历史。
4.2.5. 数据导出模块实现
数据导出模块围绕图4中“导出结果”与图5中“导出台账”两个核心操作按钮构建,形成单个PCB缺陷检测结果快速导出与批量台账完整归档的互补式导出体系,全面覆盖工业检测场景下不同数据使用需求。主界面的导出结果功能针对当前实时检测的单块PCB缺陷数据设计,触发后可快速封装该PCB的缺陷编号、类型、置信度、像素坐标、处理标记等核心明细数据,支持Excel与PDF两种标准化格式导出,文件自动关联PCB唯一编号与检测时间完成命名,无需切换至后台台账即可实现单条结果的快速留存,满足现场检测人员即时复核缺陷、留存凭证的一线操作需求,大幅提升现场工作效率。台账管理界面的导出台账功能聚焦批量数据归档与分析,支持导出全量缺陷台账或多条件筛选后的目标数据,导出文件包含检测汇总表与缺陷明细表双表结构,涵盖生产批次、图像存储路径、详细备注等完整结构化信息,适配管理人员进行离线数据分析、生产质量报表生成、检测结果归档审核的核心需求,确保检测数据的全生命周期可追溯与可复用。
4.2.6. 参数配置模块实现
参数配置模块核心包含三项关键设置,兼顾检测精度、运行效率与数据安全性。置信度配置通过PyQt5的QSlider与QSpinBox组件实现联动控制,滑块拖动时数值框实时同步更新,数值输入时滑块位置自动校准,满足不同用户的操作习惯实现,用户可根据PCB缺陷特征灵活调整,平衡检测精度与小缺陷召回率,减少误检或漏检情况。帧率配置提供三档位下拉选择,适配不同硬件算力与生产线速度,无需重启系统即时生效,保障检测流程流畅。是否自动保存结果支持开启和关闭二选一切换,默认开启,自动将检测数据持久化存储,关闭状态适配系统调试场景,减少存储冗余,兼顾数据追溯需求与系统运行轻量化。
5. 结论与展望
本研究围绕PCB缺陷工业检测的智能化需求,成功构建了基于YOLOv12深度学习模型与PyQt5可视化框架的PCB缺陷自动化检测系统,实现了从相机实时采集、缺陷精准识别、结果可视化展示到台账全生命周期管理的全流程闭环处理。系统通过置信度、帧率等核心参数的灵活配置,以及单条结果快速导出、批量台账完整归档的互补式数据导出功能,兼顾了现场检测的高效性与后台管理的规范性,有效降低了人工检测的主观误差与劳动成本,提升了PCB缺陷检测的精准度与可追溯性,具备良好的工业落地价值。但目前系统仍存在一定不足,如对极小尺寸缺陷的识别率有待提升,且暂未实现与MES制造执行系统的无缝对接。未来将进一步优化YOLOv12模型,通过数据增强、特征融合策略提升小缺陷识别能力,同时拓展系统功能,实现与工业产线其他系统的联动,推进系统的嵌入式部署与大规模工业化应用,为电子制造业质检环节的智能化升级提供更有力的技术支撑。
基金项目
保定市科技计划资助,项目名称:基于深度学习技术的PCB表面缺陷检测系统研究,项目编号:2411ZG022。