YOLOX 与YOLOv7:详细技术比较
要在各种物体检测模型中游刃有余,就必须深入了解架构上的细微差别和性能权衡。本指南对YOLOX和 YOLOv7之间进行了全面的技术比较。我们探讨了它们的结构创新、基准指标和实际应用,以帮助您确定最适合您项目的架构。虽然这两种模型在各自推出时都代表了最先进的技术,但现代开发人员通常会向Ultralytics 生态系统寻求统一的工作流程和最先进的性能。
性能正面交锋
在选择模型时,平均精度mAP)和推理延迟之间的平衡往往是决定性因素。YOLOX 提供从 Nano 到 X 的高度可扩展的模型系列,通过无锚设计强调简单性。与此相反,YOLOv7 采用先进的架构优化,专注于为实时应用最大限度地实现速度-精度权衡。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
这些数据说明了 YOLOXnano 的独特优势。YOLOXnano非常轻便,非常适合资源极其有限的环境。然而,在高性能应用场景中,YOLOv7x则表现出更高的精度(53.1%mAP)和效率,其精度高于 YOLOXx,但浮点运算(FLOP)显著减少,在 T4 GPU 上的推理时间更快。
YOLOX:无锚设计带来简约风格
YOLOX 摒弃了基于锚的机制,转而采用无锚方法,标志着YOLO 系列的模式转变。这种设计选择简化了训练过程,无需手动调整锚点盒,而这通常需要针对特定领域进行启发式优化。
- 作者: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, 和 Jian Sun
- 组织机构Megvii
- 日期: 2021-07-18
- Arxiv:https://arxiv.org/abs/2107.08430
- GitHub:https://github.com/Megvii-BaseDetection/YOLOX
架构与关键创新
YOLOX 集成了一个解耦的头部结构,将分类和回归任务分离开来。这种分离使模型能够学习识别物体是什么和在哪里的不同特征,从而加快收敛速度,提高准确性。此外,YOLOX 还采用了先进的标签分配策略SimOTA,该策略可动态地将正样本与地面实况对象相匹配,从而提高了模型在拥挤场景中的鲁棒性。
无锚与有锚
传统的YOLO 模型(在 YOLOX 之前)使用预定义的 "锚点框 "来预测物体尺寸。YOLOX 的无锚方法直接从像素位置预测边界框,减少了超参数的数量,使模型更适用于各种数据集。
用例和限制
YOLOX 适用于需要在各种硬件平台上简化模型部署而无需进行大量超参数调整的场景。其轻量级变体(Nano/Tiny)在移动应用中很受欢迎。然而,它在更大规模上的峰值性能已被YOLOv7 和 YOLO11等新架构所超越,这些架构利用了更复杂的特征聚合网络。
YOLOv7:"免费大礼包 "强国
在 YOLOX 发布一年后,YOLOv7 引入了一套架构改革,旨在优化训练过程,纯粹通过 "可训练的免费赠品包 "来提高推理结果。
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 组织机构中央研究院信息科学研究所
- 日期: 2022-07-06
- Arxiv:https://arxiv.org/abs/2207.02696
- GitHub:https://github.com/WongKinYiu/yolov7
架构与关键创新
YOLOv7 的核心是扩展高效层聚合网络(E-ELAN)。这一架构允许网络通过控制最短和最长梯度路径来学习更多不同的特征,从而确保深度网络的有效收敛。此外,YOLOv7 还采用了专为基于串联的模型设计的模型扩展技术,确保模型深度和宽度的增加可线性地转化为性能提升,而不会出现收益递减。
YOLOv7 还在训练过程中有效地使用了辅助头,以提供从粗到细的监督,这种技术可以提高主检测头的准确性,而不会增加部署过程中的计算成本。
用例和限制
YOLOv7 以其卓越的速度-精度比,成为实时视频分析和边缘计算任务中毫秒必争的顶级竞争者。它突破了标准GPU 硬件(如 V100 和 T4)的极限。不过,由于其架构的复杂性,要修改或微调它以执行标准物体检测以外的定制任务具有一定的挑战性。
Ultralytics 的优势:为什么要现代化?
虽然 YOLOX 和YOLOv7 仍然是功能强大的工具,但计算机视觉领域的发展日新月异。现代开发人员和研究人员越来越青睐Ultralytics 生态系统,其模型包括 YOLO11和 YOLOv8等模型的 Ultralytics 生态系统,因为它们具有全面的支持、统一的设计和易用性。
简化开发人员体验
旧版本最大的障碍之一就是代码库的分散。Ultralytics 提供了统一的Python 应用程序接口和CLI ,可以在所有模型版本中一致运行,从而解决了这个问题。只需一行代码,您就可以在检测、分割或分类之间进行切换。
from ultralytics import YOLO
# Load a model (YOLO11 or YOLOv8)
model = YOLO("yolo11n.pt") # or "yolov8n.pt"
# Run inference on an image
results = model("path/to/image.jpg")
# Export to ONNX for deployment
model.export(format="onnx")
Ultralytics 模型的主要优势
- 多功能性:与主要侧重于检测的 YOLOX 和YOLOv7 不同,Ultralytics 模型开箱即支持实例分割、姿势估计 、分类和定向对象检测(旋转框检测)。
- 维护良好的生态系统:频繁的更新可确保与最新版本的PyTorch、CUDA 和Python 兼容。活跃的社区和详细的文档减少了调试环境问题所花费的时间。
- 性能平衡: YOLO11 等模型代表了最新的技术水平,与 YOLOX 和YOLOv7 相比,具有更高的准确性和更低的延迟。它们针对从边缘设备到云服务器等各种硬件上的实时推理进行了优化。
- 训练效率: Ultralytics 模型的设计可加快收敛速度,节省宝贵的GPU 时间。预先训练的权重可随时用于各种任务,从而使迁移学习变得简单易行。
- 内存要求:这些模型设计高效,与transformer替代方案(如RT-DETR)相比,在训练和推理过程中需要的 VRAM 通常更少,因此可以在消费级硬件上使用。
结论
YOLOX 和YOLOv7 在计算机视觉史上都占有一席之地。YOLOX实现了无锚点方法的平民化,提供了易于理解和在小型设备上部署的简化管道。 YOLOv7推动了性能的发展,证明了高效的架构设计可以在速度和准确性方面带来巨大的提升。
不过,对于那些正在构建生产级人工智能系统的人来说,我们的建议主要倾向于 Ultralytics YOLO系列。通过 YOLO11,您将获得一个多功能、强大且用户友好的平台,该平台可处理MLOps 的复杂问题,使您能够专注于解决实际问题。
探索其他比较
为了进一步帮助您选择模型,可以考虑进行以下相关比较: