YOLO v5模型的yaml文件参数理解
文章目录
前言
最近在修改YOLO v5一些模型时候或者加入一些新的东西进去,发现YOLO v5的模型文件也需要我们非常熟悉,这样添加模块就不会出现错误.
一、YOLO v5网络配置文件
YOLO v5的配置文件为yaml类型,yolov5.yaml文件通过yolo.py解析文件配置模型的网络结构。yaml文件配置网络的好处是十分的方便不需要像YOLO v3的config设置网络一样进行叠加,只需要在yaml配置文件中的参数进行修改即可。然后我对YOLO v5的配置文件最近进行了梳理与应用。
1.模型深度与宽度
从github拉一下代码文件,数据集配置的文件在data文件目录下,YOLO v5模型的配置文件在models文件下,我们会看到四个YOLO v5模型的配置文件yolov5s.yaml、yolov5n.yaml、yolov5m.yaml、yolov5l.yaml,我就以yolov5s.yaml讲解一下模型配置文件的参数
nc: 1 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple
- nc: 目标的类别数目,也是你数据集中类别标签的数目。
- depth_multiple:模型深度(控制模块的数量),当模块的数量number不为1时,模块的数量= depth_multiple * number。
- width_multiple:模型的宽度(控制卷积核的数量), 卷积核的数量= 数量*width_multiple
2. anchors
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
YOLO v5已经在yolov5s.yaml预设好了输入图像为640*640分辨率对应的anchor尺寸,yolov5的anchor也是在大特征图上检测小目标,在小特征图上检测大目标。三个特征图,每个特征图上的格子有三种尺寸的anchor。
其实还可以随机生成3中的不同检测框,可以用一下代码来代替:
anchors: 3
二、网络结构部分
1.Backbone
- 区分 [-1, 1, Conv, [64, 6, 2, 2] 中的含义 与 该通道运行解析时的[3, 32, 6, 2, 2]含义。
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]], # 2
[-1, 1, Conv, [256, 3, 2]], # 3-P3/8
[-1, 6, C3, [256]], # 4
[-1, 1, Conv, [512, 3

最低0.47元/天 解锁文章
5493

被折叠的 条评论
为什么被折叠?



