跳转至内容

PP-YOLOE+ vs. YOLOv8:技术对比

选择最优的对象detect架构是开发强大计算机视觉应用的关键一步。该决策通常涉及在推理速度、detect准确性和部署灵活性之间进行复杂的权衡。本指南对PP-YOLOE+(来自百度PaddlePaddle生态系统的高精度模型)和Ultralytics YOLOv8(一款以其多功能性、速度和开发者友好生态系统而闻名于世的模型)进行了深入的技术比较。

PP-YOLOE+:PaddlePaddle 生态系统中的精度

PP-YOLOE+ 是由百度PaddleDetection团队开发的 PP-YOLOE 的演进版本。它代表了 YOLO 系列的一个重要迭代,专门针对 PaddlePaddle 框架进行了优化。它的发布旨在改进先前的最先进(SOTA)基准,并重点优化训练效率和推理精度之间的权衡。

技术细节: 作者:PaddlePaddle 作者
组织:百度
日期:2022-04-02
ArXiv:https://arxiv.org/abs/2203.16250
GitHub:https://github.com/PaddlePaddle/PaddleDetection/
文档:https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.8.1/configs/ppyoloe/README.md

了解更多关于 PP-YOLOE+ 的信息

架构与核心特性

PP-YOLOE+ 采用现代的无锚点架构,通过消除为特定数据集计算最佳锚框尺寸的需要,从而简化了训练过程。

  • 主干网络:它利用 CSPRepResNet 主干网络,该网络结合了 CSPNet 的梯度流优势和 RepVGG 的重参数化能力。这使得模型在训练期间可以拥有复杂的结构以学习丰富的特征,但在推理期间则拥有更简单、更快的结构。
  • 颈部:该模型采用路径聚合网络 (PAN) 颈部,以增强跨不同尺度的特征融合,这对于检测不同尺寸的物体至关重要。
  • 检测头:一个关键创新是高效任务对齐检测头(ET-Head)。这种解耦的检测头机制将分类和定位特征分开,使用任务对齐学习(TAL)来确保最高的置信度分数对应最准确的边界框。

优势与局限性

优势: PP-YOLOE+ 专为在COCO 数据集等标准基准上实现高性能而设计。它实现的 Varifocal Loss 和 Distribution Focal Loss 有助于其出色地处理类别不平衡和定位模糊性。

缺点: 对于许多开发者而言,主要限制是它对 PaddlePaddle 框架的深度依赖。尽管功能强大,但与PyTorch相比,PaddlePaddle 的全球社区规模较小,这可能会使集成到依赖标准工具的现有 MLOps 管道变得复杂。此外,PP-YOLOE+ 主要专注于 detect,缺乏在更全面的套件中发现的原生多任务能力。

Ultralytics YOLOv8:多功能性和性能标准

Ultralytics YOLOv8 代表了 AI 模型开发和部署方式的范式转变。它由 Ultralytics 设计,不仅是一个模型,而且是一个完整的框架,能够处理从 detect 到复杂空间分析的各种计算机视觉任务

技术细节: 作者:Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
组织:Ultralytics
日期:2023-01-10
GitHub:https://github.com/ultralytics/ultralytics
文档:https://docs.ultralytics.com/models/yolov8/

了解更多关于 YOLOv8 的信息

架构与生态系统

YOLOv8 在之前YOLO版本的遗产基础上,通过改进的C2f骨干网络进一步发展,该网络取代了C3模块,以改善梯度流和特征提取效率。

  • 统一框架: 与通常仅限于检测的竞争对手不同,YOLOv8 原生支持实例分割姿势估计旋转边界框 (OBB)图像分类。这使得开发者能够通过一个API解决从活动识别工业检测等各种问题。
  • Anchor-Free Design: 与 PP-YOLOE+ 类似,YOLOv8 是无 anchor 的,这减少了框预测的数量,并加快了非极大值抑制 (NMS),这是一个关键的后处理步骤。
  • 损失函数: 它采用VFL损失进行分类,并采用CIoU + DFL进行边界框回归,实现了平衡,即使在具有挑战性的数据集上也能提供稳健的性能。

Ultralytics 优势

YOLOv8 在易用性方面表现出色。Ultralytics python 包仅需几行代码即可实现训练、验证和预测。

from ultralytics import YOLO

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

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Train the model on a custom dataset
model.train(data="coco8.yaml", epochs=100)

这种简洁性得益于一个维护良好的生态系统。用户可以受益于与Ultralytics HUB等工具的无缝集成进行云训练,使用TensorBoard进行可视化,以及支持ONNX、TensorRT和OpenVINO等多种导出格式。这确保了模型不仅仅是研究成果,而是为实际部署做好了准备。

对比分析:指标与性能

评估这些模型时,超越表面精度并考虑效率至关重要。下表详细比较了关键指标。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
PP-YOLOE+t64039.9-2.844.8519.15
PP-YOLOE+s64043.7-2.627.9317.36
PP-YOLOE+m64049.8-5.5623.4349.91
PP-YOLOE+l64052.9-8.3652.2110.07
PP-YOLOE+x64054.7-14.398.42206.59
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

速度与效率

数据突出显示了 YOLOv8 的卓越效率。YOLOv8n (nano) 模型在 边缘 AI 应用中表现出色,在 T4 GPU 上实现了惊人的 1.47 毫秒推理速度,显著快于最小的 PP-YOLOE+t。此外,YOLOv8n 仅需要 3.2M 参数和 8.7B FLOPs,使其比同类模型轻量得多。

精度与资源

尽管PP-YOLOE+x实现了略高的54.7 mAP,但代价巨大:近1亿个参数。相比之下,YOLOv8x以大约30%更少的参数(68.2M)提供了具有竞争力的53.9 mAP。对于大多数实际应用而言,YOLOv8提供了更均衡的性能表现,在没有巨大计算开销的情况下实现了SOTA精度。

内存效率

Ultralytics YOLO 模型以其在训练和推理过程中低内存占用而闻名。与一些基于 Transformer 的模型或重型架构不同,YOLOv8 经过优化,可在消费级硬件上高效运行,减少了对昂贵云计算资源的需求。

理想用例和应用

这些模型之间的选择通常取决于您项目的具体限制。

何时选择 YOLOv8

YOLOv8 是绝大多数开发人员的推荐选择,因为它具有多功能性易用性

  • 边缘部署: 凭借 YOLOv8n 等轻量级模型,它非常适合部署在 Raspberry Pi、NVIDIA Jetson 或移动设备上。
  • 多任务管道:如果您的项目需要目标 track以及 segment 或姿势估计(例如体育分析),YOLOv8 在一个统一库中提供了所有这些功能。
  • 快速原型开发:预训练权重和简单API的可用性使团队能够在数小时内从概念到概念验证。
  • 跨平台支持:ONNXOpenVINO 和 CoreML 的出色支持确保您的模型可以在任何地方运行。

何时考虑 PP-YOLOE+

对于深度融入百度生态系统的用户而言,PP-YOLOE+ 仍然是一个强有力的竞争者。

  • PaddlePaddle 工作流:已经使用 PaddlePaddle 套件执行其他 AI 任务的团队会发现 PP-YOLOE+ 自然地融入其现有基础设施。
  • 最大理论精度:对于研究竞赛或mAP的每一个百分点都至关重要且计算资源无限的场景,最大的PP-YOLOE+模型表现非常出色。

结论

尽管PP-YOLOE+以令人印象深刻的精度数据展示了PaddlePaddle框架的能力,但Ultralytics YOLOv8作为更实用、更强大的解决方案,在更广泛的计算机视觉社区中脱颖而出。它集高速、资源效率和丰富功能集(包括对分割姿势估计的原生支持)于一身,使其成为现代AI开发的卓越选择。

YOLOv8 凭借活跃的开源社区、详尽的文档和持续更新的支持,确保开发者能够获得面向未来的工具,有效解决实际问题。

探索其他模型

如果您对探索目标检测领域的最新进展感兴趣,可以参考这些相关比较:


评论