YOLOv6.0 与 EfficientDet:平衡物体检测的速度与精度
在快速发展的计算机视觉领域,选择正确的对象检测架构对项目的成功至关重要。本比较深入探讨了YOLOv6.0和EfficientDet 这两个从不同角度应对视觉识别挑战的杰出模型。EfficientDet 侧重于参数效率和可扩展性,而YOLOv6.0 则专为工业应用而设计,在这些应用中,推理延迟和实时速度是不可或缺的。
性能指标和技术分析
这两种架构的根本区别在于它们的设计理念。EfficientDet 依赖于一种称为 BiFPN 的复杂特征融合机制,这种机制可以提高准确性,但往往要以牺牲 GPU 的计算速度为代价。相反,YOLOv6.0 采用了硬件感知设计,利用重新参数化来简化推理过程中的操作,从而大大提高了FPS(每秒帧数)。
下表说明了这种权衡。虽然 EfficientDet-d7 实现了很高的mAP,但其延迟却非常大。相比之下,YOLOv6.0l 在大幅缩短推理时间的同时,还能提供与之相当的精确度,因此更适合实时推理场景。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
| 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 |
性能优化
对于工业部署,将YOLOv6.0 与 TensorRT可以大幅提高速度。与旧型号中复杂的特征金字塔网络相比,YOLOv6 架构简单,可以非常高效地映射到GPU 硬件指令。
YOLOv6.0:为工业而建
YOLOv6.0 是一款单级物体检测器,旨在缩小学术研究与工业需求之间的差距。它优先考虑速度,同时又不牺牲质量检测等任务所需的精度。
作者:李楚一、李露露、耿一飞、蒋洪亮、程萌、张博、柯在丹、徐晓明、储祥祥李楚怡、李露露、耿一飞、蒋洪亮、程萌、张博、柯在丹、徐晓明、储祥祥
组织:美团网
日期:2023-01-13
Arxiv:YOLOv6 v3.0:全面重装
GitHub:YOLOv6
文档:YOLOv6 文档
结构和优势
YOLOv6.0 的核心是其高效的骨干和 "RepOpt "设计。通过利用重参数化,该模型将训练时的多分支结构与推理时的单分支结构分离开来。因此,该模型易于训练,梯度丰富,执行速度极快。
- 自我发散:该训练策略采用了自我发散法,即模型本身的预测作为软标签来指导学习,从而在不需要额外数据的情况下提高准确性。
- 支持量化:它在设计时考虑到了模型量化,在转换为 INT8 进行边缘部署时可最大限度地减少精度下降。
- 工业重点:是制造和机器人领域人工智能的理想之选,其毫秒级延迟非常重要。
EfficientDet:可扩展精度
EfficientDet 将复合缩放的概念引入物体检测领域,为这一领域带来了革命性的变化。它能同时优化网络深度、宽度和分辨率,从而实现每个参数的卓越性能。
作者: Mingxing Tan、Ruoming Pang 和 Quoc V. LeMingxing Tan、Ruoming Pang 和 Quoc V. Le
组织:Google
日期:2019-11-20
Arxiv:EfficientDet:可扩展的高效对象检测
GitHub:google
结构和优势
EfficientDet 依赖于 EfficientNet 骨干网,并引入了双向特征金字塔网络(BiFPN)。这种复杂的颈部结构可以方便快捷地进行多尺度特征融合。
- BiFPN与传统的 FPN 不同,BiFPN 允许信息自上而下和自下而上地流动,对不同的输入特征施加权重,以强调其重要性。
- 复合缩放:通过简单的系数 $\phi$,用户可以根据可用资源扩大模型(从 d0 到 d7),提供可预测的精度-计算曲线。
- 参数效率:较小的变体(d0-d2)在磁盘大小和FLOP 方面都非常轻便,因此适用于存储受限的环境。
建筑复杂性
虽然 BiFPN 在精度方面非常有效,但与YOLO 架构中使用的密集、规则的卷积块相比,其不规则的内存访问模式会使其在 GPU 上的运行速度更慢。这就是为什么 EfficientDet 虽然参数较少,但推理延迟较高的原因。
实际应用案例
在这些模式中如何选择,往往取决于部署环境的具体限制。
YOLOv6.0 的理想场景
- 高速制造:在快速移动的传送带上检测缺陷,要求以高 FPStrack 每个物品。
- 自主导航:通过实时处理视频馈送,使机器人能够在动态环境中导航。
- 边缘计算:在NVIDIA Jetson等设备上部署,必须最大限度地利用GPU 资源来提高吞吐量。
EfficientDet 的理想应用场景
- 医学分析:分析静态高分辨率图像,如 X 射线中的肿瘤检测,在这种情况下,处理时间比精度更重要。
- 遥感:离线处理卫星图像,以确定环境变化或城市发展。
- 低存储物联网:存储容量极其有限、需要较小模型文件大小的设备(如 EfficientDet-d0)。
Ultralytics 的优势:为什么选择 YOLO11?
虽然YOLOv6.0 和 EfficientDet 都是功能强大的模型,但是 Ultralytics YOLO11代表了计算机视觉技术的最前沿。YOLO11 精炼了前几代YOLO 的最佳特性,并将其整合到一个无缝、用户友好的生态系统中。
YOLO11的主要优势
- 易于使用: Ultralytics 优先考虑开发人员的使用体验。通过 Pythonic API,您只需几行代码就能完成模型的训练、验证和部署,而不像 EfficientDet 通常需要复杂的配置文件。
- 多功能性: YOLO11 和 EfficientDet 主要是对象检测模型,而YOLO11 则不同,它原生支持多种任务,包括实例分割、姿势估计 、定向边界框(旋转框检测)和分类。
- 性能平衡: YOLO11 在速度和准确性之间实现了最先进的平衡。在COCO 数据集上,它的性能始终优于旧架构,同时保持了较低的延迟。
- 维护良好的生态系统: Ultralytics 模型拥有活跃的社区和频繁的更新。您可以访问大量的文档、教程,并与Ultralytics HUB等工具无缝集成,进行云培训和数据集管理。
- 训练效率:与复杂的transformer模型或老式架构相比,YOLO11 的设计可在训练过程中提高资源效率,通常收敛速度更快,所需的GPU 内存更少。
from ultralytics import YOLO
# Load the YOLO11 model (recommended over older versions)
model = YOLO("yolo11n.pt")
# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Display results
results[0].show()
探索其他模型
如果您正在评估计算机视觉管道的各种选项,请考虑探索Ultralytics 目录中的其他模型。模型 YOLOv8可为各种任务提供强大的性能,而transformerRT-DETR则为需要全局上下文感知的场景提供了另一种选择。适用于移动应用、 YOLOv10也值得研究。将这些方案与EfficientDet进行比较,有助于根据具体的硬件和精度要求对您的选择进行微调。