跳转至内容

YOLOv10 与 PP-YOLOE+:综合技术比较

选择正确的物体检测模型是开发高效计算机视觉应用的关键一步。在选择时,通常需要在推理速度、检测精度和硬件限制之间权衡利弊。本技术比较分析了 YOLOv10和百度PaddlePaddle 生态系统的高精度模型PP-YOLOE+。这两个模型都引入了重要的架构创新,但它们满足了不同的部署需求和开发环境。

YOLOv10:端到端实时检测的新标准

YOLOv10 是YOLO (You Only Look Once,你只看一次)系列的重大飞跃,重点在于消除与传统后处理相关的性能瓶颈。它由清华大学的研究人员开发,通过消除对非最大抑制NMS)的需求,实现了更低的延迟和更高的效率。

作者:Ao Wang, Hui Chen, Lihao Liu, et al.
机构:清华大学
日期:2024-05-23
ArXiv:https://arxiv.org/abs/2405.14458
GitHub:https://github.com/THU-MIG/yolov10
Docs:ultralytics

架构和主要特性

YOLOv10 在训练过程中引入了一致的双重分配策略。这种方法允许模型在推理过程中为每个物体预测一个最佳方框,从而有效地消除了NMS 后处理的需求。这种NMS"设计大大减少了推理延迟,尤其是在有密集物体群的场景中。

主要的建筑进步包括

  • 整体效率-精度设计:该模型采用轻量级分类头和空间通道解耦下采样,在不牺牲精度的情况下降低计算成本(FLOPs)。
  • 梯度引导区块设计:为了优化速度和精度之间的权衡,模型的不同阶段使用不同的区块设计,减少深层的冗余。
  • 大核卷积战略性地使用大核卷积可增强感受野,使模型更好地理解上下文并detect 小物体。

优势与劣势

YOLOv10 可实现最高效率,是实时应用的最佳选择。

  • 优势:消除了NMS 从而加快了确定性推理速度。它具有卓越的参数效率,与前代产品相比,只需较少的参数即可获得较高的mAP 分数。它与Ultralytics 生态系统的集成确保了使用简单的Python API 就能轻松进行训练和部署。
  • 弱点:作为专门的物体检测器,它目前主要侧重于边界框检测,而Ultralytics 套件中的其他模型则支持更广泛的任务,如分割姿势估计

理想用例

  • 自主机器人: YOLOv10 的低延迟特性对于需要在瞬间做出导航和避障决策的机器人技术至关重要。
  • 边缘人工智能部署: YOLOv10 的尺寸非常小,非常适合NVIDIA Jetson或 Raspberry Pi 等边缘设备
  • 交通监控:该模型能够处理密集场景,无需NMS 开销,是实时流量管理的理想之选。

了解有关YOLOv10的更多信息

PP-YOLOE+:PaddlePaddle 生态系统中的精密工程

PP-YOLOE+ 是由百度开发的 PP-YOLOE 系列的进化版。它被设计为一种可扩展的无锚探测器,优先考虑高精度。它是 PaddlePaddle框架中的基石模型,专门针对该环境进行了优化。

作者: PaddlePaddle 作者
组织:百度
日期:2022-04-02
ArXiv:https://arxiv.org/abs/2203.16250
GitHubPaddlePaddle
Docs:PaddlePaddle

架构和主要特性

PP-YOLOE+ 采用无锚架构,与基于锚的前代产品相比,简化了超参数搜索空间。

主要功能包括

  • CSPRepResNet 主干网:该骨干网结合了 CSPNet 的梯度流优势和重新参数化 ResNet 块的推理效率。
  • 任务对齐学习(TAL):一种专门的标签分配策略,可动态调整锚点分类的质量和定位精度。
  • 高效任务对齐头(ET-Head):一种解耦检测头,可独立处理分类和定位特征,以避免冲突。

优势与劣势

PP-YOLOE+ 是一个稳健的模型,但其依赖性可能会影响模型的采用。

  • 优势:在以下基准测试中具有极高的准确性 COCO等基准测试中,尤其是在较大的配置(L 和 X)中,它的精度非常出色。它针对PaddlePaddle 推理引擎支持的硬件进行了高度优化。
  • 弱点:主要局限是对PaddlePaddle 生态系统的依赖。对于习惯使用 PyTorch的开发人员来说,迁移到 PP-YOLOE+ 需要更陡峭的学习曲线,并可能在工具集成方面产生摩擦。此外,在精度相当的情况下,PP-YOLOv10 + 的参数数量明显高于YOLOv10 ,导致内存使用量增加。

理想用例

  • 工业检测:精度高,适用于检测制造过程中的微小缺陷。
  • 零售分析:适用于智能零售环境中的库存清点和产品识别。
  • 材料分拣:用于回收设施,对各种材料进行自动分拣

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

性能分析:效率与准确性

在比较技术指标时,YOLOv10 在效率方面具有明显优势。它可以达到相当或更高的精度mAP),而使用的参数和计算资源(FLOPs)却少得多。

模型尺寸
(像素)
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
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

主要内容

  • 效率:YOLOv10l 实现的mAP (53.3%)高于 PP-YOLOE+l(52.9%),而使用的参数减少了44%。这使得YOLOv10 的存储和加载速度大大提高。
  • 速度: YOLOv10 的NMS 设计全面降低了延迟。例如,YOLOv10n 的速度非常快,仅为 1.56ms,这使其成为高速视频分析的理想选择。
  • 可扩展性:虽然 PP-YOLOE+x 在原始mAP 上略胜一筹(高出 0.3%),但与 YOLOv10x 相比,它所需的参数(9842 万对 5690 万)和 FLOP 几乎翻了一番。

内存效率

与老式架构或transformer重型transformer的模型相比,YOLOv10 和YOLO11 等Ultralytics 模型在训练和推理过程中的内存需求通常较低。这种效率允许在标准GPU 硬件上实现更大的批量规模和更快的训练周期。

Ultralytics 的优势

虽然两种型号都能胜任,但选择Ultralytics 生态系统中的型号, YOLOv10 或最先进的 YOLO11-为开发人员提供了独特的优势。

  1. 易用性: Ultralytics Python 应用程序接口摒弃了复杂的模板代码。只需几行Python,就能完成模型的训练、验证和部署。
  2. 维护良好的生态系统:用户受益于频繁的更新、GitHub 上充满活力的社区,以及与Ultralytics HUB和 MLOps 等工具的无缝集成。 Weights & Biases.
  3. 多功能性:除了标准的物体检测外,Ultralytics 框架还支持实例分割图像分类姿势估计 定向边界框(旋转框检测)检测,为各种计算机视觉任务提供了统一的解决方案。

代码示例:使用Ultralytics运行YOLOv10

通过Ultralytics 库,将YOLOv10 直接集成到工作流程中:

from ultralytics import YOLO

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

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

# Display the results
results[0].show()

结论

在与 YOLOv10PP-YOLOE+ 的比较中,YOLOv10 成为大多数通用计算机视觉应用的最佳选择。它的NMS 架构解决了物体检测延迟这一长期存在的瓶颈,其高效的参数使用使其可以部署在从边缘设备到云服务器等更广泛的硬件上。

对于那些严格遵循PaddlePaddle 框架的用户,或者那些将精确度的边际收益置于计算效率之上的用户来说,PP-YOLOE+ 仍然是一个强有力的竞争者。然而,对于寻求速度、准确性和易用性平衡的开发人员来说,YOLOv10更广泛的Ultralytics 生态系统提供了一条更面向未来、更适合开发人员的道路。

探索其他模型

如果您有兴趣了解Ultralytics 生态系统中的更多选项,请考虑查看这些比较:


评论