yolo5训练自己的数据集

发布时间 2023-08-07 04:52:26作者: JIAXUN

一、先用labelImag标注好自己的数据集:

cmd输入:labelImg打开软件,

 

 

 

 标注完后文件夹里的东西:

 一张图片对应一个txt文档

文档里的内容:

还有一个总的类别文档classes.txt

训练集标注好后,再用同样的方法标注一些测试集图片,用于测试

 

标注好后将数据集放入项目根目录,一般数据集文件夹格式  

 放入根目录,里面再包含

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

二、训练模型 

打开官网下载下来的yolov5工程:

一般只需要修改3个文件:

训练文件:train.py

 

模型文件:yolov5s.yaml (选其中一个,区别看官网,无非就是速度与精度之间的平衡)

数据文件:VOC.yaml

------------------------------------------------------------------------------

train.py中主要修改一些配置参数,视情况做修改

 参数说明:

"""
opt模型主要参数解析:
*--weights:初始化的权重文件的路径地址
*--cfg:模型yaml文件的路径地址
*--data:数据yaml文件的路径地址
--hyp:超参数文件路径地址
*--epochs:训练轮次
*--batch-size:喂入批次文件的多少
--img-size:输入图片尺寸
--rect:是否采用矩形训练,默认False
*--resume:接着打断训练上次的结果接着训练
--nosave:不保存模型,默认False
--notest:不进行test,默认False
--noautoanchor:不自动调整anchor,默认False
--evolve:是否进行超参数进化,默认False
--bucket:谷歌云盘bucket,一般不会用到
--cache-images:是否提前缓存图片到内存,以加快训练速度,默认False
--image-weights:使用加权图像选择进行训练
*--device:训练的设备,cpu;0(表示一个gpu设备cuda:0);0,1,2,3(多个gpu设备)
--multi-scale:是否进行多尺度训练,默认False
--single-cls:数据集是否只有一个类别,默认False
--adam:是否使用adam优化器
--sync-bn:是否使用跨卡同步BN,在DDP模式使用
--local_rank:DDP参数,请勿修改
*--workers:最大工作核心数
--project:训练模型的保存位置
--name:模型保存的目录名称
--exist-ok:模型目录是否存在,不存在就创建
"""
这3个路径一定要正确

 yolov5s.yaml模型文件修改:

只需要修改类别数量就行(标注图片时候有几个类别就写几个类别)

VOC.yaml文件修改:

 

 以上配置完后就能简单的跑起来了。

结果文件放在项目根目录下的:runs->train,其中

训练好的模型文件,best为最优模型

 

 

--------------------------------------------------------------------------------------------------------------------------

 

 如果报git错误,将train.py文件里的下面两段代码注释掉就行了