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 内存,大幅降低了硬件门槛。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 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.6 |
| YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.1 |
| YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 87.2 |
| YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 195.3 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
从结果可以看出,YOLO11 实现了极具优势的性能平衡,在参数量相近的情况下,mAP 得分始终高于对应的 YOLOv5 模型。
训练方法与易用性#
Ultralytics 理念的核心要义之一是出色的易用性,这得益于维护良好的生态系统和广泛的社区支持。
YOLOv5 过去主要通过功能完善的命令行界面(CLI)脚本(train.py、detect.py)运行。虽然功能强大,但要将这些脚本直接集成到自定义 Python 应用中,往往需要采用变通方案。
YOLO11 基于精简的 ultralytics Python 包构建(随 YOLOv8 推出)。这个统一的 API 可原生处理从训练到导出模型为 ONNX、OpenVINO 和 TensorRT 等格式的所有流程。
开发者可以使用 Ultralytics Platform,以完全免代码的方式标注数据、在云端训练模型,并将模型无缝部署到边缘设备。
代码对比#
如今,训练 Ultralytics 模型非常高效。下面介绍如何使用原生 Python API 训练 YOLO11:
from ultralytics import YOLO
# 加载预训练的 YOLO11 small 模型
model = YOLO("yolo11s.pt")
# 使用自定义数据训练模型
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device=0)
# 将模型导出为 ONNX,以便部署
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=False跳过非极大值抑制(NMS)后处理,从而实现更快、更简单的部署。 - 移除 DFL:移除了分布焦点损失,简化模型导出,并增强对低功耗设备的兼容性。
- MuSGD 优化器:这是 SGD 和 Muon 的创新混合方案,将 LLM 训练的稳定性带入计算机视觉领域,加快收敛。
- CPU 推理速度最高提升 43%:针对物联网部署和没有专用 GPU 的设备进行了深度优化。
- ProgLoss + STAL:大幅改进的损失函数显著提升了小目标识别能力,这对无人机航拍影像至关重要。
总结#
选择 YOLO11 还是 YOLOv5,最终取决于项目所处的生命周期阶段。YOLOv5 的历史地位毋庸置疑,它稳定性极高,也拥有庞大的社区支持。不过,对于任何新项目,我们都强烈推荐 YOLO11,而非更早的版本。它结合了前沿的准确率、优雅易用的 Python API 和更低的训练内存开销,进一步巩固了 Ultralytics 在 AI 创新前沿的地位。如果你希望进一步突破极限,不妨在 Ultralytics Platform 上探索先进的 YOLO26,获得出众的效果。