YOLO v5训练自己的模型

发布时间 2023-05-09 19:41:51作者: Ah_Qiu

YOLO v5训练自己的模型

1.1 前期准备

1.1.1 数据集的准备

数据集VOCdevkit文件夹内设置如下:
image-20230509191530644

其中:

images和labels文件夹内都包含着train文件夹和val文件夹:

Images/train文件夹里面保存着训练集的照片;

Images/val文件夹里面保存着验证集的照片;

Labels/train文件夹里面保存着训练集的标签;

Labels/val文件夹里面保存着验证集的标签。

1.1.2 预训练权重准备

下载yolov5s.pt文件并将其放入weights文件夹中。

image-20230509191727191

1.2 修改yaml文件

1.2.1 修改数据配置文件中

找到data目录下的voc.yaml文件,将该文件复制一份,将复制的文件重命名,最好和项目相关(如data_pothole),这样方便后面操作。

image-20230509191955445

打开data_pothole.yaml文件,将箭头1中的那一行代码注释掉后,一共修改3处:箭头2中需要将训练和测试的数据集的绝对路径填上,箭头3中需要检测的类别数,箭头4中填写需要识别的类别的名字。

image-20230509192244255

1.2.2 修改模型配置文件

由于该项目使用的是yolov5s.pt这个预训练权重,所以要使用models目录下的yolov5s.yaml文件中的相应参数(因为不同的预训练权重对应着不同的网络层数,所以用错预训练权重会报错)。

同上修改data目录下的yaml文件一样,将yolov5s.yaml文件复制一份,然后将其重命名,将其重命名为yolov5s_pothole.yaml。

image-20230509192322672

打开yolov5s_pothole.yaml文件,修改数字就好了。

image-20230509192331994

1.3 训练自己的模型

(1)将train.py文件中这三个文件位置换成自己的;

image-20230509192340438

(2)更改模型的训练轮次epochs参数;

(3)根据自己电脑的配置,修改--batch-size:每次喂入批次文件的多少;修改--workers:最大工作核心数;

(4)运行train.py。

1.4 启用tensorbord查看参数

打开pycharm终端,cd到runs文件夹的上一层文件夹(应该是yolov5-5.0),然后输入tensorboard --logdir=runs/train,回车。

下图为训练20轮的结果:

image-20230509192354376

1.5 进行预测

打开detect.py文件后,将权重--weights的路径设置为训练时产生的最好权重文件的路径(注意修改exp2即可);将—source设置为验证集图片的文件夹,批量预测验证集中的图片。

image-20230509192417350

detect.py运行完成后,在runs下面会生成一个detect目录,预测结果会保存在exp目录下。