YoloV5 训练

1. 修改数据集配置文件.\data\data_test.yaml,注意反斜杠

# Custom data for safety helmet


# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: D:/GProject/myYolo/yoloV5SourceCode/data/images/images/train
val: D:/GProject/myYolo/yoloV5SourceCode/data/images/images/val

# number of classes
nc: 2

# class names
names: ['man', 'woman']

2. 修改模型的配置文件.\models\model_test.yaml中的分类数据

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license


# yolov5.yaml是配置文件,指导common.py去执行搭建模型
# yologv5s的结构
# 图片进来先到backbone层处理,再到head层处理


# Parameters
nc: 2  # number of classes,能够预测的目标的类别数

# 以下两个参数是用来控制模型大小的
depth_multiple: 0.33  # model depth multiple,模型深度倍数,会和第二个参数(模型层数)相乘
width_multiple: 0.50  # layer channel multiple,通道倍数,会和第四个参数的第一个参数(通道数)相乘

# 定义用来检测的矩形框矩形框
# anchor分为三组,每组3个,每个包含宽和高
anchors:
  - [10,13, 16,30, 33,23]  # P3/8, 低层,预测小目标,anchor比较小
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32 高层,预测大目标,anchor比较大

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  # from表示这一层的输入是从哪里过来的,-1表示从上一层过来
  # number,初步理解表示数量,就比如第0层1表示,有1个Conv,第2层3表示有3个C3,但跟其他参数也有关系,不一定一成不变,跟depth_multiple这个深度倍数的参数有关
  # module,这一层的层结构,比如conv,c3等等,这些层结构都定义宰了common.py文件中
  # args, [64, 6, 2, 2],传给参数3层定义需要的参数
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2,这里开始就是yolov5的层结构,这里是第0层,一共24层,每一层包含4个值,[from, number, module, args]
   [-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,这里的from是[-1,6],表示是从上一层和第6层过来的
   [-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)
  ]

3. 开始训练

"D:\GProject\myYolo\yoloV5SourceCode\env\Scripts\python.exe" .\train.py --data .\data\data_test.yaml --cfg .\models\model_test.yaml --weights .\pretrained\yolov5s.pt --epoch 10 --batch-size 2

4. 使用训练完的模型检测

"D:\GProject\myYolo\yoloV5SourceCode\env\Scripts\python.exe" .\detect.py --weights .\runs\train\exp9\weights\last.pt --source .\data\images\images\test\19.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器人迈克猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值