跳至内容

Intel OpenVINO 出口

OpenVINO 生态系统

在本指南中,我们将介绍如何将YOLOv8 模型导出为 OpenVINO格式导出模型,这可以将 CPU的速度,以及加快YOLO 推理在Intel GPUNPU硬件上的推理加速。

OpenVINO, short for Open Visual Inference & Neural Network Optimization toolkit, is a comprehensive toolkit for optimizing and deploying AI inference models. Even though the name contains Visual, OpenVINO also supports various additional tasks including language, audio, time series, etc.



观看: 如何导出和优化Ultralytics YOLOv8 模型,以便利用OpenVINO 进行推理。

使用示例

将YOLOv8n 模型导出为OpenVINO 格式,并使用导出的模型运行推理。

示例

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolov8n_openvino_model/'

# Load the exported OpenVINO model
ov_model = YOLO("yolov8n_openvino_model/")

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

论据

钥匙价值说明
format'openvino'格式导出到
imgsz640图像尺寸标量或(高,宽)列表,即(640,480)
halfFalseFP16 量化
int8FalseINT8 量化
batch1batch size for inference
dynamicFalse允许动态输入大小

的好处OpenVINO

  1. 性能:OpenVINO 利用Intel CPU、集成和独立 GPU 以及 FPGA 的强大功能提供高性能推理。
  2. 支持异构执行:OpenVINO 提供 API,只需编写一次,即可在任何支持的Intel 硬件(CPU,GPU, FPGA, VPU 等)上部署。
  3. Model Optimizer: OpenVINO provides a Model Optimizer that imports, converts, and optimizes models from popular deep learning frameworks such as PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle, and Caffe.
  4. 易用性:工具包附带80 多本教程笔记本(包括YOLOv8 优化),教授工具包的不同方面。

OpenVINO 出口结构

将模型导出为OpenVINO 格式时,会生成一个包含以下内容的目录:

  1. XML 文件:描述网络拓扑结构。
  2. BIN 文件:包含weights and biases 二进制数据。
  3. 映射文件:保存原始模型输出张量到OpenVINO tensor 名称的映射。

您可以使用这些文件通过OpenVINO 推理引擎运行推理。

在部署中使用OpenVINO 导出

获得OpenVINO 文件后,就可以使用OpenVINO Runtime 运行模型。运行时为所有支持的Intel 硬件提供了统一的推理 API。它还提供跨Intel 硬件的负载平衡和异步执行等高级功能。有关运行推理的更多信息,请参阅《使用OpenVINO Runtime 进行推理指南》。

请记住,您需要 XML 和 BIN 文件以及任何特定于应用程序的设置,如输入大小、规范化的比例因子等,以便正确设置模型并将其用于 Runtime。

在部署应用程序中,通常需要执行以下步骤:

  1. 初始化OpenVINO ,创建 core = Core().
  2. 使用 core.read_model() 方法。
  3. 使用 core.compile_model() 功能。
  4. 准备输入内容(图像、文本、音频等)。
  5. 使用 compiled_model(input_data).

有关更详细的步骤和代码片段,请参阅OpenVINO 文档API 教程

OpenVINO YOLOv8 基准

YOLOv8 benchmarks below were run by the Ultralytics team on 4 different model formats measuring speed and accuracy: PyTorch, TorchScript, ONNX and OpenVINO. Benchmarks were run on Intel Flex and Arc GPUs, and on Intel Xeon CPUs at FP32 precision (with the half=False 参数)。

备注

以下基准测试结果仅供参考,可能会因系统的具体硬件和软件配置以及运行基准测试时系统的当前工作量而有所不同。

所有基准测试都在 openvino Python 软件包版本 2023.0.1.

Intel 灵活GPU

英特尔® 数据中心GPU Flex 系列是专为智能可视云设计的多功能、强大的解决方案。该GPU 支持各种工作负载,包括媒体流、云游戏、人工智能视觉推理和虚拟桌面基础架构工作负载。它因其开放式架构和对 AV1 编码的内置支持而脱颖而出,为高性能、跨架构应用提供了基于标准的软件栈。Flex 系列GPU 针对密度和质量进行了优化,具有高可靠性、可用性和可扩展性。

