向前看,前路漫漫亦灿灿|

Ah_Qiu

园龄:1年11个月粉丝:13关注:2

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就可以了,如图所示,就可以完美运行电脑的摄像头了。

本文作者:Ah_Qiu

本文链接:https://www.cnblogs.com/qqsj/p/17386035.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ah_Qiu  阅读(474)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开
  1. 1 这是我一生中最勇敢的瞬间 棱镜乐队
这是我一生中最勇敢的瞬间 - 棱镜乐队
00:00 / 00:00
An audio error has occurred.

作词 : 高原

作曲 : 陈恒家

编曲 : 陈恒家

人声 : 陈恒冠

和声 : 陈恒冠 陈恒家

鼓 : Jordan Bertrand

录音 : 陈恒家

混音 : 陈恒家

母带 : 陈恒家

监制 : 1991与她

女声采样:咕噜咕噜

我本打算去流浪

把所有的回望都交给夕阳

风是空港 雨是牧场

我陷入万里无云的海洋

我并不渴望远方

我并不渴望远方

只想找到一个可爱的地方

跨过飞杭 穿过弄堂

你站在我始料未及的小巷

这是我一生中最勇敢的瞬间

这是我一生中最勇敢的瞬间

远在世界尽头的你站在我面前

这是我一生中最勇敢的瞬间

我的眼中藏着星点嘴角有弧线

这是我一生中最勇敢的瞬间

你是黎明地平线是我永恒的终点

我想把时间揉成碎片捧在我手心

明天周六可以把我们一起出去玩 改成我们去约会吗

明天周六可以把我们一起出去玩 改成我们去约会吗

我并不渴望远方

我并不渴望远方

只想找到一个可爱的地方

跨过飞杭 穿过弄堂

你站在我始料未及的小巷

这是我一生中最勇敢的瞬间

这是我一生中最勇敢的瞬间

远在世界尽头的你站在我面前

这是我一生中最勇敢的瞬间

我的眼中藏着星点嘴角有弧线

这是我一生中最勇敢的瞬间

你是黎明地平线是我永恒的终点

我想把时间揉成碎片捧在我手心

约会见

再见面就是永远