PCB板缺陷目标检测数据集(7-8000)
8000张
7类检测目标:
Short circuit - 短路
Damaged - 受损 / 损坏
Lack of part - 缺失元件 / 部件缺失
Miss welding - 焊接缺失 / 焊接遗漏
Redundant - 冗余(在PCB中可能指冗余设计或多余的电路)
Slug - 冲头 / 金属废料(在PCB工艺中指切割过程中产生的多余材料)
Spillover - 溢出 / 溢流(在PCB加工中可能指材料和焊料的溢出)
带标注 -YOLO格式 可直接用于YOLO系列目标检测算法模型训练
好的,使用YOLOv8训练PCB板缺陷目标检测数据集是一个很好的选择。YOLOv8是YOLO系列的最新版本,具有更高的精度和更快的推理速度。以下是详细的步骤,包括数据准备、模型训练和评估。
1. 环境准备
首先,确保你已经安装了必要的库和工具。你可以使用以下命令安装所需的库:
pip install ultralytics
pip install torch torchvision
pip install opencv-python
2. 数据准备
假设你的数据集目录结构如下:
dataset/
├── images/
│ ├── train/
│ └── val/
└── labels/
├── train/
└── val/
其中,images
文件夹包含训练和验证的图像,labels
文件夹包含相应的标签文件(YOLO格式的txt文件)。
3. 创建数据配置文件
YOLOv8需要一个数据配置文件来指定数据集的路径和其他相关信息。创建一个名为pcb_defects.yaml
的文件,内容如下:
# PCB Defects Dataset Configuration
# Path to the dataset directory
path: ./dataset
# Training and validation image directories
train: images/train
val: images/val
# Number of classes
nc: 7
# Class names
names:
0: Short circuit
1: Damaged
2: Lack of part
3: Miss welding
4: Redundant
5: Slug
6: Spillover
4. 训练模型
使用YOLOv8进行训练非常简单。你可以使用以下命令来启动训练:
yolo train data=pcb_defects.yaml model=yolov8n.pt epochs=100 imgsz=640
解释:
data=pcb_defects.yaml
: 指定数据配置文件。model=yolov8n.pt
: 使用预训练的YOLOv8小模型(yolov8n
)。你可以选择其他大小的模型,如yolov8s
、yolov8m
、yolov8l
或yolov8x
。epochs=100
: 训练的轮数。imgsz=640
: 图像的尺寸。
5. 评估模型
训练完成后,你可以使用以下命令来评估模型在验证集上的性能:
yolo val data=pcb_defects.yaml model=runs/detect/train/weights/best.pt imgsz=640
解释:
data=pcb_defects.yaml
: 指定数据配置文件。model=runs/detect/train/weights/best.pt
: 指定训练过程中保存的最佳模型权重文件。imgsz=640
: 图像的尺寸。
6. 可视化预测结果
你可以使用以下Python代码来可视化模型的预测结果:
import cv2
import torch
from ultralytics import YOLO
# 加载模型
model = YOLO('runs/detect/train/weights/best.pt')
# 读取图像
image_path = 'dataset/images/val/your_image.jpg'
image = cv2.imread(image_path)
# 进行预测
results = model(image)
# 可视化预测结果
for result in results:
boxes = result.boxes.xyxy
confidences = result.boxes.conf
class_ids = result.boxes.cls
for box, conf, class_id in zip(boxes, confidences, class_ids):
x1, y1, x2, y2 = map(int, box)
label = model.names[int(class_id)]
confidence = float(conf)
# 绘制边界框
cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)
text = f'{label}: {confidence:.2f}'
cv2.putText(image, text, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# 显示图像
cv2.imshow('Prediction', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
7. 总结
以上步骤提供了一个完整的框架,用于使用YOLOv8训练PCB板缺陷目标检测数据集。代码包括数据准备、模型训练、评估和结果可视化等多个步骤。
标签:训练,image,cv2,YOLOv8,train,PCB,缺陷,数据 From: https://blog.csdn.net/2401_88440984/article/details/143986240