以下基准测试在英特尔® 数据中心GPU Flex 170 上以 FP32 精度运行。

FlexGPU 基准
模型格式现状大小(MB)mAP50-95(B)推理时间(毫秒/分钟)
YOLOv8nPyTorch6.20.370921.79
YOLOv8nTorchScript12.40.370423.24
YOLOv8nONNX12.20.370437.22
YOLOv8nOpenVINO12.30.37033.29
YOLOv8sPyTorch21.50.447131.89
YOLOv8sTorchScript42.90.447232.71
YOLOv8sONNX42.80.447243.42
YOLOv8sOpenVINO42.90.44703.92
YOLOv8mPyTorch49.70.501350.75
YOLOv8mTorchScript99.20.499947.90
YOLOv8mONNX99.00.499963.16
YOLOv8mOpenVINO49.80.49977.11
YOLOv8lPyTorch83.70.529377.45
YOLOv8lTorchScript167.20.526885.71
YOLOv8lONNX166.80.526888.94
YOLOv8lOpenVINO167.00.52649.37
YOLOv8xPyTorch130.50.5404100.09
YOLOv8xTorchScript260.70.5371114.64
YOLOv8xONNX260.40.5371110.32
YOLOv8xOpenVINO260.60.536715.02

本表是五种不同模型(YOLOv8n,YOLOv8s,YOLOv8m,YOLOv8l,YOLOv8x )和四种不同格式(PyTorch,TorchScript,ONNX,OpenVINO )的基准结果,给出了每种组合的状态、大小、mAP50-95(B) 指标和推理时间。

Intel 弧形GPU

Intel® Arc™ represents Intel's foray into the dedicated GPU market. The Arc™ series, designed to compete with leading GPU manufacturers like AMD and NVIDIA, caters to both the laptop and desktop markets. The series includes mobile versions for compact devices like laptops, and larger, more powerful versions for desktop computers.

Arc™ 系列分为三个类别:Arc™ 3、Arc™ 5 和 Arc™ 7,每个数字表示性能级别。每个类别包括多个型号,GPU 型号名称中的 "M "表示移动式集成变体。

早期的评论对 Arc™ 系列,尤其是集成的 A770MGPU 表示赞赏,认为其图形性能令人印象深刻。Arc™ 系列的供货情况因地区而异,预计不久将发布更多型号。英特尔® Arc™ GPU为从游戏到内容创建等一系列计算需求提供了高性能解决方案。

以下基准测试在 FP32 精度的 Intel® Arc 770GPU 上运行。

ArcGPU 基准
模型格式现状大小(MB)公制/mAP50-95(B)推理时间(毫秒/分钟)
YOLOv8nPyTorch6.20.370988.79
YOLOv8nTorchScript12.40.3704102.66
YOLOv8nONNX12.20.370457.98
YOLOv8nOpenVINO12.30.37038.52
YOLOv8sPyTorch21.50.4471189.83
YOLOv8sTorchScript42.90.4472227.58
YOLOv8sONNX42.70.4472142.03
YOLOv8sOpenVINO42.90.44699.19
YOLOv8mPyTorch49.70.5013411.64
YOLOv8mTorchScript99.20.4999517.12
YOLOv8mONNX98.90.4999298.68
YOLOv8mOpenVINO99.10.499612.55
YOLOv8lPyTorch83.70.5293725.73
YOLOv8lTorchScript167.10.5268892.83
YOLOv8lONNX166.80.5268576.11
YOLOv8lOpenVINO167.00.526217.62
YOLOv8xPyTorch130.50.5404988.92
YOLOv8xTorchScript260.70.53711186.42
YOLOv8xONNX260.40.5371768.90
YOLOv8xOpenVINO260.60.536719

Intel 至强CPU

