前言
YOLOv5,v8以及v11是YOLO系列比较经典的几个版本,这里进行简单的介绍并给出自己对三个版本之间的对比的浅薄理解。
YOLO
介绍
在介绍相关版本之前,先了解一下YOLO是什么。
YOLO是把目标检测当成一个端到端的回归问题,一次前向传播同时预测类别 + 位置。YOLO 将模型将整张图像一次性输入一个深度卷积神经网络,通过主干网络(Backbone)提取多层次特征,再由颈部网络(Neck)进行特征融合以同时兼顾大目标与小目标,最后在检测头(Head)上直接对每个特征点或网格位置进行预测,输出边界框的中心位置、宽高、目标存在的置信度以及类别概率,训练时通过将预测结果与真实标注计算定位损失、置信度损失和分类损失并反向传播更新参数,推理时对预测框进行阈值筛选和非极大值抑制(NMS)以去除重复框,从而在一次前向传播中完成目标定位与分类,实现端到端、实时的目标检测。
YOLOv5
YOLOv5 并不是 YOLO 官方论文序列中的一篇论文,而是 Ultralytics 主导的一个工程化重构版本。相比 YOLOv4 及之前版本,YOLOv5 最重要的变化不是“提出了新的检测思想”,而是把 YOLO 从“研究模型”变成了“可落地工程框架”。
在整体结构上,YOLOv5 延续了典型的 Backbone + Neck + Head 三段式结构,但对每一部分都做了更适合工程实现的设计。Backbone 使用了基于 CSP(Cross Stage Partial)思想的 C3 模块,在保证特征表达能力的同时显著降低了计算量;Neck 部分采用 FPN + PAN 结构,使高层语义信息和低层空间信息可以充分融合;Head 仍然是传统 YOLO 的锚框(Anchor-based)检测头。
相比之前版本,YOLOv5 的一个关键进步在于训练与部署体验。它全面使用 PyTorch 实现,代码结构清晰,支持自动混合精度训练(AMP)、自动 anchor 生成、丰富的数据增强(如 Mosaic、MixUp),并且天然适配 ONNX、TensorRT 等部署方案。这使得 YOLOv5 成为“工业界最常用的 YOLO 版本之一”。
YOLOv8
YOLOv8 的本质是向现代检测范式靠拢。
首先,YOLOv8 彻底移除了 Anchor 机制。在 YOLOv5 中,模型需要为不同尺度手工(或自动)设计 anchor,而 YOLOv8 改为直接预测目标中心点和宽高。这一变化显著降低了模型对先验框的依赖,使训练过程更稳定、超参数更少,也更容易迁移到新数据集。这一思路与 FCOS、CenterNet 等方法高度一致,说明 YOLO 开始系统性吸收“非 YOLO 系”检测方法的优势。
其次,YOLOv8 对检测头进行了解耦设计。在 YOLOv5 中,分类和回归共享大部分参数;而在 YOLOv8 中,这两条分支被明确拆分,使分类任务专注于“是什么”,回归任务专注于“在哪里”。这一改变明显提升了收敛速度和检测精度,尤其对小目标和密集目标更友好。
此外,YOLOv8 在损失函数、正负样本分配策略、训练流程上也做了系统优化,使模型在不显著增加参数量的前提下,取得了比 YOLOv5 更高的精度和更强的泛化能力。
YOLOv11
YOLOv11 的方向是:
- 更少参数
- 更强特征表达
- 更好硬件适配(尤其是边缘设备)
在 Backbone 和 Neck 设计上,YOLOv11 更加注重算子友好性和硬件效率。通过调整模块堆叠方式、简化部分冗余计算路径,使模型在 GPU 和边缘设备上的吞吐率进一步提升。这种优化并不一定显著改变网络“看起来的结构”,但在真实部署场景中效果非常明显。
在检测头和训练策略上,YOLOv11 延续了 YOLOv8 的 Anchor-free + 解耦头 思路,但在损失计算、标签分配、尺度建模等细节上做了更稳健的调整,使训练过程对数据噪声和不平衡分布更加鲁棒。这类改动往往不容易从结构图中直接看出来,但对大规模数据训练尤为重要。
对比
| 对比维度 | YOLOv5 | YOLOv8(相对 v5) | YOLOv11(相对 v8) |
|---|---|---|---|
| 检测范式 | Anchor-based | Anchor-free(重大变化) | Anchor-free(延续 v8) |
| Anchor 使用 | 需要预定义 anchor(可自动聚类) | ❌ 完全移除 anchor | ❌ 无 anchor |
| Head 结构 | 耦合头(分类+回归共用) | 解耦头(分类头 / 回归头分离) | 解耦头(进一步优化) |
| 框回归方式 | anchor 偏移回归 | 中心点 + 边界回归(ltrb) | 更稳定的边界回归策略 |
| Backbone | CSPDarknet | C2f(更轻量、梯度流更好) | 改进版 C2f / 更高效模块 |
| Neck | PAN-FPN | PAN-FPN(结构保留,细节优化) | 结构精简,特征融合更高效 |
| 损失函数 | CIoU + BCE | DFL + CIoU(更精细定位) | 改进的 IoU / 回归损失 |
| 训练稳定性 | 较依赖 anchor 设计 | 更稳定、更少超参数 | 稳定性和收敛速度进一步提升 |
| 推理速度 | 快 | 更快(anchor-free 减少分支) | 更快、更省显存 |
| 支持任务 | 检测为主 | 检测 / 分割 / 分类 / 姿态 | 多任务统一(进一步增强) |
| 工程友好性 | 成熟、社区大 | 结构更简洁,维护更容易 | 工程与部署友好度最高 |
| 核心进化关键词 | 工程化 Anchor YOLO | Anchor-free + 解耦头 | 效率 / 稳定性 / 统一性 |