使用YOLOv8模型训练水果识别数据集 通过训练出的权重 建立基于深度学习的Yolov8水果检测识别苹果小脚橘子 西瓜

使用YOLOv8模型训练水果识别数据集 通过训练出的权重 建立基于深度学习的Yolov8水果检测识别

YOLO 目标检测 水果数据集
YOL0水果识别
在这里插入图片描述

图片数量8479,xm| 和txt标签都有;
在这里插入图片描述

类别: Apple, Banana, Grape, Orange, Pineapple, Waterme lon;
在这里插入图片描述

使用YOLOv8模型训练水果识别数据集涉及几个步骤,包括环境配置、数据准备、模型训练和评估。以下是详细的指南:

一、环境配置

首先确保安装了必要的库和YOLOv8模型。由于YOLOv8可能是一个假设的名称或最新版本,这里我们以YOLOv5为例进行说明,但步骤大体相同。

# 安装PyTorch和其他依赖
pip install torch torchvision torchaudio
# 克隆YOLOv5仓库
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
# 安装其他依赖
pip install -r requirements.txt

二、数据准备

1. 数据集结构

数据集应该按照以下格式组织:

fruit_dataset/
├── images/
│   ├── train/
│   └── val/
└── labels/
    ├── train/
    └── val/
2. 创建data.yaml文件

创建一个data.yaml文件来描述你的数据集路径和类别信息:

train: ./fruit_dataset/images/train # 训练图片路径
val: ./fruit_dataset/images/val # 验证图片路径

nc: 6 # 类别数量
names: ['Apple', 'Banana', 'Grape', 'Orange', 'Pineapple', 'Watermelon'] # 类别名

三、划分数据集

数据集还没有划分成训练集和验证集,可以使用以下脚本进行划分(例如80%训练集,20%验证集):

import os
import random
import shutil

def split_dataset(img_dir, lbl_dir, output_dir, train_ratio=0.8):
    files = [f for f in os.listdir(img_dir) if f.endswith('.jpg') or f.endswith('.png')]
    random.shuffle(files)
    split_point = int(len(files) * train_ratio)

    def copy_files(files_list, dest_folder):
        for f in files_list:
            shutil.copy(os.path.join(img_dir, f), os.path.join(dest_folder, 'images'))
            label_name = os.path.splitext(f)[0] + '.txt'
            shutil.copy(os.path.join(lbl_dir, label_name), os.path.join(dest_folder, 'labels'))

    os.makedirs(os.path.join(output_dir, 'train', 'images'), exist_ok=True)
    os.makedirs(os.path.join(output_dir, 'train', 'labels'), exist_ok=True)
    os.makedirs(os.path.join(output_dir, 'val', 'images'), exist_ok=True)
    os.makedirs(os.path.join(output_dir, 'val', 'labels'), exist_ok=True)

    copy_files(files[:split_point], os.path.join(output_dir, 'train'))
    copy_files(files[split_point:], os.path.join(output_dir, 'val'))

# 使用示例
img_directory = "path/to/your/images"
lbl_directory = "path/to/your/labels"
output_directory = "path/to/output/dataset"
split_dataset(img_directory, lbl_directory, output_directory)

四、开始训练

在YOLOv5目录下执行以下命令开始训练:

python train.py --img 640 --batch 16 --epochs 100 --data path/to/data.yaml --weights yolov5s.pt --name fruit_detection
  • --img 设置输入图像尺寸为640x640。
  • --batch 根据GPU内存大小调整批次大小。
  • --epochs 设置训练周期数。
  • --data 指向之前创建的data.yaml文件。
  • --weights 可以选择预训练权重,如yolov5s.pt表示使用YOLOv5的小型模型作为预训练模型。
  • --name 设置训练结果保存的目录名称。

五、评估模型

训练完成后,可以通过以下命令对模型进行评估:

python val.py --data path/to/data.yaml --weights runs/train/fruit_detection/weights/best.pt --task test

六、测试模型

使用训练好的模型进行预测:

python detect.py --weights runs/train/fruit_detection/weights/best.pt --img 640 --conf 0.25 --source path/to/test/image.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值