【学习笔记】yolov5代码逐行解析<models-yolov5s.yaml>

本文创作为自用学习

yolov5-models-yolov5s.yaml
#l、m、s、x四个文件只有控制模型参数的两个参数depth-multiple和width-multiple不同,其他都相同
# parameters
nc: 80  #所判断目标类别的种类,此处80类
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple

# 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

# YOLOv5 backbone
#backbone:每层layer,from=-1表示上层的输出为这层的输入;
#number表示该层的重复次数,但最后真正的重复次数还要number乘#以depth_multiple后取整;
#module表示该层的名字,args是每层layer的参数,
#[64,6,2,2]
#64是输出的通道(最终输出的还要乘以width-multiple取整),
#6是6×6卷积核,2是padding=2(边缘空白),2是stride
#0-P1/2表示该层为第0层,输出后会变成原图的二分之一
  # [from, number, module, args]
  [[-1, 1, Focus, [64, 3]],  # 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, 9, 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, 1, SPP, [1024, [5, 9, 13]]],
   [-1, 3, C3, [1024, False]],  # 9
  ]

# YOLOv5 head
head:
#head文件包括neck和detect两个部分
#上面最后一层C3输出chanel为1024,
#此处head第一层会改变chanel为512
  [[-1, 1, Conv, [512, 1, 1]],
#nn.upsample不改变chanel但是会把图片宽和高都变为2倍
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
#现在就可以与前面backbone中的backbone P4阶段的最后一个输出做一个contect
#即输出40×40×512contact40×40×512=40×40×1024
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
#经过下面的C3输出为40×40×512
   [-1, 3, C3, [512, False]],  # 13
#即此时输出为40×40×512

   [-1, 1, Conv, [256, 1, 1]],
   经过这一层输出40×40×256
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
#上面两个是向上
#下面两个阶段是向下contect
   [-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层下面
   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]


图像输入进入卷积,提取特征
↓
C3和conv交替出现
↓
spp是空间特征金字塔融合,进一步增大feature map 的感受野
使得物体在不同的尺度下输入时都可以被很好的检测到
↓
调整输出图片的大小使得neck的前两层可以向上融合
再有两层向下的contect
↓
detect
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值