YOLO11 与 YOLOv5#
选择合适的神经网络架构是任何计算机视觉项目的关键决策。随着人工智能领域不断发展,开发者和研究人员可用的工具也在持续演进。本综合指南将对Ultralytics生态中的两个里程碑式模型进行深入技术比较:备受推崇的 YOLOv5 和先进的 YOLO11。
无论你是在为边缘 AI应用部署轻量级模型,还是在云端 GPU 上处理高分辨率视频流,了解这些模型的架构细节、性能指标和理想应用场景,都能帮助你根据具体的部署约束做出数据驱动的选择。
模型沿革与技术细节#
这两个模型都体现了 Ultralytics 对开源协作、强劲性能和无与伦比易用性的承诺,因此深受全球机器学习社区青睐。
YOLO11 详情#
- 作者: Glenn Jocher 和 Jing Qiu
- 组织: Ultralytics
- 日期: 2024-09-27
- GitHub: ultralytics/ultralytics
- 文档: YOLO11 文档
YOLOv5 详情#
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub: ultralytics/yolov5
- 文档: YOLOv5 文档
架构差异#
从 YOLOv5 演进到 YOLO11 引入了多项重大的架构变化,旨在优化准确率和参数效率。
YOLOv5 是 PyTorch 生态中的先驱,引入了高度优化的 CSPNet(跨阶段部分网络)主干网络和 PANet(路径聚合网络)颈部网络。它依赖基于锚框的检测,需要预先定义锚框来预测目标边界。虽然这种方法非常有效,但针对自定义计算机视觉数据集调整锚框可能十分繁琐。
相比之下,YOLO11 转向了更现代的无锚框检测范式。这消除了手动调整锚框的需要,简化了训练流程,并提升了在包括 COCO 数据集在内的多样化数据集上的泛化能力。此外,YOLO11 采用了解耦头,这意味着分类和边界框回归任务在不同分支中分别处理。这种分离显著提升了收敛速度和平均精度(mAP),尤其适用于复杂的目标检测场景。
性能指标与基准测试#
下表对比了不同模型规模下的关键指标。Ultralytics 模型以较低的内存需求著称,与基于大型 Transformer 的替代方案相比,在训练期间通常消耗更少的 CUDA 内存,从而大幅降低了硬件入门门槛。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数量 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLO11n | 640 | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
| YOLO11s | 640 | 47.0 | 90.0 | 2.5 | 9.4 | 21.5 |
| YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.0 |
| YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 86.9 |
| YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 194.9 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
如图所示,YOLO11 实现了极具优势的性能平衡:在参数量与对应 YOLOv5 模型相当的情况下,始终能够取得更高的 mAP 分数。
训练方法与易用性#
Ultralytics 理念的核心原则之一是卓越的易用性,这得益于维护良好的生态系统和广泛的社区支持。
YOLOv5 历来依赖强大的命令行界面(CLI)脚本(train.py、detect.py)来执行。虽然功能强大,但要将这些脚本直接集成到自定义 Python 应用中,通常需要采用变通方案。
YOLO11 通过引入简洁的 ultralytics Python 软件包彻底改变了这一点。这个统一 API 原生支持从训练到导出模型为 ONNX、OpenVINO 和 TensorRT 等格式的全部流程。
如果你希望获得完全无需编写代码的体验,可以使用 Ultralytics Platform 标注数据、在云端训练模型,并将模型无缝部署到边缘设备。
代码比较#
如今,训练 Ultralytics 模型非常高效。下面介绍如何使用原生 Python API 训练 YOLO11:
from ultralytics import YOLO
# Load a pretrained YOLO11 small model
model = YOLO("yolo11s.pt")
# Train the model on custom data
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device=0)
# Export the model to ONNX for deployment
model.export(format="onnx")对于使用 YOLOv5 的旧版系统,通过 CLI 训练如下所示:
# Clone the repository and run the training script
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt
python train.py --img 640 --batch 16 --epochs 50 --data coco128.yaml --weights yolov5s.pt理想用例与实际应用#
这两个模型各具优势,分别适用于不同的运行环境。
何时使用 YOLOv5#
尽管新一代模型已经问世,YOLOv5 仍然十分强大。以下场景强烈推荐使用它:
- 旧版系统集成: 深度集成了 YOLOv5 特定张量结构或部署流水线、且难以轻松重构的环境。
- 学术基线: 需要成熟且长期沿用的基线,以便在医学图像分析学术研究中实现可复现性的研究人员。
何时使用 YOLO11#
凭借出色的通用性,YOLO11 是现代生产流水线的理想选择:
- 多任务环境: 与主要用于目标检测(后续增加了分割功能)的 YOLOv5 不同,YOLO11 原生支持实例分割、图像分类、姿态估计和定向边界框(OBB)检测,开箱即用。
- 高密度视频分析: 非常适合智能交通系统或零售库存管理等场景,在这些场景中,从复杂环境中提取最高精度至关重要。
展望未来:YOLO26 架构#
虽然 YOLO11 已成为卓越的标准,但计算机视觉前沿仍在快速发展。追求极致效率的开发者还应考虑最新的 Ultralytics YOLO26(于 2026 年 1 月发布)。
YOLO26 实现了巨大飞跃,专为边缘优化和企业级规模而设计。主要创新包括:
- 端到端无 NMS 设计: YOLO26 原生支持端到端处理,无需进行非极大值抑制(NMS)后处理,从而实现更快速、更简单的部署。
- 移除 DFL: 移除了 Distribution Focal Loss,从而简化模型导出并增强对低功耗设备的兼容性。
- MuSGD 优化器: SGD 与 Muon 的突破性混合方案,将 LLM 训练的稳定性带入计算机视觉领域,实现更快收敛。
- CPU 推理速度最高提升 43%: 针对物联网部署和没有专用 GPUs 的设备进行了深度优化。
- ProgLoss + STAL: 大幅改进的损失函数,可显著提升小目标识别能力,这对于空中无人机图像至关重要。
总结#
最终选择 YOLO11 还是 YOLOv5,取决于项目所处的生命周期阶段。YOLOv5 的历史地位毋庸置疑,它提供了极高的稳定性和庞大的社区支持。不过,对于任何新项目,我们都强烈推荐选择 YOLO11,而不是旧一代模型。它融合了尖端准确率、极其优雅的 Python API 和更低的训练内存开销,巩固了 Ultralytics 在 AI 创新前沿的地位。对于希望进一步突破极限的用户,在 Ultralytics Platform 上探索最先进的 YOLO26 将带来无与伦比的效果。