使用YOLOv8进行训练——电路元件目标检测数据集_电路元件数据集 二极管 电管 电阻器等识别

电路元件目标检测数据集(11-2600)
在这里插入图片描述

-数据量: 2.6k张高质量图像在这里插入图片描述

-目标类别(nc=11):
IC - 集成电路
Induktor - 电感
LED - 发光二极管
Potensiometer - 可变电阻器(或电位器)
Resistor - 电阻器
Transistor - 晶体管
Dioda - 二极管
Kapasitor-elco - 电解电容
Kapasitor-keramik - 陶瓷电容
Sensor-LDR - 光敏电阻(或光电传感器)
Trimpot - 微调电位器
-格式(可选):YOLO格式(.txt)、VOC格式(.xml)在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
电路元件目标检测数据集,并提供使用YOLOv8进行训练的代码。

数据集介绍
数据集概述
数据集名称:Circuit Component Detection Dataset (CCDD)
数据类型:RGB图像
目标类别:11类电路元件
图像数量:2600张高质量图像
数据量:约2.6GB
标注格式:YOLO格式(.txt)、VOC格式(.xml)
目标类别
IC - 集成电路
Induktor - 电感
LED - 发光二极管
Potensiometer - 可变电阻器(或电位器)
Resistor - 电阻器
Transistor - 晶体管
Dioda - 二极管
Kapasitor-elco - 电解电容
Kapasitor-keramik - 陶瓷电容
Sensor-LDR - 光敏电阻(或光电传感器)
Trimpot - 微调电位器
数据集目录结构
深色版本
CCDD/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
├── labels_yolo/
│ ├── train/
│ ├── val/
│ └── test/
├── labels_voc/
│ ├── train/
│ ├── val/
│ └── test/
└── data.yaml
数据集配置文件
创建一个data.yaml文件,配置数据集的路径和类别信息:

yaml
深色版本
path: ./CCDD # 数据集路径
train: images/train # 训练集图像路径
val: images/val # 验证集图像路径
test: images/test # 测试集图像路径

nc: 11 # 类别数
names: [‘IC’, ‘Induktor’, ‘LED’, ‘Potensiometer’, ‘Resistor’, ‘Transistor’, ‘Dioda’, ‘Kapasitor-elco’, ‘Kapasitor-keramik’, ‘Sensor-LDR’, ‘Trimpot’] # 类别名称
YOLOv8训练代码
安装YOLOv8库和依赖项:
bash
深色版本
git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -r requirements.txt
训练模型:
python
深色版本
from ultralytics import YOLO

def train_model(data_yaml_path, model_config, epochs, batch_size, img_size):
# 加载模型
model = YOLO(model_config)

# 训练模型
results = model.train(
    data=data_yaml_path,
    epochs=epochs,
    batch=batch_size,
    imgsz=img_size
)

# 保存模型
model.save("runs/train/circuit_component_detection/best.pt")

if name == “main”:
data_yaml_path = ‘CCDD/data.yaml’
model_config = ‘yolov8s.yaml’
epochs = 100
batch_size = 16
img_size = 640

train_model(data_yaml_path, model_config, epochs, batch_size, img_size)

详细解释
安装YOLOv8和依赖项:
克隆YOLOv8仓库并安装所有必要的依赖项。
训练模型:
导入YOLOv8库。
加载模型配置文件。
调用model.train方法进行训练。
保存训练后的最佳模型。
运行训练脚本
将上述脚本保存为一个Python文件(例如train_yolov8.py),然后运行它。

bash
深色版本
python train_yolov8.py
输出结果
运行脚本后,YOLOv8会在指定的输出目录中生成训练日志和最佳模型文件。你可以使用这些模型文件进行推理和评估。

转换标注格式(可选)
如果你的数据集是VOC格式的,需要将其转换为YOLO格式。以下是转换脚本:

python
深色版本
import xml.etree.ElementTree as ET
import os

def convert_voc_to_yolo(voc_file, yolo_file, class_names):
tree = ET.parse(voc_file)
root = tree.getroot()

width = int(root.find('size/width').text)
height = int(root.find('size/height').text)

with open(yolo_file, 'w') as f:
    for obj in root.findall('object'):
        class_name = obj.find('name').text
        if class_name not in class_names:
            continue
        class_id = class_names.index(class_name)

        bbox = obj.find('bndbox')
        x_min = float(bbox.find('xmin').text)
        y_min = float(bbox.find('ymin').text)
        x_max = float(bbox.find('xmax').text)
        y_max = float(bbox.find('ymax').text)

        x_center = (x_min + x_max) / 2.0 / width
        y_center = (y_min + y_max) / 2.0 / height
        w = (x_max - x_min) / width
        h = (y_max - y_min) / height

        f.write(f"{class_id} {x_center} {y_center} {w} {h}\n")

def convert_all_voc_to_yolo(voc_dir, yolo_dir, class_names):
os.makedirs(yolo_dir, exist_ok=True)
for filename in os.listdir(voc_dir):
if filename.endswith(‘.xml’):
voc_file = os.path.join(voc_dir, filename)
yolo_file = os.path.join(yolo_dir, filename.replace(‘.xml’, ‘.txt’))
convert_voc_to_yolo(voc_file, yolo_file, class_names)

if name == “main”:
class_names = [‘IC’, ‘Induktor’, ‘LED’, ‘Potensiometer’, ‘Resistor’, ‘Transistor’, ‘Dioda’, ‘Kapasitor-elco’, ‘Kapasitor-keramik’, ‘Sensor-LDR’, ‘Trimpot’]
voc_train_dir = ‘CCDD/labels_voc/train’
yolo_train_dir = ‘CCDD/labels_yolo/train’
convert_all_voc_to_yolo(voc_train_dir, yolo_train_dir, class_names)

voc_val_dir = 'CCDD/labels_voc/val'
yolo_val_dir = 'CCDD/labels_yolo/val'
convert_all_voc_to_yolo(voc_val_dir, yolo_val_dir, class_names)

详细解释
转换标注格式:
编写一个脚本来将VOC格式的XML文件转换为YOLO格式的TXT文件。
遍历所有VOC格式的标注文件,提取边界框和类别信息,并将其转换为YOLO格式。
运行转换脚本:
将上述脚本保存为一个Python文件(例如convert_voc_to_yolo.py),然后运行它。
bash
深色版本
python convert_voc_to_yolo.py
总结
通过以上步骤,你可以准备好电路元件目标检测数据集,并使用YOLOv8进行训练

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值