码力全开 / YOLOv11网络结构简述

Created Sun, 07 Sep 2025 09:49:18 +0800 Modified Sun, 07 Sep 2025 10:44:22 +0800
562 Words 2 min

这里将对YOLO版本11的网络结构进行简单的介绍,了解其大体结构,有一个整体的认识即可,当前没必要过于深入了解每个模块。

首先是yolo11.yaml中的内容:

# YOLO11n backbone
backbone:
  # [from, repeats, module, args]
  - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
  - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
  - [-1, 2, C3k2, [256, False, 0.25]]
  - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
  - [-1, 2, C3k2, [512, False, 0.25]]
  - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
  - [-1, 2, C3k2, [512, True]]
  - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
  - [-1, 2, C3k2, [1024, True]]
  - [-1, 1, SPPF, [1024, 5]] # 9
  - [-1, 2, C2PSA, [1024]] # 10

# YOLO11n head
head:
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
  - [-1, 2, C3k2, [512, False]] # 13

  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 4], 1, Concat, [1]] # cat backbone P3
  - [-1, 2, C3k2, [256, False]] # 16 (P3/8-small)

  - [-1, 1, Conv, [256, 3, 2]]
  - [[-1, 13], 1, Concat, [1]] # cat head P4
  - [-1, 2, C3k2, [512, False]] # 19 (P4/16-medium)

  - [-1, 1, Conv, [512, 3, 2]]
  - [[-1, 10], 1, Concat, [1]] # cat head P5
  - [-1, 2, C3k2, [1024, True]] # 22 (P5/32-large)

  - [[16, 19, 22], 1, Detect, [nc]] # Detect(P3, P4, P5)

其中骨干网络由11个模块组成,其中第1层是Conv,用于下采样。其输出通道为64,采用3x3卷积,步长stride为2。在上述行中-1表示接收上一层的输出,而1表示重复1次。紧接着又是1个Conv层,之后是重复2次的C3k2层,下一个还是Conv层。依次类推,直到最后一层C2PSA层。

同理,对于网络结构中head部分亦是如此,首先最后1层输出会被输入到nn.Upsample中进行上采样,紧接着把上一层和backone索引为第6层的C3k2(标记为P4的层)使用Concat层拼接起来。

完整的网络结构可以如下图所示:

image

可以看到还是蛮简单的。

如果喜欢这篇文章或对您有帮助,可以:[☕] 请我喝杯咖啡 | [💓] 小额赞助