使用yolov5训练自己的数据集

使用yolov5训练自己的数据集

一、下载并配置yolov5所需要的环境

1.首先下载yolov5官方代码(我是下载zip版本):
yolov5的Github官方下载链接:https://github.com/ultralytics/yolov5
在这里插入图片描述
2.将下载的zip文件进行解压到英文目录下,然后使用pycharm进行打开,打开之后如下所示:
在这里插入图片描述
3.进入到pycharm左下方的Terminal终端使用命令进行下载yolov5所需要的库包
在这里插入图片描述

二、测试detect.py

运行yolov5-master\detect.py文件

在这里插入图片描述
在yolov5-master\runs\detect文件夹下出现下方结果,即证明环境配置完好
在这里插入图片描述

三、放置自己的数据集到对应的文件夹下方并创建两个文件

1.如果自己的数据集是voc格式不是yolo格式,请参考我的上一篇文章:voc格式转换成为yolo格式
在这里插入图片描述
2.在yolov5-master\ddjc文件夹下面创建ddic_model.yaml和ddjc_parameter.yaml文件
ddjc_parameter.yaml文件代码如下所示。
在这里插入图片描述

ddic_model.yaml文件代码如下所示,其中修改参数nc: 6,将6替换成为自己数据集索要识别的类别个数。
下面代码添加到创建的ddic_model.yaml文件当中

# Ultralytics YOLOv5 🚀, AGPL-3.0 license

# Parameters
nc: 6 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple
anchors:
  - [10, 13, 16, 30, 33, 23] # P3/8
  - [30, 61, 62, 45, 59, 119] # P4/16
  - [116, 90, 156, 198, 373, 326] # P5/32

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  [
    [-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2
    [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
    [-1, 3, C3, [128]],
    [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
    [-1, 6, C3, [256]],
    [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
    [-1, 9, C3, [512]],
    [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
    [-1, 3, C3, [1024]],
    [-1, 1, SPPF, [1024, 5]], # 9
  ]

# YOLOv5 v6.0 head
head: [
    [-1, 1, Conv, [512, 1, 1]],
    [-1, 1, nn.Upsample, [None, 2, "nearest"]],
    [[-1, 6], 1, Concat, [1]], # cat backbone P4
    [-1, 3, C3, [512, False]], # 13

    [-1, 1, Conv, [256, 1, 1]],
    [-1, 1, nn.Upsample, [None, 2, "nearest"]],
    [[-1, 4], 1, Concat, [1]], # cat backbone P3
    [-1, 3, C3, [256, False]], # 17 (P3/8-small)

    [-1, 1, Conv, [256, 3, 2]],
    [[-1, 14], 1, Concat, [1]], # cat head P4
    [-1, 3, C3, [512, False]], # 20 (P4/16-medium)

    [-1, 1, Conv, [512, 3, 2]],
    [[-1, 10], 1, Concat, [1]], # cat head P5
    [-1, 3, C3, [1024, False]], # 23 (P5/32-large)

    [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
  ]

四、修改yolov5-master文件夹下面的train.py文件,并运行

1.在train.py文件夹中找到下面代码并修改为自己的文件路径
在这里插入图片描述
2.我是用的是大将3050RTX显卡,由于显存是8G的,使用源代码运行一段时间之后会报显存不够的错误,因此我修改了batch-size参数。(如果显存足够则不需要进行修改batch-size参数)
在这里插入图片描述
3.最后运行train.py文件,在yolov5-master\runs\train文件夹下面会出现对应的训练结果(下方是我的)
在这里插入图片描述

五、yolov5测试结果

1.yoloiv5评价指标运行结果:
在这里插入图片描述
2.yolov10训练同一个数据集的运行结果如下所示:
在这里插入图片描述
3.自己数据集当中只有六个标签类,下面是两个yolov5测试例子图片:
在这里插入图片描述

总结

在训练之前数据集划分的时候有点毛病,导致yolov5和yolov10的对比结果不行,不适用。
原因:数据集当中有些图片是经过平移进行得到的。划分数据集的时候没有将一张图片经过平移之后得到的所有图片划分到训练集或验证机当中。例如:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值