首页 > 其他分享 >如何使用yolov8纽扣电池缺陷检测数据集进行训练,并提供详细的步骤和代码示例 纽扣电池检测数据集 3种缺陷类别 共1110张yolo目标检测可用,电池缺陷数据集该如何训练

如何使用yolov8纽扣电池缺陷检测数据集进行训练,并提供详细的步骤和代码示例 纽扣电池检测数据集 3种缺陷类别 共1110张yolo目标检测可用,电池缺陷数据集该如何训练

时间:2024-12-08 17:32:06浏览次数:8  
标签:battery 检测 button train defects images path 缺陷 电池

在这里插入图片描述
纽扣电池缺陷检测数据集
包含3种缺陷类别(脏污、凹陷、划痕),已经划分为训练集和验证集,有xml和txt标签,yolo可用,共1110张在这里插入图片描述

类别名称
names:
0: dirty
1: depression
2: scratch
数据集包含3种缺陷类别(脏污、凹陷、划痕),已经划分为训练集和验证集,并且标注为 YOLO 格式和VOC格式,亲测有效,使用 YOLOv8s 模型训练后的平均 mAP0.5 达到 95.3%。附加四个常用脚本在这里插入图片描述
在这里插入图片描述
好的,让我们继续细化如何使用纽扣电池缺陷检测数据集进行训练,并提供详细的步骤和代码示例。在这里插入图片描述

在这里插入图片描述

1. 数据集准备

1.1. 数据集结构

确保你的数据集按照以下结构组织:

button_battery_defects/
│
├── images/
│   ├── train/
│   ├── val/
│   └── test/
│
├── labels/
│   ├── train/
│   ├── val/
│   └── test/
│
└── data.yaml
1.2. 创建数据配置文件 (data.yaml)
train: ./button_battery_defects/images/train
val: ./button_battery_defects/images/val
test: ./button_battery_defects/images/test

nc: 3  # 类别数量(3类)
names: ['dirty', 'depression', 'scratch']  # 类别名称

# 下载数据集
download: ''

2. 安装YOLOv8

确保你已经安装了YOLOv8。YOLOv8是YOLO系列的最新版本,可以从Ultralytics的GitHub仓库中获取。

git clone https://github.com/ultralytics/yolov8.git
cd yolov8
pip install -r requirements.txt

3. 训练模型

3.1. 配置训练

使用YOLOv8进行纽扣电池缺陷检测。以下是一个示例命令:

python train.py --data ./button_battery_defects/data.yaml --img 640 --batch 16 --epochs 100 --name yolov8_custom_defect_detection --weights yolov8s.pt

4. 评估模型

4.1. 运行评估

在验证集上评估训练好的模型:

python val.py --data ./button_battery_defects/data.yaml --weights runs/train/yolov8_custom_defect_detection/weights/best.pt
4.2. 可视化结果

你可以使用val命令的--save标志来可视化结果:

python val.py --data ./button_battery_defects/data.yaml --weights runs/train/yolov8_custom_defect_detection/weights/best.pt --save

5. 示例代码

5.1. 数据预处理示例
import cv2
import os

def resize_images(input_dir, output_dir, size=(640, 640)):
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    for filename in os.listdir(input_dir):
        if filename.endswith(('.jpg', '.png', '.jpeg')):
            img_path = os.path.join(input_dir, filename)
            img = cv2.imread(img_path)
            img_resized = cv2.resize(img, size)
            output_path = os.path.join(output_dir, filename)
            cv2.imwrite(output_path, img_resized)

# 示例用法
resize_images('./button_battery_defects/images/train', './button_battery_defects/images/train_resized')
resize_images('./button_battery_defects/images/val', './button_battery_defects/images/val_resized')
resize_images('./button_battery_defects/images/test', './button_battery_defects/images/test_resized')
5.2. 训练模型
import torch

# 确保YOLOv8路径正确
YOLO_PATH = 'path/to/yolov8'

# 加载YOLOv8模型
model = torch.hub.load(YOLO_PATH, 'custom', path='runs/train/yolov8_custom_defect_detection/weights/best.pt')

# 训练模型
model.train()
model.fit(data='button_battery_defects/data.yaml', imgsz=640, batch=16, epochs=100)
5.3. 评估模型
# 加载训练好的模型
model = torch.hub.load(YOLO_PATH, 'custom', path='runs/train/yolov8_custom_defect_detection/weights/best.pt')

# 评估模型
results = model.val(data='button_battery_defects/data.yaml', weights='runs/train/yolov8_custom_defect_detection/weights/best.pt', save=True)
print(results.metrics)

6. 其他建议

  • 数据增强:使用数据增强技术来提高模型的鲁棒性。YOLOv8支持多种数据增强方法,如翻转、旋转、裁剪等。
  • 模型集成:集成多个模型以提高性能。
  • 模型量化:量化模型以适应边缘设备。
    在这里插入图片描述

7. 示例代码

7.1. 数据预处理示例
import cv2
import os

