YOLOv8 与 EfficientDet:目标检测架构深度解析
在快速发展的计算机视觉领域,选择合适的物体 detect 模型对于构建成功的 AI 应用至关重要。在各自时代定义了最先进水平的两个著名架构是 Ultralytics 的 YOLOv8 和 Google Research 的 EfficientDet。本比较探讨了这两个模型的技术细微差别、性能指标和理想用例,帮助开发人员和研究人员为他们的项目做出明智的决策。
EfficientDet在发布时引入了模型缩放和效率方面的开创性概念,而Ultralytics YOLOv8则代表了更现代的演进,优先考虑实时推理速度、易用性和实际部署能力。
性能正面交锋:速度、精度和效率
YOLOv8 和 EfficientDet 之间的比较突出了设计理念的根本转变。EfficientDet 侧重于最大限度地减少 FLOPs(浮点运算)和参数数量,理论上使其效率很高。相比之下,YOLOv8 旨在最大限度地提高现代硬件上的吞吐量,利用 GPU 并行性提供卓越的推理速度,同时不牺牲精度。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 延迟优势: YOLOv8 模型在 GPU 硬件上显著更快。例如,YOLOv8x 在 T4 GPU 上运行速度比 EfficientDet-d7 (53.7) 快约 9 倍 (14.37 毫秒 vs. 128.07 毫秒),同时实现了更高的 mAP (53.9)。这使得 YOLOv8 成为 实时推理 应用的首选。
- 精度与参数: 虽然 EfficientDet 以其参数效率而闻名,但 YOLOv8 提供了具有竞争力的精度,并且模型更易于优化。YOLOv8m 在精度上优于 EfficientDet-d4(50.2 vs 49.7 mAP),并且具有明显更高的推理速度,尽管 FLOPs 存在差异。
- 架构效率: EfficientDet 较低的 FLOP 计数并不总是转化为较低的延迟,尤其是在 GPU 上,内存访问成本和平行性比原始操作计数更重要。YOLOv8 的架构经过定制,可以最大限度地提高硬件利用率。
硬件优化
始终在目标硬件上对模型进行基准测试。理论 FLOPs 是衡量复杂度的有用指标,但通常无法预测 GPU 或 NPU 上的实际延迟,因为内存带宽和并行化能力在其中扮演着更重要的角色。使用 YOLO 基准测试模式 在您的特定设置上测试性能。
Ultralytics YOLOv8 概述
YOLOv8 是 YOLO(You Only Look Once)系列中由 Ultralytics 发布的最新主要迭代,旨在成为目标检测、实例分割和图像分类的统一框架。
- 作者: Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
- 组织:Ultralytics
- 日期:2023年1月10日
- GitHub:ultralytics/ultralytics
YOLOv8 引入了关键的架构改进,包括无锚点检测头,这简化了训练过程并提高了对不同物体形状的泛化能力。它还利用了新的骨干网络和路径聚合网络 (PAN-FPN),旨在实现更丰富的特征集成。
YOLOv8 的优势
- 领先的性能:在速度和准确性之间实现了卓越的平衡,在 COCO 数据集上树立了基准。
- 开发者友好生态系统: 字段
ultralyticspython 包提供了一个简化的 API,统一了训练、验证和部署。 - 多功能性:在单个仓库中支持多任务(detect、segmentation、姿势估计、旋转框检测、分类)。
- 训练效率:利用Mosaic增强等技术,YOLOv8模型收敛更快,并且通常需要更少的训练数据才能达到高精度。
Google EfficientDet 概述
EfficientDet 由 Google Brain 团队开发,是一个目标检测模型家族,它将复合缩放的概念引入了目标检测领域。它同时缩放网络的分辨率、深度和宽度,以实现最佳性能。
- 作者: Mingxing Tan、Ruoming Pang 和 Quoc V. Le
- 组织:Google Research
- 日期:2019年11月20日
- ArXiv:EfficientDet: Scalable and Efficient Object Detection
EfficientDet 基于EfficientNet 骨干网络,并引入了BiFPN(双向特征金字塔网络),它允许轻松快速地进行多尺度特征融合。
EfficientDet 的优势
- 参数效率:以相对较少的参数和 FLOPs 实现高精度。
- 可扩展性: 字段
d0到d7缩放方法提供了一种系统的方式来权衡资源与准确性。 - BiFPN:创新的特征金字塔网络有效融合了不同分辨率的特征。
架构比较
YOLOv8 和 EfficientDet 之间的架构差异决定了它们的性能特征以及对不同任务的适用性。
骨干网络与特征融合
- YOLOv8采用改进的CSPDarknet骨干网络,其中包含C2f模块,取代了YOLOv5中的C3模块。这种设计改善了梯度流,并针对GPU并行性进行了高度优化。
- EfficientDet采用EfficientNet骨干网络结合BiFPN。BiFPN使用可学习权重来融合来自不同级别的特征,这在理论上是高效的,但涉及复杂、不规则的内存访问模式,可能会减慢GPU上的推理速度。
检测头
- YOLOv8采用解耦头架构,将目标性、分类和回归任务分离。关键在于,它是无锚点的,直接预测物体中心。这消除了手动调整锚框的需要,并减少了超参数的数量。
- EfficientDet采用基于锚框的方法。虽然有效,但基于锚框的方法通常需要针对特定数据集仔细校准锚框尺寸和长宽比,这增加了训练流程的复杂性。
易用性与生态系统
最显著的差异化因素之一是模型所围绕的生态系统。Ultralytics 一直致力于普及 AI,确保 YOLOv8 对初学者和专家都易于访问。
Ultralytics 体验
The Ultralytics Python API允许用户通过几行代码加载、训练和部署模型。该生态系统无缝集成了Weights & Biases等工具用于实验跟踪,以及Roboflow用于数据集管理。
from ultralytics import YOLO
# Load a YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
相比之下,EfficientDet 通常存在于面向研究的存储库中(例如原始的 TensorFlow 实现)。尽管功能强大,但这些实现通常需要更多的样板代码、复杂的配置文件,以及对底层框架 (TensorFlow/Keras) 更深入的了解才能在 自定义数据集 上进行训练。
导出功能
Ultralytics 模型支持一键导出为多种格式,包括 ONNX、TensorRT、CoreML 和 TFLite。这种灵活性对于将模型部署到从云服务器到 Raspberry Pi 边缘设备等各种环境至关重要。
理想用例
何时选择 YOLOv8
YOLOv8 是当今绝大多数计算机视觉应用的首选,因为它在速度和准确性之间取得了平衡。
- 实时应用: 在延迟至关重要的自动驾驶、视频监控和机器人技术等领域。
- 边缘部署: 在 NVIDIA Jetson、移动设备或边缘计算单元上运行,在这些场景中,效率和速度至关重要。
- 快速原型开发:当您需要使用可靠、文档完善的框架快速地从数据集到部署模型时。
- 多任务需求:如果您的项目涉及 segment 或姿势估计,YOLOv8 原生支持这些功能。
何时选择 EfficientDet
EfficientDet 在小众场景中仍然具有相关性,特别是在学术研究或高度受限的 CPU 环境中。
- 理论研究:研究高效的网络架构和缩放定律。
- 特定低功耗CPU: 在某些情况下,较低的FLOP计数可能意味着在资源极度受限的CPU上拥有更好的电池续航,但建议进行基准测试。
结论
尽管EfficientDet是高效神经网络设计领域的里程碑式成就,但YOLOv8和更新的YOLO11为现代AI开发提供了更优越的方案。YOLOv8的无锚框架构、GPU优化设计和强大的Ultralytics生态系统在开发速度、推理延迟和部署灵活性方面提供了显著优势。
对于希望构建快速且准确的最先进计算机视觉解决方案的开发者而言,Ultralytics YOLO 模型是明确的选择。
探索其他模型
如果您有兴趣将这些架构与其他模型进行比较,请查看这些页面: