深度学习目标检测YOLO模型如何训练 PCBA-YOLOv8 集成电路缺陷检测数据集 PCB集成电路缺陷检测数据集
2026/7/9 18:49:47 网站建设 项目流程

PCBA-YOLOv8 集成电路缺陷检测数据集
精度 96.7%(map50)

大小: 包含4000张照片
缺陷类别: 共标注8种原始缺陷,包括松动的风扇螺丝、缺失的风扇螺丝、松动的主板螺丝、缺失的主板螺丝、松动的风扇线缆、缺失的风扇线缆、风扇划痕、主板划痕。

售货可提供:
已经处理好的数据集,8:2划分
训练好的权重文件与 PR 曲线等
参考文献

训练结果:100epochs的yolov8 map50
为0.967
1

PCBA-YOLOv8 集成电路缺陷检测数据集说明

一、数据集与模型信息表

项目详情
数据集名称PCBA 集成电路缺陷检测数据集
任务类型目标检测(YOLO格式)
图像数量4000张已标注图像
数据划分8:2(训练集:验证集)
缺陷类别(8类)1.Loose fan screws松动的风扇螺丝
2.Missing fan screws缺失的风扇螺丝
3.Loose motherboard screws松动的主板螺丝
4.Missing motherboard screws缺失的主板螺丝
5.Loose fan wiring松动的风扇线缆
6.Missing fan wiring缺失的风扇线缆
7.Fan scratches风扇划痕
8.Motherboard scratches主板划痕
模型YOLOv8
训练轮次100 epochs
核心指标mAP@0.5 = 0.967(96.7%)
交付内容划分好的数据集、训练好的权重文件、训练日志/PR曲线/混淆矩阵等

二、YOLOv8 训练代码(可直接运行)

1. 数据集配置文件pcba.yaml

# 数据集根目录(按实际路径修改)path:./pcba_datasettrain:images/trainval:images/val# 类别数量与名称nc:8names:0:Loose fan screws1:Missing fan screws2:Loose motherboard screws3:Missing motherboard screws4:Loose fan wiring5:Missing fan wiring6:Fan scratches7:Motherboard scratches

2. 训练脚本train_pcba.py

fromultralyticsimportYOLO# 加载YOLOv8模型(可根据显存选择n/s/m/l/x版本)model=YOLO("yolov8n.pt")# yolov8s.pt / yolov8m.pt / yolov8l.pt# 训练配置results=model.train(data="pcba.yaml",# 上面写的数据集配置文件epochs=100,# 训练轮次batch=16,# 批次大小,显存不足可改为8imgsz=640,# 输入图像尺寸device=0,# 使用GPU训练,无GPU改为 device="cpu"workers=8,# 数据加载线程数project="pcba_runs",# 训练结果保存目录name="pcba_yolov8_train",# 训练名称pretrained=True,# 使用预训练权重optimizer="AdamW",# 优化器lr0=0.01,# 初始学习率lrf=0.01,# 最终学习率warmup_epochs=3,# 预热轮次augment=True,# 开启数据增强mosaic=0.7,# Mosaic增强比例hsv_h=0.015,# 颜色增强参数hsv_s=0.7,hsv_v=0.4,fliplr=0.5,# 左右翻转概率cache=True,# 缓存数据,加速训练patience=15,# 早停:15轮无提升则停止verbose=True# 显示训练日志)# 训练完成后评估模型metrics=model.val()print(f"训练完成,mAP@0.5:{metrics.box.map50:.3f}")print(f"最优模型路径:{results.best}")

3. 模型推理与测试代码

fromultralyticsimportYOLOimportcv2# 加载训练好的最优模型model=YOLO("pcba_runs/pcba_yolov8_train/weights/best.pt")defdetect_pcba_defect(image_path,save_path="result.jpg"):# 读取图像img=cv2.imread(image_path)# 执行检测results=model(img,conf=0.25,iou=0.45)# 绘制检测结果annotated_img=results[0].plot()# 保存并显示结果cv2.imwrite(save_path,annotated_img)print(f"检测完成,结果已保存至{save_path}")# 打印检测到的缺陷信息print("检测到的缺陷:")forboxinresults[0].boxes:cls_id=int(box.cls)cls_name=results[0].names[cls_id]conf=float(box.conf)print(f"缺陷:{cls_name}, 置信度:{conf:.2f}")# 使用示例if__name__=="__main__":detect_pcba_defect("test_pcba.jpg")

三、训练结果说明

  • 模型在100轮训练后,mAP@0.5达到0.967,对8类PCBA缺陷的识别精度较高
  • 训练过程中损失(box_loss、cls_loss、dfl_loss)稳定下降,验证集损失无明显上升,模型未出现过拟合
  • 各类别识别精度均在0.94以上,其中“Missing fan wiring”等类别精度最高,可达0.978

四、使用说明

  1. 将数据集解压后,按images/trainimages/vallabels/trainlabels/val结构存放
  2. 修改pcba.yaml中的path为数据集实际路径
  3. 运行train_pcba.py开始训练,训练结果将保存在pcba_runs/目录下
  4. 训练完成后,使用detect_pcba_defect()函数对新的PCBA图像进行缺陷检测

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询