YOLOV5对自己的数据集进行训练 从数据集建立到训练

前言

emm,这一次之所以选择消防栓进行YOLO识别训练,是因为前段时间在Google进行人机验证,识别认证消防栓,斑马线……艰辛的三分钟后,被认定为机器,拒绝登入(泪奔泪奔)
所以这一次找了些Google的验证照片进行验证,用科技打败科技!

废话就不多说了,这一次项目包括:
Python爬虫爬取图片 -> 图片标定 -> 标准 YOLO数据集建立 -> YOLO的准备工程 -> YOLOV5训练配置文件 -> 训练 -> 得出结果

本文主要包括后三个模块,也就是说本文为第二部分
第一部分,即前三个模块在 ——>——>传送门

YOLO的准备工程

全部的准备工作参考我的这一篇博客 ——>传送门
用pycharm打开YOLOV5的工程
可以调用电脑的摄像头,在Pycharm下方的命令框输入

python detect.py --source 0

就可以使用YOLO进行视频识别啦,效果如下
在这里插入图片描述
在这里插入图片描述
很nice!很巴适!

YOLOV5训练配置文件

这里就需要前文建立的数据集啦,如果不想建立的话也可以下载我建立的数据集——https://download.csdn.net/download/weixin_51717597/85001283

数据搬运

将message文件(就是之前储存标定数据的文件)下的所有文件copy到YOLO工程中data文件夹内
在这里插入图片描述

coco.yaml文件配置

将data文件下coco.yaml文件复制重命名,这里我命名为fire.yaml,内部内容中,将train、val和test分别修改为数据集生成的.txt文件,可以在ImageSets中找到,nc为识别物品的数量,因为我只识别消防栓,所以为1,names对应识别物品的名字,其余不需要修改
在这里插入图片描述

修改model模型

在root/models下找一个你想用的模型,这里我选择的是yolov5s.yaml
将nc 后的值修改为训练数量即可
在这里插入图片描述

train.py修改

(1)将‘–weights’后的yolov5s.pt修改为自己选择的模型,譬如选择yolov5m.yaml模型就改为yolov5m.pt
(2)将‘–cfg’后改为自己选择的模型,如图
(3)将‘–data’后改为之前配置好的训练文件,如我的fire.yaml
(4)‘–spochs’后的数字为训练迭代数字,数字越大,迭代时间越长,因为我是轻薄本,用CPU跑的,150次迭代足足跑了一晚上!
在这里插入图片描述

训练

安装wandb

具体命令如下

pip install wandb
wandb login

之后会弹出一个网址,点进网址进行注册,会出现产品密匙,将产品密匙输入即可

运行train.py

……运行train.py,很遗憾,我没有遇到报错(哈哈哈)
之后就开始了慢慢训练路了,强烈建议GPU跑,CPU太慢了
效果图
在这里插入图片描述

查看结果

训练结果可以在runs/train/exp中查看,会有很多效果图和一堆高大上的数据
在这里插入图片描述

在这里插入图片描述

训练后数据集使用

建立一个文件夹储存测试照片,然后打开detect.py文件夹
修改如下:
(1)‘–weight’里面修改为刚刚runs/train/exp/weights中的best.pt文件
(2)‘–source’里面修改为储存测试照片的文件夹,这里我储存到了data下面的Samples中
在这里插入图片描述
之后运行这个.py文件
运行结果可以在runs/detect中查看,效果图:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_51717597/article/details/123587291