YOLO YOLOv10:高效实时目标检测的演进之路
计算机视觉领域见证了实时目标检测架构的快速演进。在比较YOLOYOLOv10时,我们观察到两种截然不同的模型设计理念:自动化架构搜索与端到NMS优化。尽管两者都在精度与速度上突破了界限,但其底层结构和理想应用场景存在显著差异。
YOLO:大规模神经网络架构搜索
由阿里巴巴集团开发的YOLO 一款强大的检测器,专注于通过自动化发现提升结构效率。
- 作者: Xianzhe Xu、Yiqi Jiang、Weihua Chen、Yilun Huang、Yuan Zhang 和 Xiuyu Sun
- 日期:2022年11月23日
- Arxiv:2211.15444v2
- GitHub:tinyvision/DAMO-YOLO
架构亮点
YOLO 主要YOLO 神经网络架构搜索(NAS)来平衡性能与延迟。其核心架构 MAE-NAS 在严格的计算预算下采用多目标进化搜索,以确定最优的层深度与层宽度。
为处理跨尺度特征融合问题,模型采用高效的RepGFPN(重参数化广义特征金字塔网络)。这种重颈设计尤其擅长提取复杂的空间层次结构,使其在航空影像分析等场景中表现出色。此外YOLO ZeroHead——一种精简的检测头,通过在训练过程中采用稳健的蒸馏增强机制,大幅降低了最终预测层的复杂度。
蒸馏培训
YOLO 采用多阶段知识蒸馏流程。该方法需训练更庞大的"教师"模型来指导较小的"学生"模型,虽然能提取更高的mAP 平均精度均值),但会显著增加所需的GPU 时间。
YOLOv10:开创性的端到端目标检测
一年半后发布的YOLOv10 范式转变,在推理过程中完全消除了对非最大抑制(NMS)的需求。
- 作者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 组织:清华大学
- 日期:2024年5月23日
- Arxiv:2405.14458
- 文档:Ultralytics YOLOv10
架构亮点
YOLOv10 突出特点YOLOv10 其NMS 的双目标分配机制。传统检测器会为单个目标预测多个重叠边界框,需要NMS 重复结果。这一后处理步骤尤其在边缘设备上形成性能瓶颈。YOLOv10 通过让模型自然预测每个目标的单一精确边界框YOLOv10 此问题。
作者们还致力于构建整体效率与精确度兼顾的模型设计。通过对现有架构中计算冗余的精细分析,他们优化了骨干网络和目标检测头,从而减少浮点运算次数和参数数量。这种轻量化设计确保YOLOv10 在导出至张量流(TensorRT)等格式时YOLOv10 卓越的推理延迟。 TensorRT 或 OpenVINO时能实现卓越的推理延迟。
性能与基准
下表COCO 上的原始性能指标。每列中最佳的整体数值均以粗体突出显示。
| 模型 | 尺寸 (像素) | 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 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
在准确率方面YOLO ;YOLOv10 提供更低的延迟和显著更小的模型权重。例如,mAP 46.7%)略高于DAMO-YOLOs(46.0%),但其参数数量不到后者的一半(720万对1630万)。 较低的内存需求使YOLOv10 成为嵌入式系统中极具适应性的选择。
培训效率与实用性
从学术研究转向实际应用时,易用性至关重要。YOLO的多阶段蒸馏过程和复杂的NAS配置姿势估计 工程团队姿势估计 的学习曲线姿势估计
相反YOLOv10 因完全集成Ultralytics Python YOLOv10 匪浅。训练自定义模型只需极少的模板代码。Ultralytics 自动Ultralytics 数据增强、超参数调优和 实验跟踪。
from ultralytics import YOLO
# Load a pretrained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train on a custom dataset with built-in validation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image seamlessly
prediction = model("path/to/image.jpg")
prediction[0].show()
快速原型制作
Ultralytics 开发者仅需几行代码即可将原型转化为 ONNX ,省去了传统框架所需的复杂环境配置。
实际应用案例
- 智能零售(YOLO):YOLO精准度特别适合高密度服务器环境,该环境能充分分析顾客行为,且配备充足的GPU,同时可有效管理实时NMS 。
- 自动驾驶车辆(YOLOv10):该NMS的架构可确保确定性、可预测的延迟,这对自动驾驶中的安全系统至关重要。
- 工业自动化(YOLOv10):在高速运转的装配线上检测缺陷,需要采用能最大化实时推理速度且不消耗大量显存的模型,这使得YOLOv10 成为边缘部署YOLOv10 。
应用场景与建议
选择YOLO YOLOv10 您的具体项目需求、部署限制以及生态系统偏好。
何时选择 DAMO-YOLO
YOLO 以下场景的强力选择:
- 高吞吐量视频分析:在固定的NVIDIA GPU 处理高帧率视频流,其中批次1吞吐量是主要指标。
- 工业制造生产线:在专用硬件上存在严格GPU 限制的场景,例如装配线上的实时质量检测。
- 神经架构搜索研究:探究自动化架构搜索(MAE-NAS)与高效重参数化骨干网络对检测性能的影响。
何时选择 YOLOv10
YOLOv10 推荐YOLOv10 :
- NMS检测:受益于端到端检测且无需非最大抑制的应用,可降低部署复杂性。
- 平衡速度与准确度的权衡:要求在不同模型规模下,在推理速度与检测准确度之间实现强平衡的项目。
- 一致延迟应用:部署场景中,可预测的推理时间至关重要,例如机器人或自主系统。
何时选择Ultralytics YOLO26)
对于大多数Ultralytics 提供了性能与开发者体验的最佳组合:
- NMS边缘部署:适用于需要持续低延迟推理,且无需复杂非最大抑制后处理的应用场景。
- CPU环境:在不具备专用GPU 设备上,YOLO26高达43%CPU 加速优势具有决定性意义。
- 小目标检测: 在无人机航拍图像或物联网传感器分析等挑战性场景中,ProgLoss和STAL能显著提升对微小目标的检测精度。
新一代:Ultralytics YOLO26登场
虽然YOLOv10 NMS YOLOv10 基础,但该技术已迅速发展。对于现代应用场景,Ultralytics 模型凭借其卓越性能与实用性脱颖而出,它融合了历代模型的精髓并针对实际应用进行了优化。
YOLO26采用严格的原生端到端设计,省去了NMS ,从而简化了在边缘设备上的部署流程。此外,通过移除分布式焦点损失(DFL),该模型显著提升了与低功耗边缘AI硬件的兼容性。
在训练方面,YOLO26引入了MuSGD优化器——这种混合优化器借鉴了大型语言模型(LLM)的训练技术,确保了更稳定的训练过程和更快的收敛速度。结合ProgLoss + STAL损失函数,YOLO26在小目标识别方面实现了显著提升,这对野生动物保护和无人机作业至关重要。
关键在于,YOLO26不仅是物体检测器。它全面实现了任务特异性优化,原生支持实例分割、基于残差对数似然估计(RLE)姿势估计 以及面向定向边界框(旋转框检测)的专用角度损失函数。CPU 较前代提升高达43%,堪称敏捷工程团队的首选方案。
针对YOLO26模型的集中化管理、标注及云端训练,Ultralytics 提供直观界面,可简化整个计算机视觉生命周期。
对探索其他最新进展感兴趣的开发者,也可评估 Ultralytics YOLO11 或transformer模型的 RT-DETR 框架,以满足需要独特架构解决方案的场景需求。