YOLOv10 与RT-DETRv2:物体检测技术比较
选择最佳物体检测架构是一项关键决策,需要在推理速度、准确性和计算资源需求之间权衡利弊。本综合指南比较了 YOLOv10和 RT-DETRv2 进行了比较。 RT-DETRv2和 RT-DETRv2,后者是一个transformer复杂模型,专为高精度任务而设计。我们分析了它们的架构创新、性能指标和理想部署方案,帮助您为计算机视觉项目做出明智的选择。
YOLOv10:效率驱动的实时检测
YOLOv10YOLO 系列的一次重大飞跃,重点在于消除传统实时探测器的瓶颈。它由清华大学的研究人员开发,引入了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(Real-Time DetectionTransformer v2(实时检测Transformer v2)在原有RT-DETR 的成功基础上,进一步完善了视觉变换器在实时物体检测中的应用。该模型由百度开发,利用自我注意机制捕捉全局上下文,在有遮挡物的复杂场景中,其性能往往优于基于 CNN 的同类产品。
- 作者: Wenyu Lv, Yian Zhao, Qinyao Chang, 等
- 组织机构:百度
- 日期:2024-07-24
- Arxiv:2407.17140
- GitHub:RT-DETRv2 资源库
- 文档RT-DETR 文档
检测中的视觉转换器
与使用局部感受野处理图像的传统 CNN 不同,RT-DETRv2 采用了视觉Transformer (ViT)骨干。这使得该模型能以自我关注的方式处理图像补丁,有效理解场景中远处物体之间的关系。虽然这种全局上下文功能提高了检测精度,但与YOLOv10 的精简架构相比,其计算成本通常较高。
RT-DETRv2 的设计具有很强的适应性,可提供不同的模型规模,以满足不同的性能需求,但与同等的YOLO 模型相比,RT-DETRv2 通常需要更多的GPU 内存来进行训练和推理。
性能分析
下面的比较突出了每种架构的独特优势。 YOLOv10在速度和效率方面表现出色,可提供极低的延迟和参数数量。例如,YOLOv10n 型号在 T4GPU 上的运行时间为1.56ms,非常适合高速视频处理。 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 |
从表中可以看出,与RT-DETRv2 的 54.3%的mAP 相比,YOLOv10x 的mAP 高达 54.4%,同时推理时间减少了 23%,模型占用空间也明显更小。这种效率使YOLOv10 成为大多数需要考虑硬件资源的应用的更均衡的选择。
优势与劣势
YOLOv10
- 优势:
- 弱点:
- 小物体检测:与较大的transformer 模型相比,极小的版本(如 YOLOv10n)可能会牺牲一些细粒度精度来换取原始速度。
RT-DETRv2
- 优势:
- 全局背景: transformer 架构擅长理解复杂场景和对象之间的关系。
- NMS 原生:变形器自然避免了NMS,简化了后处理管道,类似于YOLOv10。
- 弱点:
- 计算成本高:训练和推理需要更多的CUDA 内存和计算能力。
- 速度较慢:自我关注机制虽然精确,但计算成本高,导致延迟较长。
- 部署复杂性:与 CNN 相比,Transformer 模型有时更难针对某些嵌入式硬件进行优化。
理想用例
在这些模式中如何选择,主要取决于您的具体操作限制。
- 在以下情况下选择YOLOv10 您需要在边缘设备(如自主无人机或移动应用程序)上实现实时性能。它占用内存少、速度快,非常适合交通监控或零售分析等应用场景。
- 在以下情况下选择RT-DETRv2 您拥有充足的GPU 资源,并且在处理复杂场景时(如高端学术研究或对困难图像进行服务器端分析),最大限度地提高准确性是唯一的优先事项。
Ultralytics 的优势
虽然这两种模式都提供了引人注目的功能,但利用 Ultralytics YOLO模型,包括YOLOv10 和最先进的 YOLO11-在开发生命周期中具有明显优势。
- 易于使用: Ultralytics 提供统一的Python API和CLI ,实现了培训、验证和部署的标准化。这使得开发人员只需一行代码就能在YOLOv8、YOLOv10、YOLO11 和RT-DETR 之间进行切换。
- 训练效率: Ultralytics 模型针对高效训练进行了优化,与标准实施相比,通常收敛速度更快,所需的内存更少。这降低了云计算成本,加快了产品上市速度。
- 多功能性:除了检测,Ultralytics 框架还支持分割、姿势估计 和 旋转框检测让您无需更换工具即可扩展项目功能。
- 维护良好的生态系统:通过频繁的更新、广泛的指南和蓬勃发展的社区,用户可以从持续的改进和支持中获益。
运行不同的模式
使用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是以研究为导向的任务的可靠选择,在这种任务中,计算成本比精度更重要。然而,对于现实世界中的绝大多数部署而言,RT-DETRv2 并不适合、 YOLOv10提供了更好的平衡。YOLOv10 集高速、低延迟和资源效率于一身,是工程师构建可扩展应用的实际优胜者。
此外,探索最新的 YOLO11让开发人员能够在用户友好的Ultralytics 生态系统中获得更高的精度和速度。无论您是部署到云端还是边缘,Ultralytics 平台都能确保您拥有高效构建世界级计算机视觉解决方案的工具。
探索其他模型
如果您对进一步的比较感兴趣,请考虑查看: