YOLOv7 与 RTDETRv2:现代物体检测器的技术比较
选择最佳的物体检测架构是开发强大的计算机视觉解决方案的关键一步。这一决定往往需要在推理速度、检测精度和计算资源需求之间进行复杂的权衡。本指南对 YOLOv7 和 YOLOv8 进行了深入的技术比较。 YOLOv7和RTDETRv2 之间的深入技术比较。前者是基于 CNN 的高度优化检测器,以速度著称;后者是transformer先进模型,旨在为实时应用提供全局上下文理解。
YOLOv7:CNN 效率的巅峰之作
YOLOv7 是 "只看一眼YOLO)系列的重大演进,它的发布推动了卷积神经网络(CNN)在实时场景中的应用。通过专注于架构改进和高级训练策略,它在GPU 硬件上的运行速度令人印象深刻。
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 组织: 台湾中研院资讯所
- 日期: 2022-07-06
- Arxiv:https://arxiv.org/abs/2207.02696
- GitHub:https://github.com/WongKinYiu/yolov7
- 文件:https://docs.ultralytics.com/models/yolov7/
建筑创新
YOLOv7 引入了扩展高效层聚合网络 (E-ELAN),这是一种新颖的骨干网设计,可在不破坏梯度路径的情况下增强网络的学习能力。这使得网络的深度更深,但训练效率依然很高。YOLOv7 的一个显著特点是 "可训练的免费赠品包",它是一系列优化方法的集合,如模型重新参数化和从粗到细的引导标签分配,可在不增加推理延迟的情况下提高准确性。
优势与劣势
YOLOv7 在优先使用标准 GPU 进行实时推理的环境中表现出色。其架构针对CUDA 进行了高度优化,可为视频馈送提供高 FPS。不过,作为一个纯粹的 CNN,它在处理长距离依赖关系时可能会比转换器吃力。此外,定制其复杂的架构对初学者来说也是一个挑战。
RTDETRv2:用于实时检测的变压器
RTDETRv2 以实时检测Transformer RT-DETR)的成功为基础,利用视觉变换器(ViT)的强大功能捕捉整个图像的全局信息。与处理像素局部邻域的 CNN 不同,变换器使用自我关注机制来理解远处物体之间的关系。
- 作者: Wenyu Lv、Yian Zhao、Qinyao Chang、Kui Huang、Guanzhong Wang 和 Yi Liu
- 组织: Baidu
- 日期:2023-04-17(原始RT-DETR),2024-07(RTDETRv2)
- Arxiv:https://arxiv.org/abs/2304.08069
- GitHub:https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch
建筑创新
RTDETRv2 采用混合架构。它使用 CNN 骨干进行高效特征提取,并使用transformer 编码器-解码器作为检测头。最重要的是,它无需锚点,在某些配置中无需手动调整锚点盒和非最大抑制NMS)后处理。v2 "改进的重点是灵活的骨干网和改进的训练策略,以进一步减少延迟,同时保持较高的平均精度(mAP)。
优势与劣势
RTDETRv2 的主要优势在于它的全局上下文感知能力,因此在有遮挡物的复杂场景中也能保持准确性。它在mAP 中的表现往往优于类似规模的 CNN。不过,这也是有代价的:transformer 模型在训练过程中对内存的消耗是出了名的,而且收敛速度较慢。与YOLOv7 等 CNN 相比,它们通常需要更强大的 GPU 才能进行有效训练。
性能比较:指标与分析
下表列出了主要性能指标的并列比较。虽然RTDETRv2-x实现了更高的准确度,但YOLOv7的准确度却低于RTDETRv2-x、 YOLOv7模型由于采用了 CNN 原生设计,因此在特定硬件配置下的纯推理速度方面往往具有竞争优势。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
了解利弊权衡
在选择这些架构时,请考虑您的部署硬件。像 RTDETRv2 这样的变形器通常需要特定的TensorRT 优化才能在NVIDIA ®)GPU 上充分发挥速度潜力,而像YOLOv7 这样的 CNN 通常只需较少的调整就能在更广泛的硬件上高效运行。
培训方法和资源
两种架构的训练方法大相径庭。YOLOv7 采用标准的随机梯度下降(SGD)或Adam 优化器,重点关注 Mosaic 等数据增强管道。它的内存效率相对较高,因此可以在中端 GPU 上进行训练。
相比之下,RTDETRv2 需要更多的资源密集型训练。变换器中的自我注意机制与序列长度(图像大小)成二次方关系,从而导致更高的 VRAM 占用率。用户通常需要配备大内存容量(如 A100)的高端NVIDIA )GPU,才能有效训练较大的RT-DETR 变体。此外,与 CNN 相比,变换器通常需要更长的训练时间(更多的历时)才能收敛。
为什么推荐选择Ultralytics 模型?
虽然YOLOv7 和 RTDETRv2 本身就是出色的模型,但以最先进的 YOLO11-为现代人工智能开发提供了更全面的解决方案。
卓越的易用性和生态系统
Ultralytics 模型的设计优先考虑了开发人员的体验。与YOLOv7 通常需要的复杂配置文件和手动设置或 RTDETRv2 的特定环境需求不同,Ultralytics 提供了统一、简单的Python API。这样,只需几行代码,您就可以加载、训练和部署模型。
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model on your custom dataset
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
性能均衡,用途广泛
YOLO11YOLOv7 在速度和准确性之间取得了出色的平衡,其效率往往超过YOLOv7 和RT-DETR 。最重要的是,Ultralytics 模型并不局限于物体检测。它们在同一框架内支持多种计算机视觉任务:
- 实例分割:精确勾勒对象轮廓
- 姿势估计人体或动物姿势估计的关键点检测。
- 分类:整体图像分类
- 定向物体检测(旋转框检测):检测旋转物体(如航空图像)。
效率与培训
Ultralytics 模型针对内存效率进行了优化。与 RTDETRv2 等transformer替代方案相比,它们在训练过程中所需的CUDA 内存通常要少得多,从而实现了高性能人工智能的平民化。凭借广泛可用的预训练权重和高效的迁移学习功能,您只需花很少的时间就能获得生产就绪的结果。
结论
YOLOv7对于需要严格优化 CNN 推断的传统系统来说,YOLOv7仍然是强有力的竞争者,而RTDETRv2则为计算资源丰富的复杂场景提供了最先进的精度。不过,对于大多数寻求现代化、多功能和用户友好型解决方案的开发人员和研究人员来说、 Ultralytics YOLO11是最佳选择。
选择Ultralytics,您就能进入一个蓬勃发展的社区,获得频繁的更新和强大的工具集,从而简化从数据管理到部署的整个MLOps生命周期。
探索其他模型对比
为了进一步帮助您做出决定,请参考以下其他技术比较: