YOLO v5训练自己的数据集进行检测

	博客中已经有很多相关文章可以借鉴并进行复现,相对于YOLO v3来说,v5 无论在速度,精度上都有了很大的提升!
	同时,训练自己数据集的步骤也更加的简洁,大家可以玩一玩

参考链接:
https://github.com/wudashuo/yolov5

简化步骤:

1.制作自己的数据集,需要的标签格式为.txt格式(使labelimg工具即可);
YOLO v5训练自己的数据集进行检测_第1张图片
YOLO v5训练自己的数据集进行检测_第2张图片

2.创建数据集文件夹(包含train、valid文件,子文件夹中需要包括images、labels文件夹!!!务必注意两个文件夹的名字小写开头,不能随意更改,否则无法训练)
*如何将所有原始数据随机分配至train、valid文件夹中,需要寻找一下方法???
YOLO v5训练自己的数据集进行检测_第3张图片
YOLO v5训练自己的数据集进行检测_第4张图片
YOLO v5训练自己的数据集进行检测_第5张图片

3.更改创建两个新的 .yaml 文件:
* 一个放置于数据集中作为 数据路径,类别数,类别名 的引导说明;
格式如下:train: ./BarricadeDataSet/train/images
val: ./BarricadeDataSet/valid/images
nc: 1
names: [‘Barricade’]
(数据路径,类别数,类别名 根据自己的需求进行更改,因为此处只需要识别Barricade,所以只设置了一个类别)
YOLO v5训练自己的数据集进行检测_第6张图片

   *另一个放置于模型models文件夹中,作为.cfg 包含有整个的网络结构,可以直接使用已有的架构如yolov5s.yaml,s,m,l,x 进行迁移学习;
以yolov5s.yaml为例,后面的网络架构无需更改,只要将 nc 进行更改即可(按照自己的需求,有几个类别就改成几个类别)
# parameters
        nc: 1  # number of classes
        depth_multiple: 0.33  # model depth multiple
        width_multiple: 0.50  # layer channel multiple

YOLO v5训练自己的数据集进行检测_第7张图片

4.在yolo v5中的train.py函数中,修改默认的参数:
–weights 需要迁移学习的模型;
–cfg 使用的模型架构,对应步骤3中的第二个 .yaml 文件;
–data 训练自己的数据集地址,对应步骤3中的第一个 .yaml 文件
–epochs 初始设置为300,根据实际情况进行调整,简单任务可能50-100左右就可以达到较好效果
–batchsize 根据GPU的显存大小进行设置,一般为2的倍数

YOLO v5训练自己的数据集进行检测_第8张图片

5.直接鼠标右键运行train.py函数 或者 在终端指令窗口 输入 python train.py进行训练;

6.训练后得到的模型文件去更换detect.py中默认的官方模型,实现对自己目标的检测任务;

你可能感兴趣的:(YOLO v5训练自己的数据集进行检测)