摘要:本文面向 PCB 板外观缺陷的自动化质检场景,设计并实现一套端到端的 深度学习缺陷检测桌面系统。系统提供可视化 PySide6/Qt 交互界面,支持 图片/图片目录、视频文件与本地摄像头 多源输入,并在检测过程中展示 处理进度条与用时统计,便于现场实时把控节拍与稳定性。结果侧支持结构化记录与回溯:一键 CSV 导出、带框结果 单帧 PNG/多帧 AVI 快速导出,同时将账户信息与检测记录写入本地 SQLite,实现离线可用与可追溯管理。系统集成 登录/注册(可跳过) 流程,登录会话在本次运行周期内生效,并提供从概览到检测、模型选择与导出视图的顺畅动线。算法层面覆盖 YOLOv5–YOLOv12(共 8 种),支持 模型选择/权重加载(.pt 热切换),切换后自动刷新类别与配色;同时给出各模型在同一数据集与训练配置下的对比评估,包括 mAP、F1、PR训练曲线 等指标,辅助选型与部署。文末提供完整工程与数据集链接

功能效果展示视频:热门实战|《基于深度学习的PCB板缺陷检测系统》YOLOv12-v8多版本合集:附论文/源码/PPT/数据集,支持图片/视频/摄像头输入、可视化界面、结果导出与权重切换

➷点击跳转至文末所有涉及的完整代码文件页☇


1. 系统功能与效果

(1)登录注册:系统启动后提供登录、注册与跳过入口,首次使用可直接跳过进入主界面以快速体验核心流程;选择登录后,会话在本次运行周期内保持生效,并将账户与检测记录统一纳入本地管理。进入系统后,用户通常按“概览—图片检测—模型选择—导出视图”的动线完成任务,历史记录可按时间与文件名快速回溯,兼顾使用便利与数据安全边界。
在这里插入图片描述

(2)功能概况:整体交互围绕“左侧数据源与阈值控制—中央可视化显示—右侧目标详情—底部记录与进度”的布局组织,降低新用户学习成本。系统在一次任务中覆盖导入、推理、可视化、记录与导出闭环,并通过用时与进度反馈帮助用户把握处理节拍。对于高频场景,底部记录区可作为跨页面共享的“最近结果入口”,便于快速定位与复查。
在这里插入图片描述

(3)选择模型:用户可在界面中直接选择不同 YOLO 模型或加载本地权重文件实现热切换,切换后类别信息与显示配色会同步刷新,保证结果解释一致。模型选择不仅面向精度优先或速度优先的不同需求,也为同一批样本的多模型对比提供入口。常用配置与界面主题会在本地持久化,减少重复设置带来的操作负担。
在这里插入图片描述

(4)图片检测:导入单张图片或图片目录后可即时完成推理,主显示区叠加缺陷框与类别名称、置信度信息,便于快速确认缺陷位置与类型。系统支持在线调整置信度与 IoU 阈值,并提供目标选择与高亮显示,帮助用户在密集走线与细小缺陷区域进行精细复核。检测结果同步写入记录区,便于后续导出与检索。
在这里插入图片描述

(5)文件保存:系统将检测结果按统一规则进行归档管理,导出文件采用时间戳命名以保证可追溯性与批量管理效率。用户可一键导出结构化结果表以便统计分析,同时支持保存带框可视化结果用于报告与复盘。对于需要复查的任务,可通过文件名与时间快速定位对应记录,实现从结果到证据的闭环回溯。

在这里插入图片描述


2. 绪论

2.1 研究背景及意义

印制电路板(PCB)作为电子产品的关键载体,其走线更密、孔径更小、工艺更复杂,导致“微小缺陷也可能引发功能失效”的风险被进一步放大1。在实际产线中,自动光学检测(AOI)虽然已较为普及,但面对细小划伤、缺铜/多铜、短路/断路、鼠咬等缺陷时,仍容易出现误报与漏报,从而引入人工复判成本与节拍压力2。因此,将高精度目标检测模型引入 PCB 缺陷检测并形成可部署的端侧系统,具有直接的质量管控价值与工程落地意义1。 (ScienceDirect)

从算法角度看,PCB 缺陷呈现“小目标占比高、类间外观相似、背景纹理强干扰、反光与阴影多变”等典型工业难点1。以 DeepPCB 为代表的公开数据集推动了端到端检测范式在 PCB 场景的研究与复现,但其“模板图-待检图”成对结构也提示我们:在真实工厂中,模板/工艺版本变化、数据长尾与标注稀缺将长期存在3。因此,除了追求单模型精度,更需要从系统角度构建“可交互、可解释、可追溯”的闭环,包括阈值可调、结果可视化、批量导出、记录入库与在线复查等能力,以支撑工程人员快速定位问题并形成数据反馈1。 (arXiv)

基于上述背景,本文面向“基于深度学习的 PCB 板缺陷检测系统”展开:一方面对 YOLOv5–YOLOv12 等实时检测模型进行训练、推理与对比评测,另一方面以桌面端交互为载体,将模型加载、图片/视频/摄像头检测、过程进度与结果导出等流程产品化,提升检测任务在生产现场的可用性与可维护性。该工作不仅关注模型指标本身,也强调将检测结果以结构化数据与可视化证据固化,服务于质量追溯、批次分析与持续改进的工业需求1。 (ScienceDirect)


2.2 国内外研究现状

面向 PCB 表面缺陷检测,国内外研究普遍从“精度、实时性、鲁棒性、可部署性”四个维度权衡,其中最核心的矛盾来自缺陷尺度极小与背景纹理复杂所带来的特征淹没问题1。大量综述工作指出,划伤、裂纹、缺铜/多铜等缺陷往往仅占据极少像素,且与正常走线边缘在局部梯度上高度相似,导致模型在强噪声背景下容易出现定位漂移与类别混淆1。此外,产线光照角度、反光材质、相机曝光策略与板面污染都会引入域偏移,使得同一缺陷在不同工位呈现显著外观差异,从而对泛化能力提出更高要求1。 (ScienceDirect)

围绕数据与任务范式,DeepPCB 等公开数据集为学术界提供了可复现的基准,其“模板图与待检图成对、包含 6 类常见缺陷、样本规模约 1500 对”的设置,使得研究者可以同时探索差分/对齐与端到端检测两类思路4。Tang 等提出的 Online PCB Defect Detector 在 DeepPCB 上报告了较高的检测精度与实时速度,展示了单阶段检测器在该类任务上的潜力3。与此同时,针对标注稀缺与工艺快速迭代的问题,ChangeChip 等工作尝试以参考图为条件进行无监督变化检测,体现了“弱标注/无标注”在工业视觉中的现实价值5。 (Labelbox)

从通用目标检测方法的技术演进看,两阶段检测器以 Faster R-CNN 为代表,通过 RPN 生成候选区域以换取更稳健的定位精度,但推理链路较长且端到端实时性受限6。单阶段检测器如 SSD 通过多尺度特征图上的密集预测实现速度优势,但在小目标与类不平衡场景下往往需要更强的训练策略支撑[7]。RetinaNet 通过 Focal Loss 显式缓解前景-背景极端不均衡,改善了密集检测中“易样本淹没梯度”的问题[8]。FCOS 则以 anchor-free 的逐像素预测简化了锚框超参,并在工程实践中降低了迁移成本[10]。 (arXiv)

方法 范式/家族 代表数据集 关键改进点 优势与局限 关键指标(论文/文档报告) 对 PCB 缺陷的启示
Faster R-CNN6 两阶段/Anchor-based VOC/COCO RPN+ROI 检测 精度稳健但链路长 约 5 fps(VGG-16) 适合高精度离线复判,但产线实时需加速
SSD[7] 单阶段/Anchor-based VOC/COCO 多尺度默认框密集预测 速度快,小目标仍吃力 VOC2007 mAP 72.1%,58 FPS 需更强特征融合与小目标增强策略
RetinaNet[8] 单阶段/Anchor-based COCO Focal Loss 抗类不平衡,计算仍偏重 精度可超两阶段 缺陷“前景极少”时损失设计很关键
EfficientDet[9] 单阶段/Anchor-based COCO BiFPN+复合缩放 精度-效率权衡好 COCO AP 55.1(D7) 多尺度融合对细小缺陷更友好
FCOS[10] 单阶段/Anchor-free COCO 逐像素回归+中心度 超参少,泛化更直接 COCO AP 44.7(ResNeXt-101) 迁移到不同板型时更易调参与复用
DETR[12] Transformer/端到端 COCO 集合预测+二分匹配 免 NMS,收敛慢 与 Faster R-CNN 相当 端到端思想利于“稳定延迟”的系统设计
RT-DETR[13] Transformer/端到端 COCO 高效混合编码器+查询选择 端到端且可实时 AP 53.1,108 FPS(T4) 在追求稳定低延迟时具吸引力
YOLOv7[15] YOLO/单阶段 COCO 可训练 BoF/结构优化 速度与精度兼顾 实时检测 AP 56.8(V100) 适合高节拍产线的默认强基线
YOLOv10[17] YOLO/端到端 COCO NMS-free 双头一致分配 延迟更稳定 AP_val:46.3(v10s),54.4(v10x) 适合视频流与摄像头的端侧实时链路
YOLOv12[19] YOLO/注意力化 COCO 注意力驱动架构设计 精度-延迟继续优化 mAP 40.6,T4 延迟 1.64 ms(v12n) 有利于在端侧算力受限下做“快而准”
Online PCB Defect Detector3 工业/单阶段 DeepPCB 在线检测器设计 面向 PCB 的端到端基线 DeepPCB mAP 98.6,62 FPS 证明单阶段可在 PCB 数据上实现高精度实时

在 YOLO 系列的工程化趋势上,YOLOv6 强调面向工业部署的训练与量化友好设计,并给出了高吞吐推理的报告结果[14]。YOLOv7 通过可训练的 bag-of-freebies 等策略在速度与精度区间内取得了具有代表性的综合表现[15]。YOLOv9、YOLOv10 进一步围绕特征提取与端到端推理链路优化,其中 YOLOv10 以 NMS-free 训练与推理思路降低了后处理带来的不确定延迟[17]。Ultralytics 的 YOLO11 在工程生态中提供了更完整的训练、验证与导出接口,并给出了可复现的速度与精度基准表,便于系统侧选型与回归测试[18]。YOLOv12 则在注意力组件与整体架构上继续推进精度-延迟权衡,为轻量部署提供了新的设计参考[19]。 (arXiv)

针对 PCB 场景的细分改进方面,国内外大量工作围绕多尺度融合、注意力机制、损失函数与小目标增强展开,以提升对“细线缺陷、边缘毛刺、反光干扰”的鲁棒性1。国内也出现了基于改进 YOLOv5 或轻量化 YOLOv8 分支的 PCB 缺陷检测研究,通常通过引入更强的特征融合结构、改进回归损失或注意力模块来改善小目标召回与定位精度[20]。这些研究为本文的多模型对比提供了可参考的改进方向,但在工程落地时仍需与数据闭环、可视化交互与导出追溯机制协同设计,才能真正服务于产线问题定位与质量管理1。 (ScienceDirect)

在部署与系统层面,ONNX 生态的量化工具链为端侧推理带来更低的计算与带宽成本,并且提供了静态与动态量化等常用路径,适配不同硬件后端[22]。TensorRT 通过低精度类型与校准机制进一步提升 GPU 推理吞吐与延迟表现,是工业端侧常用的加速方案之一[23]。因此,当前趋势已从“单点模型精度竞赛”转向“模型可热切换、推理链路可加速、结果可解释与可追溯”的系统化研究,而这也正是本文以桌面端交互系统承载算法能力的出发点之一。 (ONNX Runtime)


2.3 要解决的问题及其方案

要解决的问题主要体现在以下四点:(1)检测准确性与实时性难以兼顾,尤其在细小缺陷与密集走线区域,漏检会直接影响良率,误检会拖慢复判节拍。(2)模型对环境变化的适应性不足,光照反射、污渍、不同板型与工艺版本带来域偏移,导致跨批次泛化不稳。(3)桌面端交互需要直观且完整,既要支持图片、视频与摄像头多源输入,也要支持阈值调参、目标高亮、记录检索与一键导出。(4)数据处理效率与存储安全性要可控,检测记录、账户信息与导出文件需要结构化管理并便于追溯。

对应的解决方案如下:(1)以 YOLOv12 作为核心模型,并对 YOLOv5–YOLOv12 进行统一训练与推理对比,通过 mAP、F1、PR 曲线与训练曲线等指标综合评估精度与速度的平衡,同时结合数据增强与迁移学习提升小目标可检性。(2)在训练侧引入面向工业噪声的增强与正则化策略,并通过多模型对比选择对域偏移更稳健的权重版本,以提升跨场景泛化。(3)采用 PyTorch 作为算法框架,并与 PySide6/Qt 桌面端进行端到端集成,实现图片/视频/摄像头检测、Conf/IoU 实时调参、模型权重热切换与结果可视化闭环,开发工具使用 PyCharm。(4)优化数据处理与存储结构,以序列缓冲支撑视频与摄像头导出,以时间戳命名保障文件可追溯,并以 SQLite 本地库存储账户与检测记录,兼顾效率、可靠性与数据安全。


2.4 博文贡献与组织结构

本文的主要贡献可概括为:(1)围绕 PCB 缺陷检测的任务需求与技术难点,系统梳理了通用目标检测范式、YOLO 家族演进与工业部署趋势,为后续选型与改进提供依据。(2)在深度学习模型层面完成 YOLOv5–YOLOv12 的统一训练、推理与对比评测,形成可复现的指标体系与分析结论,为不同算力预算下的部署提供参考。(3)在工程系统层面构建基于 PySide6/Qt 的桌面端检测系统,将多源输入、阈值调参、模型热切换、导出与入库等能力产品化,提升可用性与可维护性。(4)在效果分析层面结合可视化证据与结构化记录,讨论误检漏检成因与优化方向,并提供完整的数据集与代码资源以便复现与二次开发。

