0
点赞
收藏
分享

微信扫一扫

[YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构


作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊​

目录

​​第1章 YOLO的数据处理流程​​

​​第2章 YOLO V5支持的网络模型​​

​​第3章 YOLO V5网络的配置文件​​

​​3.1 网络配置文件的作用​​

​​3.2 模型配置文件的路径​​

​​3.3 模型配置文件的内容(yolov5s为例)​​

​​第4章 YOLO V5总体的网络结构​​

第1章 YOLO的数据处理流程

[YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构_目标检测

第2章 YOLO V5支持的网络模型

[YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构_ultralytics_02

除了上述模型外,最新版本还支持了一个更小的网络模型YOLOv5n

 详解如下链接

第3章 YOLO V5网络的配置文件

3.1 网络配置文件的作用

为了使得网络的构建根据的灵活,YOLO V5采用了数据与代码分离的方式来实现。

把对网络的配置放置在模型配置文件*.yaml中。yolo v5的代码通过读取该配置文件,来构建网络。

3.2 模型配置文件的路径

[YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构_计算机视觉_03

3.3 模型配置文件的内容(yolov5s为例)

# YOLOv5 ???? by Ultralytics, GPL-3.0 license

# Parameters
nc: 80 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple
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 v6.0 backbone
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]],
[-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
[-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)
]

(1)配置参数

  • nc: 80  # number of classes                              =》 网络支持的最大分类数
  • depth_multiple: 0.33  # model depth multiple    =》网络的深度或层数的倍数,倍数越小,网络越浅,速度越高。
  • width_multiple: 0.50  # layer channel multiple   =》 卷积层的卷积核channel的倍数,倍数越小,卷积核越少,特征通道越少。
  • 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


YOLOv5n

微规模



YOLOv5s

小规模



YOLOv5m

中规模



YOLOv5l

大规模



YOLOv5x

超大规模


depth_multiple

0.33

0.33

0.67

1.00

1.33

width_multiple

0.25

0.50

0.75

1.00

1.25

(2)骨干网backbone

骨干网负责特征的提取,主要由三种类型的子网络组成

  • CONV:卷积网络( 关于CONV网络的原理,请参考卷积神经网络CNN)
  • CSPx3:CSPx3网络
  • SPPF:网络

(3)节点网络Head

(3-1)Nect网络:FPN + PAN => FPAN

  • CONV:卷积网络
  • concat:组合
  • Upsample:上采样

(3-2)结构化输出

  • Detect:目标检测输出 网络

第4章 YOLO V5总体的网络结构

[YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构_ultralytics_04

 [YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构_模型_05

 [YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构_ultralytics_06

[YOLO专题-21]:YOLO V5 - ultralytics代码解析-网络配置文件与总体结构_模型_07

作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊​


举报

相关推荐

YOLO V5

0 条评论