发布时间:2022-08-19 11:48
第二章:yolov5训练自己的数据集(实时动态检测王者荣耀系列)
1,介绍最终成型效果图
在上一篇我已经教给大家如何用Vscode搭建环境,让yolov5项目能正常运行起来,并且用项目本身达到训练以及测试检测图片的效果,相信大家已经迫不及待的想训练自己的数据集了吧,这里我也在csdn看了很多文章都不是很全对于零基础的同学来说还是很难掌握,甚至有的同学已经没了心态,准备放弃这个被大家称为“真香”的yolov5开源项目了,这里我希望大家稳住心态,跟着我的脚步动起来,一定能成功,现在我们开始实操吧!
YOLOV5github最新地址:点击我下载
现在我们先做好准备工作提高效率
1,我们在这里创建一个your_Own_data_Set文件夹,里面存放自己的一些数据,
接下来继续在里面创建images(存放需要训练的原图片.jpg格式),labels(存放标注结果的.txt文件)文件夹
(备注:这里我用的标注工具是makesense.ai,所以省去了xml转txt文件的步骤,怎么样方便吧,是不是特别为你们考虑,主要看其他关于训练自己数据集都是用一些转换格式代码去实现,本博主也是亲身为你们踩了踩坑,哎不提了,基本所有文章都看完了,好难成功,实现起来太复杂)
2,为自己的数据集图片进行标注处理操作,需要用到makesense.ai标注工具
makesense官方连接 点我进入
标注说明:打开makesense.ai官网,进入网页标注,导入自己的图片,进行标注,后保存为ZIP软件包,其中包含VOC XML格式的文件,并将导出后的txt文件解压到your_Own_data_Set\labels中去
3,我们将对yolov5项目文件中yolov5-master\data下.yaml文件,yolov5-master\models下yolov5s.yaml,yolov5-master\train.py,相关文件进行改动
yolov5-master\data下.yaml文件说明:这里我们首先复制一份coco128.yaml文件,并对新复制的copy文件进行了改动,原文件中有80个类别,我们不需要那么多,所以根据自己标注工具时,使用的类别数量与类别名称为准,
补充:train: …/your_Own_data_Set/images/
val: …/your_Own_data_Set/images/ 代码中,这两个是我们之前创建好的文件夹路径,用于后续的读取
呼~~~抽支烟,再继续写…有点累了…
yolov5s.yaml说明:用那个权重文件就修改那个文件中的nc值即可,nc是我们标注类别的数量
train.py说明
parser.add_argument(’–weights’, type=str, default=‘yolov5s.pt’, help=‘initial weights path’):填写你想使用的权重文件yolov5s.pt:最小速度最快
parser.add_argument(’–cfg’, type=str, default=‘models/yolov5s.yaml’, help=‘model.yaml path’)
填写我们修改的权重文件:yolov5s.pt,配置文件
parser.add_argument(’–data’, type=str, default=‘data/coco128 copy.yaml’, help=‘data.yaml path’):填写我们修改之后的.yaml文件
4,全部配置好后,直接执行train.py文件开始训练,这时候就到了考验显卡的时候,可以耐心的等上一两个小时,可以吃个瓜,看个小电影啥的,千万别手痒玩什么3A大作,否则电脑爆炸还得重新训练。
当程序运行界面出现如下所示并后续不报错的情况下,说明开始训练。
**5,在训练中,可以随时查看每一轮次训练的结果,可利用tensorboard可视化训练过程,,首先我们通conda控制台进入YOLOv5所在的项目文件夹,首先激活conda环境,输入如下命令行:
conda activate my_py_env
接着输入如下命令:
可视化:进入环境
可视化:进入环境 tensorboard --logdir runs
如图我们输入代码后会获取一个IP地址我们将地址:http://localhost:6006/#scalars复制粘贴到浏览器中就可以看到图表了