yolo v5 训练自己的数据集

发布时间 2023-06-13 17:34:53作者: 黄晓魚

1.首先准备好自己需要的图片,最好转为jpg格式,用labelImage来进行标注

labelImage可以在git上下载python代码 然后使用命令行启动,也可以直接去下载编译好的exe文件,双击直接启动

标注的时候需要注意

 点击这里切换成yolo的格式 这样标注出来的数据就是txt格式的

不然选择voc那个就是xml格式的,yolov5训练的时候还不支持xml格式的,需要用python转成txt格式的

然后就可以开始绘制你的检测框了

这个路径下面的txt文件里面定义了你需要标注哪些类别

2.标注完毕之后,需要将现有的数据集划分为训练集,验证集等

执行下面代码 将数据集分开,得到的结果是几个txt文件,里面写了那些文件名是训练集,哪些文件名是测试集

 3.分割好数据集之后,需要在yaml文件里面指定你分割的数据集的txt文件的位置

在yolov5程序目录中找到data文件夹

 在data文件夹里面新建一个属于自己的yaml文件,里面内容是训练集和测试集txt文件路径,目标检测的种类数量,还有就是分类的名字,如图所示

 新建了这个yaml文件之后,需要在train.py的导入参数的这个函数中,将新建的yaml文件路径写进去,这里我怕相对路径出问题,所以都用的绝对路径

 4.同样 也在这里指定预训练模型(权重文件)的路径,hyp是训练过程中的一些参数,设置好batch-size和epochs这些基本的东西

值得一提的是后面有一个参数 如下图

 这个叫做耐心的参数 非常神奇,我上次准备训练几千次,因为每次训练完毕之后都会保存权重文件嘛,我想着先训练着,明天再来,如果没有训练完我就直接停止,也可以拿到最好的模型

第二天我来一看,发现就训练了几十分钟就停了,一看打印的日志,发现这个参数搞的鬼,在一定训练批次之间loss没有明显的下降,这个“耐心”的参数就会导致提前结束。记得修改这个

5.在utils-dataloader.py代码块中有这样一个函数,叫做img2label_paths

 这个函数的作用是拿图片的路径来翻译出标注文件的路径,如果兄弟们不是按照标准的yolov5原图和标注文件的固定文件结构放置的,这里就容易出问题,不过没有关系,这里就手动改成固定路径就可以了

6.接下来就可以开始训练

7.训练完成后就拿到了训练之后的pt文件