Yolov5训练自己的数据集

本文详细介绍了如何使用Yolov5进行自定义数据集的训练和模型优化。首先,需要准备数据集并按Yolov5格式组织,接着修改训练配置文件以匹配自定义类别。训练过程中,可能会遇到如wandb包的问题,解决后可继续训练。训练完成后,模型权重和训练结果会被保存。文章还展示了不同模型(yolov5s和yolov3-tiny)的训练效果,并解析了`train.py`的关键参数。
摘要由CSDN通过智能技术生成

参考:Yolov5自定义图片训练测试及模型调优(详细过程)_HowieXue的博客-CSDN博客_yolov5调优

原代码推理:

训练自己的数据集:

1.准备数据集

首先划分测试数据集,将自定义测试的图像数据和标签数据集分别 划分为:训练集、验证集、测试集,照Yolov5原生格式,新建一个datasets目录,并创建images,labels两个子目录,分别存放待训练的图像以及标注后的label数据:; 

 

将相应测试数据集分别放入相应文件夹中(文件名要一一对应),如下图:

 

 

 

2.修改data/训练配置xxx.yaml文件

下面需要修改Yolov5的训练配置参数,既自定义制作自己使用的训练.yaml配置文件:

为了方便修改,我们可以copy一份原有的data/coco128.yaml, 重命名一下,并修改其中的参数为自定义训练的参数:

先看下coco128.yaml,可以看到原有coco训练集的类别数量是80个,标签(模型能识别的类别名)分别是下面的name 根据具体需要修改,我这里测试所用的修改为:

修改path/train/val/test的目录路径为自定义数据集路径 将nc(number of classes)改为 2 修改Names为自己数据的类别名 注释掉Download train.py在训练过程中,会将路径中的images替换为 labels来寻找labels数据 修改后的yaml:

 

根据需要选择其中的模型yaml进行修改,在models文件夹中,本次使用的是yolov5s.yaml(权重也要对应选择yolov5s.pt),改发:

nc 修改为2

  • 针对Anchors ,如果自己提前聚类过,可以同步把计算后anchors修改下,如果没有可以不修改

训练:

python train.py --cfg models/yolov5s.yaml --data data.yaml --weights yolov5s.pt --epoch 100 --batch-size 8

报错:

 

肯定是包的问题,我的是wandb这个包安装错了路径,卸载后用pip重装即可。

 

再有路径问题就把ROOT都删掉

训练完了

训练完后,通过最后log可以看到训练好的模型的权重保存在了runs/train/exp17/weights/last.pt和best.pt

其中还包括了PR Curve 曲线、Confusion matric (混淆矩阵)、results.png/txt 等训练过程数据

train.py相关参数解析:

  1. weights:权重文件路径,如果是’'则重头训练参数,如果不为空则做迁移学习,权重文件的模型需与cfg参数中的模型对应

  2. epochs:指的就是训练过程中整个数据集将被迭代多少次

  3. batch-size:每次梯度更新的批量数,指一次看完多少张图片才进行权重更新

  4. config-thres: 模型目标检测的置信度阈值

  5. cfg:存储模型结构的配置文件

  6. data:存储训练、测试数据的文件

  7. img-size:输入图片的宽高

  8. rect:进行矩形训练

  9. resume:恢复最近保存的模型开始训练

  10. nosave:仅保存最终checkpoint

  11. notest:仅测试最后的epoch

  12. evolve:进化超参数

  13. cache-images:缓存图像以加快训练速度

  14. name: 重命名results.txt to results_name.txt

  15. device:cuda device, i.e. 0 or 0,1,2,3 or cpu

  16. adam:使用adam优化

  17. multi-scale:多尺度训练,img-size +/- 50%

  18. single-cls:单类别的训练集

使用yolov5s.pt训练后的结果:

 

使用yolov3-tiny.pt训练后的结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值