跳转至内容

YOLOv10 与YOLOv8:实时物体检测技术比较

YOLO (You Only Look Once,只看一次)系列的发展不断推动计算机视觉技术的进步,为开发人员提供了更快、更准确的物体检测工具。选择 YOLOv10YOLOv8时,了解架构、效率和生态系统支持方面的细微差别至关重要。虽然YOLOv10 引入了新的架构变化以提高效率,但YOLOv8 仍然是一个强大、通用的标准,以其易用性和全面的功能集而著称。

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

性能分析

COCO 数据集的性能指标说明了这些模型背后不同的设计理念。YOLOv10 主要侧重于减少参数数和浮点运算 (FLOP),在给定模型大小的情况下,往往能获得更高的mAP (平均精度)。但是 YOLOv8保持了极具竞争力的推理速度,尤其是在 CPU 上和导出为优化格式(如 TensorRT等优化格式时,YOLOv8 仍能保持极具竞争力的推理速度,从而在原始速度与实际部署能力之间取得平衡。

模型尺寸
(像素)
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 减少了后处理阶段的计算开销,从而降低了特定边缘场景中的延迟。
  • 参数效率:与前几代产品相比,整体模型设计大大减少了参数和 FLOP 的数量,因此对存储极其有限的设备很有吸引力。
  • 高精确度:它的大小达到了最先进的mAP 分数,证明了其架构优化的有效性。

弱点

  • 任务专业化: YOLOv10 主要用于物体检测。它缺乏对其他计算机视觉任务(如实例分割或姿势估计 )的本地支持。
  • 生态系统成熟度:作为一个较新的学术版本,与已建立的Ultralytics 生态系统相比,它的第三方集成和社区资源较少。

了解有关YOLOv10的更多信息

Ultralytics YOLOv8:多功能行业标准

作者:Glenn Jocher、Ayush Chaurasia 和 Jing QiuGlenn Jocher、Ayush Chaurasia 和 Jing Qiu
组织机构:Ultralytics
日期:2023-01-10
文档:Ultralytics YOLOv8 文档
GitHub:ultralytics

由Ultralytics 推出的YOLOv8 是多年来对实用、用户友好的人工智能研究的结晶。它不仅具有高性能,还能为开发人员带来卓越体验。YOLOv8 采用无锚检测机制和丰富的梯度流来确保强大的训练。它的突出特点是在一个统一的框架内支持各种任务--检测、分割、分类、姿势估计 和旋转框检测。

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

内存效率

像YOLOv8 这样的Ultralytics 模型设计得非常节省内存。这大大降低了培训自定义模型的门槛,因为与庞大的transformer 模型(如 RT-DETR等笨重的转换器模型相比,它们需要的 CUDA 内存更少,因此可以在消费级 GPU 上进行训练。

了解更多关于 YOLOv8 的信息

比较分析:架构和用例

建筑差异

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

YOLOv8相反,YOLOv8 采用了任务对齐分配器和无锚耦合头结构。这种设计简化了检测头,提高了泛化能力。虽然它需要NMS,但在导出格式(如 ONNX和TensorRT 等导出格式进行了高度优化,因此在稳健的部署管道中,实际延迟差异往往可以忽略不计。

理想用例

在两者之间做出选择,往往取决于项目的具体限制因素:

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

  2. 通用和多任务人工智能 (YOLOv8):适用于绝大多数商业和研究应用、 YOLOv8是最佳选择。它能够执行分割(如精确的医疗成像)和姿势估计 (如体育分析),这使其具有令人难以置信的多功能性。此外,其丰富的文档和支持可确保开发人员快速解决问题并加快部署速度。

代码执行

Ultralytics 框架的主要优势之一是统一的应用程序接口。无论您是使用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 的未来。

然而 Ultralytics YOLOv8仍然是开发人员和企业推荐的首选模式。其强大的生态系统久经考验的可靠性多任务功能提供了一个超越简单检测的全面解决方案。有了Ultralytics YOLOv8,您获得的不仅仅是一个模型,而是一个完整的工具包,可以高效地构建、训练和部署世界一流的人工智能解决方案。

对于那些希望走在绝对前沿的人来说,一定还要看看 YOLO11,它是Ultralytics 的最新迭代产品,与YOLOv8 相比,性能和效率都有了更大的提升。

延伸阅读


评论