yolo源码注释3——模型配置文件

代码基于yolov5 v6.0

目录:

模型配置文件一般放在 models 文件夹下的 XXX.yaml 文件中,以 yolov5s.yaml 为例:

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license

# Parameters
nc: 80  # 类别个数,一定要与使用的数据集保持一致

depth_multiple: 0.33  # 深度倍数,对数量大于1个模块进行数量控制,具体看 yolo.py 中的 parse_model 函数
width_multiple: 0.50  # 宽度倍数,卷积操作中控制卷积核数量,具体看 yolo.py 中的 parse_model 函数


# 检测框的大小
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 检测大目标的三个检测框尺寸
# 1. P3 代表浅层的特征图,浅层的特征图较大包含更多的小目标
# 2. P5 代表深层的特则图,深层的特征图较小包含更多的大目标
# 3. YOLOv5 根据工程经验得到了这3组anchors,可以用于大多数数据集
# 4. 在源代码中是针对 coco 数据集使用 K++ 算法求解出的大、中、小三种大小检测框
# 5. 如果需要修改检测框大小,建议也是用 K++ 算法进行求解


# YOLOv5 v6.0 backbone
# 主干网络使用的模块,用于特征提取,可以替换为其他特征提取网络
# 由于没有分neck模块,故spp写在了backbone部分
backbone:
  # 模块格式如下:[from, number, module, args]
  # form: 当前的输入来自哪一层的输出, -1 表示上一层
  # number: 当前模块的理论重复次数,当该值大于 1 时,与 depth_multiple 共同决定实际重复次数
  # module: 模块名字,通过这个类名去 common.py 中寻找相应的类,进行模块化的搭建网络
  # args: 搭建模块需要的参数,具体看 common.py 中对应的类的要求
  [ [ -1, 1, Conv, [ 64, 6, 2, 2 ] ],  # 0-P1/2,模块编号为0
    [ -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,模块编号为0
  ]

# YOLOv5 v6.0 head
# 参数解释同backbone
# 没有区分neck模块,所以head部分包含了PANet+Detect部分
head:
  [ [ -1, 1, Conv, [ 512, 1, 1 ] ],
    [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
    [ [ -1, 6 ], 1, Concat, [ 1 ] ],  # cat backbone 接受两层的输出作为输入:[ -1, 6 ] 表示上一层以及编号为 6 的层
    [ -1, 3, C3, [ 512, False ] ],  # 13,模块编号为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, 15 ], 1, Concat, [ 1 ] ],  # cat head P4
    [ -1, 3, C3, [ 512, False ] ],  # 20 (P4/16-medium)


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

    [ [ 18, 21, 24 ], 1, Detect, [ nc, anchors ] ],  # Detect(P3, P4, P5)
  ]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值