模型对比:YOLOv8 vs YOLOv10 用于目标检测
选择合适的物体检测模型对于任何计算机视觉项目的成功至关重要。本页提供了 Ultralytics YOLOv8 和 YOLOv10 这两个领域内最先进模型之间的详细技术比较。我们将分析它们的架构细微差别、性能指标、训练方法和理想应用,以指导您根据您的特定需求做出明智的决定。
Ultralytics YOLOv8:通用性和成熟度
作者: Glenn Jocher, Ayush Chaurasia, 和 Jing Qiu
机构: Ultralytics
日期: 2023-01-10
GitHub: https://github.com/ultralytics/ultralytics
文档: https://docs.ultralytics.com/models/yolov8/
Ultralytics YOLOv8 由 Ultralytics 于 2023 年 1 月推出,是一个成熟且高度通用的模型,它建立在其 YOLO 前辈的优势之上。它专为速度、准确性和易用性而设计,适用于广泛的视觉 AI 任务,包括目标检测、实例分割、图像分类、姿势估计和定向边界框 (OBB)。
架构和主要特性
YOLOv8 代表了 YOLO 系列的重大演进,采用了无锚框检测方法,简化了模型架构,并增强了在不同数据集上的泛化能力。其灵活的骨干网络和优化的损失函数有助于提高准确性和更稳定的训练。YOLOv8 的一个关键优势是其 可扩展性,提供从 Nano (n) 到 Extra-large (x) 的一系列模型尺寸,以满足不同的计算和准确性要求。这种多功能性使其成为可能需要不仅仅是对象检测的项目的首选,因为它在单个统一框架内支持多项任务。
性能与优势
YOLOv8 提供了强大的性能平衡,在保持适用于实时应用的快速推理速度的同时,实现了较高的 mAP 分数。例如,YOLOv8x 在 COCO 数据集上达到了 53.9% 的 mAPval 50-95。与其它的架构相比,尤其是基于 Transformer 的模型(如 RT-DETR),其高效的设计确保了在训练和推理过程中更低的内存需求。
- 成熟且文档完善: YOLOv8 受益于大量的文档、庞大的社区和随时可用的资源,通过简单的 Python 和 CLI 接口,使其非常用户友好且易于实施。
- 通用且多任务: 它对各种视觉任务的支持是优于更专业模型的关键优势,为复杂的项目需求提供了无与伦比的灵活性。
- 完善的生态系统: 该模型与 Ultralytics HUB 无缝集成,该平台简化了从训练到部署的工作流程。它得到了 Ultralytics 积极开发和频繁更新的支持。
- 性能平衡: 在速度、准确性和模型大小之间实现了极佳的权衡,使其适用于各种现实部署场景。
- 训练效率: YOLOv8 提供高效的训练流程和随时可用的预训练权重,这大大加快了开发周期。
弱点
虽然效率很高,但在特定的、高度受限的基准测试中,YOLOv8 的性能可能会略逊于像 YOLOv10 这样的新型号,这些新型号将原始速度或参数计数置于首位。但是,YOLOv8 通常提供更好的可用性、多功能性和支持的整体方案。
理想用例
YOLOv8 的多功能性和易用性使其成为广泛应用的理想选择:
- 安全系统: 非常适合在安全警报系统中进行实时对象检测。
- 零售分析: 在智能零售中用于理解客户行为和库存管理。
- 工业质量控制: 适用于制造业中的自动视觉检测。
- 多任务项目:非常适合需要从单个模型同时进行检测、分割和姿势估计的项目。
YOLOv10:突破效率的界限
作者: Ao Wang, Hui Chen, Lihao Liu, 等。
组织: 清华大学
日期: 2024-05-23
Arxiv: https://arxiv.org/abs/2405.14458
GitHub: https://github.com/THU-MIG/yolov10
文档: https://docs.ultralytics.com/models/yolov10/
于2024年5月推出的YOLOv10,专注于在保持竞争力的同时,最大限度地提高效率和速度。它尤其适用于实时和边缘应用。其关键创新在于其训练方法,该方法无需非极大值抑制(NMS),这有助于减少后处理延迟,并实现真正的端到端目标检测。
架构和主要特性
YOLOv10 具有整体效率-准确性驱动的模型设计。它优化了各种组件,以减少计算冗余并增强检测能力。通过使用一致的对偶分配进行训练,它消除了 NMS 步骤,从而简化了部署流程。虽然这是一个重要的进步,但重要的是要注意,YOLOv10 主要侧重于目标检测,并且缺乏 YOLOv8 的内置多任务通用性。
性能分析
YOLOv10 展示了最先进的效率,与之前的许多 YOLO 版本相比,提供了更快的推理速度和更小的模型尺寸。例如,YOLOv10-S 仅使用 7.2M 参数即可实现 46.7% mAPval 50-95。下表显示,对于给定的准确度级别,YOLOv10 模型通常比其 YOLOv8 对应模型具有更少的参数和更低的 FLOP。但是,YOLOv8 保持了非常有竞争力的速度,尤其是在 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 |
YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
优势与劣势
- 增强的效率: 在许多比较中,提供了更快的推理速度和更小的模型尺寸,这对于资源受限的环境非常有益。
- 无NMS训练: 通过移除 NMS 后处理步骤简化了部署流程,从而减少了延迟。
- 前沿性能: 实现了卓越的性能,尤其是在延迟驱动的基准测试中。
然而,YOLOv10 也有一些局限性:
- 较新的模型: 作为一个较新的模型,与成熟的 YOLOv8 相比,它的社区规模较小,可用的资源或第三方集成也较少。
- 生态系统集成: 虽然已集成到Ultralytics库中,但与YOLOv8等Ultralytics综合生态系统原生的模型相比,它可能需要更多的精力才能适应已建立的MLOps工作流程。
- 任务专业化: 它主要专注于目标检测,缺乏 YOLOv8 提供的分割、分类和姿势估计的内置通用性。
理想用例
YOLOv10 特别适合于实时性能和资源效率是绝对首要任务的应用:
- 边缘设备: 非常适合部署在计算能力有限的设备上,如手机和嵌入式系统。
- 高速处理: 适用于需要极低延迟的应用,例如自动驾驶无人机和机器人技术。
- 实时分析:非常适合需要立即进行目标检测的快节奏环境,例如交通管理。
结论
Ultralytics YOLOv8 和 YOLOv10 都是强大而有效的目标检测模型。它们之间的选择在很大程度上取决于特定项目的优先级。
Ultralytics YOLOv8 是大多数开发人员和研究人员的推荐选择。 它以其卓越的通用性、易用性、强大的生态系统以及速度和准确性的出色平衡而著称。其多任务功能使其成为项目的面向未来的解决方案,这些项目可能会发展到包括分割、姿势估计或其他视觉任务。
YOLOv10 为专门的、对延迟要求严苛的应用程序提供了引人注目的效率提升。 如果您的项目的主要限制是在低功耗边缘设备上部署或为单个任务实现尽可能低的推理时间,那么 YOLOv10 是一个强大的竞争者。
对于有兴趣探索其他最先进模型的用户,Ultralytics 提供了一系列选项,包括备受推崇的 YOLOv5、创新的 YOLOv9 和最新的 YOLO11。还提供进一步的比较,例如 YOLOv9 与 YOLOv8 和 YOLOv5 与 YOLOv8,以帮助您选择最适合您需求的模型。