news 2026/6/6 21:24:08

YOLO11 全面笔记:从网络结构到训练、推理解码与源码阅读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO11 全面笔记:从网络结构到训练、推理解码与源码阅读

YOLO11 全面笔记:从网络结构到训练、推理解码与源码阅读

阅读目标:看完这一篇后,能够回答 YOLO11 与 YOLOv8 的核心差异、各模块的作用、Anchor-Free 和 DFL 如何解码检测框、训练阶段如何分配正样本,以及源码应当按照什么顺序阅读。

本文重点介绍 Ultralytics 官方标准目标检测模型yolo11.yaml。实例分割、姿态估计、旋转框检测和分类模型与检测模型共享部分思想,但任务头不同。


0. 一页结论:先建立整体印象

YOLO11 可以理解为:

YOLO11 = YOLOv8 的 Anchor-Free 检测框架 + Backbone 和 Neck 中大量 C2f → C3k2 + Backbone 末端 SPPF 后加入 C2PSA + 重新调整网络深度、宽度和最大通道数

YOLO11 没有推翻 YOLOv8 的检测逻辑。下面这些核心机制仍然保留:

P3、P4、P5 三尺度检测 Anchor-Free:围绕网格参考点预测框 DFL:四条边的分布式回归 分类与回归分支解耦 Task-Aligned Assigner:训练阶段分配正负样本 标准推理流程:置信度筛选 + NMS

最需要牢记的对比:

对比项YOLOv8YOLO11
Backbone 主模块C2fC3k2
Neck 融合模块C2fC3k2
Backbone 末端SPPFSPPF → C2PSA
检测尺度P3、P4、P5P3、P4、P5
检测方式Anchor-FreeAnchor-Free
框回归DFLDFL
标准推理后处理NMSNMS

一个措辞上的小纠正:不要说“主干网格部分换成了 C3k2”。更准确的说法是:

YOLO11 将 Backbone 和 Neck 中大量使用的 C2f 模块替换为 C3k2;网格通常用于描述 Detect Head 中的特征图参考点。


1. YOLO11 是什么?

YOLO11 是 Ultralytics 在 2024 年 9 月发布的一代 YOLO 系列模型。官方支持五类任务:

任务常见权重文件输出结果
目标检测yolo11n.pt水平检测框、类别、分数
实例分割yolo11n-seg.pt检测框、类别、实例掩膜
图像分类yolo11n-cls.pt整张图像的类别
姿态估计yolo11n-pose.pt关键点及其置信度
旋转框检测yolo11n-obb.pt带角度的旋转框

官方提供nsmlx五种规模。它们共享同一套整体骨架,但使用不同的深度、宽度和最大通道数配置。

需要注意:Ultralytics 没有为 YOLO11 单独发布正式研究论文。因此,学习 YOLO11 时,官方文档、官方 YAML 和源码比网上二次整理图更可靠。


2. 学习前需要掌握的基础词汇

2.1 Backbone、Neck 和 Detect Head

目标检测网络通常可以拆成三个部分:

输入图片 ↓ Backbone:提取不同层级的视觉特征 ↓ Neck:融合浅层细节和深层语义 ↓ Detect Head:预测类别和边界框

Backbone 类似“视觉特征提取器”。浅层更容易捕获颜色、边缘和纹理;深层更容易理解目标整体结构和语义。

Neck 类似“信息交换枢纽”。它把高层语义传给浅层,也把浅层定位信息重新传回深层。

Detect Head 是最终预测模块。它接收 P3、P4、P5 三个尺度的融合特征,输出分类信息和边界框信息。

2.2 特征图、Stride 和 P3/P4/P5

假设输入图片为640 × 640

特征层Stride特征图尺寸位置数量更擅长处理
P3880 × 806400小目标
P41640 × 401600中等目标
P53220 × 20400较大目标

总参考点数量为:

80 × 80 + 40 × 40 + 20 × 20 = 8400

Stride 为 8 表示:特征图上相邻位置在输入图尺度上大约相隔 8 个像素。


3. YOLO11 总体网络结构图

假设输入尺寸为640 × 640 × 3,标准检测模型的数据流如下:

YOLO11 输入图片 640 × 640 × 3 │ ▼ ┌────────────────────────── Backbone ──────────────────────────┐ │ │ │ Conv, stride=2 → P1/2 │ │ 320 × 320 │ │ │ │ │ Conv, stride=2 → P2/4 │ │ 160 × 160 │ │ │ │ │ C3k2 │ │ │ │ │ Conv, stride=2 → P3/8 │ │ 80 × 80 ──────────────────────────────────────────┐ │ │ │ │ │ │ C3k2 │ │ │ │ │ │ │ Conv, stride=2 → P4/16 │ │ │ 40 × 40 ───────────────────────────────┐ │ │ │ │ │ │ │ │ C3k2 │ │ │ │ │ │ │ │ │ Conv, stride=2 │ → P5/32 │ │ │ 20 × 20 │ │ │ │ │ │ │ │ │ C3k2 │ │ │ │ │ │ │ │ │ SPPF │ │ │ │ │ │ │ │ │ C2PSA │ │ │ └────────┼───────────────────────────────┼───────────┼──────────┘ │ │ │ ▼ │ │ ┌──────────────────────────── Neck ─────────────────────────────┐ │ │ │ 深层 P5 │ │ │ │ │ ├─ Upsample │ │ ▼ │ │ 40 × 40 ── Concat ◄──────────────── Backbone P4 │ │ │ │ │ C3k2 │ │ │ │ │ ├─ Upsample │ │ ▼ │ │ 80 × 80 ── Concat ◄──────────────── Backbone P3 │ │ │ │ │ C3k2 ─────────────────────────────────────────────► 输出 P3 │ │ │ │ │ ├─ Conv, stride=2 │ │ ▼ │ │ 40 × 40 ── Concat ◄──────────────── 中间融合特征 │ │ │ │ │ C3k2 ─────────────────────────────────────────────► 输出 P4 │ │ │ │ │ ├─ Conv, stride=2 │ │ ▼ │ │ 20 × 20 ── Concat ◄──────────────── C2PSA 深层特征 │ │ │ │ │ C3k2 ─────────────────────────────────────────────► 输出 P5 │ └───┬──────────────────────────────────────────────────────────┘ │ ▼ Detect(P3, P4, P5) │ ▼ 边界框分布 + 类别分数 │ ▼ DFL 解码 → 置信度筛选 → NMS │ ▼ 最终检测结果

概念上分为 Backbone、Neck 和 Detect Head。但在 Ultralytics 的 YAML 文件中,head:部分同时包含 Neck 的特征融合层和最后的Detect层。


4. 如何阅读yolo11.yaml

标准 YAML 中每一行通常采用下面的结构:

[from,repeats,module,args]

含义如下:

字段含义示例
from输入来自哪一层-1表示上一层,[-1, 6]表示将上一层和第 6 层共同作为输入
repeats模块基础重复次数[ -1, 2, C3k2, ... ]
module模块类型ConvC3k2SPPFC2PSAConcatDetect
args模块参数输出通道数、卷积核大小、步长等

官方标准结构的核心可以概括为:

backbone:-Conv-Conv-C3k2-Conv# P3/8-C3k2-Conv# P4/16-C3k2-Conv# P5/32-C3k2-SPPF-C2PSAhead:-Upsample-Concat# 融合 Backbone P4-C3k2-Upsample-Concat# 融合 Backbone P3-C3k2# 输出 P3-Conv# 下采样-Concat-C3k2# 输出 P4-Conv# 下采样-Concat-C3k2# 输出 P5-Detect# Detect(P3, P4, P5)

4.1 模型缩放参数

官方 YAML 为五个规模配置了不同缩放参数:

模型depthwidthmax_channels
YOLO11n0.500.251024
YOLO11s0.500.501024
YOLO11m0.501.00512
YOLO11l1.001.00512
YOLO11x1.001.50512

可以这样理解:

depth:控制模块重复次数 width:控制通道数 max_channels:限制最大通道数

同一套 YAML 会根据规模参数生成不同大小的网络。


5. 以 YOLO11n 为例,逐层看尺寸变化

下面的通道数按照官方 YAML 与YOLO11nwidth=0.25推导。输入图片假设为640 × 640

层号模块输入来源输出尺寸作用
0Conv输入图像320 × 320 × 16第一次下采样
1Conv0160 × 160 × 32第二次下采样
2C3k21160 × 160 × 64提取浅层特征
3Conv280 × 80 × 64下采样至 P3 尺度
4C3k2380 × 80 × 128保存 Backbone P3 特征
5Conv440 × 40 × 128下采样至 P4 尺度
6C3k2540 × 40 × 128保存 Backbone P4 特征
7Conv620 × 20 × 256下采样至 P5 尺度
8C3k2720 × 20 × 256深层特征提取
9SPPF820 × 20 × 256扩大感受野
10C2PSA920 × 20 × 256强化重要区域和全局关系
11Upsample1040 × 40 × 256上采样
12Concat11 + 640 × 40 × 384拼接 Backbone P4
13C3k21240 × 40 × 128融合 P4
14Upsample1380 × 80 × 128上采样
15Concat14 + 480 × 80 × 256拼接 Backbone P3
16C3k21580 × 80 × 64最终 P3,小目标尺度
17Conv1640 × 40 × 64下采样
18Concat17 + 1340 × 40 × 192拼接中层特征
19C3k21840 × 40 × 128最终 P4,中目标尺度
20Conv1920 × 20 × 128下采样
21Concat20 + 1020 × 20 × 384拼接深层特征
22C3k22120 × 20 × 256最终 P5,大目标尺度
23Detect16 + 19 + 22P3 + P4 + P5预测类别和边界框

不同规模模型的通道数和模块重复次数不同,但 P3、P4、P5 的空间尺度关系相同。


6. Backbone 模块详解

6.1 Conv:卷积、归一化和激活

YOLO 中的Conv通常不只是一次裸卷积,而是一个组合模块。它负责:

提取局部特征 + 调整通道数 + 在 stride=2 时完成下采样

每次 stride=2 后,特征图宽高大约减半,通道数通常增加。这样网络逐步把高分辨率图像压缩成更抽象的语义表示。

6.2 先回忆 YOLOv8 的 C2f

C2f 延续 CSP 思想。核心逻辑是:

输入特征 ↓ 卷积并拆分通道 ├───────────────┐ │ │ ▼ ▼ 保留部分特征 经过 Bottleneck 逐步加工 │ │ └──────┬────────┘ ▼ Concat │ ▼ 卷积融合

它让一部分特征快速传递,另一部分特征进行更深入计算,在表达能力和计算成本之间取得平衡。

6.3 YOLO11 的 C3k2

YOLO11 大量使用C3k2。从官方源码看,C3k2继承自C2f,仍然保留“拆分—加工—拼接—融合”的总体框架,但重写了内部模块组合方式。

可以简化理解为:

输入 x │ ▼ 卷积并拆分 ├─────────────────┐ │ │ ▼ ▼ 快捷传递分支 深层加工分支 │ ├─ 普通 Bottleneck │ 或 └─ C3k 模块 │ │ └────────┬────────┘ ▼ Concat │ ▼ 卷积融合

标准yolo11.yaml中可以看到:

C3k2,[256,False,0.25]C3k2,[512,False,0.25]C3k2,[512,True]C3k2,[1024,True]

这里的TrueFalse主要控制内部是否使用C3k路径。浅层通常偏轻量,深层允许使用更充分的特征提取结构。

常见误区:k2不是 2 × 2 卷积核

C3k2不能机械理解为“使用 2 × 2 卷积核”。官方源码中,它是一个继承C2f的复合模块名称。重点在内部组合方式,而不是简单更换卷积核尺寸。

6.4 SPPF:低成本扩大感受野

SPPF 位于 Backbone 后部。它通过连续最大池化与特征拼接,让网络以较低开销汇集不同范围的信息。

深层输入 ├─ 原始特征 ├─ 池化一次 ├─ 池化两次 └─ 池化三次 ↓ Concat ↓ 卷积融合

直觉上,网络不仅看到某个局部纹理,还能同时看到更大范围的上下文。

6.5 C2PSA:深层注意力模块

YOLO11 在 SPPF 后增加C2PSA

C3k2 → SPPF → C2PSA → Neck

C2PSA 会先将特征拆成两个分支:

输入特征 │ ▼ 1 × 1 Conv │ ▼ 按通道拆分 ├──────────────────────┐ │ │ ▼ ▼ 分支 A:直接保留 分支 B:多个 PSABlock │ ├─ Attention └─ FFN │ │ └───────────┬──────────┘ ▼ Concat │ ▼ 1 × 1 Conv │ ▼ 输出

PSABlock 内部包含注意力模块和前馈网络,并使用残差连接。注意力部分会生成 Q、K、V,计算不同空间位置之间的相关性,并加入位置编码相关卷积。

为什么把 C2PSA 放在深层?假设输入为640 × 640,P5 特征图通常只有20 × 20。在低分辨率特征图上建模全局关系,成本比在浅层高分辨率特征图上做注意力更可控。


7. Neck:为什么要多尺度融合?

仅靠 Backbone 不够。浅层和深层特征各有优缺点:

特征层级优势不足
浅层空间细节丰富,定位更精细语义较弱
深层语义更强,容易识别目标整体空间分辨率较低

YOLO11 的 Neck 采用类似 FPN + PAN 的双向融合路径。

7.1 自顶向下:把深层语义传给浅层

深层 P5 ↓ Upsample 与 Backbone P4 拼接 ↓ C3k2 融合 P4 ↓ Upsample 与 Backbone P3 拼接 ↓ C3k2 最终 P3

7.2 自底向上:把定位信息重新传回深层

最终 P3 ↓ stride=2 Conv 与中间 P4 拼接 ↓ C3k2 最终 P4 ↓ stride=2 Conv 与深层 P5 拼接 ↓ C3k2 最终 P5

最后得到:

P3:更适合小目标 P4:兼顾语义和细节 P5:更适合较大目标

8. Detect Head:YOLO11 如何预测边界框?

8.1 Anchor-Free 到底是什么意思?

YOLOv5 是 Anchor-Based。每个网格位置会关联若干预先设定的 Anchor 宽高模板,网络再预测相对于模板的偏移量。

YOLO11 与 YOLOv8 类似,采用 Anchor-Free 思路。它不依赖预设 Anchor 框宽高,而是围绕特征图上的参考点预测四条边距离:

左边距离:l 上边距离:t 右边距离:r 下边距离:b

参考点坐标为(cx, cy)时:

x1 = cx - l y1 = cy - t x2 = cx + r y2 = cy + b

源码中仍然会出现make_anchorsanchor_points等命名,但这些是网格参考点,不是 YOLOv5 那种预设 Anchor 框模板。

8.2 参考点位于哪里?

官方源码使用grid_cell_offset=0.5生成参考点,即参考点位于每个网格单元的中心附近:

0.5, 1.5, 2.5, 3.5, ...

在不同尺度上解码后,还需要乘以相应 stride,映射回输入图尺度。

8.3 每个位置输出多少个数?

当前标准 Detect Head 默认:

reg_max = 16 输出通道数 = nc + 4 × reg_max

其中:

nc:类别数量 4:左、上、右、下四条边 16:每条边的离散分布桶数量

对于 COCO 的 80 类检测:

4 × 16 + 80 = 144

每个参考点输出 144 个数。

对于自定义 3 类任务:

4 × 16 + 3 = 67

每个参考点输出 67 个数。

8.4 YOLO11 是否单独预测 Objectness?

标准 YOLO11 Detect Head 的输出通道公式是:

nc + 4 × reg_max

不是:

1 + nc + 4 × reg_max

因此,它没有 YOLOv5 风格的独立 Objectness 输出通道。推理时,分类分支经过 Sigmoid 得到类别分数,再进行阈值筛选和后处理。


9. DFL:为什么每条边要预测 16 个数?

DFL 即 Distribution Focal Loss 相关的分布式回归思路。

传统方式可能直接回归:

l = 4.05

DFL 不直接输出单一浮点数,而是预测多个离散位置的概率分布。例如左边距离的部分概率为:

离散位置概率
30.15
40.65
50.20

最终通过期望值恢复连续距离:

l = 3 × 0.15 + 4 × 0.65 + 5 × 0.20 = 4.05

这样既保留离散分类形式的稳定性,又能得到连续值。

9.1 为什么默认是 16?

这是表达能力和计算成本之间的工程折中:

reg_max回归输出通道数特点
84 × 8 = 32更轻量,但表达能力较弱
164 × 16 = 64官方默认折中
324 × 32 = 128表达能力更强,但计算量、显存和输出通道更多

16不是数学上的唯一正确答案,而是实用默认值。


10. YOLO11 训练阶段完整流程

可以把训练过程拆成六步:

读取图片和标签 ↓ 数据增强与预处理 ↓ Backbone + Neck + Detect 前向传播 ↓ 生成不同尺度上的参考点 ↓ Task-Aligned Assigner 分配正负样本 ↓ 计算 Box、Cls、DFL 损失 ↓ 反向传播更新参数

10.1 数据增强

Ultralytics 训练管线支持 Mosaic、MixUp、随机透视变换、颜色调整等增强方式。实际项目中需要根据任务特征控制增强强度。例如医学图像中,过度颜色扰动、翻转或形变可能破坏业务语义。

10.2 Task-Aligned Assigner

一张640 × 640输入图上有 8400 个参考点。训练时需要判断:哪些位置负责学习某个真实目标?

Task-Aligned Assigner 不只是看参考点是否落入真实框,而是综合分类预测质量和定位质量,挑选更合适的正样本。

直觉上:

候选点很多 ↓ 优先选择: 分类更像目标 并且 预测框位置更准确 的参考点 ↓ 作为正样本参与训练

10.3 三类主要损失

YOLO11 标准检测训练主要计算:

损失项作用
Box Loss让预测框与真实框更接近,包含 IoU 类定位损失
Classification Loss让类别预测更准确,当前实现使用 BCE
DFL Loss让四条边的距离分布更合理

最终损失按超参数权重加权,再反向传播。

10.4 为什么源码里仍然能看到v8DetectionLoss

YOLO11 标准检测模型仍然复用了成熟的检测损失框架,因此源码类名中可能保留v8DetectionLoss。这不代表加载的是 YOLOv8。

工程源码中,类名经常为了兼容性和复用而保留。判断实际模型时,应结合 YAML、模型构建逻辑和运行配置。


11. YOLO11 推理阶段完整流程

标准推理可以拆成以下步骤:

输入图片 ↓ 缩放、填充、归一化等预处理 ↓ Backbone 提取多层特征 ↓ Neck 融合 P3、P4、P5 ↓ Detect Head 输出边界框分布和类别分数 ↓ DFL:将每条边的离散分布转换为连续距离 ↓ 结合参考点和 stride 解码边界框 ↓ 分类 Logits 经过 Sigmoid ↓ 置信度筛选 ↓ NMS 去除重复框 ↓ 恢复到原始图像坐标

11.1 为什么需要 NMS?

同一个真实目标附近通常会有多个参考点输出高分候选框。例如一只猫附近可能有:

框 A:0.93 框 B:0.88 框 C:0.84

这些框高度重叠。NMS 会优先保留高分框,并根据 IoU 重叠程度抑制重复预测。

11.2 标准 YOLO11 是不是 NMS-Free?

不是。当前通用 Detect 实现中可以看到可选的端到端模式,但标准yolo11.yaml调用 Detect 时没有开启该选项。因此,学习标准 YOLO11 检测模型时,应按经典 NMS 后处理流程理解。


12. YOLO11 和 YOLOv8 的详细对比

12.1 结构对比

对比项YOLOv8YOLO11影响
Backbone 主模块C2fC3k2改进特征提取效率与灵活性
Neck 主模块C2fC3k2改进多尺度融合阶段的特征加工
Backbone 末端SPPFSPPF → C2PSA增强深层注意力与全局关系建模
检测尺度P3、P4、P5P3、P4、P5保持多尺度检测能力
Anchor 框模板不使用不使用均为 Anchor-Free
边框表达l、t、r、b + DFLl、t、r、b + DFL基本延续
正负样本分配Task-AlignedTask-Aligned基本延续
标准后处理NMSNMS基本延续

12.2 Backbone 并排图

YOLOv8 Backbone YOLO11 Backbone 输入 输入 │ │ ▼ ▼ Conv Conv │ │ ▼ ▼ Conv Conv │ │ ▼ ▼ C2f C3k2 │ │ ▼ ▼ Conv Conv │ │ ▼ ▼ C2f C3k2 │ │ ▼ ▼ Conv Conv │ │ ▼ ▼ C2f C3k2 │ │ ▼ ▼ Conv Conv │ │ ▼ ▼ C2f C3k2 │ │ ▼ ▼ SPPF SPPF │ ▼ C2PSA

12.3 Neck 并排图

YOLOv8 Neck YOLO11 Neck Upsample Upsample │ │ Concat Concat │ │ C2f C3k2 │ │ Upsample Upsample │ │ Concat Concat │ │ C2f C3k2 │ │ Conv Conv │ │ Concat Concat │ │ C2f C3k2 │ │ Conv Conv │ │ Concat Concat │ │ C2f C3k2

12.4 官方 COCO 检测基准

模型YOLO11 mAP50-95YOLOv8 mAP50-95YOLO11 参数量YOLOv8 参数量YOLO11 FLOPsYOLOv8 FLOPs
n39.537.32.6M3.2M6.5B8.7B
s47.044.99.4M11.2M21.5B28.6B
m51.550.220.1M25.9M68.0B78.9B
l53.452.925.3M43.7M86.9B165.2B
x54.753.956.9M68.2M194.9B257.8B

这些结果说明 YOLO11 的优化方向不是简单堆叠更大的网络,而是在更少参数和计算量下提升精度。


13. YOLO11 不同规模如何选择?

官方标准检测模型基准如下:

模型mAP50-95参数量FLOPsT4 TensorRT10 推理耗时
YOLO11n39.52.6M6.5B1.5 ms
YOLO11s47.09.4M21.5B2.5 ms
YOLO11m51.520.1M68.0B4.7 ms
YOLO11l53.425.3M86.9B6.2 ms
YOLO11x54.756.9M194.9B11.3 ms

实际选择建议:

场景建议起点
快速验证、边缘设备、CPU 或弱算力设备YOLO11n
大多数项目的初始精度与速度平衡YOLO11s
GPU 服务端、希望进一步提高精度YOLO11m
算力较充足且精度优先YOLO11l
研究、高算力环境或精度压榨YOLO11x

真实部署速度还会受到输入分辨率、Batch Size、硬件、导出格式、预处理和后处理实现影响。官方延迟只能作为基准参考。


14. 自定义数据集与训练示例

14.1 检测标签格式

常见 YOLO 检测标签文件中,每一行为:

class_id x_center y_center width height

其中坐标通常归一化到0~1

示例:

0 0.512 0.486 0.320 0.275

14.2 数据集 YAML

path:/path/to/datasettrain:images/trainval:images/valnames:0:tongue1:sublingual2:invalid

14.3 Python 训练、验证与推理

fromultralyticsimportYOLO# 加载 COCO 预训练权重model=YOLO("yolo11n.pt")# 训练model.train(data="dataset.yaml",epochs=100,imgsz=640,)# 验证metrics=model.val()print(metrics.box.map)# mAP50-95# 推理results=model("test.jpg")# 查看模型摘要model.info()# 查看 PyTorch 网络结构print(model.model)

14.4 导出 ONNX

fromultralyticsimportYOLO model=YOLO("best.pt")model.export(format="onnx")

实际部署时,还可以根据平台选择 TensorRT、OpenVINO、TFLite 等格式。导出后仍需验证数值一致性、后处理正确性和真实端到端性能。


15. 常见误区集中纠正

常见误区正确理解
YOLO11 只替换了 Backbone 的 C2f不完整。Backbone 和 Neck 中大量 C2f 都换成了 C3k2
C3k2表示 2 × 2 卷积核错。它是复合模块名称,不应机械按卷积核尺寸理解
Anchor-Free 意味着源码里完全没有 anchor 字样错。源码仍有anchor_points,但它们是网格参考点,不是预设 Anchor 框模板
YOLO11 仍然有 YOLOv5 那样独立 Objectness 输出标准 Detect Head 没有单独 Objectness 通道
C2PSA 分布在所有特征层标准 YOLO11 中,它位于 Backbone 末端 SPPF 后
YOLO11 完全重新设计了 Detect Head不准确。核心 Anchor-Free、DFL 和 P3/P4/P5 检测逻辑基本延续 YOLOv8
标准 YOLO11 是 NMS-Free错。标准yolo11.yaml仍按经典 NMS 流程理解
YOLO11 有官方正式论文官方文档明确说明没有单独正式论文,应以官方文档和源码为准

16. 源码阅读顺序

推荐按下面顺序阅读,不要一上来钻进全部源码:

1. ultralytics/cfg/models/11/yolo11.yaml ↓ 2. ultralytics/nn/modules/block.py 重点:C3k2、C3k、SPPF、C2PSA、PSABlock、Attention ↓ 3. ultralytics/nn/modules/head.py 重点:Detect、DFL、解码逻辑 ↓ 4. ultralytics/utils/tal.py 重点:make_anchors、dist2bbox、TaskAlignedAssigner ↓ 5. ultralytics/utils/loss.py 重点:v8DetectionLoss、BboxLoss、DFLoss ↓ 6. ultralytics/nn/tasks.py 重点:模型构建、损失函数初始化

