
💡💡💡本文摘要:基于YOLO11的PCB分割检测系统,阐述了整个数据制作和训练可视化过程
YOLO11 PCB实例分割技术在电子制造业中具有重大意义。其核心价值在于实现了对印刷电路板(PCB)上缺陷和元器件的像素级精确识别与定位。
传统的检测方法可能仅能框出缺陷的大致位置,而YOLO11的分割模型能够精确勾勒出缺陷(如微小的划痕、焊锡桥连、断路、缺件等)以及每个元器件的具体轮廓。这种精细化能力带来了多重优势:

博主简介

AI小怪兽 | 计算机视觉布道者 | 视觉检测领域创新者
深耕计算机视觉与深度学习领域,专注于目标检测前沿技术的探索与突破。长期致力于YOLO系列算法的结构性创新、性能极限优化与工业级落地实践,旨在打通从学术研究到产业应用的最后一公里。
🚀 核心专长与技术创新
🏆 行业影响力与商业实践
💡 未来方向与使命
秉持 “让每一行代码都有温度” 的技术理念,未来将持续聚焦于实时检测、语义分割及工业缺陷检测的商业化闭环等核心方向。愿与业界同仁协同创新,共同推动技术边界,以坚实的技术能力赋能实体经济与行业变革。
Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。


结构图如下:

C3k2,结构图如下

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

实现代码ultralytics/nn/modules/block.py
借鉴V10 PSA结构,实现了C2PSA和C2fPSA,最终选择了基于C2的C2PSA(可能涨点更好?)

实现代码ultralytics/nn/modules/block.py
分类检测头引入了DWConv(更加轻量级,为后续二次创新提供了改进点),结构图如下(和V8的区别):

实现代码ultralytics/nn/modules/head.py
数据集大小:训练集1992张,验证集27张,测试集48张
类别 17类:
nc: 17
names: ['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']
细节图:

标签可视化分析

ps:建议填写绝对路径
path: D:/YOLOv11/data/pcb_seg
train: ./train/images
val: ./valid/images
test: ./test/images
nc: 17
names: ['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']
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __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',
)
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.587
feedback_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.55
input_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.77
large_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.565
small_filtering_capacitor_missing 6 6 0.93 1 0.995 0.618 0.929 1 0.995 0.553

预测结果:

受益于人工智能的崛起,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这种容易混淆的情况。
pip install --upgrade pip
pip install pyside6 -i https://mirror.baidu.com/pypi/simple
基于PySide6开发GUI程序包含下面三个基本步骤:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。