def resize_images(input_dir, output_dir, size=(640, 640)):
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    for filename in os.listdir(input_dir):
        if filename.endswith(('.jpg', '.png', '.jpeg')):
            img_path = os.path.join(input_dir, filename)
            img = cv2.imread(img_path)
            img_resized = cv2.resize(img, size)
            output_path = os.path.join(output_dir, filename)
            cv2.imwrite(output_path, img_resized)

# 示例用法
resize_images('./button_battery_defects/images/train', './button_battery_defects/images/train_resized')
resize_images('./button_battery_defects/images/val', './button_battery_defects/images/val_resized')
resize_images('./button_battery_defects/images/test', './button_battery_defects/images/test_resized')

8. 运行和调试

确保你的环境配置正确,并且所有依赖项都已安装。运行模型训练和评估时,确保模型文件路径正确,并且数据集路径正确。

标签:battery,检测,button,train,defects,images,path,缺陷,电池
From: https://blog.csdn.net/2401_88440984/article/details/144280292

相关文章

  • 《掌握Nmap:全面解析网络扫描与安全检测的终极指南》
    nmap#简介(帮助)用法:nmap[扫描类型][选项]{目标指定内容}简介(帮助)用法:nmap[扫描类型][选项]{目标指定内容}一、目标指定:可以传入主机名、IP地址、网络等。例如:scanme.nmap.org、microsoft.com/24、192.168.0.1;10.0.0-255.1-254-iL<输入文件名>:从主......
  • AutoConsis:UI内容一致性智能检测15
    可参考美团技术团队1.背景目前,移动App上的业务页面愈发复杂,技术团队常会以页面为单位来拆解团队开发分工,同一类业务元素信息分散在不同团队负责的页面内。在具体的实践中,存在一类不易检出但又影响用户体验的异常:页面中的UI信息相互矛盾(如下图中同一个商品在多个页面上的实际......
  • AutoConsis:UI内容一致性智能检测2
    可参考美团技术团队1.背景目前,移动App上的业务页面愈发复杂,技术团队常会以页面为单位来拆解团队开发分工,同一类业务元素信息分散在不同团队负责的页面内。在具体的实践中,存在一类不易检出但又影响用户体验的异常:页面中的UI信息相互矛盾(如下图中同一个商品在多个页面上的实际......
  • AutoConsis:UI内容一致性智能检测13
    可参考美团技术团队1.背景目前,移动App上的业务页面愈发复杂,技术团队常会以页面为单位来拆解团队开发分工,同一类业务元素信息分散在不同团队负责的页面内。在具体的实践中,存在一类不易检出但又影响用户体验的异常:页面中的UI信息相互矛盾(如下图中同一个商品在多个页面上的实际......
  • AutoConsis:UI内容一致性智能检测7
    可参考美团技术团队1.背景目前,移动App上的业务页面愈发复杂,技术团队常会以页面为单位来拆解团队开发分工,同一类业务元素信息分散在不同团队负责的页面内。在具体的实践中,存在一类不易检出但又影响用户体验的异常:页面中的UI信息相互矛盾(如下图中同一个商品在多个页面上的实际......
  • AutoConsis:UI内容一致性智能检测15
    可参考美团技术团队1.背景目前,移动App上的业务页面愈发复杂,技术团队常会以页面为单位来拆解团队开发分工,同一类业务元素信息分散在不同团队负责的页面内。在具体的实践中,存在一类不易检出但又影响用户体验的异常:页面中的UI信息相互矛盾(如下图中同一个商品在多个页面上的实际......
  • AutoConsis:UI内容一致性智能检测12
    可参考美团技术团队1.背景目前,移动App上的业务页面愈发复杂,技术团队常会以页面为单位来拆解团队开发分工,同一类业务元素信息分散在不同团队负责的页面内。在具体的实践中,存在一类不易检出但又影响用户体验的异常:页面中的UI信息相互矛盾(如下图中同一个商品在多个页面上的实际......
  • AutoConsis:UI内容一致性智能检测3
    可参考美团技术团队1.背景目前,移动App上的业务页面愈发复杂,技术团队常会以页面为单位来拆解团队开发分工,同一类业务元素信息分散在不同团队负责的页面内。在具体的实践中,存在一类不易检出但又影响用户体验的异常:页面中的UI信息相互矛盾(如下图中同一个商品在多个页面上的实际......
  • AutoConsis:UI内容一致性智能检测15
    可参考美团技术团队1.背景目前,移动App上的业务页面愈发复杂,技术团队常会以页面为单位来拆解团队开发分工,同一类业务元素信息分散在不同团队负责的页面内。在具体的实践中,存在一类不易检出但又影响用户体验的异常:页面中的UI信息相互矛盾(如下图中同一个商品在多个页面上的实际......
  • AutoConsis:UI内容一致性智能检测1
    可参考美团技术团队1.背景目前,移动App上的业务页面愈发复杂,技术团队常会以页面为单位来拆解团队开发分工,同一类业务元素信息分散在不同团队负责的页面内。在具体的实践中,存在一类不易检出但又影响用户体验的异常:页面中的UI信息相互矛盾(如下图中同一个商品在多个页面上的实际......