YOLOv8 与YOLO11:实时物体检测的演变
选择合适的计算机视觉架构是一项关键决策,会影响人工智能项目的速度、准确性和可扩展性。本指南对以下几种架构进行了深入的技术比较 Ultralytics YOLOv8和 Ultralytics YOLOv8 之间的深入技术比较。 Ultralytics YOLO11和 UltralyticsYOLO ,后者是YOLO 系列的最新进化版,旨在实现更高的效率和性能。我们将分析它们的架构差异、基准指标和理想用例,帮助您选择最适合您需求的型号。
Ultralytics YOLOv8
作者:Glenn Jocher、Ayush Chaurasia 和 Jing QiuGlenn Jocher、Ayush Chaurasia 和 Jing Qiu
组织机构:Ultralytics
日期:2023-01-10
GitHubultralytics
文档yolov8
YOLOv8 于 2023 年初发布,是物体检测历史上的一个重要里程碑。它引入了一个统一的框架,在一个单一的存储库中支持多种计算机视觉任务,包括检测、实例分割、姿势估计 和图像分类。YOLOv8 不再采用基于锚点的检测方法,而是采用了无锚点方法,从而简化了设计并提高了对不同物体形状的通用性。
架构和主要特性
YOLOv8 取代了YOLOv8 中的 C3 模块。 YOLOv5C2f 模块(带两个卷积的跨阶段部分瓶颈)。这一变化改进了梯度流和特征整合,同时保持了轻量级的足迹。该架构还采用了解耦头,将对象性、分类和回归任务分离开来,以提高准确性。
优势与劣势
- 优势:
- 成熟的生态系统:由大量社区教程、集成和部署指南提供支持。
- 多功能性:本机支持旋转框检测 (Oriented Bounding Box)和分类以及标准检测。
- 久经考验的稳定性:对于需要长期track 记录的机型的生产环境来说,这是一个安全的选择。
- 弱点:
- 速度效率:虽然速度很快,但在CPU 推理速度和参数效率方面,它比YOLO11 更胜一筹。
- 计算要求:与经过优化的YOLO11 同类产品相比,较大的变体(L、X)需要更多的 VRAM 和 FLOP。
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 和 Jing QiuGlenn Jocher 和 Jing Qiu
组织机构:Ultralytics
日期:2024-09-27
GitHubultralytics
文档yolo11
YOLO11代表了Ultralytics 模型系列的最前沿。它以YOLOv8 的成功为基础,引入了大量的架构改进,旨在重新定义实时推理。YOLO11 专注于最大限度地提高准确性,同时最大限度地降低计算成本,使其成为从边缘设备到云服务器等现代人工智能应用的首选。
架构和主要特性
YOLO11 引入了C3k2 块和C2PSA(跨阶段部分空间注意力)模块。与之前的迭代相比,这些组件增强了模型提取复杂特征和处理遮挡的能力。该架构针对速度进行了优化,大大加快了 CPU 的处理速度--这对于可能无法使用GPU 资源的边缘人工智能部署来说是一个关键因素。
该模型保持了Ultralytics 的统一界面特性,确保开发人员可以在以下任务之间进行切换 旋转框检测或细分,而无需改变工作流程。
优势与劣势
- 优势:
- 卓越的效率:以比YOLOv8 少 22% 的参数实现更高的mAP ,减少了模型大小和存储需求。
- 推理速度更快:专为现代硬件优化,CPU 和GPU 后端速度更快。
- 增强型特征提取:新的主干网提高了对小物体的检测能力和在杂乱场景中的性能。
- 内存占用更低:与transformer模型(如 RT-DETR等基于变换器的模型相比,在训练过程中需要更少的 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 的 mAP为39.5,而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.5mAP),而使用的参数却减少了约42%, CPU 运行速度提高了36%。
生态系统和易用性
这两种模式都得益于强大的Ultralytics 生态系统,该系统旨在通过让每个人都能使用最先进的技术来实现人工智能的民主化。
- 统一 API: 在YOLOv8 和YOLO11 之间切换非常简单,只需将模型字符串从
yolov8n.pt到yolo11n.pt.无需重构代码。 - 训练效率: Ultralytics 提供自动下载数据集和预训练权重,简化了从数据收集到模型训练的流程。
- 部署多样性:两种型号都支持一键导出为ONNX、TensorRT、CoreML 和TFLite 等格式,便于在树莓派、手机和云实例等不同硬件上部署。
- 维护良好:频繁更新确保与最新版本的PyTorch 和CUDA 兼容,并得到Discord和 GitHub 上活跃社区的支持。
结论与建议
虽然 YOLOv8仍然是一个可靠且功能强大的模型,适合维护遗留系统、 YOLO11是所有新开发项目的明确建议。
- 如果您有以下需求,请选择YOLO11 :您需要尽可能高的精确度、更快的推理速度(尤其是在CPU 上),或者需要部署到资源有限的边缘设备上,因为内存和存储空间非常宝贵。其架构改进为商业应用提供了面向未来的基础。
- 在以下情况下选择YOLOv8 您的现有管道已针对 v8 的特定行为进行了大量调整,或者受到严格的项目要求的限制,无法更新到最新的架构。
对于有兴趣探索其他架构的用户,Ultralytics 文档还涵盖了以下模型 YOLOv9, YOLOv10和 RT-DETR.您可以在我们的型号比较页面上查看更广泛的比较。