跳转至内容

YOLOv10 与 YOLOX:技术比较

在快速发展的计算机视觉领域,选择正确的物体检测模型对于平衡性能、效率和部署便利性至关重要。本技术比较探讨了 YOLOv10与 Megvii 备受推崇的无锚点模型YOLOX 之间的差异。

2021 年,YOLOX 在无锚检测机制方面进行了重大创新,而YOLOv10 则代表了 2024 年的前沿技术,提供了NMS 推理功能,并与Ultralytics 生态系统进行了更紧密的集成。

YOLOv10:实时端到端检测

YOLOv10 缩小后处理效率与模型架构之间的差距。通过为NMS 训练引入一致的双重分配策略,它消除了推理过程中对非最大抑制(NMS)的需求,从而大大减少了延迟。

技术细节:

结构和优势

YOLOv10 建立在前几代YOLO 的基础之上,并对架构进行了优化,以提高效率和准确性。它采用了整体模型设计,包括轻量级分类头和空间通道解耦下采样。

  • NMS 推断:取消NMS 改变了实时推理应用的游戏规则,确保了边缘设备上可预测的延迟和较低的CPU 开销。
  • 效率与精度的平衡:与前代产品和竞争对手相比,YOLOv10 以更低的参数数和 FLOP 达到了最先进的性能。
  • Ultralytics 集成: 得到了 ultralytics 软件包意味着用户可以从统一的 Python API无缝导出为以下格式 TensorRTOpenVINO并提供大量文件。

生态系统优势

YOLOv10 与Ultralytics 生态系统集成后,可立即使用自动注释云培训和强大的社区支持等高级功能。

弱点

  • 较新的架构:作为 2024 年发布的产品,第三方教程生态系统正在迅速发展,但数量可能还无法与旧版传统机型相提并论。

了解有关YOLOv10的更多信息

YOLOX:无锚先锋

2021 年发布的 YOLOX 采用了无锚机制和去耦合头,与 YOLOv4 和YOLOv5 基于锚的方法不同。它利用 SimOTA(简化最优传输分配)进行标签分配,在动态标签分配策略方面迈出了重要一步。

技术细节:

结构和优势

YOLOX 因其简洁的无锚设计而一直是研究界的有力基准。

  • 无锚机制:通过移除预定义锚框,YOLOX 降低了设计的复杂性和需要调整的超参数数量。
  • 解耦头:与旧式的耦合设计相比,分离分类和定位任务提高了收敛速度和准确性。
  • 强大的基准:它是学术界研究探测头和分配策略的可靠基准。

弱点

  • 推理速度:YOLOX 虽然在当时很高效,但总体上落后于YOLOv10 和 YOLO11在原始推理速度方面,尤其是在考虑到NMS 时间的情况下。
  • 零散的工作流程:与Ultralytics 模型不同,YOLOX 通常需要自己特定的代码库和环境设置,缺乏现代框架中用于培训、验证和部署的统一界面。
  • 资源强度:与现代高效架构相比,在精度水平相似的情况下,FLOP 和参数数更高。

了解更多关于 YOLOX 的信息

性能分析

下面的比较强调了这些模型在三年内效率和准确性方面的显著进步。这些指标主要针对COCO 数据集上的模型大小(参数)、计算成本(FLOPs)和精度mAP)。

模型尺寸
(像素)
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
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9

重要观察

  1. 精度与尺寸: YOLOv10 始终以更少的参数提供更高的mAP 。例如,YOLOv10s仅用7.2 百万个参数就实现了46.7mAP,而YOLOXs9.0 百万个参数就实现了40.5mAP。这表明YOLOv10 具有卓越的架构效率。
  2. 计算效率: YOLOv10 型号的 FLOPs 数明显降低。YOLOv10xFLOP 数为 160.4B FLOPs,而YOLOXxFLOP 数为 281.9B FLOPs,但在精确度方面仍优于YOLOXx(54.4mAP 对 51.1mAP)。
  3. 推理速度:取消NMS 和优化架构使YOLOv10 实现了更低的延迟。T4TensorRT 基准测试显示,YOLOv10x 的运行时间为12.2ms,明显快于 YOLOXx 的16.1ms

理想用例

YOLOv10:现代标准

YOLOv10 是大多数新开发项目的首选,尤其是那些有以下要求的项目:

  • 边缘人工智能部署:它占用内存少、效率高,非常适合Raspberry Pi NVIDIA Jetson 等设备。
  • 实时应用:自动驾驶、机器人和视频分析等需要即时反馈的系统可从NMS 的低延迟中获益。
  • 快速发展: Ultralytics 生态系统允许快速 数据集管理培训和部署 ultralytics 软件包。

YOLOX:遗产与研究

YOLOX 始终与以下方面相关:

  • 学术研究:研究无锚检测器或特定标签分配策略(如 SimOTA)演变的研究人员经常使用 YOLOX 作为基准。
  • 传统系统:已经为 YOLOX 优化过的现有生产流水线,在升级成本超过性能提升的情况下,可以继续使用 YOLOX。

将YOLOv10 与Ultralytics结合使用

YOLOv10 最显著的优势之一是其易用性。Ultralytics Python API 简化了整个工作流程,从加载预训练权重到在自定义数据上进行训练。

下面是如何运行预测和训练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")

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

培训效率

Ultralytics YOLO 模型以训练效率高而著称,与老式架构或transformer模型相比,通常需要更少的CUDA 内存。这样就可以在标准消费级 GPU 上进行更大批量的训练。

结论

YOLOX在普及无锚检测方面发挥了关键作用、 YOLOv10代表了计算机视觉技术的又一次飞跃。YOLOv10 采用NMS 架构,具有卓越的准确性与计算比率,并可无缝集成到强大的Ultralytics 生态系统中,为开发人员和研究人员提供了一个极具吸引力的软件包。

对于那些希望部署最先进的对象检测功能的人来说,YOLOv10 提供了必要的速度和精度。如果开发人员对更广泛的功能感兴趣,如姿势估计 或定向边界框,也可以考虑探索多功能的 YOLO11或广泛采用的 YOLOv8.


评论