阅读时始终围绕三个问题:

张量尺寸怎样变化? 特征来自哪一层? 这一模块解决了什么问题?

17. 最终速记卡

17.1 网络结构速记

YOLO11 = YOLOv8 检测逻辑 + Backbone / Neck:C2f → C3k2 + Backbone 末端:SPPF → SPPF + C2PSA

17.2 检测头速记

输入:P3、P4、P5 参考点数:80² + 40² + 20² = 8400(输入 640 时) 每个点回归:l、t、r、b 每条边:16 个分布值 每个点输出:4 × 16 + nc 标准 Head:没有独立 Objectness 通道

17.3 训练速记

前向传播 → 生成参考点 → Task-Aligned Assigner 分配正样本 → Box Loss + Classification Loss + DFL Loss → 反向传播

17.4 推理速记

预处理 → Backbone → Neck → Detect → DFL 解码 → 参考点 + stride 恢复框 → Sigmoid 类别分数 → 置信度筛选 → NMS → 输出结果

18. 官方资料索引

以下资料适合作为后续查阅入口:

  1. YOLO11 官方模型说明:https://docs.ultralytics.com/models/yolo11/
  2. YOLO11 官方 YAML:https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/models/11/yolo11.yaml
  3. YOLOv8 官方 YAML:https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/models/v8/yolov8.yaml
  4. YOLO11 与 YOLOv8 官方对比:https://docs.ultralytics.com/compare/yolo11-vs-yolov8/
  5. Block 模块参考:https://docs.ultralytics.com/reference/nn/modules/block/
  6. Detect Head 参考:https://docs.ultralytics.com/reference/nn/modules/head/
  7. Task-Aligned Assigner 与参考点工具:https://docs.ultralytics.com/reference/utils/tal/
  8. 损失函数参考:https://docs.ultralytics.com/reference/utils/loss/
  9. 导出模式:https://docs.ultralytics.com/modes/export/
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 21:23:10

互联网赚钱底层逻辑,队长创业记:与其加班不如学这个 今天写的是我自己折腾了好几年,才真正想明白互联网赚钱的底层逻辑是什么。认真看完大概5分钟,如果你也在靠加班撑收入,这篇可能让你想清楚一件事。 我叫小

今天写的是我自己折腾了好几年,才真正想明白互联网赚钱的底层逻辑是什么。认真看完大概5分钟,如果你也在靠加班撑收入,这篇可能让你想清楚一件事。 我叫小江,31岁,在湖南一个县级公路局做路况巡检,说白了就…

作者头像 李华
网站建设 2026/6/6 21:22:36

山东闱进教育:【常识】“四不两直”工作法

“四不两直”是一种强调务实、注重实效的工作方式,主要用于调研、检查等场景,旨在获取真实情况、发现问题并推动工作落实。以下是其具体介绍:一、核心含义1.“四不”:(1)不发通知:检查或调研前不…

作者头像 李华
网站建设 2026/6/6 21:21:25

向量引擎的实际应用边界在哪?跨场景落地踩坑全复盘

先回答几个我被问得最多的问题: “向量引擎是什么东西?跟普通搜索有啥区别?” “听起来很高大上,小白能上手吗?” “我又不是做AI的,这玩意跟我有啥关系?” “值不值得折腾?会不会又…

作者头像 李华
网站建设 2026/6/6 21:21:05

【JS逆向】亚马逊 aws-waf-token盾

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包 内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!侵权通过头像私信或名字简介叫我删除博…

作者头像 李华
网站建设 2026/6/6 21:18:36

一文读懂 Android 项目目录结构

第一次用 Android Studio 打开项目,左侧那一长串 app、res、manifests、gradle、build,是不是有点眼花? 其实可以把一个 Android 工程想象成盖房子:AndroidManifest.xml 是报建蓝图,java/kotlin 是水电管线&#xff08…

作者头像 李华
网站建设 2026/6/6 21:12:33

CSAPP=并发编程

<?php // CSAPP 第12章 并发编程 - PHP 大白话演示 // I/O多路复用用 stream_select 真做; 线程/信号量用逻辑模拟讲清语义 declare(strict_types1); function T($n,$t){ echo "\n {$n}. {$t} \n"; }// 并发三大流派总览 echo "并发编程三大流派:\n"…

作者头像 李华