文章组织如下:第 3 章介绍数据集处理、标注规范与增强策略;第 4 章阐述以 YOLOv12 为主线的模型原理与关键设计;第 5 章给出多模型实验结果与分析;第 6 章从分层架构视角说明 Qt 桌面端系统设计与实现,并给出系统框图与流程图;第 7 章总结全文并展望模型、系统与数据闭环方向的未来工作。


3. 数据集处理

本文已给出样例可视化与分布统计,并明确数据集共 9961 张图像,其中训练集 6975 张、验证集 1989 张、测试集 997 张,划分比例约为 70.0%/20.0%/10.0%。结合标注可视化形态,本文默认采用目标检测常用的 YOLO 标注范式组织数据,使训练与部署端的推理输出在坐标与类别语义上保持一致。标签及其对应中文名如下:

Chinese_name = {'missing_hole': "漏孔", 'mouse_bite': "鼠牙洞", 'open_circuit': "开路", 'short': "短路", 'spur': "毛刺",
                'spurious_copper': "杂铜"}

在这里插入图片描述

从样例图可以直观看到,该数据集的缺陷大多呈现小尺度、细长或边缘不规则的形态,并与走线纹理、焊盘高亮及板面颜色变化高度耦合,这使得模型既要“看得见”微小目标,又要“分得清”与正常结构相似的伪缺陷。类别与框分布图进一步说明了标注框在整幅图像中的位置覆盖较广,但宽高分布整体偏小,体现出典型的小目标检测特征;在这种设定下,训练阶段更容易出现正负样本不均衡与难例主导的问题,测试阶段则更容易在密集走线、强反光或局部遮挡处产生漏检与误检,因此需要在数据层面提前进行针对性处理以降低难点对学习过程的干扰。
在这里插入图片描述

在数据划分上,本文采用固定的随机种子对样本进行可复现划分,并确保同一来源或相近拍摄条件的样本尽量均匀落入训练、验证与测试集合,以避免“同域泄漏”导致的评估偏乐观;同时对标注进行一致性检查与清洗,重点处理重复框、越界框与极小框等问题,以提升训练稳定性。预处理方面统一将输入缩放到固定分辨率并保持纵横比,通过归一化与色彩空间处理降低相机曝光差异的影响;增强方面优先选用对小目标友好的随机缩放与随机裁剪、Mosaic/MixUp 等组合增强提升稀有缺陷的有效出现频次,并用亮度/对比度扰动与轻度模糊噪声模拟产线光照反射与成像抖动,从而在数据层面对“反光、遮挡、尺度差异与类间相似”这些 PCB 缺陷检测的核心难点形成更直接的对抗。


4. 模型原理与设计

本系统的检测算法以 YOLOv12 为主线,遵循“单阶段密集预测”的实时检测范式:输入经统一尺寸预处理后,网络在多尺度特征图上同时回归边界框与类别置信度,并通过后处理得到缺陷的 ( c l a s s n a m e , ; b b o x , ; s c o r e {class_name,;bbox,;score} classname,;bbox,;score) 结果。相较两阶段方法,YOLO 系列用更紧凑的推理链路换取更低延迟,更适合 PCB 缺陷这类需要在线质检与高吞吐的场景;同时,解耦检测头将分类与回归分支分开建模,通常能缓解小目标与类间相似带来的梯度竞争问题,从而提升收敛稳定性与最终精度。YOLOv12 的核心变化在于“注意力中心化”的结构升级:在保持实时性的前提下,引入更高效的注意力机制与特征聚合模块,以增强对密集纹理、细小缺陷与复杂背景的建模能力。

在结构设计上,YOLOv12 仍然延续“Backbone–Neck–Head”的层级式骨架:主干负责从高分辨率纹理中抽取由浅入深的语义特征,颈部通过自顶向下与自底向上的多尺度融合增强小目标可见性,检测头在不同尺度上输出分类与回归结果。其关键在于将注意力以更可部署的方式嵌入到特征提取与聚合之中:标准自注意力可写为
A t t n ( Q , K , V ) = S o f t m a x ! ( Q K ⊤ d ) V , \mathrm{Attn}(Q,K,V)=\mathrm{Softmax}!\left(\frac{QK^{\top}}{\sqrt{d}}\right)V, Attn(Q,K,V)=Softmax!(d QK)V,
其中 (Q,K,V) 分别为查询、键和值,(d) 为通道维度;YOLOv12 通过“区域化”的注意力思路与更贴合 GPU 访存的实现(如 FlashAttention)降低注意力的实际开销,并结合 R-ELAN 这类残差式高效聚合结构改善深层优化难题,使网络在不牺牲速度的情况下获得更强的全局上下文感知能力。对于 PCB 缺陷检测,区域注意力对“细小缺陷需要上下文参照才能判别”的情况尤为关键:例如短路/开路往往依赖走线拓扑与邻域纹理一致性,单纯局部卷积容易在强反光、焊盘密集处产生误检。网络整体架构关键模块示意图如下图所示:
在这里插入图片描述

损失函数与任务建模方面,本系统将检测学习拆为“定位回归 + 置信度/分类判别”的联合优化。边界框回归常以 IoU 家族度量作为核心:
I o U = ∣ B ∩ B ∗ ∣ ∣ B ∪ B ∗ ∣ , IoU=\frac{|B\cap B^{*}|}{|B\cup B^{*}|}, IoU=BBBB,
其中 (B) 为预测框、(B^{}) 为真值框;在此基础上可使用更强的几何约束(如 CIoU/EIoU)提升收敛速度与长宽比拟合能力,例如
L E I o U = 1 − I o U + ρ 2 ( b , b ∗ ) c 2 + ( w − w ∗ ) 2 c w 2 + ( h − h ∗ ) 2 c h 2 , L_{EIoU}=1-IoU+\frac{\rho^2(\mathbf{b},\mathbf{b}^{*})}{c^2}+\frac{(w-w^{*})^2}{c_w^2}+\frac{(h-h^{*})^2}{c_h^2}, LEIoU=1IoU+c2ρ2(b,b)+cw2(ww)2+ch2(hh)2,
(\rho(\cdot)) 表示中心点距离,© 为最小外接框对角线长度,((w,h)) 与 ((w{*},h{
})) 分别为预测与真值的宽高,(c_w,c_h) 为外接框在宽高方向的尺度。分类/置信度通常采用二元交叉熵或其改进形式:
L c l s = − ∑ k ( y k log ⁡ p k + ( 1 − y k ) log ⁡ ( 1 − p k ) ) , L = λ b o x L b o x + λ o b j L o b j + λ c l s L c l s , L_{cls}=-\sum_{k}\Big(y_k\log p_k+(1-y_k)\log(1-p_k)\Big), \qquad L=\lambda_{box}L_{box}+\lambda_{obj}L_{obj}+\lambda_{cls}L_{cls}, Lcls=k(yklogpk+(1yk)log(1pk)),L=λboxLbox+λobjLobj+λclsLcls,
其中 ( y k y_k yk) 为类别标签、( p k p_k pk) 为预测概率,( λ \lambda λ) 为各分量权重。结合 PCB 缺陷“小目标多、背景纹理强、误检成本高”的特点,推理端通过置信度阈值与 NMS 的 IoU 阈值共同抑制重复框与噪声框,使最终输出更利于后续的统计、导出与质检复核。

训练与正则化策略上,本系统以迁移学习为主,使用预训练权重初始化并在 PCB 数据集上微调,配合多尺度/颜色扰动等增强以覆盖反光、曝光变化与板面纹理差异;同时通过合理的学习率衰减与动量/权重衰减抑制过拟合,利用 BN 等归一化保持训练稳定。针对“缺陷尺寸差异大、密集遮挡与长尾分布显著”的数据特性,训练时会更关注小目标召回与类别均衡,必要时引入更严格的正负样本分配与难例挖掘思路,以降低开路/短路等易混类别的漏检率;部署推理时则将输入统一到固定分辨率并保持后处理一致性,使桌面端在图片、视频与摄像头流上都能获得可复现的检测表现。


5. 实验结果与分析

本章实验旨在在同一 PCB 缺陷数据集与统一推理链路下,对 YOLOv5–YOLOv12 共 8 种模型进行对比评测,重点关注精度(Precision/Recall/F1、mAP50、mAP50-95)与端到端时延(预处理/推理/后处理)的平衡关系。实验数据规模为 9961 张图像,按训练 6975、验证 1989、测试 997 划分;缺陷类别包含漏孔、鼠牙洞、开路、短路、毛刺、杂铜六类。硬件平台为 NVIDIA GeForce RTX 3070 Laptop GPU(8GB 显存),计时统计分别给出 PreTime、InfTime、PostTime,并以三者之和表征端到端单帧耗时,从而更贴近桌面端“加载—推理—渲染/导出”的真实使用体验。

从整体指标看,各模型的 Precision 普遍接近 0.97–0.98,但 Recall 稳定在约 0.76 左右,说明模型更偏“保守输出”,在保证误报较低的同时仍存在一定漏检空间;这一点在后续混淆矩阵中也能得到印证。轻量 n 系列中,YOLOv9t 取得最高 mAP50=0.8194 与最高 F1=0.8591,但其 InfTime 达到 16.51ms,端到端耗时约 19.67ms;YOLOv8n 与 YOLOv6n 在端到端耗时约 10ms 左右的情况下,mAP50 仍维持在 0.81 附近,是“速度优先”场景的更稳妥选择。更严格的 mAP50-95 维度上,YOLOv10n 以 0.5050 略优于其他 n 系列模型,提示其在高 IoU 阈值下的定位质量更占优势,但端到端耗时约 13.95ms,需要在节拍约束更紧的产线中结合实际吞吐评估取舍。

Model Params(M) FLOPs(G) Pre(ms) Inf(ms) Post(ms) Total(ms) Precision Recall F1 mAP50 mAP50-95
YOLOv5nu 2.6 7.7 1.90 7.73 1.31 10.94 0.9786 0.7644 0.8583 0.8151 0.4833
YOLOv6n 4.3 11.1 2.17 6.78 1.39 10.34 0.9805 0.7603 0.8565 0.8109 0.4695
YOLOv7-tiny 6.2 13.8 2.28 14.74 4.06 21.08 0.8633 0.7555 0.8058 0.7553 0.3760
YOLOv8n 3.2 8.7 1.95 6.83 1.39 10.17 0.9807 0.7625 0.8579 0.8133 0.4985
YOLOv9t 2.0 7.7 1.87 16.51 1.29 19.67 0.9836 0.7625 0.8591 0.8194 0.5013
YOLOv10n 2.3 6.7 2.08 11.24 0.63 13.95 0.9763 0.7629 0.8566 0.8143 0.5050
YOLOv11n 2.6 6.5 2.11 9.44 1.42 12.97 0.9815 0.7626 0.8583 0.8125 0.4721
YOLOv12n 2.6 6.5 1.91 12.47 1.37 15.75 0.9809 0.7625 0.8580 0.8156 0.4949
YOLOv5su 9.1 24.0 2.28 8.45 1.51 12.24 0.9787 0.7622 0.8570 0.8165 0.4923
YOLOv6s 17.2 44.2 2.22 8.59 1.45 12.26 0.9849 0.7598 0.8578 0.8177 0.5500
YOLOv7 36.9 104.7 2.44 23.62 3.46 29.52 0.8999 0.7178 0.7986 0.7741 0.3796
YOLOv8s 11.2 28.6 2.31 7.66 1.42 11.39 0.9797 0.7620 0.8572 0.8195 0.5149
YOLOv9s 7.2 26.7 2.12 18.66 1.39 22.17 0.9813 0.7649 0.8597 0.8243 0.5318
YOLOv10s 7.2 21.6 2.21 11.38 0.60 14.19 0.9741 0.7667 0.8581 0.8247 0.5280
YOLOv11s 9.4 21.5 2.37 9.74 1.36 13.47 0.9821 0.7617 0.8580 0.8193 0.5223
YOLOv12s 9.3 21.4 2.09 13.23 1.42 16.74 0.9836 0.7625 0.8591 0.8237 0.5426

在 s 系列中,mAP50 的差距同样不大,但 mAP50-95 的提升更为明显:YOLOv6s 达到 0.5500,为所有对比模型最高,说明其在更严格 IoU 阈值下的定位与尺度拟合更稳定;YOLOv12s 以 0.5426 次之,YOLOv9s 与 YOLOv10s 分别为 0.5318 与 0.5280,整体呈现“中等规模模型在细粒度定位上更具优势”的趋势。时延方面,YOLOv8s 的端到端耗时约 11.39ms,结合 mAP50=0.8195 与 mAP50-95=0.5149,体现出较强的工程均衡性;YOLOv9s 虽在 F1=0.8597 与 mAP50=0.8243 上领先,但 InfTime 达到 18.66ms,端到端约 22.17ms,更适合对速度不敏感、强调检出质量或批量离线复判的工作流。对比 n 与 s 两组可以发现,mAP50 水平相近而 mAP50-95 在 s 组显著上扬,这在 PCB 场景中通常意味着:缺陷框的边界贴合度更好,更利于后续的“局部放大复查、返修定位与统计报表”一致性。

在这里插入图片描述

结合可视化曲线可以更直观解释上述现象:PR 曲线整体在 Recall 接近 0.75–0.85 的区域出现陡降,说明当追求更高召回时会迅速引入更多误检,需要在阈值上做“场景化取舍”;从单类 AP@0.5 来看,mouse_bite 与 open_circuit 等类别相对更高,而 spur(毛刺)相对较低,符合其形态细小且边缘不规则、易与走线毛边/反光混淆的特点。
在这里插入图片描述

F1-Confidence 曲线显示全类最优 F1 约 0.86,对应置信度阈值约 0.611,这为桌面端默认阈值提供了经验依据:若以“减少漏检”为先,可在保证可接受误报的前提下适当下调阈值以抬升 Recall;若以“减少误报、降低复判压力”为先,则可向 0.6 以上靠拢。

在这里插入图片描述

归一化混淆矩阵中,对角线集中在 0.75–0.80 左右,类间互相混淆并不突出,更主要的误差来自“真缺陷被预测为背景”的漏检与“背景区域被预测为缺陷”的误检两端,这与前述高 Precision、相对偏低 Recall 的总体统计是一致的。

在这里插入图片描述

训练曲线方面,box/cls/dfl 等损失随 epoch 平稳下降,mAP50 在前期快速上升后进入平台期,说明训练过程整体收敛良好;对于 PCB 这类纹理强、缺陷小的任务,平台期后的收益更多来自更强的数据增强、难例挖掘与更贴合场景的采样策略,而不仅是延长训练轮次。

从误检漏检成因角度,博主在复查样例时更常见的难例包括:焊盘高亮造成的局部饱和、走线密集区域的细线缺陷与正常边缘极其接近、以及遮挡/污渍引入的伪纹理,这些都会在高 Recall 需求下放大误检。面向后续改进,一条务实路线是在不牺牲系统交互体验的前提下做“数据与后处理协同”:例如提高毛刺/杂铜等易混类的有效样本与标注一致性,针对强反光样本进行定向增强,并在桌面端提供更贴近产线的默认阈值预设(如“高召回模式/高精度模式”)与目标高亮复核流程;若进一步追求更高的 mAP50-95,可优先选用定位更强的 YOLOv6s/YOLOv12s,并结合更细粒度的输入尺度或多尺度推理,在保证端到端耗时可控的范围内提升缺陷框的贴合度与稳定性。


6. 系统设计与实现

6.1 系统设计思路

本系统采用“表现与交互层、业务与会话管理层、推理与任务调度层、数据持久化层”的分层架构组织桌面端与检测算法的协同关系,其中 Qt 客户端承担输入源选择、阈值调参、检测结果可视化与导出交互,业务层负责会话状态、参数一致性与多源互斥调度,推理层完成媒体接入、帧分发、YOLO 推理与后处理,数据层则对账户信息、检测记录与导出归档进行本地持久化管理。该分层方式能够将“界面响应性”与“推理吞吐”解耦,使系统在图片单次检测与视频/摄像头连续帧推理两类负载下都能保持稳定的交互体验,并为后续扩展新的模型版本或导出格式提供清晰的模块边界。

跨层协同流程遵循统一的检测闭环:多源输入进入后由推理层执行 640×640 预处理(缩放、归一化与张量转换),随后调用 YOLOv5–YOLOv12 任一权重完成前向推理,输出候选框集合;后处理阶段结合 Conf/IoU 阈值进行过滤并执行 NMS,同时完成坐标还原与结构化记录生成;最终结果回传至 Qt 客户端,在中央显示区叠加缺陷框、类别与置信度,并在右侧详情与底部记录区同步更新统计信息与检索索引。通过这条链路,系统能够将“可解释的可视化证据”和“可分析的结构化数据”同时产出,为现场复核与批次统计提供一致的数据依据。

在实时性与一致性保障上,系统以事件驱动方式组织帧流,视频与摄像头输入采用连续帧读取与队列化调度以避免界面阻塞,且通过“输入源互斥”保证同一时刻仅有一种流进入推理流水线;Conf/IoU 等阈值参数由业务层统一维护并以信号机制同步到推理端,确保滑块调参对当前帧与后续帧具有可预期的生效范围。为提升工程可维护性,系统同时支持权重热切换、记录与导出编排、主题与配置本地化存储以及异常恢复策略,使其能够在模型更新频繁与质检规则迭代的工业场景中保持可扩展与可回归的特性。

在这里插入图片描述

图 系统流程图
图注:该流程从系统初始化与输入源选择开始,依次完成预处理、YOLO 推理、Conf/IoU 过滤与 NMS、界面叠加显示,并在视频/摄像头场景下通过事件驱动帧流形成“持续获取下一帧”的闭环,最终将结果记录与导出归档。

在这里插入图片描述

图 系统设计框图
图注:该框图以分层架构刻画 Qt 客户端、业务会话、推理调度与数据持久化四层的职责边界,强调参数同步、源互斥与结果回传的主数据流,并将 SQLite、本地文件归档与导出接口纳入可追溯闭环。

6.2 登录与账户管理 — 流程图

在这里插入图片描述

图 登录与账户管理流程图
图注:该流程覆盖启动后登录界面的入口、注册写入本地数据库、口令校验与会话建立、个性化配置与最近记录载入,以及进入主界面后的资料修改与注销/切换账号,保证账户体系与主检测流程之间的衔接一致性。

系统启动后首先呈现登录界面,用户可选择已有账号直接登录或进入注册流程,注册信息在本地数据库中创建账户记录并返回登录入口;登录阶段对口令进行校验,失败则提示并允许重新输入,成功则建立本次运行周期内有效的会话状态,同时载入用户偏好(如主题、默认模型、最近检测记录索引等)以保持跨次使用的一致体验。进入主界面后,账户模块与检测模块共享同一持久化空间,使检测记录与导出行为可以按用户维度组织与回溯;当用户执行资料修改或注销/切换账号时,系统会安全地结束当前会话并刷新界面状态,从而在离线环境下也能实现可控的身份边界与结果追溯。


7. 项目资源链接

    若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

在这里插入图片描述

项目完整文件请见项目介绍及功能演示视频处给出:

完整项目及文档: https://newtopmat.feishu.cn/wiki/SZnFwL91NiRksjkuNuNcGC2YnSf

功能效果展示视频:热门实战|《基于深度学习的PCB板缺陷检测系统》YOLOv12-v8多版本合集:附论文/源码/PPT/数据集,支持图片/视频/摄像头输入、可视化界面、结果导出与权重切换
环境配置博客教程:https://deeppython.feishu.cn/wiki/EwnTwJ2H3iLF6VkNG6ccgZYrnvd
或者环境配置视频教程:Pycharm软件安装视频教程;(2)Anaconda软件安装视频教程;(3)Python环境配置视频教程
数据集标注教程(如需自行标注数据):数据标注合集


参考文献(GB/T 7714)

1 A comprehensive review of research on surface defect detection of PCBs and related topics[J/OL]. 2025.
2 Wu T, et al. PCB Defect Detection Based on Deep Learning Algorithm[J/OL]. Processes, 2023, 11(3):775.
3 Tang S, He F, Huang X, Yang J. Online PCB Defect Detector on a New PCB Defect Dataset[EB/OL]. arXiv:1902.06197, 2019.
4 Printed Circuit Board (PCB) Defect Dataset (DeepPCB)[DB/OL].
5 Fridman Y, Rusanovsky M, Oren G. ChangeChip: A Reference-Based Unsupervised Change Detection for PCB Defect Detection[EB/OL]. arXiv:2109.05746, 2021.
6 Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[EB/OL]. arXiv:1506.01497, 2015.
[7] Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[EB/OL]. arXiv:1512.02325, 2015.
[8] Lin T Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[EB/OL]. arXiv:1708.02002, 2017.
[9] Tan M, Pang R, Le Q V. EfficientDet: Scalable and Efficient Object Detection[EB/OL]. arXiv:1911.09070, 2019.
[10] Tian Z, Shen C, Chen H, He T. FCOS: Fully Convolutional One-Stage Object Detection[EB/OL]. arXiv:1904.01355, 2019.
[11] Zhou X, Wang D, Krähenbühl P. Objects as Points[EB/OL]. arXiv:1904.07850, 2019.
[12] Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[EB/OL]. arXiv:2005.12872, 2020.
[13] Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection[EB/OL]. arXiv:2304.08069, 2023.
[14] Li C, Li L, Jiang H, et al. YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications[EB/OL]. arXiv:2209.02976, 2022.
[15] Wang C Y, Bochkovskiy A, Liao H Y M. YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[EB/OL]. arXiv:2207.02696, 2022.
[16] Wang C Y, Yeh I H, Liao H Y M. YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information[EB/OL]. arXiv:2402.13616, 2024.
[17] Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[C/OL]. NeurIPS 2024.
[18] Jocher G, Qiu J. Ultralytics YOLO11[EB/OL]. 2024.
[19] Tian Y, Ye Q, Doermann D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025.
[20] 何海宇, 吴多奇, 杜一华, 等. 基于改进YOLOv5模型的PCB缺陷检测技术研究[J]. 2025.
[21] 基于轻量化ADS-YOLOv8n的印刷电路板缺陷检测[J/OL]. 2025.
[22] Quantize ONNX Models[EB/OL]. ONNX Runtime Documentation.
[23] Working with Quantized Types[EB/OL]. NVIDIA TensorRT Documentation.
[24] Qt for Python[EB/OL]. Qt Documentation.

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