Link to this sectionYOLOv9 vs YOLOv7#
实时目标检测的发展一直受到在计算效率与高精度之间寻求平衡的驱动。这一历程中两个具有里程碑意义的架构是YOLOv9和YOLOv7,它们均由中国台湾中央研究院资讯科学研究所的研究人员开发。YOLOv7引入了革命性的可训练“免费赠品包”(bag-of-freebies),而较新的YOLOv9则正面解决了深度学习中的信息瓶颈问题。
这份详尽的技术对比探讨了两种模型的架构差异、性能指标以及理想的部署场景,旨在帮助机器学习工程师和研究人员为其计算机视觉流水线选择合适的工具。
Link to this section性能与指标对比#
在比较这些模型时,原始性能和效率是关键因素。下表详细列出了标准COCO数据集基准测试中的平均精度均值(mAP)和计算需求。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | 参数量 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
请注意,YOLOv9c在参数量(25.3M对比71.3M)和浮点运算次数(FLOPs)显著降低的情况下,实现了与YOLOv7x(53.1 mAP)大致相同的精度(53.0 mAP)。这展示了现代架构在性能平衡方面的改进。
Link to this sectionYOLOv9:解决信息瓶颈#
YOLOv9于2024年初推出,从根本上改变了深度神经网络在各层中保留数据的方式。
- 作者: Chien-Yao Wang 和 Hong-Yuan Mark Liao
- 机构: 中央研究院资讯科学研究所
- 日期: 2024 年 2 月 21 日
- 资源: Arxiv论文 | GitHub仓库
Link to this section架构创新#
YOLOv9引入了广义高效层聚合网络(GELAN)和可编程梯度信息(PGI)。GELAN结合了CSPNet和ELAN的优势,以优化参数效率和计算成本,确保在较低参数量下实现高精度。PGI是一个辅助监督框架,旨在防止深度网络中的数据丢失,为训练过程中更新权重生成可靠的梯度。
Link to this section优势与局限性#
YOLOv9的主要优势在于其能够在没有巨大计算开销的情况下提取细微特征,使其在需要高特征保真度的任务中表现卓越,例如医学图像分析。然而,与更统一的框架相比,训练过程中复杂的PGI结构可能会使初学者进行自定义架构修改时面临更多挑战。
Link to this sectionYOLOv7:“免费赠品包”的先驱#
YOLOv7发布于2022年,为消费级硬件的可能性设定了新基准,引入了显著提升实时推理速度的结构创新。
- 作者: Chien-Yao Wang, Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 机构: 中央研究院资讯科学研究所
- 日期: 2022年7月6日
- 资源: Arxiv论文 | GitHub仓库
Link to this section架构创新#
YOLOv7的核心贡献是扩展高效层聚合网络(E-ELAN)。该架构使模型能够持续学习更多样化的特征。此外,YOLOv7采用了“可训练的免费赠品包”——即诸如规划重参数化卷积和动态标签分配等技术。这些方法提高了模型在训练过程中的准确性,而不会增加部署时的推理成本。
Link to this section优势与局限性#
YOLOv7针对实时边缘处理进行了高度优化,并依然是旧系统和老版本CUDA环境中的常用选择。如今其主要局限性在于参数量相比新模型较大。如性能表所示,要获得顶级精度需要使用重型的YOLOv7x模型,这比同类现代架构需要更多的GPU内存。
Link to this sectionUltralytics的优势:精简部署#
尽管YOLOv9和YOLOv7的原始研究仓库提供了出色的学术基础,但在生产环境中部署这些模型可能很复杂。通过ultralytics包进行集成则提供了无与伦比的易用性。
通过使用集成的Ultralytics平台,开发者可以受益于一个维护良好的生态系统,该系统具有直观的Python API、活跃的社区支持以及强大的实验跟踪功能。
Link to this section用YOLO26面向未来#
如果你正在启动一个新的计算机视觉项目,我们强烈建议你探索新发布的**YOLO26**,而不是YOLOv9或YOLOv7。作为新的最先进标准,YOLO26带来了突破性的进步:
- 端到端无需NMS的设计: 消除了非极大值抑制(Non-Maximum Suppression)后处理,极大地降低了部署复杂度和延迟。
- CPU推理速度提升高达43%: 针对边缘计算环境进行了优化,确保即使没有专用GPU,你的应用程序也能流畅运行。
- MuSGD优化器: 一种受大语言模型训练启发的混合优化器,可提供高度稳定的收敛并减少训练时间。
- 移除DFL: 通过移除分布焦点损失(Distribution Focal Loss)简化了模型导出,增强了与低功耗移动设备的兼容性。
- ProgLoss + STAL: 显著提高了对小目标检测的性能,使其成为航空影像和监控的首选。
该生态系统中的其他热门替代方案包括Ultralytics YOLOv8和YOLO11,两者在实例分割和姿态估计等任务中都提供了强大的多功能性。
Link to this section实现示例#
使用统一的API进行训练和导出这些架构都非常简单。以下代码展示了Ultralytics工具特有的精简训练效率。
from ultralytics import YOLO
# Initialize YOLOv9 or the recommended YOLO26 model
model = YOLO("yolov9c.pt") # Swap with "yolo26n.pt" for faster edge performance
# Train on a custom dataset with built-in data augmentation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16, device=0)
# Export the trained model to ONNX format for deployment
model.export(format="onnx")在消费级硬件上进行训练时,内存效率至关重要。Ultralytics对YOLOv9和YOLO26的实现经过深度优化,减少了VRAM峰值,这与通常在训练过程中会出现严重内存膨胀的基于Transformer的模型(如RT-DETR)不同。
Link to this section现实应用与理想用例#
在这些架构之间进行选择,往往取决于你生产环境的具体约束。
何时使用YOLOv9: YOLOv9在需要保留细微细节的环境中表现出色。其强大的特征提取能力使其非常适合零售分析,用于清点货架上密集堆放的产品,或者在农业应用中识别小叶片上的早期作物病害至关重要时使用。
何时使用YOLOv7: YOLOv7仍然是遗留部署流水线的强力候选者。如果你正在集成到旧的硬件系统(如某些代次的Google Coral Edge TPU)中,YOLOv7直观的CNN架构可能比新模型中更复杂的梯度分支更容易编译。
何时使用YOLO26(推荐): 对于任何现代部署——从自动驾驶无人机到智慧城市交通管理——YOLO26都是更优的选择。其无需NMS的架构保证了确定性的推理时间,这对安全关键型机器人技术至关重要,而其高精度在各方面均超越了YOLOv9和YOLOv7。