YOLOX 与 EfficientDet:技术对比
选择合适的物体检测架构是开发计算机视觉应用的关键决策。YOLOX 和 EfficientDet 是对这一领域产生重大影响的两个模型。 虽然这两个模型都旨在解决图像中物体的定位和分类问题,但它们采用的设计理念却截然不同。
本指南对高性能无锚检测器YOLOX 和注重效率的可扩展架构EfficientDet 进行了深入的技术比较。我们将分析它们的架构、基准和训练方法,帮助您决定哪种模型适合您的传统限制,同时还将介绍 Ultralytics YOLO11作为最先进性能的现代推荐替代方案。
YOLOX:无锚进化论
YOLOX 由 Megvii 的研究人员于 2021 年发布,它放弃了之前迭代的基于锚点的机制,代表了YOLO (只看一次)系列的转变。
- 作者: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, 和 Jian Sun
- 组织机构Megvii
- 日期: 2021-07-18
- Arxiv:YOLOX:2021 年超越YOLO 系列
- GitHub:Megvii-BaseDetection/YOLOX
架构与关键创新
YOLOX 的与众不同之处在于去耦合的头部结构。传统的探测器通常使用耦合头,其中分类和定位任务共享参数,这可能会导致训练过程中的冲突。YOLOX 将这些任务分离成不同的分支,显著提高了收敛速度和最终精度。
其最显著的特点是无锚点设计。通过消除对预定义锚框的需求,YOLOX 消除了与锚生成相关的启发式调整。与之搭配的是SimOTA(简化最优传输分配),这是一种先进的标签分配策略,可动态地将正样本分配给地面真值,从而比静态IoU 阈值更有效地平衡训练过程。
无锚效益
移除锚点框可以减少开发人员需要调整的设计参数数量。此外,由于模型会直接预测边界框,而不是调整预设的框形状,因此它还能更好地适用于不规则长宽比的对象。
EfficientDet:可扩展效率
EfficientDetGoogle 大脑团队于 2019 年开发,致力于在特定计算预算范围内实现尽可能高的精确度。它建立在 EfficientNet 骨干之上,并引入了一种新颖的特征融合技术。
- 作者: Mingxing Tan、Ruoming Pang 和 Quoc V. Le
- 组织: Google
- 日期: 2019-11-20
- Arxiv:EfficientDet:可扩展的高效物体检测
- GitHub:google
架构与关键创新
EfficientDet 的核心创新是BiFPN(加权双向特征金字塔网络)。传统的特征金字塔网络(FPN)会将不同尺度的特征相加相等,与之不同的是,BiFPN 引入了可学习的权重,以了解不同输入特征的重要性。它还允许信息自上而下和自下而上反复流动。
EfficientDet 还采用了复合缩放技术。它不是只对主干网或图像分辨率进行缩放,而是对网络的分辨率、深度和宽度进行统一缩放。这就形成了一个模型系列(D0 至 D7),提供了一条一致的效率与精度曲线,使其能够高度适应从移动应用程序到高端云处理的各种任务。
性能分析:速度与效率
这两种模型的根本区别在于它们的优化目标。EfficientDet针对理论效率(FLOPs 和参数)进行了优化,这通常可以很好地转化为边缘设备上的CPU 性能。反之,YOLOX 则是针对 GPU 上的高吞吐量推理而优化的,它利用了加速器能很好处理的密集算子。
下表说明了这种权衡。就参数而言,EfficientDet-d0 非常轻量级,而 YOLOX-s 在 TensorRT优化硬件上的推理速度明显更快。
| 模型 | 尺寸 (像素) | 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 |
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
重要观察
- GPU 延迟:YOLOX 在加速器上表现出卓越的性能。YOLOX-l 实现了与 EfficientDet-d4 相同的精度(49.7mAP),但在 T4GPU 上的运行速度快了近3.7 倍(9.04ms 对 33.55ms)。
- 参数效率:当存储量是主要限制因素时,EfficientDet 的表现更为出色。EfficientDet-d3 只需 1,200 万个参数就能提供很高的精度(47.5mAP),而使用 YOLOX 要达到类似的精度,则需要中型模型的两倍多参数。
- 训练复杂度:YOLOX 本身集成了强大的数据增强技术,如 Mosaic 和MixUp ,这有助于从头开始训练强大的模型,而 EfficientDet 则在很大程度上依赖于 EfficientNet 主干网的特定属性和复合缩放规则。
Ultralytics YOLO11:高级替代品
虽然 YOLOX 和 EfficientDet 在各自的时代都具有开创性,但计算机视觉领域的发展日新月异。为了实现 2024 年及以后的现代应用,我们需要 Ultralytics YOLO11提供了一种全面的解决方案,在速度、准确性和可用性方面均优于这两种传统架构。
为什么选择 Ultralytics YOLO11?
- 性能平衡: YOLO11 的设计目的是在速度和准确性之间进行最佳权衡。它通常能达到或超过 EfficientDet-d7 的最高精度,同时保持接近最快 YOLOX 变体的推理速度。
- 易于使用:与 EfficientDet 或 YOLOX 复杂的研究资料库不同,Ultralytics 提供了一个可用于生产的Python API。只需几行代码,您就可以加载、训练和部署一个模型。
- 维护良好的生态系统: Ultralytics 模型得到了积极开发、频繁更新和活跃社区的支持。集成的生态系统包括用于无缝数据集管理和模型训练的Ultralytics HUB。
- 多功能性:YOLOX 和 EfficientDet 主要是对象检测器,而YOLO11 则在单一框架内支持多种任务,包括实例分割、姿势估计 、定向边框(旋转框检测)和分类。
- 训练效率:与旧式transformer 或复杂的骨干架构相比,YOLO11 采用了经过改进的架构块,减少了训练过程中的内存需求。这使得在消费级硬件上训练最先进的模型成为可能。
开始使用YOLO11
使用YOLO11 运行预测非常简单。以下代码片段演示了如何加载预训练模型并在图像上运行推理。
from ultralytics import YOLO
# Load the YOLO11n model (nano version for speed)
model = YOLO("yolo11n.pt")
# Perform object detection on an image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
理想用例
- 只有当您在极其有限的CPU边缘设备上部署时,FLOP 数量是绝对的限制因素,并且您有传统的依赖关系时,才会选择 EfficientDet。
- 如果您需要在GPU 上进行无锚检测器的学术研究,可以选择 YOLOX,但要注意与现代框架相比,YOLOX的设置更为复杂。
- 几乎所有新的商业和研究项目都会选择Ultralytics YOLO11。无论您是要构建自动驾驶汽车、智能城市分析,还是要进行制造质量控制,YOLO11 都能提供从原型到生产所需的稳健性、速度和工具。
结论
YOLOX 和 EfficientDet 都为物体检测技术的进步做出了重大贡献。EfficientDet 证明了模型缩放可以是科学的、结构化的,而 YOLOX 则成功地推广了完全无锚检测管道。
然而 Ultralytics YOLO11综合了这些架构的最佳经验--效率、无锚设计和GPU 优化--形成了一个统一的、用户友好的软件包。Ultralytics YOLO11 在训练过程中占用内存更少,支持多种计算机视觉任务,并与ONNX 和CoreML 等部署格式无缝集成,是当今开发人员的推荐选择。
延伸阅读
探索更多比较,了解物体检测模型的全貌: