跳转至内容

YOLOX 与 EfficientDet:技术对比

选择合适的物体检测架构是开发计算机视觉应用的关键决策。YOLOX 和 EfficientDet 是对这一领域产生重大影响的两个模型。 虽然这两个模型都旨在解决图像中物体的定位和分类问题,但它们采用的设计理念却截然不同。

本指南对高性能无锚检测器YOLOX 和注重效率的可扩展架构EfficientDet 进行了深入的技术比较。我们将分析它们的架构、基准和训练方法,帮助您决定哪种模型适合您的传统限制,同时还将介绍 Ultralytics YOLO11作为最先进性能的现代推荐替代方案。

YOLOX:无锚进化论

YOLOX 由 Megvii 的研究人员于 2021 年发布,它放弃了之前迭代的基于锚点的机制,代表了YOLO (只看一次)系列的转变。

架构与关键创新

YOLOX 的与众不同之处在于去耦合的头部结构。传统的探测器通常使用耦合头,其中分类和定位任务共享参数,这可能会导致训练过程中的冲突。YOLOX 将这些任务分离成不同的分支,显著提高了收敛速度和最终精度。

其最显著的特点是无锚点设计。通过消除对预定义锚框的需求,YOLOX 消除了与锚生成相关的启发式调整。与之搭配的是SimOTA(简化最优传输分配),这是一种先进的标签分配策略,可动态地将正样本分配给地面真值,从而比静态IoU 阈值更有效地平衡训练过程。

无锚效益

移除锚点框可以减少开发人员需要调整的设计参数数量。此外,由于模型会直接预测边界框,而不是调整预设的框形状,因此它还能更好地适用于不规则长宽比的对象。

了解更多关于 YOLOX 的信息

EfficientDet:可扩展效率

EfficientDetGoogle 大脑团队于 2019 年开发,致力于在特定计算预算范围内实现尽可能高的精确度。它建立在 EfficientNet 骨干之上,并引入了一种新颖的特征融合技术。

架构与关键创新

EfficientDet 的核心创新是BiFPN(加权双向特征金字塔网络)。传统的特征金字塔网络(FPN)会将不同尺度的特征相加相等,与之不同的是,BiFPN 引入了可学习的权重,以了解不同输入特征的重要性。它还允许信息自上而下和自下而上反复流动。

EfficientDet 还采用了复合缩放技术。它不是只对主干网或图像分辨率进行缩放,而是对网络的分辨率、深度和宽度进行统一缩放。这就形成了一个模型系列(D0 至 D7),提供了一条一致的效率与精度曲线,使其能够高度适应从移动应用程序到高端云处理的各种任务。

了解更多关于 EfficientDet 的信息

性能分析:速度与效率

这两种模型的根本区别在于它们的优化目标。EfficientDet针对理论效率(FLOPs 和参数)进行了优化,这通常可以很好地转化为边缘设备上的CPU 性能。反之,YOLOX 则是针对 GPU 上的高吞吐量推理而优化的,它利用了加速器能很好处理的密集算子。

下表说明了这种权衡。就参数而言,EfficientDet-d0 非常轻量级,而 YOLOX-s 在 TensorRT优化硬件上的推理速度明显更快。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
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
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0

重要观察

  1. GPU 延迟:YOLOX 在加速器上表现出卓越的性能。YOLOX-l 实现了与 EfficientDet-d4 相同的精度(49.7mAP),但在 T4GPU 上的运行速度快了近3.7 倍(9.04ms 对 33.55ms)。
  2. 参数效率:当存储量是主要限制因素时,EfficientDet 的表现更为出色。EfficientDet-d3 只需 1,200 万个参数就能提供很高的精度(47.5mAP),而使用 YOLOX 要达到类似的精度,则需要中型模型的两倍多参数。
  3. 训练复杂度: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 等部署格式无缝集成,是当今开发人员的推荐选择。

延伸阅读

探索更多比较,了解物体检测模型的全貌:


评论