YOLO11 与 YOLOv5#
选择正确的神经网络架构对于任何计算机视觉项目来说都是一个关键决定。随着人工智能领域的不断演进,开发者和研究人员可用的工具也在不断发展。这份全面的指南对来自Ultralytics生态系统的两个具有里程碑意义的模型进行了深入的技术比较:备受赞誉的YOLOv5和先进的YOLO11。
无论你是在为边缘AI应用部署轻量级模型,还是在云GPU上处理高分辨率视频流,理解这些模型的架构细微差别、性能指标以及理想用例,都将确保你针对特定的部署限制做出基于数据的选择。
模型传承与技术细节#
这两款模型都体现了 Ultralytics 对开源协作、强大性能和卓越易用性的承诺,这使它们深受全球机器学习社区的青睐。
YOLO11 详情#
- 作者:Glenn Jocher 和 Jing Qiu
- 组织:Ultralytics
- 日期:2024-09-27
- GitHub: ultralytics/ultralytics
- Docs: YOLO11 文档
YOLOv5 详情#
- 作者:Glenn Jocher
- 组织:Ultralytics
- 日期:2020-06-26
- GitHub: ultralytics/yolov5
- 文档:YOLOv5 Documentation
架构差异#
从 YOLOv5 到 YOLO11 的演进引入了多项重大的架构转变,旨在优化准确性和参数效率。
YOLOv5曾是PyTorch生态系统中的先驱,引入了高度优化的CSPNet(跨阶段局部网络)主干网和PANet(路径聚合网络)颈部。它依赖于基于锚框的检测,需要预定义的锚框来预测目标边界。尽管非常有效,但针对自定义计算机视觉数据集微调这些锚框可能会比较繁琐。
相比之下,YOLO11转向了更现代的无锚框检测范式。这省去了手动调整锚框的需求,简化了训练过程,并提高了在诸如COCO dataset等各种数据集上的泛化能力。此外,YOLO11采用了解耦头,这意味着分类和边界框回归任务在不同的分支中处理。这种分离显著提高了收敛速度和平均准确率均值 (mAP),特别是对于复杂的目标检测场景。
性能指标与基准#
下表对比了不同模型大小的关键指标。Ultralytics 模型以其内存需求而闻名,与繁重的 Transformer 类模型相比,它们在训练期间通常消耗更少的 CUDA 内存,这大大降低了硬件准入门槛。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | 参数量 (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 平台来标注数据、在云端训练模型,并无缝将其部署到边缘设备。
代码对比#
现在训练一个 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%: 针对物联网部署以及没有专用GPU的设备进行了大量优化。
- ProgLoss + STAL: 显著改进的损失函数,在小目标识别方面取得了显著进步,这对无人机航拍图像至关重要。
总结#
在YOLO11和YOLOv5之间做出选择,最终取决于你项目的生命周期阶段。YOLOv5的传奇地位不可否认,它提供了极高的稳定性和庞大的社区支持。然而,对于任何新项目,强烈建议选择YOLO11而非旧版本。它结合了前沿的准确性、极其优雅的Python API以及较低的训练内存开销,巩固了Ultralytics在AI创新前沿的地位。对于那些将边界推得更远的人来说,在Ultralytics 平台上探索最先进的YOLO26将带来无与伦比的成果。