yolov9训练自己的数据集

1.1首先在gitgup上下载yolov9,下载收藏最多的最优

网址:

Repository search results · GitHub

1.2下载压缩文件

1.3顺手下载yolov9初始权重

1.4下载完后把yolov9放入pycharm,并把yolov9初始权值放到目录下

1.5然后开始创建环境

命令:

conda create --name yolov9 python=3.8 

1.6激活环境

1.7设置环境

1.8添加环境

1.9找到自己创建环境的路径添加,一般大差不差,都在anaconda下

1.10点击现有环境,可用于所有项目根据自己需求点击

1.11完事点击应用,点击确定,环境创建完毕

1.12开始安装所需库

命令:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

1.13报错就加上绝对路径运行

命令:

pip install -r E:\MaanshanTrainModel\yolov9-main/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

1.14下载完库,开始拿到自己的数据集标注完的数据集分为原图和txt格式,直接下拉到最下边,改标签和图片绝对路径就行,代码帮你搞定创建文件夹

import os
import shutil
from sklearn.model_selection import train_test_split


def split_dataset(image_dir, label_dir, train_ratio, val_ratio, test_ratio=None):
    # 支持的图像文件扩展名
    image_extensions = ['.bmp', '.jpg', '.png']

    # 获取所有支持的图像文件名
    all_images = [f for f in os.listdir(image_dir) if any(f.endswith(ext) for ext in image_extensions)]
    # 创建对应的标签文件名列表,假设标签文件扩展名为 .xml
    all_labels = [os.path.splitext(f)[0] + '.txt' for f in all_images]

    # 按比例划分训练集和验证集(以及可选的测试集)
    train_images, temp_images, train_labels, temp_labels = train_test_split(
        all_images, all_labels, test_size=(1 - train_ratio), random_state=42
    )

    # 如果指定了测试集比例
    if test_ratio:
        # 调整验证集比例,确保验证集和测试集的比例正确
        val_ratio_adjusted = val_ratio / (val_ratio + test_ratio)
        # 按调整后的比例划分验证集和测试集
        val_images, test_images, val_labels, test_labels = train_test_split(
            temp_images, temp_labels, test_size=(1 - val_ratio_adjusted), random_state=42
        )
    else:
        # 如果未指定测试集比例,全部分配给验证集
        val_images, val_labels = temp_images, temp_labels
        test_images, test_labels = [], []

    # 创建目标目录,如果不存在则创建
    os.makedirs('datasets/images/train', exist_ok=True)
    os.makedirs('datasets/images/val', exist_ok=True)
    os.makedirs('datasets/images/test', exist_ok=True)
    os.makedirs('datasets/labels/train', exist_ok=True)
    os.makedirs('datasets/labels/val', exist_ok=True)
    os.makedirs('datasets/labels/test', exist_ok=True)

    # 复制训练集文件到目标目录
    for img, lbl in zip(train_images, train_labels):
        shutil.copy(os.path.join(image_dir, img), os.path.join('datasets/images/train', img))
        shutil.copy(os.path.join(label_dir, lbl), os.path.join('datasets/labels/train', lbl))

    # 复制验证集文件到目标目录
    for img, lbl in zip(val_images, val_labels):
        shutil.copy(os.path.join(image_dir, img), os.path.join('datasets/images/val', img))
        shutil.copy(os.path.join(label_dir, lbl), os.path.join('datasets/labels/val', lbl))

    # 复制测试集文件到目标目录(如果有测试集)
    for img, lbl in zip(test_images, test_labels):
        shutil.copy(os.path.join(image_dir, img), os.path.join('datasets/images/test', img))
        shutil.copy(os.path.join(label_dir, lbl), os.path.join('datasets/labels/test', lbl))

    # 打印训练集、验证集和测试集的图片数量
    print(f"Training images: {len(train_images)}")
    print(f"Validation images: {len(val_images)}")
    if test_ratio:
        print(f"Testing images: {len(test_images)}")


# 示例使用
image_dir = r'C:\Users\admin\Desktop\VOCdevkit\images\train'  # 图像文件目录
label_dir = r'C:\Users\admin\Desktop\VOCdevkit\labels\train'  # 标签文件目录
# 按照 80% 训练集,10% 验证集,10% 测试集的比例划分数据集
split_dataset(image_dir, label_dir, train_ratio=0.8, val_ratio=0.1, test_ratio=0.1)

1.15运行代码自动排序好省的自己慢慢创建

1.16然后调整train代码,更改这四条就行

具体如下:

–weights : 此处更改为yolov9-c.pt的绝对路径  #官网下的那俩初始权重
–cfg : 此处更改为yolov9-c.yaml的绝对路径
–data : 此处更改为datasets.yaml的绝对路径 ##就是自己创建的datastes.yaml文件
–hyp : 此处更改为data/hyps/hyp.scratch-high.yaml
原本是data/hyps/hyp.scratch-low.yaml但该文件内并未找到

1.17然后根据自己的数据集创建.yaml文件,前3行分别为原图的训练验证测试绝对路径,nc代表多少个类别,下边是类名

1.18然后开始运行train.py刚开始可能有time这个超时的报错,不用管接着往下走就会报错view,这个报错出现,看网上都是直接不管了运行train_dual.py,都解决了这个报错的麻烦评论区告诉我,我们接着往下走

1.19运行train_dual.py,和train一样也是改那四条,先把pillow降低版本,前期安装都是默认最新,但最新会报错

1.20完事训练开始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值