跳至内容

优化 YOLOv8 推理 Neural Magic的 DeepSparse 引擎

在各种硬件上部署对象检测模型(如 Ultralytics YOLOv8等物体检测模型时,会遇到优化等特殊问题。这就是YOLOv8 与Neural Magic 的 DeepSparse Engine 集成的作用所在。它改变了YOLOv8 模型的执行方式,可直接在 CPU 上实现GPU 级别的性能。

本指南将向您介绍如何使用Neural Magic 的 DeepSparse 部署YOLOv8 、如何运行推论,以及如何对性能进行基准测试以确保优化。

Neural Magic的 DeepSparse

Neural Magic的 DeepSparse 概述

Neural MagicDeepSparse是一种推理运行时,旨在优化神经网络在 CPU 上的执行。它应用稀疏性、剪枝和量化等先进技术,在保持准确性的同时大幅降低计算需求。DeepSparse 为在各种设备上高效、可扩展地执行神经网络提供了灵活的解决方案。

集成的好处 Neural Magic的 DeepSparse 与 YOLOv8

在深入了解如何部署之前 YOLOV8 使用 DeepSparse,让我们了解一下使用 DeepSparse 的好处。一些主要优势包括:

  • 推理速度更快:最高可达 525 FPS(在YOLOv8n 上),与传统方法相比,大大加快了YOLOv8 的推理能力。

提高推理速度

  • 优化模型效率:利用剪枝和量化提高YOLOv8 的效率,在保持准确性的同时减少模型大小和计算需求。

优化模型效率

  • 在标准 CPU 上实现高性能:在 CPU 上提供类似GPU 的性能,为各种应用提供了更方便、更经济的选择。

  • 简化集成和部署:提供用户友好型工具,可将YOLOv8 轻松集成到应用程序中,包括图像和视频注释功能。

  • 支持各种模型类型:兼容标准和稀疏性优化的YOLOv8 模型,增加了部署的灵活性。

  • 经济高效、可扩展的解决方案:降低运营成本,提供可扩展的高级对象检测模型部署。

Neural Magic 的 DeepSparse 技术如何工作?

Neural Magic的 Deep Sparse 技术的灵感来自人脑在神经网络计算中的效率。它采用大脑的两个关键原则,如下所示:

  • 稀疏性:稀疏化过程包括修剪深度学习网络中的冗余信息,从而在不影响准确性的前提下,建立更小、更快的模型。这种技术能显著缩小网络规模,减少计算需求。

  • 参照位置:DeepSparse 采用独特的执行方法,将网络分解为Tensor 列。这些列按深度执行,完全位于CPU 的缓存中。这种方法模仿了大脑的效率,最大限度地减少了数据移动,并最大限度地利用了CPU 的缓存。

Neural Magic 的 DeepSparse 技术如何工作

有关Neural Magic DeepSparse 技术工作原理的详细信息,请查看他们的博客文章

创建基于自定义数据集训练的YOLOv8 稀疏版本

SparseZoo 是Neural Magic 的一个开源模型库,它提供了一系列预先解析的YOLOv8 模型检查点。通过与Ultralytics 无缝集成的 SparseML,用户可以使用直接的命令行界面在其特定数据集上毫不费力地对这些稀疏检查点进行微调。

详情请查看Neural Magic 的 SparseMLYOLOv8 文档

使用方法:使用 DeepSparse 部署YOLOV8

使用Neural Magic 的 DeepSparse 部署YOLOv8 只需几个简单的步骤。在深入了解使用说明之前,请务必查看 Ultralytics 提供的一系列YOLOv8 模型。这将帮助您根据项目要求选择最合适的模型。以下是开始使用的方法。

步骤 1:安装

要安装所需的软件包,请运行

安装

# Install the required packages
pip install deepsparse[yolov8]

第 2 步:将YOLOv8 导出为ONNX 格式

DeepSparse 引擎要求YOLOv8 ONNX 格式的模型。为了与 DeepSparse 兼容,必须将模型导出为这种格式。使用以下命令导出YOLOv8 模型:

出口型号

# Export YOLOv8 model to ONNX format
yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

该命令将保存 yolov8n.onnx 模型到磁盘中。

步骤 3:部署和运行推理

有了ONNX 格式的YOLOv8 模型,您就可以使用 DeepSparse 部署和运行推论。这可以通过其直观的Python API 轻松完成:

部署和运行推理

from deepsparse import Pipeline

# Specify the path to your YOLOv8 ONNX model
model_path = "path/to/yolov8n.onnx"

# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)

# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)

步骤 4:绩效基准

检查YOLOv8 模型在 DeepSparse 上的性能是否达到最佳状态非常重要。您可以对模型的性能进行基准测试,分析吞吐量和延迟:

制定基准

# Benchmark performance
deepsparse.benchmark model_path="path/to/yolov8n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

步骤 5:附加功能

DeepSparse 还为YOLOv8 在图像标注和数据集评估等应用中的实际集成提供了其他功能。

附加功能

# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolov8n.onnx"

# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolov8n.onnx"

运行注释命令可处理指定图像、检测对象并保存带有边框和分类的注释图像。注释后的图像将保存在注释结果文件夹中。这有助于直观地展示模型的检测能力。

图像注释功能

运行 eval 命令后,您将收到精确度、召回率和 mAP(平均精确度)等详细的输出指标。这可以让您全面了解模型在数据集上的表现。该功能对于微调和优化YOLOv8 模型以适用于特定用例,确保高精度和高效率尤为有用。

摘要

本指南探讨了如何将Ultralytics'YOLOv8 与Neural Magic'DeepSparse Engine' 集成。它强调了这种集成如何增强YOLOv8 在CPU 平台上的性能,提供GPU 级别的效率和先进的神经网络稀疏性技术。

更多详细信息和高级用法,请访问Neural Magic 的 DeepSparse 文档。此外,还可以在这里查看Neural Magic 与YOLOv8 集成的文档,并在这里观看有关的精彩会议。

此外,如需更广泛地了解YOLOv8 的各种集成,请访问Ultralytics 集成指南页面,在那里您可以发现一系列其他令人兴奋的集成可能性。

常见问题

Neural Magic 的 DeepSparse 引擎是什么,它如何优化YOLOv8 性能?

Neural MagicDeepSparse Engine 是一种推理运行时,旨在通过稀疏性、剪枝和量化等先进技术优化神经网络在 CPU 上的执行。通过将 DeepSparse 与YOLOv8 集成,您可以在标准 CPU 上实现类似GPU 的性能,在保持准确性的同时显著提高推理速度、模型效率和整体性能。更多详情,请访问Neural Magic 的 DeepSparse 部分

如何安装使用Neural Magic 的 DeepSparse 部署YOLOv8 所需的软件包?

使用Neural Magic 的 DeepSparse 安装部署YOLOv8 所需的软件包非常简单。您可以使用CLI 轻松安装它们。以下是您需要运行的命令:

pip install deepsparse[yolov8]

安装完成后,请按照安装部分提供的步骤设置环境,并开始使用 DeepSparse 与YOLOv8 。

如何将YOLOv8 模型转换为ONNX 格式,以便与 DeepSparse 一起使用?

要将YOLOv8 模型转换为与 DeepSparse 兼容所需的ONNX 格式,可以使用以下CLI 命令:

yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

该命令将导出YOLOv8 模型 (yolov8n.pt格式 (yolov8n.onnx),可被 DeepSparse 引擎使用。有关模型导出的更多信息,请参阅 模型导出部分.

如何衡量YOLOv8 在 DeepSparse 引擎上的性能?

对YOLOv8 在 DeepSparse 上的性能进行基准测试,可帮助您分析吞吐量和延迟,确保优化模型。您可以使用以下CLI 命令运行基准:

deepsparse.benchmark model_path="path/to/yolov8n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

该命令将为您提供重要的性能指标。有关详细信息,请参阅 "性能基准 "部分

为什么要使用Neural Magic 的 DeepSparse 和YOLOv8 来完成物体检测任务?

将Neural Magic 的 DeepSparse 与YOLOv8 整合在一起有几个好处:

  • 增强的推理速度:推理速度高达 525 FPS,大大加快了YOLOv8 的运行速度。
  • 优化模型效率:利用稀疏性、剪枝和量化技术,在保持准确性的同时,缩小模型大小,减少计算需求。
  • 在标准 CPU 上实现高性能:在经济高效的CPU 硬件上提供类似GPU 的性能。
  • 简化集成:用户友好型工具,便于部署和集成。
  • 灵活性:支持标准和稀疏性优化的YOLOv8 模型。
  • 成本效益高:有效利用资源,降低运营成本。

要深入了解这些优势,请访问 Neural Magic'DeepSparse 与YOLOv8 集成的优势部分



创建于 2023-12-30,更新于 2024-07-05
作者:glenn-jocher(7)、abirami-vina(1)

评论