各版本 YOLO 模型输出结构详细解析(YOLOv5/YOLOv8/YOLOv10/YOLO11/YOLO12/)

在不同版本的 YOLO 模型中,网络结构不断演进,因此输出张量的维度和含义也有所变化。

各版本 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)

✔ YOLOv5 采用“anchor-based”预测,因此输出较长。


YOLOv8 / YOLO11 / YOLO12 输出格式

三者输出结构一致(均为 anchor-free)

输出维度:float[1, 84, 8400]

  • 1:batch size

  • 84:每个预测包含

    • 4 个边界框参数:x, y, w, h
    • 80 个类别置信度(无 objectness)
  • 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] ✘ 无 ✘ 不需要 直接输出最终框,更适合部署