YOLOv9 与 YOLOv7#
实时目标检测的发展一直由在计算效率与高精度之间取得平衡的持续探索所推动。这一历程中的两大里程碑架构是 YOLOv9 和 YOLOv7,二者均由台湾中央研究院信息科学研究所的研究人员开发。YOLOv7 引入了革命性的可训练免费赠品,而较新的 YOLOv9 则正面解决了深度学习中的信息瓶颈问题。
这项全面的技术比较将探讨两种模型的架构差异、性能指标以及理想的部署场景,帮助 ML 工程师和研究人员为其计算机视觉流程选择合适的工具。
性能与指标对比#
比较这些模型时,原始性能和效率是关键因素。下表详细列出了标准 COCO 数据集基准测试中的平均精度(mAP)和计算需求。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数量 (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 实现了与 YOLOv7x 大致相同的精度(53.0 mAP 对比 53.1 mAP),同时使用的参数显著更少(25.3M 对比 71.3M),FLOPs 也更低。这体现了现代架构在性能平衡方面的改进。
YOLOv9:解决信息瓶颈#
YOLOv9 于 2024 年初推出,从根本上改变了深度神经网络在各层之间保留数据的方式。
- 作者: Chien-Yao Wang 和 Hong-Yuan Mark Liao
- 组织机构: 中央研究院信息科学研究所
- 日期: 2024 年 2 月 21 日
- 资源: Arxiv 论文 | GitHub 仓库
架构创新#
YOLOv9 引入了广义高效层聚合网络(GELAN)和可编程梯度信息(PGI)。GELAN 融合了 CSPNet 和 ELAN 的优势,以优化参数效率和计算成本,在减少参数数量的同时确保高精度。PGI 是一种辅助监督框架,旨在防止深度网络中的数据丢失,为训练过程中的权重更新生成可靠的梯度。
优势与局限#
YOLOv9 的主要优势在于能够提取细微特征,而无需巨大的计算开销,因此非常适合需要高特征保真度的任务,例如医学图像分析。不过,训练期间复杂的 PGI 结构可能会让初学者更难进行自定义架构修改,相比之下,统一性更高的框架则更容易修改。
YOLOv7:免费赠品先驱#
YOLOv7 于 2022 年发布,为消费级硬件所能实现的性能树立了新标杆,引入的结构创新显著提升了实时推理速度。
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 组织机构: 中央研究院信息科学研究所
- 日期: 2022 年 7 月 6 日
- 资源: Arxiv 论文 | GitHub 仓库
架构创新#
YOLOv7 的核心贡献是扩展高效层聚合网络(E-ELAN)。该架构使模型能够持续学习更多样化的特征。此外,YOLOv7 还采用了“可训练的免费赠品”——例如规划好的重参数化卷积和动态标签分配等技术。这些方法能够在训练期间提升模型精度,而不会增加部署时的推理成本。
优势与局限#
YOLOv7 针对实时边缘处理进行了高度优化,至今仍广泛用于传统系统和较旧的 CUDA 环境。如今,它的主要局限是参数规模大于较新的模型。如性能表所示,要达到顶级精度需要使用体量较大的 YOLOv7x 模型,其所需的 GPU 内存明显多于同等的现代架构。
Ultralytics 的优势:简化部署#
虽然 YOLOv9 和 YOLOv7 的原始研究仓库提供了出色的学术基础,但在生产环境中部署这些模型可能较为复杂。通过 ultralytics 软件包集成这些模型,可以获得无与伦比的易用性。
借助集成的 Ultralytics 平台,开发者可以使用维护良好的生态系统,其中包括直观的 Python API、活跃的社区支持和强大的实验跟踪功能。
使用 YOLO26 面向未来#
如果你正在启动新的计算机视觉项目,我们强烈建议你优先了解新发布的 YOLO26,而不是 YOLOv9 和 YOLOv7。YOLO26 作为新的业界最先进标准发布,带来了突破性的改进:
- 端到端无 NMS 设计: 消除非极大值抑制后处理,大幅降低部署复杂度和延迟。
- CPU 推理速度最高提升 43%: 针对边缘计算环境进行了优化,即使没有专用 GPU,也能确保你的应用流畅运行。
- MuSGD 优化器: 受 LLM 训练启发的混合优化器,可实现高度稳定的收敛并缩短训练时间。
- 移除 DFL: 通过移除分布焦点损失简化模型导出,增强与低功耗移动设备的兼容性。
- ProgLoss + STAL: 大幅提升小目标检测性能,使其成为航空影像和监控场景的首选。
生态系统中的其他热门替代方案包括 Ultralytics YOLOv8 和 YOLO11,二者在实例分割和姿态估计等任务中都具有很强的通用性。
实现示例#
借助统一 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)在训练期间通常会出现严重的内存膨胀。
实际应用与理想使用场景#
在这些架构之间进行选择,通常取决于生产环境的具体限制。
何时使用 YOLOv9: YOLOv9 擅长需要保留细微细节的环境。其强大的特征提取能力使其非常适合零售分析,用于统计货架上密集摆放的商品;也适合农业应用,因为在这些场景中,识别小叶片上的早期作物病害至关重要。
何时使用 YOLOv7: YOLOv7 仍然是传统部署流程的有力候选方案。如果你要将其集成到较旧的硬件系统中(例如某些代际的 Google Coral Edge TPU),YOLOv7 直观的 CNN 架构可能比新模型更复杂的梯度分支更容易编译。
何时使用 YOLO26(推荐): 对于任何现代部署场景——从自主无人机到智慧城市交通管理——YOLO26 都是更优选择。其无 NMS 架构确保了确定性的推理时间,这对于安全关键型机器人至关重要;同时,其高精度在各方面都超过 YOLOv9 和 YOLOv7。