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 是早期的 YOLO 模型,基于 PyTorch 原生构建,采用 CSPNet(跨阶段局部网络)主干网络和 PANet(路径聚合网络)颈部网络。它采用基于锚框的检测,需要使用预定义的锚框来预测目标边界。尽管效果出色,但为自定义计算机视觉数据集调整这些锚框可能很繁琐。
相比之下,YOLO11 采用无锚框检测方法,无需手动调整锚框,从而简化了训练流程,并提升了模型在COCO 数据集等多样化数据集上的泛化能力。此外,YOLO11 采用解耦检测头,将分类和边界框回归任务分别放在不同分支中处理。这种分离能加快收敛速度并提升平均精度均值 (mAP),尤其适用于复杂的目标检测场景。
性能指标与基准测试#
下表对比了不同模型尺寸的关键指标。这两种 Ultralytics 模型的内存需求都较低,训练时通常比基于 Transformer 的替代模型消耗更少的 CUDA 内存,从而降低了硬件使用门槛。
| 模型 | 尺寸 (像素) | mAPval50-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 都更高。例如,YOLO11m 使用 20.1M 个参数达到 51.5 mAP,而 YOLOv5m 使用 21.2M 个参数达到 45.4 mAP。YOLOv5n、YOLOv5s 和 YOLOv5m 在 T4 TensorRT 上的速度略快,但准确率明显较低。
训练方法与易用性#
易用性是 Ultralytics 的核心理念之一,并由维护完善的生态和广泛的社区支持作为保障。
YOLOv5 过去主要依靠命令行界面 (CLI) 脚本 (train.py、detect.py) 执行。虽然功能强大,但要将这些脚本直接集成到自定义 Python 应用中,通常需要采用变通方法。
YOLO11 基于精简的 ultralytics Python 包构建(随 YOLOv8 推出)。这个统一的 API 可原生处理从训练到导出模型为 ONNX、OpenVINO 和 TensorRT 等格式的所有流程。
对于无代码工作流,开发者可以使用 Ultralytics Platform 标注数据、在云端训练模型,并将模型部署到边缘设备。
代码对比#
以下示例展示了如何使用 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%: YOLO26n 在 CPU 上的运行速度最高比 YOLO11n 快 43%,适合物联网部署和没有专用 GPU 的设备。
- ProgLoss + STAL: 渐进损失和小目标感知标签分配 (STAL) 可提升小目标识别能力,这对无人机航空影像至关重要。
总结#
最终,在 YOLO11 和 YOLOv5 之间做选择,取决于你项目所处的生命周期阶段。YOLOv5 稳定可靠,社区规模庞大。在这两者之间,YOLO11 更适合新项目,它准确率更高、Python API 更简单,并且支持更多任务。若想获得当前最佳准确率和 CPU 速度,可从 YOLO26 开始;你也可以在 Ultralytics Platform 上训练和部署 YOLO26。