这里将对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层拼接起来。
完整的网络结构可以如下图所示:
可以看到还是蛮简单的。
如果喜欢这篇文章或对您有帮助,可以:[☕] 请我喝杯咖啡 | [💓] 小额赞助


