Ultralytics YOLO27:
Get Started

YOLOv7 与 DAMO-YOLO#

实时目标检测领域不断发展,研究人员和工程师持续探索速度与准确率之间的最佳平衡。在这篇技术对比中,我们将深入分析 2022 年推出的两种重要架构:YOLOv7 和 DAMO-YOLO。这两种模型都为计算机视觉领域引入了新理念,分别应对模型训练、架构设计和部署中的不同挑战。

模型背景与技术细节#

在深入探讨这两种模型的架构之前,我们需要了解它们的起源。两者均由领先的研究团队开发,并引入了先进方法,以突破实时目标检测的能力边界。

YOLOv7 详情#

YOLOv7 作为 YOLO 系列的延续而开发,引入了可训练的“免费增益组合”(bag-of-freebies),在不增加推理成本的情况下显著提升准确率。

详细了解 YOLOv7

DAMO-YOLO 详情#

DAMO-YOLO 由阿里巴巴集团的研究人员开发,重点利用神经架构搜索(NAS)和先进的知识蒸馏技术,为各种硬件构建高效模型。

进一步了解 DAMO-YOLO

架构创新#

YOLOv7:梯度路径分析与重参数化#

YOLOv7 着重采用扩展高效层聚合网络(E-ELAN)。作者通过分析网络的梯度路径来设计 E-ELAN,确保网络能够持续学习,同时不破坏原有的梯度路径。此外,YOLOv7 在推理时有效利用模型重参数化,无缝融合各层,以减少 FLOPs 并加快执行速度。因此,它非常适合在现代 GPU 上进行实时推理。

DAMO-YOLO:神经架构搜索与 RepGFPN#

DAMO-YOLO 采用了不同的路线,在延迟约束下大量利用神经架构搜索(NAS)。它使用名为 MAE-NAS 的框架,为移动设备或特定边缘加速器等硬件寻找最佳主干网络。在颈部结构中,它采用高效的 RepGFPN(重参数化广义特征金字塔网络),并使用 ZeroHead 设计来最大限度地降低预测头的计算负担。

蒸馏方面的差异

YOLOv7 依靠架构本身的强大优化,而 DAMO-YOLO 则高度依赖复杂的多阶段知识蒸馏过程。它需要先训练大型教师模型,再将知识蒸馏到较小的学生模型中,因此训练阶段的计算成本可能很高。

性能与指标对比#

比较这些模型时,务必关注 mAP(平均精度均值)、推理速度和模型复杂度。

模型尺寸
(像素)
mAP验证集
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
DAMO-YOLOt64042.0-2.328.518.1
DAMO-YOLOs64046.0-3.4516.337.8
DAMO-YOLOm64049.2-5.0928.261.8
DAMO-YOLOl64050.8-7.1842.197.3

上表表明,YOLOv7 能够扩展到高准确率领域(YOLOv7x),而 DAMO-YOLO 则针对资源受限环境提供了高度优化的小型模型。

训练效率与内存需求#

两种架构的一个主要区别在于训练方法。由于 DAMO-YOLO 依赖蒸馏,从头训练新模型或在自定义计算机视觉数据集上微调模型,通常需要更多 VRAM 和 GPU 计算时间。

相比之下,YOLOv8 及更高版本等原生受 Ultralytics 生态系统支持的模型,针对内存需求进行了大量优化。它们让开发者能够在消费级硬件上使用更大的批次大小,而不会遇到内存不足错误,从而简化实验跟踪和迭代过程。

Ultralytics 优势#

YOLOv7 和 DAMO-YOLO 都各具优势,但在 Ultralytics 生态系统中部署模型能带来无与伦比的开发体验。

  • 易用性:Ultralytics Python 包提供统一而简单的 API。只需几行代码,你就能快速切换模型架构、启动训练循环或运行推理。
  • 维护完善的生态系统:Ultralytics 频繁更新,确保与最新版本的 PyTorch 和 CUDA 驱动原生兼容。它还简化了模型导出过程,可将模型导出为 ONNX、TensorRT 和 OpenVINO 等格式。
  • 多功能性:DAMO-YOLO 仅用于目标检测,而 Ultralytics 生态系统则原生支持多种任务。Ultralytics 系列模型可执行标准边界框检测、姿态估计、实例分割和有向边界框(OBB)。

代码示例:快速上手#

下面介绍如何使用 Ultralytics 模型轻松加载、训练并运行推理:

from ultralytics import YOLO

# 加载预训练的 YOLO26 模型(Ultralytics 不支持原生 YOLOv7 权重)
model = YOLO("yolo26n.pt")

# 使用自动超参数处理功能,在 COCO8 数据集上训练模型
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)

# 对图像进行推理
predictions = model("https://ultralytics.com/images/bus.jpg")

# 导出为 ONNX 格式以供部署
model.export(format="onnx")
导出模型

使用 Ultralytics,只需在导出命令中提供一个参数,即可将训练好的权重导出为各种硬件加速格式(如 TensorRT 或 CoreML),省去数小时的复杂脚本配置工作。

新一代模型:YOLO26#

YOLOv7 仍是一种出色的传统架构,但该领域已迅速发展。对于新的部署项目,推荐采用 Ultralytics YOLO26(于 2026 年 1 月发布)作为标准;它在几乎所有指标上都优于前几代模型。

  • 端到端无 NMS 设计:这一设计最早由 YOLOv10 开创。YOLO26 的可选一对一检测头(nms=False)会跳过非极大值抑制(NMS)后处理,确保确定性、超低延迟的推理,这对机器人和自动驾驶技术至关重要。
  • MuSGD 优化器:受先进大语言模型(LLM)训练技术(如 Moonshot AI 的 Kimi K2)启发,这款混合优化器融合 SGD 和 Muon,可在不同数据集上实现高度稳定的训练和更快的收敛。
  • CPU 推理速度最高提升 43%:通过有针对性地移除分布焦点损失(DFL),YOLO26 显著提升了边缘计算平台和 CPU 上的性能。
  • ProgLoss + STAL:这些先进的损失函数大幅提升了小目标检测能力,使 YOLO26 特别适用于航空影像和精细监控。

理想应用场景#

何时选择 DAMO-YOLO#

  • 神经架构搜索(NAS)学术研究:如果你的组织正深入研究神经架构搜索方法。
  • 特定硬件上的极端延迟约束:如果你拥有足够的资源,可以运行全面的 NAS 搜索,为自定义 AI 加速器芯片寻找专用主干网络。

何时选择 YOLOv7#

  • 现有 GPU 流水线:适用于在高端 NVIDIA 硬件上维护传统生产流水线,且流水线已针对 YOLOv7 特有的 E-ELAN 架构进行深度优化的团队。

为什么要迁移到现代 Ultralytics 模型(YOLO11 / YOLO26)#

对于绝大多数企业应用——从零售分析和智能制造到医疗健康——现代 Ultralytics 模型都无可匹敌。与 Ultralytics Platform 集成后,你将获得完整的机器学习流水线,兼具易用性、出色的文档、可靠的社区支持和多任务灵活性。无论是在 Raspberry Pi 上跟踪库存,还是在云端运行大规模分析,YOLO26 等模型都能为计算机视觉的未来提供理想的性能平衡。

评论