Yolov5自定义数据训练

重要提示:本文章仅作为技术分享与学习交流,严禁用于其他任何用途,如有任何问题请及时与我联系,谢谢!

一、数据标注

  • 利用labelimg标注数据集生成yolo格式执行pip install labelimg即可安装

  • 准备好需要标注的数据,创建一个总文件夹,再创建一个名为images的子文件夹存放需要标注图片;创建一个名为labels的子文件夹存放标注的标签文件;创建一个名为classes.txt的txt子文件存放标注的类别名称。然后在classes.txt文件里面输入定义的类别。最终目录结构如下

  • 进入总文件夹执行命令labelimg images classes.txt labels打开如下界面。命令的意思是打开labelimg工具、读取images待标注图片的文件夹、初始化classes.txt里面定义的类、保存标注结果到labels文件夹。

    • Open Dir:待标注图片的路径;
    • Change Save Dir:保存标注后数据的路径;
    • YOLO:标注后数据保存txt格式;
    • VOC:标注后数据保存xml格式;
  • 常用快捷键

    • A:切换到上一张图片
    • D:切换到下一张图片
    • W:调出标注十字架
    • Del:删除标注框
  • 点击View进行功能设置

    • Auto Save mode:切换下一张图片自动保存标签
    • Display Labels:显示标注框、标签
    • Advanced Mode:标注十字架一直悬浮在窗口
  • 所有图片标注结束后,执行如下代码创建trainvalid文件夹,然后将已标注好的图片和标签一部分放入train文件夹中,一部分放入valid文件夹中。(valid放入少量即可,或者trainvalid不区分,两个文件夹数据全部相同)

"""
@Author  : Man
@Time    : 2022/9/22 18:47
@Project : make_yaml
"""

import os


def make_data_dir_yaml(yaml_name, class_names):
    # 生成存放数据集的图片和标签文件夹
    for dirs in ['train/images', 'train/labels', 'valid/images', 'valid/labels']:
        if not os.path.exists(dirs):
            os.makedirs(dirs)

    # 生成数据集配置.yaml
    with open(yaml_name, "w", encoding='utf-8') as f:
        f.write(f"train: {save_dir}/train/images\n")
        f.write(f"val: {save_dir}/valid/images\n")
        f.write("\n")
        f.write(f"nc: {len(class_names)}\n")
        f.write(f"names: {class_names}\n")


if __name__ == '__main__':
    save_dir = 'D:/Project_Python/Learning/HCaptcha'

    with open('classes.txt', 'r', encoding='utf-8') as f:
        class_list = f.readlines()
        class_list = [_.strip() for _ in class_list]

    print(class_list)
    make_data_dir_yaml('verify_HCaptcha.yaml', class_list)
  • 最终文件结构与内容

二、数据训练

  • 打开yolov5文件夹中train.py,修改相关代码
    • 指定模型(没有此模型会自动下载,下载失败打开游览器根据提示网址自行下载放入yolov5文件夹下)
    • 打开models文件夹,复制一份指定模型对应的yaml文件只需修改nc的值也就是要训练类的数量即可
    • 指定上方步骤复制的模型配置文件
    • 指定数据集配置文件
    • 指定训练总轮次(根据自己情况定)
    • 指定批次大小(根据自己情况定)
    • 指定训练的图片大小(根据自己情况定)
  • 修改结束,直接运行train.py开始训练,结果保存在runs\train\exp文件夹下

三、检测模型

  • 打开yolov5文件夹中detect.py,修改相关代码
    • 指定要检测的模型所在路径
    • 指定要检测的单张图片/文件夹路径
    • 指定图片大小
  • 修改结束,直接运行detect.py开始检测,结果保存在runs\detect\exp文件夹下

四、调用模型识别HCaptcha验证

五、最后

  • 有什么疑问欢迎留言!
  • 公众号乱炖Set,欢迎前来关注!
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Yolov8上进行自定义数据集的GPU训练,您需要执行以下步骤: 1. 数据集准备:收集和标记您的自定义数据集。确保每个标记的对象都有对应的类别标签,并将它们转换为YOLO格式(例如,.txt或.annotation文件)。确保您的数据集包含训练图像和相应的标签。 2. 配置文件:在Yolov8上进行训练之前,您需要修改配置文件以适应您的数据集。打开`yolov8.cfg`文件,并对其进行必要的更改。主要修改包括类别数量(`classes`)和训练图像尺寸(`width`和`height`)。还可以根据需要调整其他超参数,如学习率和批量大小。 3. 权重文件:如果您没有预训练的权重文件,您可以从Darknet官方网站下载一个预训练的权重文件。这些权重文件是在COCO数据集上训练而得到的,并且可以提供良好的初始参数。将预训练权重文件放在与配置文件相同的目录下。 4. 训练命令:使用GPU进行训练,您可以运行以下命令: ``` ./darknet detector train data/obj.data cfg/yolov8.cfg darknet53.conv.74 -gpus 0 ``` 其中,`data/obj.data`是包含数据集路径和类别信息的文件,`cfg/yolov8.cfg`是您修改后的配置文件,`darknet53.conv.74`是预训练的权重文件。 5. 训练过程:训练过程需要一定的时间,具体取决于数据集的大小和复杂性。在训练过程中,Yolov8会输出每个批次的损失和其他指标。您可以根据需要进行调整和优化。 6. 检测结果:一旦训练完成,您可以使用训练好的权重文件进行对象检测。使用`darknet detector test`命令,并指定相应的配置文件、权重文件和测试图像进行检测。 这些步骤可以帮助您在Yolov8上使用GPU进行自定义数据集的训练。请注意,这只是一个简单的概述,具体的实施可能会因您的环境和需求而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值