RTDETRv2 与 PP-YOLOE+:变压器和 CNN 的技术比较
物体检测领域已经发生了重大演变,形成了不同的架构理念。一边是卷积神经网络(CNN)的高效,另一边是视觉转换器(ViT)的新兴力量。本比较探讨了百度开发的两个著名模型:RTDETRv2(实时检测Transformer v2)和PP-YOLOE+。
PP-YOLOE+ 代表了PaddlePaddle 生态系统中基于 CNN 的精细化无锚检测的顶峰,而 RTDETRv2 则通过调整Transformer 架构以适应实时应用,从而突破了界限。了解这两者之间从神经网络设计到部署要求的细微差别,对于工程师为其计算机视觉项目选择合适的工具至关重要。
RTDETRv2:Transformer 演变
RTDETRv2 建立在原始RT-DETR 的成功基础之上,旨在解决基于 DETR 的模型通常存在的高计算成本问题,同时保留其卓越的全局上下文理解能力。它旨在缩小变压器的高精度与实时推理所需的速度之间的差距。
- 作者: Wenyu Lv、Yian Zhao、Qinyao Chang、Kui Huang、Guanzhong Wang 和 Yi Liu
- 组织机构:百度
- 日期:2023-04-17(原始RT-DETR),随后进行 v2 更新
- Arxiv:https://arxiv.org/abs/2304.08069
- GitHub:https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch
架构和主要特性
RTDETRv2 采用混合编码器,可高效处理多尺度特征。与严重依赖局部卷积的传统 CNN 不同,transformer 架构利用自我注意机制来捕捉整个图像的长距离依赖关系。一个关键的创新是IoU查询选择,它改进了对象查询的初始化,从而加快了收敛速度,提高了准确性。此外,它还消除了非最大抑制(NMS)后处理的需要,使管道真正实现了端到端。
优势与劣势
优势:
- 全局语境: 注意力机制使模型能够理解图像远处各部分之间的关系,在杂乱无章的场景或上下文至关重要的情况下表现出色。
- 端到端逻辑:移除NMS 可简化部署流程,并移除经常需要手动调整的超参数。
- 高精度:与类似规模的 CNN 相比,它在COCO 等数据集上通常能达到更高的平均精度(mAP)。
弱点:
- 资源强度:尽管进行了优化,但与高效的 CNN 相比,变换器本质上消耗更多的CUDA 内存,需要更强大的GPU进行训练。
- 训练复杂性:收敛速度可能较慢,而且与标准YOLO 模型相比,训练配方通常对超参数更为敏感。
PP-YOLOE+:无锚 CNN 强国
PP-YOLOE+ 是专为PaddlePaddle 框架开发的YOLO 系列的进化版。它侧重于实际部署,使用纯 CNN 架构优化了推理速度和检测精度之间的权衡。
- 作者: PaddlePaddle Authors
- 组织机构:百度
- 日期: 2022-04-02
- Arxiv:https://arxiv.org/abs/2203.16250
- GitHub:https://github.com/PaddlePaddle/PaddleDetection/
架构和主要特性
PP-YOLOE+ 具有 CSPRepResNet主干网和路径聚合网 (PAN) 颈。最重要的是,它使用了无锚头部,无需预定义锚框,从而简化了设计。该模型采用了任务对齐学习(TAL),这是一种动态标签分配策略,可确保分类和定位任务的良好同步,从而提高最终预测的质量。
优势与劣势
优势:
- 推理速度:作为一个基于 CNN 的模型,它在速度方面进行了高度优化,尤其是在边缘硬件上,因为在边缘硬件上卷积运算速度非常快。
- 简化设计: 无锚特性减少了所需超参数和工程启发式方法的数量。
- 性能均衡:具有极具竞争力的精度-速度比,适合通用工业应用。
弱点:
- 框架依赖性:与PaddlePaddle 生态系统的深度绑定会给主要使用 PyTorch或TensorFlow 工作流程的团队造成摩擦。
- 局部感知场:CNN 虽然有效,但在捕捉高度复杂的视觉场景中的全局背景方面,CNN 比变换器更加吃力。
性能分析:准确性与效率
在 RTDETRv2 和 PP-YOLOE+ 之间做出选择,往往取决于部署环境的具体限制。如果硬件允许更高的计算开销,RTDETRv2 就能提供更出色的检测能力。相反,对于严格受限的实时推理场景,PP-YOLOE+ 仍然是强有力的竞争者。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (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 |
| PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
| PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
| PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
| PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
| PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
数据洞察:
- 精确度最大的 PP-YOLOE+x 模型达到了最高的mAP (54.7),超过了 RTDETRv2-x。不过,从中型和大型模型来看,RTDETRv2 通常在每个模型层提供更高的精确度。
- 延迟在TensorRT 上,PP-YOLOE+s 以 2.62 毫秒的速度成为速度之王,凸显了 CNN 架构在轻量级任务中的效率。
- 计算:RTDETRv2 模型所需的参数通常比直接使用 PP-YOLOE+ 的模型少(例如,RTDETRv2-x 的参数为 7600 万,而 PP-YOLOE+x 的参数为 9800 万),但transformer 架构在运行过程中通常会导致更高的 FLOP 和内存消耗。
Ultralytics 的优势:开发人员为何选择YOLO11
虽然对 RTDETRv2 和 PP-YOLOE+ 等模型的探索有助于深入了解不同的架构方法,但大多数开发人员都需要一种能在性能、可用性和生态系统支持之间取得平衡的解决方案。这就是 Ultralytics YOLO11的优势所在。
Ultralytics YOLO11 不仅仅是一个模型,它还是全面视觉人工智能框架的一部分,旨在简化整个机器学习运营 (MLOps)生命周期。
Ultralytics 的主要优势
- 易于使用:与面向研究的transformer 模型或 PaddleDetection 等特定框架工具通常需要的复杂配置不同,Ultralytics 提供了 "从零到英雄 "的体验。只需几行Python 代码,您就能训练出最先进的模型。
- 内存效率: Transformer模型(如 RTDETRv2)是出了名的内存消耗大户,训练时需要大量的CUDA 内存。Ultralytics YOLO 模型针对效率进行了优化,允许在消费级 GPU 上进行训练,并在 Raspberry Pi 或 Jetson Nano 等边缘设备上进行部署。
- 多功能性:PP-YOLOE+ 和 RTDETRv2 主要侧重于检测,而YOLO11 本身则支持各种任务,包括实例分割、姿势估计 、分类和定向对象检测(旋转框检测)。
- 维护良好的生态系统: Ultralytics 拥有频繁的更新、丰富的文档和庞大的社区,确保您不会因为缺乏支持或依赖性过期而受阻。
- 训练效率: Ultralytics 提供随时可用的预训练权重和强大的数据增强管道,帮助模型以更少的数据更快地收敛。
内存优化
训练transformer 模型通常需要 24GB+ VRAM 的高端 GPU。相比之下,Ultralytics YOLO11 模型经过高度优化,通常只需 8GB VRAM 的标准 GPU 即可进行微调,大大降低了开发人员和初创公司的准入门槛。
使用Ultralytics进行简单实施
下面的代码演示了使用Ultralytics Python API 训练和部署模型是多么轻松自如,与更复杂的学术资源库相比,Ultralytics 的设计更加人性化。
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model on your custom dataset
# This handles data loading, augmentation, and logging automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
# Returns a list of Result objects with boxes, masks, keypoints, etc.
results = model("path/to/image.jpg")
# Export the model to ONNX for deployment
model.export(format="onnx")
总结:做出正确的选择
在选择 RTDETRv2、PP-YOLOE+ 和Ultralytics YOLO11 时,应根据具体的应用要求做出决定。
- 如果您正在进行学术研究或使用高端硬件,而在复杂、杂乱的场景中最大限度地提高精确度是唯一重要的指标,并且您能够承担较高的培训成本,那么请选择 RTDETRv2。
- 如果您已深度融入PaddlePaddle /PaddlePaddle 生态系统,并需要在特定支持硬件上高效运行的基于 CNN 的可靠检测器,请选择 PP-YOLOE+。
- 绝大多数商业和实际应用都会选择Ultralytics YOLO11。它在速度、准确性和内存效率之间实现了出色的平衡,并支持分割和跟踪,是开发人员最有效的选择。它易于部署到TensorRT、CoreML 和OpenVINO 等格式,确保您的模型可以在从云到边缘的任何地方运行。
探索其他模型对比
要进一步了解这些架构与其他领先解决方案的比较,请浏览这些详细的比较: