大数跨境
0
0

基于YOLO11的PCB分割检测系统(Python源码+数据集+Pyside6界面)

基于YOLO11的PCB分割检测系统(Python源码+数据集+Pyside6界面) 计算机视觉大作战
2025-11-24
2
导读:基于YOLO11的PCB分割检测系统,阐述了整个数据制作和训练可视化过程

 

点击上方蓝字关注我们

微信号:AI_CV_0624

加关注

💡💡💡本文摘要:基于YOLO11的PCB分割检测系统,阐述了整个数据制作和训练可视化过程

YOLO11 PCB实例分割技术在电子制造业中具有重大意义。其核心价值在于实现了对印刷电路板(PCB)上缺陷和元器件的像素级精确识别与定位

传统的检测方法可能仅能框出缺陷的大致位置,而YOLO11的分割模型能够精确勾勒出缺陷(如微小的划痕、焊锡桥连、断路、缺件等)以及每个元器件的具体轮廓。这种精细化能力带来了多重优势:

  1. 提升检测精度与可靠性:能够发现人眼难以察觉的微小缺陷,并准确区分密集排列的元件,极大降低了漏检和误检率。


  2. 赋能自动化智能制造:作为自动化光学检测(AOI)系统的核心,它为后续的维修、分拣或工艺调整提供了精确的空间信息,是实现工业4.0和质量控制闭环的关键。


  3. 提高生产效率与良率:通过快速、精准的在线检测,能及时发现问题PCB,避免有缺陷的产品流入下个环节,从而节省成本,提升整体生产良率。



  博主简介


AI小怪兽 | 计算机视觉布道者 | 视觉检测领域创新者

深耕计算机视觉与深度学习领域,专注于目标检测前沿技术的探索与突破。长期致力于YOLO系列算法的结构性创新、性能极限优化与工业级落地实践,旨在打通从学术研究到产业应用的最后一公里。

🚀 核心专长与技术创新

  • YOLO算法结构性创新:于CSDN平台原创发布《YOLOv13魔术师》、《YOLOv12魔术师》等全系列深度专栏。系统性提出并开源了多项原创自研模块,在模型轻量化设计、多维度注意力机制融合、特征金字塔重构等关键方向完成了一系列突破性实践,为行业提供了具备高参考价值的技术路径与完整解决方案。

  • 技术生态建设与知识传播:独立运营 “计算机视觉大作战” 公众号(粉丝1.6万),成功构建高质量的技术交流社群。致力于将复杂算法转化为通俗易懂的解读与可复现的工程代码,显著降低了计算机视觉的技术入门门槛。

🏆 行业影响力与商业实践

  • 荣获腾讯云年度影响力作者创作之星奖项,内容质量与专业性获行业权威平台认证。

  • 全网累计拥有 7万+ 垂直领域技术受众,专栏文章总阅读量突破百万,在目标检测领域形成了广泛的学术与工业影响力。

  • 具备丰富的企业级项目交付经验,曾为工业视觉检测、智慧城市安防等多个关键领域提供定制化的算法模型与解决方案,驱动业务智能化升级。

💡 未来方向与使命

秉持 “让每一行代码都有温度” 的技术理念,未来将持续聚焦于实时检测、语义分割及工业缺陷检测的商业化闭环等核心方向。愿与业界同仁协同创新,共同推动技术边界,以坚实的技术能力赋能实体经济与行业变革。

 原创自研系列, 25年计算机视觉顶会创新点

《YOLOv13魔术师》

《YOLOv12魔术师》

《YOLO11魔术师》

《YOLOv8原创自研》

《YOLOv5原创自研》

《YOLOv7原创自研》

《YOLOv9魔术师》

《YOLOv10魔术师》 

应用系列篇:

《YOLO小目标检测》

《深度学习工业缺陷检测》

《YOLOv8-Pose关键点检测》

23、24年最火系列,加入24年改进点内涵100+优化改进篇,涨点小能手,助力科研,好评率极高

《YOLOv8魔术师》

 《YOLOv7魔术师》

《YOLOv5/YOLOv7魔术师》

《RT-DETR魔术师》


1

 YOLO11介绍

Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。



结构图如下:



1.1 C3k2

C3k2,结构图如下


C3k2,继承自类C2f,其中通过c3k设置False或者Ture来决定选择使用C3k还是Bottleneck


实现代码ultralytics/nn/modules/block.py

1.2 C2PSA介绍

借鉴V10 PSA结构,实现了C2PSA和C2fPSA,最终选择了基于C2的C2PSA(可能涨点更好?)


实现代码ultralytics/nn/modules/block.py


1.3 11 Detect介绍

分类检测头引入了DWConv(更加轻量级,为后续二次创新提供了改进点),结构图如下(和V8的区别):


实现代码ultralytics/nn/modules/head.py 


2

 PCB分割系统

 2.1 PCB分割数据集介绍

数据集大小:训练集1992张,验证集27张,测试集48张

类别 17类:

nc17names: ['Inductor''circular-pcb''damaged_inductor''feedback resistor''feedback_resistor_missing''input-terminal''input_terminal_missing''large-capacitor''large_capacitor_missing''led''led-driver-IC''led_driver_ic_missing''led_missing''missing_both_capacitors''missplaced_capacitor''small-capacitor''small_filtering_capacitor_missing']

细节图:



标签可视化分析 




 2.2 配置pcb-seg.yaml

ps:建议填写绝对路径


path: D:/YOLOv11/data/pcb_segtrain: ./train/imagesval: ./valid/imagestest: ./test/imagesnc: 17names: ['Inductor''circular-pcb''damaged_inductor''feedback resistor''feedback_resistor_missing''input-terminal''input_terminal_missing''large-capacitor''large_capacitor_missing''led''led-driver-IC''led_driver_ic_missing''led_missing''missing_both_capacitors''missplaced_capacitor''small-capacitor''small_filtering_capacitor_missing']


2.3  如何训练

import warningswarnings.filterwarnings('ignore')from ultralytics import YOLOif __name__ == '__main__':    model = YOLO('ultralytics/cfg/models/11/yolo11-seg.yaml')    model.train(data='data/pcb-seg.yaml',                cache=False,                imgsz=640,                epochs=200,                batch=8,                close_mosaic=10,                device='0',                optimizer='SGD'# using SGD                project='runs/train',                name='exp',                )


2.4 训练结果可视化结果

YOLO11-seg summary (fused): 368 layers, 3,521,025 parameters, 0 gradients, 11.0 GFLOPs                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 2/2 [00:04<00:00,  2.08s/it]                   all         48       1360      0.978      0.988       0.99      0.715      0.951      0.961      0.965      0.623              Inductor         42         42      0.996          1      0.995      0.712      0.972      0.976      0.971      0.549          circular-pcb         47         47      0.972          1      0.983      0.983      0.972          1      0.983      0.835      damaged_inductor          6          6      0.951          1      0.995      0.641      0.792      0.833      0.898      0.636     feedback resistor         40         40      0.993      0.975      0.981      0.673      0.942      0.925      0.914      0.587feedback_resistor_missing          8          8      0.991          1      0.995       0.66      0.991          1      0.995      0.541        input-terminal         45         46          1      0.948      0.981      0.616      0.977      0.927      0.951       0.55input_terminal_missing          3          3      0.996          1      0.995      0.529      0.995          1      0.995      0.568       large-capacitor         45         45      0.991          1      0.995      0.847      0.991          1      0.995       0.77large_capacitor_missing          3          3      0.928          1      0.995      0.722      0.928          1      0.995      0.685                   led         48        965          1      0.986      0.995      0.856      0.968      0.955      0.974       0.59         led-driver-IC         44         44      0.977      0.969      0.993      0.662      0.885      0.878      0.905      0.557 led_driver_ic_missing          4          4          1      0.964      0.995      0.652          1      0.964      0.995      0.805           led_missing         13         62      0.983      0.984      0.979      0.862      0.983      0.984      0.979      0.548       small-capacitor         39         39      0.962          1      0.974      0.685      0.938      0.974      0.932      0.565small_filtering_capacitor_missing          6          6       0.93          1      0.995      0.618      0.929          1      0.995      0.553


预测结果:



3

 PCB分割系统设计

3.1 PySide6介绍

        受益于人工智能的崛起,Python语言几乎以压倒性优势在众多编程语言中异军突起,成为AI时代的首选语言。在很多情况下,我们想要以图形化方式将我们的人工智能算法打包提供给用户使用,这时候选择以python为主的GUI框架就非常合适了。

        PySide是Qt公司的产品,PyQt是第三方公司的产品,二者用法基本相同,不过在使用协议上却有很大差别。PySide可以在LGPL协议下使用,PyQt则在GPL协议下使用。

        PySide目前常见的有两个版本:PySide2和PySide6。PySide2由C++版的Qt5开发而来.,而PySide6对应的则是C++版的Qt6。从PySide6开始,PySide的命名也会与Qt的大版本号保持一致,不会再出现类似PySide2对应Qt5这种容易混淆的情况。

3.2 安装PySide6

pip install --upgrade pippip install pyside6 -i https://mirror.baidu.com/pypi/simple

基于PySide6开发GUI程序包含下面三个基本步骤:

  • 设计GUI,图形化拖拽或手撸;
  • 响应UI的操作(如点击按钮、输入数据、服务器更新),使用信号与Slot连接界面和业务;
  • 打包发布;

3.3 PCB分割系统设计



 

求分享
求收藏
求点击
求在看

 




【声明】内容源于网络
0
0
计算机视觉大作战
①YOLO骨灰级玩家,持续专注涨点创新工作,只为打造极致性能的YOLO检测系统。②CV实战派玩家,承接工业视觉项目。③免费提供YOLO大模型知识库问答系统和计算机视觉论文生成器智能体。
内容 238
粉丝 0
计算机视觉大作战 ①YOLO骨灰级玩家,持续专注涨点创新工作,只为打造极致性能的YOLO检测系统。②CV实战派玩家,承接工业视觉项目。③免费提供YOLO大模型知识库问答系统和计算机视觉论文生成器智能体。
总阅读173
粉丝0
内容238