YOLOv7 与 PP-YOLOE+:物体检测技术比较
选择最佳的物体检测架构是计算机视觉开发中的关键决策,对下游应用的性能和效率有重大影响。本分析提供了对 YOLOv7和PP-YOLOE+,这两个杰出的模型塑造了实时检测的格局。我们研究了它们的架构创新、训练方法和性能指标,以指导研究人员和工程师做出明智的选择。
YOLOv7:定义实时速度和精度
YOLOv7YOLOv7 是 "只看一次 "系列发展过程中的一个重要里程碑,旨在推动实时应用的速度和准确性。它引入了架构策略,在不增加推理成本的情况下改进了特征学习,一经发布就有效地树立了新的先进基准。
- 作者: 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 还在训练过程中采用了 "bag-of-freebies "策略。这些优化方法可以在不增加推理引擎阶段计算成本的情况下提高准确性。这些技术包括模型重新参数化(将独立的模块合并为一个单独的模块进行部署),以及用于辅助头监督的从粗到细的引导损失。
优势与劣势
- 优势: YOLOv7 具有出色的速度-准确率比,因此在 GPU 上进行实时推理非常有效。其基于锚点的方法针对标准数据集(如 COCO.
- 缺点作为一种基于锚点的检测器,它需要预定义的锚点框配置,这对于具有不寻常物体长宽比的自定义数据集来说可能不是最佳选择。与较新的迭代相比,在不同的硬件限制条件下有效地扩展模型也很复杂。
PP-YOLOE+:无锚挑战者
PP-YOLOE+是 PP-YOLOE 的进化版,由百度开发,是 PaddleDetection 套件的一部分。它采用无锚架构,旨在简化检测流程,减少开发人员需要调整的超参数数量。
- 作者: PaddlePaddle Authors
- 组织机构:百度
- 日期: 2022-04-02
- ArXiv:https://arxiv.org/abs/2203.16250
- GitHub:https://github.com/PaddlePaddle/PaddleDetection/
- 文件:https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.8.1/configs/ppyoloe/README.md
建筑创新
PP-YOLOE+ 采用无锚检测器机制,无需锚箱集群。它采用 CSPRepResNet 主干网和简化的头部设计。其性能的关键在于任务对齐学习(TAL),它能根据分类和定位质量的对齐情况动态分配正样本。
该模型还集成了VariFocal Loss,这是一种专门的损失函数,旨在优先训练高质量的示例。+"版本包括对颈部和头部结构的增强,优化了特征金字塔以实现更好的多尺度检测。
优势与劣势
- 优势:无锚设计简化了训练设置,提高了对不同物体形状的泛化能力。它在不同尺寸(s、m、l、x)下都能很好地扩展,并针对PaddlePaddle 框架进行了大量优化。
- 弱点:它主要依赖于PaddlePaddle 生态系统,这可能会给建立在 PyTorch或 TensorFlow生态系统的团队产生摩擦。与全球的YOLO 社区相比,中国以外的社区支持和第三方工具通常不太广泛。
性能对比
在比较这些模型时,关键是要看平均精度 (mAP)和推理延迟之间的平衡至关重要。下表重点介绍了COCO 数据集上的关键指标。
| 模型 | 尺寸 (像素) | 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 |
| 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 |
分析
正如观察到的那样,YOLOv7l的效率令人印象深刻,它以 6.84 毫秒的TensorRT 速度实现了 51.4%mAP 。相比之下,PP-YOLOE+l实现了略高的 52.9%mAP ,但速度较慢,仅为 8.36 毫秒,而且参数明显更高(52.2M 对 36.9M)。这凸显了YOLOv7 在参数使用和推理速度方面的卓越效率,而且精度等级相当。虽然 PP-YOLOE+x 的精确度不断提高,但其代价是需要比同类YOLO 模型多出近一倍的参数。
Ultralytics 的优势:为什么要现代化?
虽然YOLOv7 和 PP-YOLOE+ 是功能强大的模型,但计算机视觉领域的发展日新月异。采用最新的Ultralytics 模型,如 YOLO11等最新的 Ultralytics 模型提供了超越原始指标的独特优势。
1.简化用户体验
Ultralytics 将易用性放在首位。与其他框架通常需要的复杂配置文件和依赖关系管理不同,Ultralytics 模型只需几行Python即可使用。这降低了开发人员的入门门槛,加快了模型部署周期。
2.统一的生态系统和多功能性
现代Ultralytics 模型不仅限于对象检测。它们在单一框架内支持多种任务:
- 实例分割:精确的像素级对象屏蔽
- 姿势估计:检测人体或动物身上的关键点。
- 定向物体检测(旋转框检测):处理航空图像中的旋转物体(如船只)。
- 分类:整体图像分类
这种多功能性使团队能够将多个计算机视觉任务标准化为一个库,从而简化了维护工作。
3.训练和记忆效率
Ultralytics 模型专为提高内存效率而设计。与老式架构或transformer模型(如 RT-DETR.这样就可以在标准的消费级 GPU 上进行更大规模的训练,让更多研究人员可以创建高性能模型。
4.代码示例:现代方法
使用现代Ultralytics 模型进行推理非常直观。下面是一个使用YOLO11完整可运行示例,展示了加载预训练模型和运行预测所需的代码行数。
from ultralytics import YOLO
# Load the YOLO11n model (nano version for speed)
model = YOLO("yolo11n.pt")
# Run inference on a local image
# This automatically downloads the model weights if not present
results = model("https://ultralytics.com/images/bus.jpg")
# Process results
for result in results:
boxes = result.boxes # Boxes object for bbox outputs
result.show() # Display results on screen
result.save(filename="result.jpg") # Save results to disk
5.维护良好的生态系统
选择Ultralytics 意味着加入一个充满活力的社区。通过频繁的更新、丰富的文档以及与Ultralytics HUB 等 MLOps 工具的集成,开发人员在其人工智能项目的整个生命周期中都能得到支持。
结论
两个 YOLOv7和PP-YOLOE+都在物体检测领域做出了重大贡献。YOLOv7 通过其高效的 E-ELAN 架构在GPU 硬件上提供高速推理方面表现出色。PP-YOLOE+ 在PaddlePaddle 生态系统中提供了一个强大的无锚替代方案,尤其强大。
然而,对于寻求兼顾一流性能和无与伦比的易用性、面向未来的解决方案的开发人员来说,Ultralytics 是一个不错的选择、 Ultralytics YOLO11是值得推荐的选择。它与综合生态系统的集成、对多模式任务的支持以及卓越的效率,使其成为 2025 年及以后构建可扩展计算机视觉应用的理想平台。
探索其他模型
通过这些比较,拓宽您对物体检测领域的了解: