跳转至内容

YOLOv10 对比 YOLOv8:实时目标检测技术比较

YOLO(You Only Look Once)系列的发展不断推动计算机视觉的边界,为开发者提供了更快、更准确的 目标检测 工具。在 YOLOv10YOLOv8 之间进行选择时,理解它们在架构、效率和生态系统支持方面的细微差别至关重要。尽管 YOLOv10 引入了新颖的架构改进以提高效率,但 YOLOv8 仍然是一个强大、多功能的标准,以其易用性和全面的功能集而闻名。

本指南提供了详细的技术比较,旨在帮助您为您的机器学习项目选择合适的模型。

性能分析

COCO dataset上的性能指标阐明了这些模型背后独特的设计理念。YOLOv10 着重于减少参数数量和浮点运算 (FLOPs),通常在给定模型尺寸下实现更高的 mAP(平均精度)。然而,YOLOv8保持了极具竞争力的推理速度,尤其是在 CPU 上以及导出到TensorRT等优化格式时,平衡了原始速度与实际部署能力。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

YOLOv10:架构创新提升效率

Authors:Ao Wang, Hui Chen, Lihao Liu, et al.
组织:清华大学
日期:2024-05-23
Arxiv:YOLOv10:Real-TimeEnd-to-End Object Detection
GitHub:THU-MIG/yolov10

YOLOv10 由清华大学研究人员开发,其主要目标是消除后处理过程中对非极大值抑制 (NMS) 的依赖。NMS 在对延迟敏感的应用中可能成为瓶颈。YOLOv10 在训练期间引入了一致的双重分配策略,使模型能够为每个对象预测一个最佳边界框,从而有效地使其成为一个端到端检测器。

YOLOv10 的主要优势

  • 免 NMS 推理:通过移除 NMS 步骤,YOLOv10 减少了后处理阶段的计算开销,这可以在特定边缘场景中降低延迟。
  • 参数效率:整体模型设计相比前几代模型显著减少了参数和FLOPs的数量,使其对存储极其有限的设备具有吸引力。
  • 高精度:它在其规模下实现了最先进的mAP分数,证明了其架构优化的有效性。

弱点

  • 任务专长:YOLOv10 主要设计用于目标检测。它缺乏对其他计算机视觉任务(例如实例分割或姿势估计)的原生支持。
  • 生态系统成熟度:作为一项较新的学术发布,与成熟的 Ultralytics 生态系统相比,它具有较少的第三方集成和社区资源。

了解更多关于YOLOv10的信息。

Ultralytics YOLOv8:多功能行业标准

作者: Glenn Jocher, Ayush Chaurasia, and Jing Qiu
机构:Ultralytics
日期: 2023-01-10
文档:Ultralytics YOLOv8 文档
GitHub:ultralytics/ultralytics

由 Ultralytics 推出,YOLOv8 代表了多年来在实用、用户友好型 AI 研究方面的集大成之作。它不仅旨在实现高性能,更旨在提供卓越的开发者体验。YOLOv8 采用无锚点 detect 机制和丰富的梯度流,以确保稳健的训练。其突出特点是原生支持广泛的任务——detect、segment、分类、姿势估计和 obb——所有这些都集成在一个统一的框架中。

  • 易用性: Ultralytics YOLOv8 以其简单的 python 和 CLI 接口而闻名。开发者只需几行代码即可训练、验证和部署模型。
  • 完善的生态系统:作为Ultralytics生态系统的一部分,意味着可以获得频繁更新、庞大社区以及与Ultralytics HUB等工具的无缝集成,从而实现轻松的模型管理。
  • 性能平衡: 它在速度和精度之间取得了理想的平衡。该模型针对各种硬件后端进行了高度优化,包括CPU、GPU和边缘TPU
  • 训练效率:YOLOv8 提供高效的训练过程,与许多基于 Transformer 的替代方案相比,其内存需求更低,从而节省了计算成本。
  • 多功能性:与仅限于边界框的模型不同,YOLOv8可以处理需要segmentation掩码或关键点的复杂项目,而无需切换框架。

内存效率

Ultralytics 模型,例如 YOLOv8,旨在实现内存高效。这显著降低了训练自定义模型的门槛,因为与 RT-DETR 等大型 Transformer 模型相比,它们需要更少的 CUDA 内存,从而可以在消费级 GPU 上进行训练。

了解更多关于 YOLOv8 的信息

对比分析:架构与用例

架构差异

根本区别在于后处理和分配策略。YOLOv10 采用双头架构,其中一个头部在训练期间使用一对多分配(如传统 YOLO)以提供丰富的监督信号,而另一个头部在推理时使用一对一分配,从而消除了对 NMS 的需求。

YOLOv8则采用任务对齐分配器和无锚点耦合头结构。这种设计简化了检测头并提高了泛化能力。尽管它需要NMS,但该操作在ONNX和TensorRT等导出格式中经过高度优化,在稳健的部署流程中,实际的延迟差异通常可以忽略不计。

理想用例

在这两者之间进行选择通常取决于您项目的具体限制:

  1. 高性能边缘 AI (YOLOv10):如果您的应用程序运行在资源严重受限的硬件上,存储的每一兆字节都很重要,或者如果 NMS 操作在您的目标芯片上造成特定瓶颈,YOLOv10 是一个绝佳的选择。示例包括农业中的嵌入式传感器或轻型无人机。

  2. 通用多任务 AI (YOLOv8):对于绝大多数商业和研究应用,YOLOv8是卓越的选择。它执行segment(例如,精确医学成像)和姿势估计(例如,体育分析)的能力使其具有令人难以置信的多功能性。此外,其广泛的文档和支持确保开发人员能够快速解决问题并更快地部署。

代码实现

Ultralytics框架的一个主要优势是统一的API。无论您是使用YOLOv8还是探索更新的模型,工作流程都保持一致且直观。

以下是您如何轻松使用Python启动YOLOv8模型训练的方法:

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Train the model on your custom dataset
# The system automatically handles data downloading and processing
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

对于 YOLOv10,Ultralytics 包也方便了访问,允许研究人员在熟悉的环境中试验该架构:

from ultralytics import YOLO

# Load a pre-trained YOLOv10 model
model = YOLO("yolov10n.pt")

# Train the model using the same simple API
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

结论

YOLOv10 和 YOLOv8 都是计算机视觉领域令人印象深刻的里程碑。YOLOv10 在架构效率方面取得了突破,为专业低延迟应用展示了 NMS-free 的未来潜力。

然而,Ultralytics YOLOv8仍然是开发者和组织推荐的首选模型。其强大的生态系统经过验证的可靠性多任务能力提供了一个超越简单detect的全面解决方案。借助Ultralytics YOLOv8,您获得的不仅是一个模型,而是一个完整的工具包,可用于高效构建、训练和部署世界级AI解决方案。

对于那些希望保持在绝对前沿的用户,务必关注 YOLO11,这是 Ultralytics 的最新迭代,相比 YOLOv8 提供了更高的性能和效率提升。

延伸阅读


评论