windturbine_yolo/models/yolov5s_4cengCA_14_19_24_28...

88 lines
5.9 KiB
YAML
Raw Permalink Normal View History

2025-03-13 12:38:34 +08:00
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
# Parameters
nc: 10 # number of classes code种类不需要修改会根据样本集yaml里的code数量修改
depth_multiple: 0.33 # model depth multiple 模型深度,
#depth_multiple表示channel的缩放系数就是将配置里面的backbone和head部分有关通道的设置全部乘以该系数即可
width_multiple: 0.50 # layer channel multiple 模型宽度
#width_multiple表示BottleneckCSP模块的层缩放系数
#将所有的BottleneckCSP模块的number系数乘上该参数就可以最终的层个数
#如果希望大一点,就把这个数字改大一点,网络就会按比例变深、变宽;如果希望小一点,就把这个数字改小一点,网络就会按比例变浅、变窄
anchors:
- [4,5, 8,10, 22,18] # P2/4
- [10,13, 16,30, 33,23] # P3/8
- [30,61, 62,45, 59,119] # P4/16
- [116,90, 156,198, 373,326] # P5/32
#
# 尺度越大的 feature map 越靠前,相对原图的下采样率越小,感受野越小, 所以相对可以预测一些尺度比较小的物体(小目标),分配到的 anchors 越小。
# 尺度越小的 feature map 越靠后,相对原图的下采样率越大,感受野越大, 所以可以预测一些尺度比较大的物体(大目标),所以分配到的 anchors 越大。
# 即在小特征图feature map上检测大目标中等大小的特征图上检测中等目标 在大特征图上检测小目标。
# YOLOv5 v6.0 backbone
backbone:
# [from, number, module, args]
# 第一个参数 from :从哪一层获得输入,-1表示从上一层获得[-1, 6]表示从上层和第6层两层获得。
# 第二个参数 number表示有几个相同的模块如果为9则表示有9个相同的模块。
# 第三个参数 module模块的名称这些模块写在common.py中。
# 第四个参数 args类的初始化参数用于解析作为 moudle 的传入参数,即[ch_out输出通道, kernel卷积核尺寸, stride步长, padding池化, groups][输出通道数量卷积核尺寸步长padding]这里连ch_in都省去了因为输入都是上层的输出初始ch_in为3
#假设输入图片的尺寸为 [3(输入通道),640输入高,640输入宽]
[[-1, 1, Conv, [64, 6, 2, 2]], #0 卷积层foucus 通道变为64尺寸减半,则[64320320 ]
[-1, 1, Conv, [128, 3, 2]], #1 卷积层 通道变为128尺寸减半,则[128160160]
[-1, 3, C3, [128]], #2 C3 通道变为128尺寸不变,则[128160160],主要用于提取特征
[-1, 1, Conv, [256, 3, 2]], #3 卷积层 通道变为256尺寸减半,则[2568080]
[-1, 6, C3, [256]], #4 C3 通道变为253尺寸不变,则[2568080]主要用于提取特征
[-1, 1, Conv, [512, 3, 2]], #5 卷积层 通道变为512尺寸减半,则[5124040]
[-1, 9, C3, [512]], #6 C3
[-1, 1, Conv, [1024, 3, 2]], #7 卷积层 通道变为1024尺寸减半,则[5122020]
[-1, 3, C3, [1024]], #8 C3
[-1, 1, SPPF, [1024, 5]], #9 SPPF 将输入通过多个不同大小的MaxPool然后做进一步融合能在一定程度上解决目标多尺度问题
]
head:
#neck
#[5122020]
[[-1, 1, Conv, [512, 1, 1]], #10 卷积层 通道变为512尺寸不变,则[5122020]
[-1, 1, nn.Upsample, [None, 2, 'nearest']], #11 上采样,通道数不变,尺寸翻倍,则[5124040]
[[-1, 6], 1, Concat, [1]], #12 Concat 特征融合,将上一层与第六层连接起来。通道翻倍,尺寸不变[10244040]
[-1, 3, C3, [512, False]], #13 C3不进行short cut 只改变通道数 [5124040]
[-1, 1, CoordAtt, [512]], # 14 CA
[-1, 1, Conv, [256, 1, 1]], #15 卷积层 通道变为256尺寸不变,则[2564040]
[-1, 1, nn.Upsample, [None, 2, 'nearest']], #16 上采样,通道数不变,尺寸翻倍,则[2568080]
[[-1, 4], 1, Concat, [1]], #17 Concat 特征融合将上一层与第4层连接起来。通道翻倍尺寸不变[5128080]
#自己加的
[-1, 3, C3, [256, False]], #18 C3 不进行short cut 只改变通道数 [2568080]
[-1, 1, CoordAtt, [256]], # 19 CA
[-1, 1, Conv, [128, 1, 1]], #20 卷积层 通道变为128尺寸不变,则[1288080 新加
[-1, 1, nn.Upsample, [None, 2, 'nearest']], #21 上采样,通道数不变,尺寸翻倍,则[256160160] 新加
[[-1, 2], 1, Concat, [1]], #22 Concat 特征融合将上一层与第2层连接起来。通道翻倍尺寸不变[512160160] 新加
#head
[-1, 3, C3, [128, False]], #23 C3 不进行short cut 只改变通道数 [128160160] 新加
[-1, 1, CoordAtt, [128]], # 24 CA
[-1, 1, Conv, [128, 3, 2]], #25 卷积层 通道变为128尺寸减半,则[1288080] 新加
[[-1, 20], 1, Concat, [1]], #26 Concat 特征融合将上一层与第18层连接起来。通道翻倍尺寸不变[512160160] 新加
[-1, 3, C3, [256, False]], #27 C3 不进行short cut 只改变通道数 [256160160] 新加
[-1, 1, CoordAtt, [256]], # 28 CA
[-1, 1, Conv, [256, 3, 2]], #29 卷积层 通道变为256尺寸减半,则[2564040]
[[-1, 15], 1, Concat, [1]], #30 Concat 特征融合将上一层与第14层连接起来。通道翻倍尺寸不变[512160160]
[-1, 3, C3, [512, False]], #31 C3 不进行short cut 只改变通道数 [5124040]
[-1, 1, CoordAtt, [512]], # 32 CA
[-1, 1, Conv, [512, 3, 2]], #33 卷积层 通道变为512尺寸减半,则[5122020]
[[-1, 10], 1, Concat, [1]], #34 特征融合将上一层与第10层连接起来。通道翻倍尺寸不变[10242020]
[-1, 3, C3, [1024, False]], #35 C3 不进行short cut 只改变通道数 [10272020]
[[23, 27, 31, 35], 1, Detect, [nc, anchors]], # 将21, 24, 27, 30传入检测头
]