DAMO-YOLO 对比 YOLOv7:一项详细的技术比较
为对象detect选择最优架构是计算机视觉开发中的一个关键决策。该选择通常需要在推理延迟与detect准确性之间进行权衡,同时考虑部署硬件限制。这项技术比较考察了DAMO-YOLO和YOLOv7,这两个在2022年发布并推动了实时detect边界的有影响力模型。我们分析了它们的架构创新、基准性能和理想应用场景,以帮助您完成模型选择过程。
DAMO-YOLO:面向边缘效率的神经架构搜索
DAMO-YOLO 由阿里巴巴集团开发,专注于最大限度地提升工业应用的性能。其独特之处在于引入了神经架构搜索 (NAS) 来自动化其骨干网络的结构设计,确保最佳效率。
- 作者: Xianzhe Xu、Yiqi Jiang、Weihua Chen、Yilun Huang、Yuan Zhang 和 Xiuyu Sun
- 组织:阿里巴巴集团
- 日期: 2022-11-23
- Arxiv:https://arxiv.org/abs/2211.15444v2
- GitHub:https://github.com/tinyvision/DAMO-YOLO
- 文档:https://github.com/tinyvision/DAMO-YOLO/blob/master/README.md
架构创新
DAMO-YOLO 引入了多项前沿技术,旨在减少计算开销同时保持高精度:
- MAE-NAS骨干网络(GiraffeNet):与传统手动设计的骨干网络不同,DAMO-YOLO采用了方法感知效率(MAE)NAS方法。这产生了一个名为GiraffeNet的骨干网络系列,它在各种硬件约束下,在浮点运算(FLOPs)和延迟之间提供了卓越的权衡。
- 高效RepGFPN:该模型采用了一种通过重参数化优化的广义特征金字塔网络(GFPN)。这种“RepGFPN”实现了高效的多尺度特征融合,这对于detect不同尺寸的目标至关重要,同时避免了与标准FPN相关的高昂计算成本。
- ZeroHead: 一种新颖的“ZeroHead”设计显著简化了 detect 头部。通过解耦分类和回归任务并移除复杂的特定层,它在推理过程中将头部参数数量减少到零,从而节省内存并提高速度。
- AlignedOTA: 为了提高训练稳定性和准确性,DAMO-YOLO 采用 AlignedOTA,这是一种动态标签分配策略,可解决分类置信度和回归准确性之间的不匹配问题。
优势与用例
DAMO-YOLO 在 延迟 至关重要的环境中表现出色。其较小变体(Tiny/Small)对于 边缘 AI 部署特别有效。
- 工业自动化:适用于对毫秒级响应有要求的高速装配线。
- 移动应用: 较低的参数数量使其适用于在计算能力有限的智能手机上运行。
YOLOv7: 优化实时准确性
YOLOv7 在DAMO-YOLO发布前不久发布,在5 FPS到160 FPS范围内,为最先进的性能设定了新基准。它重点优化了训练过程和梯度流,以在不增加推理成本的情况下实现更高的准确性。
- 作者: 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 是通用目标检测的强大工具,在MS COCO等标准数据集上提供了出色的平均精度均值(mAP)。
- 智慧城市监控:其高准确性使其在复杂的城市环境中检测行人和车辆变得可靠。
- 自主系统:适用于需要在更远距离进行可靠 detect 的机器人和无人机,尤其是在高分辨率输入有益的场景中。
性能对比
下表对比了 DAMO-YOLO 和 YOLOv7 的性能。尽管 DAMO-YOLO 通常在同等尺寸下实现更低的延迟(更高的速度),但 YOLOv7 通常以其准确性而闻名,尤其是在其更大的配置中。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
数据表明,对于高度受限的环境,DAMO-YOLO 提供了一个非常轻量级的解决方案(微型版本有 8.5M 参数)。然而,YOLOv7 通过其 X 变体实现了 53.1% mAP,在精度方面达到了极限,尽管计算成本更高。
架构权衡
尽管DAMO-YOLO基于NAS的主干网络专门针对延迟进行优化,但YOLOv7的手动架构设计侧重于梯度流效率。用户应在各自的特定硬件上对两者进行基准测试,因为理论FLOPs并不总是与实际推理速度完美关联。
Ultralytics 优势:为何升级?
尽管 DAMO-YOLO 和 YOLOv7 都代表了 computer vision 历史上的重大成就,但该领域发展迅速。对于寻求最强大、多功能且易于使用的解决方案的开发人员来说,Ultralytics YOLO11 和 YOLOv8 是推荐的选择。
Ultralytics 模型不仅被设计为研究成果,更是全面的生产工具。它们解决了 AI 部署中的“最后一公里”问题——可用性、集成和维护。
Ultralytics 模型的主要优势
- 易用性: 通过统一的 python API 和 CLI,您只需几行代码即可训练最先进的模型。无需手动调整复杂的配置文件或为依赖项而烦恼。
- 良好维护的生态系统:Ultralytics 提供了一个蓬勃发展的生态系统,具有频繁的更新,能够快速识别和修复错误。通过详尽的 文档 和活跃的社区渠道,可以随时获得支持。
- 性能平衡: 像YOLO11这样的模型利用先进的无锚点检测头和优化的骨干网络,与YOLOv7和DAMO-YOLO相比,实现了卓越的精度-速度比。
- 多功能性:与通常仅限于detect的旧模型不同,Ultralytics YOLO开箱即用地支持实例分割、姿势估计、旋转框检测 (OBB)和分类。
- 训练效率:预训练权重和优化的数据加载器确保更快的收敛,从而节省 GPU 运行时间和能耗。
from ultralytics import YOLO
# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")
# Train on COCO8 dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
结论
DAMO-YOLO 和 YOLOv7 各有其独特优势。DAMO-YOLO 是边缘推理速度为主要限制的项目中的有力候选者,它利用 NAS 缩短毫秒级时间。YOLOv7 对于寻求高精度 detect 且具有成熟架构血统的研究人员来说,仍然是一个可靠的选择。
然而,对于当今大多数商业和研究应用而言,Ultralytics YOLO 生态系统提供了卓越的体验。通过将最先进的性能与无与伦比的易用性和多功能性相结合,Ultralytics 模型使开发人员能够专注于创造价值,而不是调试代码。无论您是部署到云服务器还是像NVIDIA Jetson这样的边缘设备,Ultralytics 都能提供最简化的生产路径。
其他模型
如果您正在探索目标 detect 架构,您可能还会对这些模型感兴趣:
- Ultralytics YOLOv8: 一种高度通用的模型,支持 detect、segment 和 姿势估计 任务。
- Ultralytics YOLO11: YOLO 系列的最新演进,提供最前沿的效率。
- RT-DETR: 一种基于 Transformer 的实时 detector,避免了 NMS 延迟。
- YOLOv9: 具有用于增强学习的可编程梯度信息 (PGI)。
- YOLOv10: 专注于无 NMS 端到端训练,以减少延迟。