YOLOv10 对比 RT-DETRv2:目标检测技术比较
选择最佳物体检测架构是一项关键决策,需要在推理速度、准确性和计算资源需求之间权衡利弊。本综合指南比较了 YOLOv10和 RT-DETRv2 进行了比较。 RT-DETRv2和 RT-DETRv2,后者是一个transformer复杂模型,专为高精度任务而设计。我们分析了它们的架构创新、性能指标和理想部署方案,帮助您为计算机视觉项目做出明智的选择。
YOLOv10:效率驱动的实时检测
YOLOv10 代表了 YOLO 系列的重大飞跃,专注于消除传统实时检测器的瓶颈。它由清华大学的研究人员开发,引入了一种无需 NMS 的训练范例,通过消除对非极大值抑制后处理的需求来简化部署流程。
- 作者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 组织:清华大学
- 日期: 2024-05-23
- Arxiv:2405.14458
- GitHub:THU-MIG/yolov10
- 文档:YOLOv10 文档
架构创新
YOLOv10采用了整体效率-精度驱动的设计。它在训练期间利用一致性双重分配来实现免NMS推理,这显著降低了延迟。该架构还具有轻量级分类头和空间-通道解耦下采样,以最大程度地减少计算冗余。这种设计确保了模型在保持有竞争力的精度的同时,仍然极快,使其特别适用于资源稀缺的边缘计算场景。
免NMS推理
YOLOv10 移除了 非极大值抑制 (NMS),降低了后处理步骤的复杂性。这带来了更低的 推理延迟,并使得在端到端管道中部署模型变得更容易,无需为 NMS 使用自定义 CUDA 内核。
该模型在各种尺寸下均能有效扩展,从适用于极端受限环境的纳米 (n) 版本到适用于更高准确性要求的超大 (x) 版本。
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model.predict("path/to/image.jpg")
RT-DETRv2:基于 Transformer 的精度
RT-DETRv2 (实时检测 Transformer v2) 在原始 RT-DETR 的成功基础上,进一步完善了视觉 Transformer 在实时目标检测中的应用。该模型由百度开发,利用自注意力机制捕获全局上下文,在存在遮挡的复杂场景中,通常优于基于 CNN 的同类模型。
- 作者: Wenyu Lv, Yian Zhao, Qinyao Chang, 等
- 组织:百度
- 日期:2024-07-24
- Arxiv:2407.17140
- GitHub:RT-DETRv2 仓库
- 文档:RT-DETR 文档
视觉 Transformer 在 detect 中的应用
与使用局部感受野处理图像的传统 CNN 不同,RT-DETRv2 采用 Vision Transformer (ViT) 骨干网络。这使模型能够通过自注意力处理图像块,有效地理解场景中远距离对象之间的关系。虽然这种全局上下文能力提高了检测精度,但与 YOLOv10 的精简架构相比,它通常伴随着更高的计算成本。
RT-DETRv2 设计具有高度适应性,提供不同模型规模以适应不同的性能需求,尽管它通常比同等 YOLO 模型在训练和推理时需要更多的 GPU 内存。
性能分析
以下比较突出了每种架构的独特优势。YOLOv10 在速度和效率方面表现出色,具有极低的延迟和参数量。例如,YOLOv10n 模型在 T4 GPU 上运行速度为 1.56 毫秒,非常适合高速视频处理。RT-DETRv2 虽然速度较慢,但提供了强大的精度,尤其是在较大的模型尺寸中,但代价是显著更高的 FLOPs 和内存使用量。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| RTDETRv2-s | 640 | 48.1 | - | 5.03 | 20 | 60 |
| RTDETRv2-m | 640 | 51.9 | - | 7.51 | 36 | 100 |
| RTDETRv2-l | 640 | 53.4 | - | 9.76 | 42 | 136 |
| RTDETRv2-x | 640 | 54.3 | - | 15.03 | 76 | 259 |
如表中所示,YOLOv10x实现了54.4%的卓越mAP,相比RT-DETRv2-x的54.3%,同时推理时间减少了23%,并且模型占用空间显著更小。这种效率使得YOLOv10成为大多数硬件资源受限应用中更均衡的选择。
优势与劣势
YOLOv10
- 优势:
- 弱点:
- 小目标检测:极小型版本(如YOLOv10n)与大型Transformer模型相比,可能会牺牲一些精细的准确性以换取原始速度。
RT-DETRv2
- 优势:
- 全局上下文: Transformer 架构擅长理解复杂场景和物体之间的关系。
- 原生免 NMS:Transformer 自然地避免了 NMS,简化了后处理流程,类似于 YOLOv10。
- 弱点:
- 高计算成本:训练和推理需要显著更多的CUDA内存和计算能力。
- 较慢的速度:自注意力机制虽然准确,但计算成本高昂,导致更高的延迟。
- 部署复杂性: 与 CNN 相比,Transformer 模型有时更难针对某些嵌入式硬件进行优化。
理想用例
这些模型之间的选择主要取决于您的具体操作限制。
- 在以下情况下选择 YOLOv10:您需要在边缘设备上实现实时性能,例如在自动无人机或移动应用程序中。其低内存占用和高速度使其非常适合交通监控或零售分析等场景。
- 选择 RT-DETRv2 的时机:您拥有充足的 GPU 资源,并且正在处理复杂场景,其中最高精度是唯一优先事项,例如高端学术研究或对复杂图像进行服务器端分析。
Ultralytics 优势
尽管这两个模型都提供了引人注目的功能,但利用 Ultralytics YOLO 模型——包括 YOLOv10 和最先进的 YOLO11——在开发生命周期中提供了独特的优势。
- 易用性: Ultralytics 提供统一的 python API 和 CLI,可标准化训练、验证和部署。这使得开发者只需一行代码即可在 YOLOv8、YOLOv10、YOLO11 和 RT-DETR 之间切换。
- 训练效率:Ultralytics 模型针对高效训练进行了优化,通常比标准实现收敛更快且所需内存更少。这降低了云计算成本并加快了产品上市时间。
- 多功能性:除了 detect 之外,Ultralytics 框架还支持segmentation、姿势估计和旋转框检测,让您无需更换工具即可扩展项目功能。
- 良好维护的生态系统:凭借频繁的更新、详尽的 指南 和蓬勃发展的社区,用户受益于持续的改进和支持。
运行不同的模型
使用 Ultralytics API,在不同架构之间切换无缝衔接:
from ultralytics import RTDETR, YOLO
# Train YOLOv10
model_yolo = YOLO("yolov10n.pt")
model_yolo.train(data="coco8.yaml", epochs=100)
# Train RT-DETR
model_rtdetr = RTDETR("rtdetr-l.pt")
model_rtdetr.train(data="coco8.yaml", epochs=100)
结论
YOLOv10和RT-DETRv2都代表了目标检测技术的前沿。RT-DETRv2是面向研究任务的稳健选择,在这些任务中计算成本次于精度。然而,对于绝大多数实际部署而言,YOLOv10提供了卓越的平衡。它结合了高速、低延迟和资源效率,使其成为构建可扩展应用程序的工程师的实际赢家。
此外,探索最新的 YOLO11 使开发者能够获得在准确性和速度方面更大的改进,所有这些都在用户友好的 Ultralytics 生态系统中实现。无论您是部署到云端还是边缘设备,Ultralytics 平台都能确保您拥有高效构建世界级计算机视觉解决方案的工具。
探索其他模型
如果您对进一步比较感兴趣,可以查阅: