YOLOv8 与YOLOv10:全面技术比较
选择正确的物体检测模型对于任何计算机视觉项目的成功都至关重要。本指南详细比较了 Ultralytics YOLOv8和 YOLOv10之间的详细技术比较,分析它们的架构创新、性能指标和理想用例。虽然YOLOv10 引入了新的效率优化,但Ultralytics YOLOv8 凭借其强大的生态系统、无与伦比的多功能性以及在各种部署场景中久经考验的可靠性,仍然占据主导地位。
Ultralytics YOLOv8:多功能标准
2023 年 1 月发布、 Ultralytics YOLOv8是YOLO 系列的一次重大飞跃,它不仅是一个模型,还是一个全面的视觉人工智能框架。它将可用性和灵活性放在首位,使其成为从业余爱好者到企业工程师的开发人员的首选。
- 作者: Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
- 组织机构Ultralytics
- 日期: 2023-01-10
- GitHub:ultralytics
- 文档:YOLOv8 文档
架构和能力
YOLOv8 采用无锚检测机制,无需手动指定锚点框,从而简化了训练过程。这种方法提高了对不同物体形状的通用性。其架构采用了解耦头部和最先进的骨架,在计算成本和高精度之间实现了平衡。
YOLOv8 的一个显著特点是其本地多任务支持。与许多专业机型不同的是,YOLOv8 提供了开箱即用的功能,可用于:
主要优势
围绕YOLOv8 的维护良好的生态系统是一大优势。它与用于模型训练和管理的Ultralytics HUB无缝集成,并提供广泛的导出选项,如ONNX、TensorRT 和CoreML 等格式。此外,它在训练和推理过程中对内存的要求大大低于transformer架构,从而确保了它在标准硬件上的高效运行。
YOLOv10:挑战效率极限
YOLOv10清华大学研究人员开发的 YOLOv10 主要侧重于通过消除与后处理相关的瓶颈来优化推理管道。
- 作者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 组织机构: 清华大学清华大学
- 日期: 2024-05-23
- Arxiv:arXiv:2405.14458
- GitHub:THU-MIG/yolov10
- 文档:YOLOv10 文档
建筑创新
YOLOv10 的突出特点是其NMS 训练策略。传统的对象检测器在推理过程中依赖非最大抑制(NMS)来过滤重叠的边界框,这会带来延迟。YOLOv10 在训练过程中采用一致的双重分配,将一对多的监督与一对一的匹配结合起来,以获得丰富的监督信号,从而实现高效推理。这使得模型无需NMS 就能预测准确的边界框,从而减少了端到端延迟。
此外,该架构还采用了兼顾效率与精度的整体设计,包括轻量级分类头和空间通道解耦下采样,以减少计算冗余(FLOPs)和参数数量。
性能指标和分析
在比较这两个型号时,不能只看纯粹的精度数字。YOLOv10 在参数方面的效率令人印象深刻、 YOLOv8在更广泛的硬件和任务中都能保持强劲的性能。
对比表
下表重点介绍了COCO 数据集的性能。在某些情况下,YOLOv10 以更少的参数实现了更高的mAP ,但YOLOv8 在推理速度方面仍然具有很强的竞争力,特别是在标准CPU 和GPU 基准上。
| 模型 | 尺寸 (像素) | 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 |
批判性分析
- 性能平衡: YOLOv8 在速度和准确性之间实现了出色的平衡。它在CPU (通过ONNX)上的速度经过了充分的记录和优化,因此对于缺乏专用GPU 硬件的部署来说,它是一个可靠的选择。
- 培训效率: Ultralytics 模型以其高效的训练过程而著称。利用YOLOv8 优化的超参数和随时可用的预训练权重,用户通常可以更快地实现收敛。
- 生态系统成熟度: YOLOv10 在理论上提高了效率,而YOLOv8 则得益于Ultralytics 生态系统多年来的不断完善。这包括对数据增强的广泛支持、活跃的社区调试以及与以下工具的集成 Weights & Biases和 Comet.
理想用例
何时选择Ultralytics YOLOv8
YOLOv8 具有多功能性和易用性,是绝大多数实际应用的推荐选择。
- 多方面的人工智能解决方案:非常适合需要在检测的同时进行实例分割或分类的项目。
- 企业部署:适用于需要稳定、受支持的框架、明确的许可选项以及集成到现有 MLOps 流程中的企业。
- 智能零售:它能够处理多项任务,因此适用于复杂的零售分析,如货架监控和顾客行为分析。
- 快速原型开发:简单的Python 应用程序接口可让开发人员在几分钟内完成从概念到训练模型的转换。
何时选择YOLOv10
YOLOv10 最好用于硬件限制极高的特定领域。
代码执行
Ultralytics 生态系统的标志之一是 易用性.这两种模式都可以通过统一的 ultralytics Python 软件包,确保开发人员获得一致的开发体验。
下面是如何使用 YOLOv8运行推理的示例,展示了应用程序接口的简易性。
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Perform object detection on a local image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
同样,由于Ultralytics 支持更广泛的生态系统,因此只要库中支持其他架构,您就可以很容易地交换权重进行试验。
无缝出口
Ultralytics 提供了一个单行命令,用于将训练好的模型导出为便于部署的格式。它可以与YOLOv8 完美配合,生成用于生产的优化模型:
# Export YOLOv8 model to ONNX format
model.export(format="onnx")
结论
YOLOv8 和YOLOv10 都是令人印象深刻的计算机视觉工程杰作。YOLOv10 采用NMS 设计,推动了架构效率的发展,使其成为高度专业化、对延迟敏感的检测任务的有力竞争者。
然而,为了实现稳健、多用途和面向未来的发展、 Ultralytics YOLOv8仍然是最佳选择。YOLOv8 能够在单一框架内处理分类、细分和姿势估计 ,具有无与伦比的价值。加上丰富的文档、活跃的社区支持以及与Ultralytics HUB 的无缝集成,YOLOv8 使开发人员能够更快、更可靠地构建全面的人工智能解决方案。
对于那些追求绝对最新性能的人,我们还推荐探索 YOLO11,它以YOLOv8 的优势为基础,提供更高的精度和速度。