RTDETRv2 与 YOLOv10#
计算机视觉的发展,很大程度上源于对速度与精度平衡的持续追求。传统的实时目标检测流程通常采用非极大值抑制 (NMS) 作为后处理步骤,以过滤重叠的边界框。然而,NMS 会造成延迟瓶颈,并使超参数调优变得复杂。最近,两种截然不同的架构方案开始从根本上解决这一问题:基于 Transformer 的 RTDETRv2,以及基于 CNN 的 YOLOv10。
本指南将全面对比这两款模型,分析其架构、性能指标和理想使用场景,同时重点介绍 Ultralytics 生态系统的最新创新如何为现代部署提供终极解决方案。
RTDETRv2:实时检测 Transformer#
RTDETRv2 基于原始 RT-DETR 架构构建,旨在将视觉 Transformer 对全局上下文的理解能力与实时检测的速度要求结合起来,后者传统上由 YOLO 模型主导。
主要特点:
- 作者: Wenyu Lv、Yian Zhao、Qinyao Chang、Kui Huang、Guanzhong Wang 和 Yi Liu
- 组织: 百度
- 日期: 2024-07-24
- Arxiv: https://arxiv.org/abs/2407.17140
- GitHub: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch
架构与训练方法#
RTDETRv2 采用端到端 Transformer 架构,从根本上避免了 NMS。它在前代模型的基础上引入“免费增益包”方案,优化训练策略并加入多尺度检测能力。该模型使用 CNN 主干网络提取特征图(边缘和纹理等视觉细节),再通过 Transformer 编码器-解码器结构进行处理。这样,模型就能同时分析整幅图像的上下文,在理解目标密集或相互重叠等复杂场景时效果出色。
优势与劣势#
优势:
- 全局上下文:注意力机制让模型在复杂、杂乱的环境中也能出色表现。
- 无需 NMS:直接预测目标坐标,简化部署流程。
- 高精度:在 COCO 数据集上取得出色的平均精度均值 (mAP)。
不足:
- 资源消耗高:与 CNN 相比,Transformer 架构在训练时通常需要多得多的 CUDA 内存,因此在标准硬件上微调成本较高。
- 推理速度不稳定:虽然速度很快,但繁重的注意力计算会导致缺少专用 AI 加速器的边缘设备上计算机视觉的每秒帧数 (FPS)较低。
YOLOv10:实时端到端目标检测#
YOLOv10 在 YOLO 目标检测系列的发展中实现了重大转变,直接在 CNN 框架内解决了长期存在的 NMS 瓶颈。
主要特点:
- 作者: Ao Wang、Hui Chen、Lihao Liu 等
- 组织: 清华大学
- 日期: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: https://github.com/THU-MIG/yolov10
架构与训练方法#
YOLOv10 的核心创新是在无需 NMS 的训练中采用一致的双重分配策略。训练期间,它使用两个检测头:一个采用一对多分配(类似传统 YOLO),以提供丰富的监督信号;另一个采用一对一分配,以消除对 NMS 的需求。推理时只使用一对一检测头,从而实现端到端流程。此外,作者采用了以效率和精度为导向的整体模型设计策略,对各个组件进行全面优化,以减少计算冗余。
优势与劣势#
优势:
- 极致速度:通过移除 NMS 并优化架构,YOLOv10 实现了极低的推理延迟。
- 高效:与其他模型实现相近精度时,所需参数和 FLOPs 更少,因此非常适合受限环境。
- 无需 NMS 的部署:简化了与智能监控等边缘应用的集成。
不足:
- 第一代方案:作为首个采用这种特定无 NMS 架构的 YOLO 模型,它奠定了基础,但在多任务适用性和优化方面仍有提升空间,后续的 YOLO11 和 YOLO26 等模型则在这些方面有所进步。
性能对比#
在评估用于生产环境的模型时,平衡精度与计算成本至关重要。下表重点展示了不同尺寸的 RTDETRv2 和 YOLOv10 在性能上的权衡。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
RTDETRv2 的精度表现稳定,而 YOLOv10 在延迟和参数效率方面优势显著,尤其是较小的版本 (Nano 和 Small),因此非常适合边缘计算和 AIoT应用。
如果你要在服务器级 GPU 上部署,且 batch size 和显存不受太多限制,那么较大的模型(如 -x 或 -l)能最大限度地提高精度。对于 Raspberry Pi 或手机等边缘设备,优先选择 nano (-n) 或 small (-s) 版本,以保持实时帧率。
用例与建议#
选择 RT-DETR 还是 YOLOv10,取决于你的具体项目需求、部署限制和生态偏好。
何时选择 RT-DETR#
以下场景适合选择 RT-DETR:
- 基于 Transformer 的检测研究:探索注意力机制和 Transformer 架构,以实现无需 NMS 的端到端目标检测。
- 对延迟要求灵活的高精度场景:检测准确率至关重要,且可以接受略高推理延迟的应用。
- 大型目标检测:场景中的目标以中大型为主,此时 Transformer 的全局注意力机制能够发挥天然优势。
何时选择 YOLOv10#
以下场景推荐使用 YOLOv10:
- 无 NMS 的实时检测:适用于需要从端到端检测中获益、无需使用非极大值抑制并能降低部署复杂度的应用。
- 均衡权衡速度与准确率:适用于需要在不同模型规模下兼顾推理速度和检测准确率的项目。
- 延迟稳定的应用:适用于推理时间可预测性至关重要的部署场景,例如机器人或自主系统。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26在性能与开发体验之间实现了最佳平衡:
- 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
- 仅使用 CPU 的环境:适用于没有专用 GPU 加速的设备,此时 YOLO26 的 CPU 推理速度最高提升 43%,可带来显著优势。
- 小目标检测:适用于无人机航拍影像等具有挑战性的场景,或 IoT 传感器分析等需要 ProgLoss 和 STAL 大幅提升微小目标准确率的场景。
Ultralytics 的优势:认识 YOLO26#
RTDETRv2 和 YOLOv10 都在学术研究方面取得了令人瞩目的进展,但要将它们部署到真实场景中,还需要强大且维护良好的软件生态系统。Ultralytics Platform 提供了无与伦比的开发者体验,将易用性、详尽的文档以及强大的数据标注和部署工具结合起来。
对于希望采用 2026 年最先进技术的开发者,我们强烈推荐 Ultralytics YOLO26。它融合了两种架构的优秀理念,并带来突破性改进:
- 端到端、无需 NMS 的设计:基于 YOLOv10 开创的理念,YOLO26 提供可选的一对一检测头 (
nms=False),可跳过 NMS 后处理,简化部署逻辑、提升速度,并让延迟更加稳定。 - 移除 DFL:通过移除分布焦点损失,YOLO26 简化了模型导出,并大幅提升了与边缘设备和低功耗设备的兼容性。
- MuSGD 优化器:这款新型优化器融合了 SGD 和 Muon,并受到 LLM 训练创新的启发,与传统方法相比,它能带来更稳定的训练和显著更快的收敛速度。
- CPU 推理速度最高提升 43%:针对没有专用 GPU 的环境进行了精心优化,让更多人能够使用高性能视觉 AI。
- ProgLoss + STAL:这些先进的损失函数能显著提升小目标识别能力,这对无人机应用和 IoT 传感器至关重要。
- 无与伦比的多功能性:与仅支持边界框的模型不同,YOLO26 支持一整套任务,包括实例分割、姿态估计、图像分类和 OBB 检测,并为姿态估计等任务提供专门改进,例如残差对数似然估计 (RLE)。
使用 Python 轻松实现#
使用 Ultralytics Python API 训练和部署这些模型,整个过程流畅无阻。与大量依赖 Transformer 的架构相比,这些模型训练时的内存需求明显更低,因此你可以在标准硬件上训练强大的模型。
from ultralytics import YOLO
# 加载前沿的 YOLO26 模型(推荐)
# 或者,使用 YOLO('yolov10n.pt') 加载 YOLOv10 模型
model = YOLO("yolo26n.pt")
# 在你的自定义数据集上训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 轻松导出为各种格式,以便部署到边缘设备
model.export(format="onnx", simplify=True)无论你是在实现安全警报系统,还是开展医学图像分析,选择由活跃的 Ultralytics 社区支持的模型,就能获得成功所需的工具、超参数调优指南和持续更新。YOLOv10 和 RTDETRv2 为无 NMS 架构铺平了道路,而 YOLO26 则完善了这一方案,在性能、多功能性和生产就绪度之间实现了最佳平衡。