跳转至内容

YOLOv7 与 YOLOX:详细技术比较

在快速发展的计算机视觉领域,YOLO (You Only Look Once)系列模型一直是实时物体检测的标准。这一历史上的两个重要里程碑是 YOLOv7YOLOX。虽然这两个模型的目标都是在速度和准确性之间取得平衡,但它们在架构理念上却有很大的不同,特别是在基于锚点和无锚点的方法上。

本指南提供深入的技术比较,帮助研究人员和工程师选择适合其特定计算机视觉应用的工具。我们将分析它们的架构、基准性能,并探讨为什么现代的替代品,如 Ultralytics YOLO11等现代替代工具往往能为开发人员带来卓越体验的原因。

性能指标:速度和准确性

在评估物体检测器时,推理延迟和平均精度mAP)之间的权衡至关重要。下表列出了YOLOv7 和 YOLOX 变体在COCO 数据集上的直接比较。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
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

结果分析

这些数据凸显了每个机型系列的独特优势,具体取决于部署限制因素。 YOLOv7在高性能领域表现出了卓越的效率。例如,YOLOv7l仅用 36.9M 个参数就实现了51.4% 的mAP,超过了YOLOXx(51.1%mAP,99.1M 个参数),而使用的计算资源却少得多。这使得YOLOv7 成为GPU 效率至关重要但内存有限的应用场景的有力候选者。

与此相反,YOLOX在轻量级产品领域大放异彩。YOLOX-Nano型号(0.91M 参数)为超低功耗边缘设备提供了一种可行的解决方案,即使是最小的标准YOLO 型号也可能过于笨重。其可扩展的深度-宽度乘数允许在各种硬件配置文件中进行精细调整。

YOLOv7:优化的免费赠品袋

YOLOv7 于 2022 年 7 月发布,它在结构上进行了多项创新,旨在优化训练过程而不产生推理成本。

  • 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
  • 组织: 台湾中研院资讯所
  • 日期: 2022-07-06
  • 论文:Arxiv 链接
  • GitHub:YOLOv7 代码库

了解有关YOLOv7的更多信息

建筑亮点

YOLOv7 专注于 "可训练的无用信息包"--在训练过程中提高准确性,但在推理过程中去除或合并的优化方法。主要特点包括

  1. E-ELAN(扩展高效层聚合网络):一种改进的主干结构,通过控制最短和最长梯度路径,增强模型学习各种特征的能力。
  2. 模型缩放: YOLOv7 并非简单地缩放深度或宽度,而是对基于串联的模型采用复合缩放方法,在向上缩放时保持最佳结构。
  3. 辅助损耗头从粗到细:在训练过程中使用辅助损耗头来辅助监督,然后将其重新参数化为主损耗头进行推理。

重新参数化

YOLOv7 采用有计划的重参数化,将不同的训练模块以数学方式合并到一个卷积层中进行推理。这大大减少了推理延迟,同时又不影响在训练过程中获得的特征学习能力。

YOLOX:无锚进化论

2021 年发布的 YOLOX 代表了YOLO 模式的转变,从锚框转向无锚机制,类似于语义分割方法。

  • 作者: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, 和 Jian Sun
  • 组织: Megvii
  • 日期: 2021-07-18
  • 论文:Arxiv 链接
  • GitHub:YOLOX 资源库

了解有关 YOLOX 比较的更多信息

建筑亮点

在 YOLOv4 和YOLOv5 等以前的版本中,手动调整锚点框是一个常见的痛点,而YOLOv5 通过消除这一需求简化了检测管道。

  1. Anchor-Free Mechanism: 通过直接预测对象的中心,YOLOX 消除了与 anchor 相关的复杂超参数,从而提高了在不同数据集上的泛化能力。
  2. 解耦头:早期的YOLO 版本将分类和定位耦合在一个头中,与此不同,YOLOX 将它们分开。这使得收敛速度更快,准确性更高。
  3. SimOTA:一种先进的标签分配策略,能以最低成本将正样本动态分配给地面实况,有效平衡分类和回归损失。

为什么Ultralytics 模型是首选?

虽然YOLOv7 和 YOLOX 在架构上有所不同,但两者在可用性和生态系统支持方面都超越了现代的Ultralytics YOLO 模型。对于寻求稳健、面向未来的解决方案的开发人员来说,过渡到 YOLO11具有明显的优势。

1. 统一的生态系统和易用性

YOLOv7 和 YOLOX 通常需要克隆特定的 GitHub 资源库,管理复杂的依赖性要求,并使用不同的数据格式。相比之下,Ultralytics 提供了一个 pip-installable 软件包,可以统一所有任务。

from ultralytics import YOLO

# Load a model (YOLO11n recommended for speed)
model = YOLO("yolo11n.pt")

# Train on a custom dataset with a single line
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

2. 优越的性能平衡

如基准测试所示,现代Ultralytics 模型在速度和准确性之间实现了更好的权衡。 YOLO11采用了优化的无锚架构,该架构借鉴了 YOLOX(无锚设计)和YOLOv7 (梯度路径优化)的先进技术。这使得模型不仅在CPU 推理中速度更快,而且在训练过程中需要的CUDA 内存更少,从而可以在更广泛的硬件上使用。

3. 跨任务的多功能性

YOLOv7 和 YOLOX 主要用于物体检测。Ultralytics 模型可在不更改应用程序接口的情况下,将这一功能原生扩展到一系列计算机视觉任务中:

4. 无缝部署和 MLOps

使用旧框架将模型从研究成果转化为生产成果具有挑战性。Ultralytics 生态系统包括ONNX、TensorRT、CoreML 和OpenVINO 的内置导出模式,从而简化了模型部署。此外,通过与Ultralytics HUB集成,还可以实现基于网络的数据集管理、远程培训和一键部署到边缘设备。

了解更多关于 YOLO11 的信息

结论

YOLOv7 和 YOLOX 都为计算机视觉领域做出了重大贡献。 YOLOv7优化了在GPU 设备上实现峰值性能的架构,最大限度地提高了 "无锚点 "方法的效率。YOLOX成功证明了无锚点检测的可行性,简化了管道并提高了泛化能力。

然而,对于现代开发工作流程而言,Ultralytics Ultralytics YOLO11是最理想的选择。它将前代产品的架构优势与无与伦比的Python API、更低的内存要求以及对各种视觉任务的支持结合在一起。无论您是部署到边缘设备还是云服务器,Ultralytics 生态系统活跃的社区和丰富的文档都能确保您更顺利地投入生产。

探索其他模型

如果您对进一步的技术比较感兴趣,请浏览这些资源:


评论