The Intel® Xeon® CPU is a high-performance, server-grade processor designed for complex and demanding workloads. From high-end cloud computing and virtualization to artificial intelligence and machine learning applications, Xeon® CPUs provide the power, reliability, and flexibility required for today's data centers.

值得一提的是,至强® CPU具有高计算密度和可扩展性,是小型企业和大型企业的理想选择。通过选择英特尔® 至强® CPU,企业可以自信地处理最苛刻的计算任务,并在保持成本效益和运营效率的同时促进创新。

以下基准测试在 FP32 精度的第 4 代 Intel® Xeon® ScalableCPU 上运行。

XeonCPU 基准测试
模型格式现状大小(MB)公制/mAP50-95(B)推理时间(毫秒/分钟)
YOLOv8nPyTorch6.20.370924.36
YOLOv8nTorchScript12.40.370423.93
YOLOv8nONNX12.20.370439.86
YOLOv8nOpenVINO12.30.370411.34
YOLOv8sPyTorch21.50.447133.77
YOLOv8sTorchScript42.90.447234.84
YOLOv8sONNX42.80.447243.23
YOLOv8sOpenVINO42.90.447113.86
YOLOv8mPyTorch49.70.501353.91
YOLOv8mTorchScript99.20.499953.51
YOLOv8mONNX99.00.499964.16
YOLOv8mOpenVINO99.10.499628.79
YOLOv8lPyTorch83.70.529375.78
YOLOv8lTorchScript167.20.526879.13
YOLOv8lONNX166.80.526888.45
YOLOv8lOpenVINO167.00.526356.23
YOLOv8xPyTorch130.50.540496.60
YOLOv8xTorchScript260.70.5371114.28
YOLOv8xONNX260.40.5371111.02
YOLOv8xOpenVINO260.60.537183.28

Intel 核心CPU

英特尔® 酷睿® 系列是Intel 推出的一系列高性能处理器。该系列包括酷睿 i3(入门级)、酷睿 i5(中端)、酷睿 i7(高端)和酷睿 i9(极致性能)。从日常任务到苛刻的专业工作负载,每个系列都能满足不同的计算需求和预算。每一代产品在性能、能效和功能方面都有改进。

以下基准测试在 FP32 精度的第 13 代 Intel® Core® i7-13700HCPU 上运行。

核心CPU 基准
模型格式现状大小(MB)公制/mAP50-95(B)推理时间(毫秒/分钟)
YOLOv8nPyTorch6.20.4478104.61
YOLOv8nTorchScript12.40.4525112.39
YOLOv8nONNX12.20.452528.02
YOLOv8nOpenVINO12.30.450423.53
YOLOv8sPyTorch21.50.5885194.83
YOLOv8sTorchScript43.00.5962202.01
YOLOv8sONNX42.80.596265.74
YOLOv8sOpenVINO42.90.596638.66
YOLOv8mPyTorch49.70.6101355.23
YOLOv8mTorchScript99.20.6120424.78
YOLOv8mONNX99.00.6120173.39
YOLOv8mOpenVINO99.10.609169.80
YOLOv8lPyTorch83.70.6591593.00
YOLOv8lTorchScript167.20.6580697.54
YOLOv8lONNX166.80.6580342.15
YOLOv8lOpenVINO167.00.0708117.69
YOLOv8xPyTorch130.50.6651804.65
YOLOv8xTorchScript260.80.6650921.46
YOLOv8xONNX260.40.6650526.66
YOLOv8xOpenVINO260.60.6619158.73

Intel Ultra 7 155H Meteor Lake CPU

The Intel® Ultra™ 7 155H represents a new benchmark in high-performance computing, designed to cater to the most demanding users, from gamers to content creators. The Ultra™ 7 155H is not just a CPU; it integrates a powerful GPU and an advanced NPU (Neural Processing Unit) within a single chip, offering a comprehensive solution for diverse computing needs.

This hybrid architecture allows the Ultra™ 7 155H to excel in both traditional CPU tasks and GPU-accelerated workloads, while the NPU enhances AI-driven processes, enabling faster and more efficient machine learning operations. This makes the Ultra™ 7 155H a versatile choice for applications requiring high-performance graphics, complex computations, and AI inference.

