YOLOv8 与 YOLO11:实时目标检测的演进
选择合适的计算机视觉架构是一个关键决策,它会影响您 AI 项目的速度、准确性和可扩展性。本指南对 Ultralytics YOLOv8(一个于 2023 年发布的广泛采用的行业标准)和 Ultralytics YOLO11(YOLO 系列的最新演进,旨在实现卓越效率和性能)进行了深入的技术比较。我们将分析它们的架构差异、基准指标和理想用例,以帮助您选择最适合您需求的模型。
Ultralytics YOLOv8
作者: Glenn Jocher, Ayush Chaurasia, and Jing Qiu
机构:Ultralytics
日期: 2023-01-10
GitHub:https://github.com/ultralytics/ultralytics
文档:https://docs.ultralytics.com/models/yolov8/
YOLOv8于2023年初发布,标志着目标检测历史上的一个重要里程碑。它引入了一个统一的框架,支持多种计算机视觉任务——包括检测、实例分割、姿势估计和图像分类——所有这些都在一个代码库中。YOLOv8从基于锚点的检测转向了无锚点方法,这简化了设计并提高了对不同物体形状的泛化能力。
架构和主要特性
YOLOv8 将YOLOv5中的 C3 模块替换为C2f 模块(带有两个卷积的跨阶段部分瓶颈)。这一改变改善了梯度流和特征整合,同时保持了轻量级的占用。该架构还具有解耦头,将目标性、分类和回归任务分离以提高准确性。
优势与劣势
- 优势:
- 成熟的生态系统:拥有大量社区教程、集成和部署指南的支持。
- 多功能性:原生支持旋转框检测 (Oriented Bounding Box) 和分类,以及标准 detect。
- 经验证的稳定性:对于需要具有长期良好记录的模型生产环境来说,这是一个安全的选择。
- 弱点:
- 速度效率: 尽管速度快,但在CPU推理速度和参数效率方面,它被YOLO11超越。
- 计算要求:较大的变体(L、X)与优化的 YOLO11 等效模型相比,需要更多的 VRAM 和 FLOPs。
from ultralytics import YOLO
# Load a pretrained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model on a custom dataset
model.train(data="coco8.yaml", epochs=50, imgsz=640)
Ultralytics YOLO11
作者: Glenn Jocher and Jing Qiu
机构:Ultralytics
日期: 2024-09-27
GitHub:https://github.com/ultralytics/ultralytics
文档:https://docs.ultralytics.com/models/yolo11/
YOLO11代表了Ultralytics模型家族的尖端技术。它旨在重新定义实时推理,建立在YOLOv8的成功之上,并引入了重大的架构改进。YOLO11专注于最大化精度同时最小化计算成本,使其成为从边缘设备到云服务器的现代AI应用的卓越选择。
架构和主要特性
YOLO11 引入了 C3k2 块和 C2PSA(带空间注意力的跨阶段部分)模块。这些组件增强了模型提取复杂特征和比先前迭代更有效地处理遮挡的能力。该架构针对速度进行了优化,在 CPU 上提供了显著更快的处理时间——这对于 GPU 资源可能不可用的边缘 AI 部署来说是一个关键因素。
该模型保持了 Ultralytics 的统一接口特性,确保开发人员可以在obb或 segment 等任务之间切换而无需改变其工作流程。
优势与劣势
- 优势:
- 卓越的效率:与 YOLOv8 相比,在实现更高 mAP 的同时,参数量最多减少了22%,从而减小了模型大小并降低了存储需求。
- 更快的推理:专为现代硬件优化,在CPU和GPU后端均提供更快的速度。
- 增强型特征提取: 新的骨干网络改进了小目标检测以及在杂乱场景中的性能。
- 内存使用量更低:与RT-DETR等基于Transformer的模型相比,训练期间所需的CUDA内存更少,从而可以在更易获得的硬件上进行训练。
- 弱点:
- 更新版本:作为最新模型,特定的利基第三方工具可能需要时间才能完全更新支持,尽管核心 Ultralytics 生态系统从第一天起就支持它。
from ultralytics import YOLO
# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
results[0].show()
性能正面交锋
以下比较突出了 YOLO11 的效率提升。尽管 YOLOv8 仍然是一个强劲的竞争者,YOLO11 始终以更低的计算复杂度(FLOPs)和更快的推理速度提供更高的精度(mAP)。这在“Nano”和“Small”模型中尤为明显,其中 YOLO11n 达到了 39.5 mAP,而 YOLOv8n 为 37.3,同时在 CPU 上运行速度显著更快。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 |
指标分析
YOLO11 在速度-精度权衡方面展现出明显优势。例如,YOLO11l 模型在精度上超越了 YOLOv8l(+0.5 mAP),同时参数量减少了约42%,并在 CPU 上运行速度提升了 36%。
生态系统与易用性
两种模型都受益于强大的Ultralytics 生态系统,该系统旨在通过使最先进的技术人人可及来普及 AI。
- 统一 API: 在 YOLOv8 和 YOLO11 之间切换就像更改模型字符串一样简单,从
yolov8n.pt到yolo11n.pt。无需重构代码。 - 训练效率:Ultralytics 提供自动下载数据集和预训练权重,简化了从数据收集到模型训练的流程。
- 部署多功能性:两种模型都支持一键导出为 ONNX、TensorRT、CoreML 和 TFLite 等格式,便于在包括树莓派、手机和云实例在内的各种硬件上进行部署。
- 良好维护:频繁更新确保与最新版本的PyTorch和CUDA兼容,并得到Discord和GitHub上活跃社区的支持。
结论与建议
尽管 YOLOv8 仍然是一个可靠且功能强大的模型,适用于维护现有系统,但对于所有新开发而言,YOLO11 显然是首选。
- 如果您需要最高的准确性、更快的推理速度(尤其是在 CPU 上),或者正在部署到内存和存储资源宝贵的资源受限边缘设备,请选择 YOLO11。其架构改进为商业应用提供了面向未来的基础。
- 如果您有一个现有流水线,该流水线已针对 v8 特定行为进行了大量优化,或者受到严格的项目要求限制,无法更新到最新架构,请选择 YOLOv8。
对于那些有兴趣探索其他架构的用户,Ultralytics 文档还涵盖了 YOLOv9、YOLOv10 和 RT-DETR 等模型。您可以在我们的模型比较页面上查看更广泛的比较。