EfficientDet 与YOLOv8:物体检测巨头的技术比较
在快速发展的计算机视觉领域,选择正确的架构是项目成功的关键。本分析对比了两种有影响力的模型:EfficientDet 是Google 的一个研究里程碑,重点关注参数效率,而 YOLOv8是Ultralytics 为实时应用和易用性而设计的最先进模型。
EfficientDet 在模型缩放方面引入了开创性的概念,而更新的架构,如 YOLOv8和尖端的 YOLO11等新架构重新定义了速度、准确性和部署多样性的标准。
性能指标:速度、准确性和效率
在选择用于生产的模型时,开发人员必须在推理延迟和检测精度之间权衡利弊。下表直接比较了COCO 数据集的性能指标。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 最大限度地减少了FLOPs(浮点运算),这在历史上与理论效率相关。然而,在实际的实时推理场景中,尤其是在 GPU 上,YOLOv8 显示出了显著的优势。
- GPU 延迟:在使用 TensorRT 的 T4GPU 上,YOLOv8n 比 EfficientDet-d0快约 2.6 倍。 TensorRT快约 2.6 倍。这是因为YOLOv8 的架构针对硬件并行性进行了优化,而 EfficientDet 的深度可分离卷积在加速器上可能会受到内存限制。
- 规模精度: YOLOv8x 在更高端的应用中实现了卓越的 mAP为 53.9,推理速度为 14.37 毫秒,大大超过了 EfficientDet-d7,后者在类似精度下的推理速度为 128.07 毫秒。
- 模型大小:与最小的 EfficientDet(3.9M)相比,YOLOv8n 所需的参数(3.2M)更少,因此在移动应用中具有很高的存储效率。
效率与延迟
低 FLOP 数并不总是等同于快速执行。EfficientDet 针对理论计算成本进行了高度优化,但YOLOv8 更有效地利用了现代 GPU(如NVIDIA T4/A100)的并行处理能力,从而降低了实际延迟。
建筑与设计理念
了解了架构上的细微差别,就能解释上述性能差异。
EfficientDet 详情
- 作者: Mingxing Tan、Ruoming Pang 和 Quoc V. Le
- 组织机构Google
- 日期日期: 2019 年 11 月
- 论文:EfficientDet:可扩展的高效物体检测
- 存储库:Google AutoML
EfficientDet 基于复合缩放原理构建,可统一缩放网络分辨率、深度和宽度。它利用EfficientNet骨干网络,并引入了BiFPN(双向特征金字塔网络)。BiFPN 允许加权特征融合,了解哪些特征最重要。虽然这能产生较高的参数效率,但 BiFPN 复杂的不规则连接在偏好常规内存访问模式的硬件上执行时,计算成本会很高。
YOLOv8 详情
- 作者: Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
- 组织机构Ultralytics
- 日期: 2023 年 1 月日期: 2023 年 1 月
- 存储库Ultralytics GitHub
YOLOv8 标志着向无锚点检测机制的转变,通过消除手动计算锚点框的需要简化了训练过程。它的特点是使用C2f模块修改了CSPDarknet主干网,与以前的版本相比,它改善了梯度流和特征丰富度。磁头采用解耦结构,独立处理分类和回归任务,并采用任务对齐分配(Task Aligned Assign)进行动态标签分配。这种架构专门设计用于最大限度地提高GPU 硬件的吞吐量。
Ultralytics 的优势
EfficientDet 是一项杰出的学术成就,而围绕YOLOv8 和 YOLO11的 Ultralytics生态系统为专注于产品交付和MLOps 的开发人员带来了实实在在的好处。
1.易于使用和实施
实施 EfficientDet 通常需要在TensorFlow 生态系统中浏览复杂的配置文件和依赖关系。相比之下,Ultralytics 模型则优先考虑开发人员的体验。只需几行Python就能完成模型的加载、训练和部署。
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
detection = model("https://ultralytics.com/images/bus.jpg")
2.任务的多样性
EfficientDet 主要是一种对象检测架构。Ultralytics YOLOv8 的功能远远超出了简单的边界框。在同一框架内,用户可以执行以下操作
- 实例分割:像素级对象屏蔽
- 姿势估计骨骼跟踪的关键点检测
- 图像分类:整体图像分类
- 旋转框检测(Oriented Bounding Boxes):对旋转物体(如航空图像)进行检测。
3.训练和记忆效率
训练现代变压器或复杂的多尺度架构需要大量资源。Ultralytics YOLO 模型以其内存效率著称。
- 更低的 VRAM 占用率:高效的 C2f 模块和优化的损失函数允许YOLOv8 在消费级 GPU 上进行训练,而其他模型可能会面临内存不足 (OOM) 错误。
- 快速收敛:先进的增强技术(如Mosaic)可加快学习速度,减少达到高精度所需的历时。
综合生态系统
Ultralytics 模型与以下工具无缝集成 Weights & Biases, Comet和 ClearML以及用于实验跟踪的 Roboflow进行数据集管理。
真实世界的应用
对这些模式的选择往往决定了在特定环境中部署的可行性。
- EfficientDet 使用案例:它的参数效率很高,因此对有关扩展规律的学术研究或严格CPU 的传统系统(FLOPs 是硬CPU)很有意义,尽管延迟可能仍然高于YOLOv8n。
- YOLOv8 使用案例
结论
EfficientDet 仍然是对深度学习领域的重大贡献,它证明了智能扩展可以生成紧凑的模型。然而,对于当今的绝大多数实际应用来说,EfficientDet 仍然是一项重大贡献、 Ultralytics YOLOv8(和更新的 YOLO11) 提供了更优越的解决方案。
Ultralytics 模型在现代硬件上具有极快的推理速度、全面的Python SDK 以及处理多种视觉任务的能力,这些优势使Ultralytics 成为开发人员的推荐选择。无论您是在构建安全报警系统还是分析卫星图像,Ultralytics 生态系统都能为您提供各种工具,帮助您高效地将项目从概念转化为产品。
探索其他模型
要从更广阔的角度了解物体检测的选择,请参考以下比较:
- YOLOv8 vs.YOLOv7
- YOLO11 vs EfficientDet
- RT-DETR vs. EfficientDet
- YOLOv5 vs. EfficientDet
- YOLOv10 vs.YOLOv8