YOLO v5训练和预测

YOLO v5训练自己的模型

1.1 前期准备

1.1.1 数据集的准备

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

其中:

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

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

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

images/test文件夹里面保存着测试集的照片;

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

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

labels/test文件夹里面保存着测试集的标签;

1.1.2 预训练权重准备

到官网https://github.com/ultralytics/yolov5,根据自己的需要下载一个pt文件并将其放入weights文件夹中。
从上至下,模型由小到大,模型的精度可能越来越高,但占内存也越大,检测速度更慢

image-20230509191727191

1.2 修改yaml文件

1.2.1 新建一个或使用现有的data.yaml文件

作用是指定数据集的路径和类别信息,
其中的内容根据自己的数据集情况进行修改,
train等三个文件夹路径是训练集、验证集和测试集的图片文件夹路径,names是类别信息。
注意按照自己的文件路径进行修改,不要照搬照抄!!!

train: D:\Pycharm_Projects\ultralytics\ultralytics\datasets\mooncake\train  # train images (relative to 'path') 128 images
val: D:\Pycharm_Projects\ultralytics\ultralytics\datasets\mooncake\valid # val images (relative to 'path') 128 images
test: D:\Pycharm_Projects\ultralytics\ultralytics\datasets\mooncake\test # test images (optional)

nc: 1
names: ['can']

1.2.2 修改模型配置文件

由于本次项目使用的是yolov5s.pt这个预训练权重,所以要使用models目录下的yolov5s.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)更改以下方框中的name,可更改训练输出文件夹的名称

(5)运行train.py。

1.4 启用tensorbord查看参数

打开pycharm终端,cd到runs文件夹的上一层文件夹(应该是yolov5-5.0),然后输入
tensorboard --logdir=runs/train
就会出现一个网址地址,点击那行网址,跳转到浏览器打开就可以看到训练的过程了

image-20230509192354376

1.5 进行预测

(1)对图片文件夹进行预测
打开detect.py文件后,将权重--weights的路径设置为训练时产生的best.pt权重文件的路径(在runs/train/exp/weights文件夹下);
将--source设置为待预测图片的文件夹,批量预测文件夹中的图片。

image-20230509192417350

detect.py运行完成后,在runs下面会生成一个detect目录,预测结果会保存在exp目录下。
(2)对视频进行预测
如要对视频进行测试,则将--source的路径改为视频的路径即可。
(3)启用摄像头进行预测
利用摄像头进行测试只需将--source路径改写为0就好了,即default=0。
如果出现以下报错

解决办法:在utils文件夹下找到datasets.py这个py文件

打开文件,找到第279行代码,给两个url参数加上str就可以了,如图所示,就可以完美运行电脑的摄像头了。

posted @ 2023-05-09 19:35  Ah_Qiu  阅读(640)  评论(0)    收藏  举报