纽扣电池缺陷检测数据集
包含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