各版本 YOLO 模型输出结构详细解析(YOLOv5 / YOLOv8 / YOLO11 / YOLO12 / YOLOv10)
在不同版本的 YOLO 模型中,网络结构不断演进,因此输出张量的维度和含义也有所变化。下面按版本总结其典型 ONNX 输出格式,便于开发者在部署时解析模型结果。
YOLOv5 输出格式
输出维度:float[1, 25200, 85]
-
1:batch size
-
25200:总预测框数量
-
来自三尺度输出:
- 80×80 网格 → 6400 个
- 40×40 网格 → 1600 个
- 20×20 网格 → 400 个
- 合计 8400 个网格,每个网格 3 个 anchor: → 8400 × 3 = 25200 个预测框
-
-
85:每个框的属性
- 4 个边界框参数:
x, y, w, h - 1 个 objectness 置信度
- 80 个类别置信度(COCO)
- 4 个边界框参数:
✔ YOLOv5 采用“anchor-based”预测,因此输出较长。
YOLOv8 / YOLO11 / YOLO12 输出格式
三者输出结构一致(均为 anchor-free)
输出维度:float[1, 84, 8400]
-
1:batch size
-
84:每个预测包含
- 4 个边界框参数:
x, y, w, h - 80 个类别置信度(无 objectness)
- 4 个边界框参数:
-
8400:总候选框数量
- 来自 80×80 + 40×40 + 20×20 三尺度
- 每个网格只生成 1 个预测(anchor-free,因此不 ×3)
✔ YOLOv8/11/12 采用完全无 anchor 的 Decoupled Head,输出更紧凑。
YOLOv10 输出格式
YOLOv10 完全使用 Dynamic Head + NMS-free 设计,因此输出格式与传统 YOLO 不同。
输出维度:float[1, 300, 6]
模型直接输出 最终 300 个候选框(经过排序筛选后的 top 300):
- 每行 6 个数值:
索引 含义 0 x1(左上角横坐标) 1 y1(左上角纵坐标) 2 x2(右下角横坐标) 3 y2(右下角纵坐标) 4 score(置信度) 5 label(类别 ID)
✔ YOLOv10 的输出已经是筛选好的框,是 NMS-free 推理方式,不再像 YOLOv5/8 那样需要手动执行 NMS。
总结对比表
| 版本 | 输出张量大小 | Anchor? | 是否需要 NMS | 说明 |
|---|---|---|---|---|
| YOLOv5 | [1, 25200, 85] | ✔ 有 | ✔ 需要 | anchor-based,预测框最多 |
| YOLOv8 / 11 / 12 | [1, 84, 8400] | ✘ 无 | ✔ 需要 | anchor-free,更紧凑 |
| YOLOv10 | [1, 300, 6] | ✘ 无 | ✘ 不需要 | 直接输出最终框,更适合部署 |