The Ultra™ 7 series includes multiple models, each offering different levels of performance, with the 'H' designation indicating a high-power variant suitable for laptops and compact devices. Early benchmarks have highlighted the exceptional performance of the Ultra™ 7 155H, particularly in multitasking environments, where the combined power of the CPU, GPU, and NPU leads to remarkable efficiency and speed.

As part of Intel's commitment to cutting-edge technology, the Ultra™ 7 155H is designed to meet the needs of future computing, with more models expected to be released. The availability of the Ultra™ 7 155H varies by region, and it continues to receive praise for its integration of three powerful processing units in a single chip, setting new standards in computing performance.

Benchmarks below run on Intel® Ultra™ 7 155H at FP32 and INT8 precision.

基准

模型格式精度现状大小(MB)公制/mAP50-95(B)推理时间(毫秒/分钟)
YOLOv8nPyTorchFP326.20.638135.95
YOLOv8nOpenVINOFP3212.30.61178.32
YOLOv8nOpenVINOINT83.60.57919.88
YOLOv8sPyTorchFP3221.50.696779.72
YOLOv8sOpenVINOFP3242.90.713613.37
YOLOv8sOpenVINOINT811.20.70869.96
YOLOv8mPyTorchFP3249.70.737202.05
YOLOv8mOpenVINOFP3299.10.733128.07
YOLOv8mOpenVINOINT825.50.725921.11
YOLOv8lPyTorchFP3283.70.7769393.37
YOLOv8lOpenVINOFP32167.00.052.73
YOLOv8lOpenVINOINT842.60.786128.11
YOLOv8xPyTorchFP32130.50.7759610.71
YOLOv8xOpenVINOFP32260.60.74873.51
YOLOv8xOpenVINOINT866.00.808551.71

Intel Core Ultra GPU benchmarks
模型格式精度现状大小(MB)公制/mAP50-95(B)推理时间(毫秒/分钟)
YOLOv8nPyTorchFP326.20.638134.69
YOLOv8nOpenVINOFP3212.30.609239.06
YOLOv8nOpenVINOINT83.60.596818.37
YOLOv8sPyTorchFP3221.50.696779.9
YOLOv8sOpenVINOFP3242.90.713682.6
YOLOv8sOpenVINOINT811.20.708329.51
YOLOv8mPyTorchFP3249.70.737202.43
YOLOv8mOpenVINOFP3299.10.728181.27
YOLOv8mOpenVINOINT825.50.728551.25
YOLOv8lPyTorchFP3283.70.7769385.87
YOLOv8lOpenVINOFP32167.00.7551347.75
YOLOv8lOpenVINOINT842.60.767591.66
YOLOv8xPyTorchFP32130.50.7759603.63
YOLOv8xOpenVINOFP32260.60.7479516.39
YOLOv8xOpenVINOINT866.00.8119142.42

Intel Core Ultra CPU benchmarks
模型格式精度现状大小(MB)公制/mAP50-95(B)推理时间(毫秒/分钟)
YOLOv8nPyTorchFP326.20.638136.98
YOLOv8nOpenVINOFP3212.30.610316.68
YOLOv8nOpenVINOINT83.60.594114.6
YOLOv8sPyTorchFP3221.50.696779.76
YOLOv8sOpenVINOFP3242.90.714432.89
YOLOv8sOpenVINOINT811.20.706226.13
YOLOv8mPyTorchFP3249.70.737201.44
YOLOv8mOpenVINOFP3299.10.728454.4
YOLOv8mOpenVINOINT825.50.726830.76
YOLOv8lPyTorchFP3283.70.7769385.46
YOLOv8lOpenVINOFP32167.00.753980.1
YOLOv8lOpenVINOINT842.60.750852.25
YOLOv8xPyTorchFP32130.50.7759609.4
YOLOv8xOpenVINOFP32260.60.7637104.79
YOLOv8xOpenVINOINT866.00.807764.96

Intel Core Ultra NPU benchmarks

复制我们的结果

要在所有导出格式上重现上述Ultralytics 基准,请运行此代码:

示例

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
results = model.benchmarks(data="coco8.yaml")
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

请注意,基准测试结果可能会因系统的具体硬件和软件配置以及运行基准测试时系统的当前工作量而有所不同。为获得最可靠的结果,请使用包含大量图像的数据集,即 data='coco128.yaml' (128 val images), ordata='coco.yaml'` (5000 val images)。

结论

基准测试结果清楚地表明了将YOLOv8 模型导出为OpenVINO 格式的好处。在不同的模型和硬件平台上,OpenVINO 格式的推理速度始终优于其他格式,同时保持了相当的准确性。

对于英特尔® 数据中心GPU Flex 系列,OpenVINO 格式的推理速度几乎是原始PyTorch 格式的 10 倍。在至强CPU 上,OpenVINO 格式的推理速度是PyTorch 格式的两倍。不同格式的模型准确性几乎相同。

这些基准测试凸显了OpenVINO 作为深度学习模型部署工具的有效性。通过将模型转换为OpenVINO 格式,开发人员可以显著提高性能,从而更容易在实际应用中部署这些模型。

有关使用OpenVINO 的详细信息和说明,请参阅 OpenVINO 官方文档

常见问题

如何将YOLOv8 模型导出为OpenVINO 格式?

将YOLOv8 模型导出为OpenVINO 格式可以大大提高CPU 的速度,并在Intel 硬件上实现GPU 和 NPU 加速。要导出模型,您可以使用Python 或CLI ,如下所示:

示例

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolov8n_openvino_model/'
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

更多信息,请参阅导出格式文档

使用OpenVINO 和YOLOv8 模型有什么好处?

将Intel 的OpenVINO 工具包与YOLOv8 模型一起使用,可带来多种好处:

  1. 性能:CPU 推理速度提高 3 倍,并利用Intel GPU 和 NPU 进行加速。
  2. 模型优化器:转换、优化和执行来自PyTorch 、TensorFlow 和ONNX 等流行框架的模型。
  3. 易于使用:有 80 多本教程笔记本可帮助用户入门,其中包括YOLOv8 。
  4. 异构执行:使用统一的应用程序接口在各种Intel 硬件上部署模型。

有关详细的性能比较,请访问我们的基准测试部分

如何使用导出到OpenVINO 的YOLOv8 模型进行推理?

将YOLOv8 模型导出为OpenVINO 格式后,可以使用Python 或CLI 运行推理:

示例

from ultralytics import YOLO

# Load the exported OpenVINO model
ov_model = YOLO("yolov8n_openvino_model/")

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

更多详情,请参阅我们的预测模式文档

为什么要选择Ultralytics YOLOv8 而不是其他型号的OpenVINO 导出?

Ultralytics YOLOv8 进行了优化,可实现高精度、高速度的实时目标检测。具体来说,与OpenVINO 结合使用时,YOLOv8 可提供以下功能:

  • 在Intel CPU 上的运行速度最多可提高 3 倍
  • 在Intel GPU 和 NPU 上无缝部署
  • 各种导出格式的准确性一致且具有可比性

有关深入的性能分析,请查看我们在不同硬件上的详细YOLOv8 基准测试

我能否在PyTorch,ONNX 和OpenVINO 等不同格式上对YOLOv8 模型进行基准测试?

是的,您可以对各种格式的YOLOv8 模型进行基准测试,包括PyTorch,TorchScript,ONNX 和OpenVINO 。使用以下代码片段在您选择的数据集上运行基准:

示例

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and [accuracy](https://www.ultralytics.com/glossary/accuracy) on the COCO8 dataset for all export formats
results = model.benchmarks(data="coco8.yaml")
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

有关详细的基准测试结果,请参阅我们的基准测试部分导出格式文档。

📅 Created 1 year ago ✏️ Updated 1 month ago

评论