YOLOv8 vs.YOLOv8:技术深度剖析
物体检测领域不断发展,研究人员和工程师们努力平衡速度、准确性和计算效率之间的竞争需求。阿里巴巴集团开发的YOLO 和YOLOv8 是在计算机视觉领域掀起巨大波澜的两个著名架构。 YOLOv8和 Ultralytics.
本技术比较探讨了两种模型的架构创新、性能指标和实际可用性。YOLO 引入了神经架构搜索(NAS)等新颖的研究概念,而Ultralytics YOLOv8 则专注于提供一个强大、用户友好的生态系统,简化了从训练到部署的工作流程。
性能分析:速度与准确性
为了了解这些模型在现实世界中的比较情况,我们分析了它们在标准COCO 数据集上的性能。以下指标强调了平均精度mAP)、不同硬件上的推理速度和模型复杂度之间的权衡。
| 模型 | 尺寸 (像素) | 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 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
主要内容
数据显示,不同的部署目标具有不同的优势:
- 边缘性能:边缘性能 YOLOv8n(Nano) 模型是资源受限环境下无可争议的领导者。它只有320 万个参数和8.7B FLOPs,在CPU 和GPU 上都能达到最快的推理速度。因此,它非常适合内存和功耗稀缺的移动应用或物联网设备。
- 峰值精度:适用于精度要求极高的应用、 YOLOv8x的mAP 最高,达到53.9%。虽然YOLO 模型表现出色,但最大的YOLOv8 变体将检测精度的边界进一步推高。
- 延迟权衡: YOLO 在其 NAS 优化骨干网的驱动下,在专用 GPU(如 T4)上显示出令人印象深刻的吞吐量。不过,Ultralytics YOLOv8 在包括 CPU 在内的更多硬件上保持了出色的平衡,确保了更广泛的部署灵活性。
DAMO-YOLO:研究驱动的创新
YOLO 是阿里巴巴集团研究计划的产物。这个名字代表着 "发现、冒险、动力和展望",体现了对建筑新领域的探索。
作者Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang, and Xiuyu Sun
组织:阿里巴巴集团
日期:2022-11-23
Arxiv:2211.15444v2
GitHub:YOLO
建筑亮点
YOLO 集成了多项先进技术,以优化延迟和精度之间的权衡:
- MAE-NAS 主干网:它利用神经架构搜索(NAS)自动发现高效的网络结构,特别是利用一种名为 MAE-NAS 的方法。
- RepGFPN Neck:采用参数化程度较高的广义特征金字塔网络 (GFPN),最大限度地增加不同尺度级别之间的信息流,从而提高对不同距离物体的检测能力。
- ZeroHead:为了平衡沉重的颈部,模型采用了轻量级的 "ZeroHead",减轻了最后检测阶段的计算负担。
- AlignedOTA:一种动态标签分配策略,可在训练过程中调整分类和回归任务,帮助模型更有效地收敛。
Ultralytics YOLOv8:生态系统标准
YOLOv8 是YOLO 架构的改进版,重点关注可用性、多功能性和最先进的性能。与纯粹的研究模型不同,YOLOv8 是为开发人员设计的产品,强调维护良好的生态系统和易于集成。
作者:Glenn Jocher、Ayush Chaurasia 和 Jing QiuGlenn Jocher、Ayush Chaurasia 和 Jing Qiu
组织机构:Ultralytics
日期:2023-01-10
文档:Ultralytics YOLOv8
建筑优势
- 无锚检测: YOLOv8 消除了锚点框,减少了开发人员需要调整的超参数数量,简化了训练过程。
- C2f 模块:该架构用 C2f 模块取代了 C3 模块,在提供更丰富的梯度流信息的同时,保持了轻巧的体积。
- 解耦头部:通过在头部分离分类和回归任务,该模型实现了更高的定位精度。
- 统一框架:它在架构上的最大特点可能就是支持多种视觉任务--实例分割、姿势估计 、分类和面向对象检测(旋转框检测)--所有这些都在一个代码库中完成。
你知道吗?
Ultralytics 提供了将模型导出为优化格式的无缝路径,如 ONNX, TensorRT, CoreML和 OpenVINO.这种导出功能可确保您训练的模型能在几乎所有硬件平台上高效运行。
可用性和开发人员体验
这两种模式的最大区别在于它们的易用性和周围的生态系统。
Ultralytics YOLO模型以其 "从零到英雄 "的体验而闻名。只需安装一个简单的 PIP,开发人员就可以访问强大的CLI 和Python API。与通常需要复杂环境设置的研究资源库相比,这大大降低了入门门槛。
培训效率
Ultralytics 模型专为提高训练效率而设计。它们有效地利用了CUDA 内存,允许在消费级 GPU 上进行更大的批量或训练。此外,高质量的预训练权重可加快收敛速度,节省宝贵的计算时间和能源。
下面是一个完整的、可运行的示例,说明如何用三行Python 语言加载YOLOv8 模型并进行预测:
from ultralytics import YOLO
# Load a pre-trained YOLOv8n model
model = YOLO("yolov8n.pt")
# Run inference on an image (automatically downloads image if needed)
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Show the results
for result in results:
result.show()
相比之下,虽然YOLO 性能强大,但通常需要更多的手动配置和对研究型框架的熟悉,因此不太适合快速原型开发或商业集成。
总结:选择正确的工具
YOLO 和YOLOv8 都是计算机视觉领域的杰出成就。
YOLO是对神经架构搜索感兴趣的研究人员的绝佳选择,也是那些专门在硬件上部署DAMO-YOLO的研究人员的绝佳选择。
然而,对于大多数开发人员、研究人员和企业来说,Ultralytics 的功能和优势并不明显、 Ultralytics YOLOv8(和更新的 YOLO11) 提供了更优越的价值主张:
- 多功能性:能够在一个框架内处理检测、分割、姿势估计和旋转框检测 。
- 易于使用:无与伦比的文档、简单的应用程序接口和强大的社区支持。
- 部署:广泛支持从手机到云服务器的各种导出模式。
- 性能平衡:出色的精度与速度比,尤其是在CPU 和边缘设备上。
对于那些希望走在绝对前沿的人,我们还推荐您去看看 YOLO11,它以YOLOv8 的优势为基础,具有更高的效率和准确性。
探索其他模型对比
为了帮助您为自己的计算机视觉项目做出最明智的决定,请浏览这些附加的详细比较: