跳转至内容

Intel OpenVINO 导出

OpenVINO 生态系统

在本指南中,我们将介绍如何将 YOLO11 模型导出为 OpenVINO 格式,该格式可提供高达 3 倍的 CPU 速度提升,以及加速 Intel GPUNPU 硬件上的 YOLO 推理。

OpenVINO 是 Open Visual Inference & Neural Network Optimization 工具包的缩写,是一个用于优化和部署 AI 推理模型的综合工具包。即使名称中包含 Visual,OpenVINO 也支持各种其他任务,包括语言、音频、时间序列等。



观看: 如何将 Ultralytics YOLO11 导出为 Intel OpenVINO 格式以实现更快的推理 🚀

使用示例

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

示例

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

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

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

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")

# Run inference with specified device, available devices: ["intel:gpu", "intel:npu", "intel:cpu"]
results = ov_model("https://ultralytics.com/images/bus.jpg", device="intel:gpu")
# Export a YOLO11n PyTorch model to OpenVINO format
yolo export model=yolo11n.pt format=openvino # creates 'yolo11n_openvino_model/'

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

# Run inference with specified device, available devices: ["intel:gpu", "intel:npu", "intel:cpu"]
yolo predict model=yolo11n_openvino_model source='https://ultralytics.com/images/bus.jpg' device="intel:gpu"

导出参数

参数类型默认值描述
formatstr'openvino'导出模型的目标格式,定义与各种部署环境的兼容性。
imgszinttuple640模型输入的所需图像大小。 可以是正方形图像的整数或元组 (height, width) 用于指定特定维度。
halfboolFalse启用 FP16(半精度)量化,从而减小模型大小并可能加快受支持硬件上的推理速度。
int8boolFalse激活 INT8 量化,进一步压缩模型并以最小的精度损失加快推理速度,主要用于边缘设备。
dynamicboolFalse允许动态输入大小,从而增强了处理不同图像尺寸的灵活性。
nmsboolFalse添加非极大值抑制 (NMS),这对于准确高效的检测后处理至关重要。
batchint1指定导出模型批处理推理大小或导出模型将并发处理的最大图像数量,在 predict 模式下。
datastr'coco8.yaml'路径指向 数据集 配置文件(默认: coco8.yaml),这对于量化至关重要。
fractionfloat1.0指定用于 INT8 量化校准的数据集比例。允许在完整数据集的子集上进行校准,这对于实验或资源有限时非常有用。如果未在使用 INT8 启用时指定,则将使用完整数据集。

有关导出过程的更多详细信息,请访问Ultralytics 文档页面上的导出

警告

OpenVINO™ 与大多数 Intel® 处理器兼容,但为确保最佳性能:

  1. 验证 OpenVINO™ 支持 使用Intel的兼容性列表检查 OpenVINO™ 是否正式支持您的英特尔® 芯片。

  2. 确定您的加速器 通过查阅Intel硬件指南,确定您的处理器是否包含集成 NPU(神经处理单元)或GPU(集成图形处理器)。

  3. 安装最新驱动程序 如果您的芯片支持 NPU 或GPU ,但 OpenVINO™ 没有检测到它,您可能需要安装或更新相关驱动程序。请按照驱动程序安装说明启用完全加速。

通过遵循这三个步骤,您可以确保 OpenVINO™ 在您的 Intel® 硬件上以最佳状态运行。

OpenVINO 的优势

  1. 性能:OpenVINO 通过利用 Intel CPU、集成和独立 GPU 以及 FPGA 的强大功能,提供高性能推理。
  2. 对异构执行的支持:OpenVINO 提供了一个 API,可以一次编写并部署在任何受支持的 Intel 硬件(CPU、GPU、FPGA、VPU 等)上。
  3. 模型优化器:OpenVINO 提供了一个模型优化器,可以从流行的深度学习框架(如 PyTorch、TensorFlow、TensorFlow Lite、Keras、ONNX、PaddlePaddle 和 Caffe)导入、转换和优化模型。
  4. 易用性:该工具包包含超过 80 个教程笔记本(包括 YOLOv8 优化),用于教授该工具包的不同方面。

OpenVINO 导出结构

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

  1. XML 文件:描述网络拓扑。
  2. BIN 文件:包含权重和偏置二进制数据。
  3. 映射文件:保存原始模型输出 tensors 到 OpenVINO tensor 名称的映射。

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

在部署中使用 OpenVINO 导出

一旦您的模型成功导出为 OpenVINO 格式,您有两种主要的运行推理的选项:

  1. 使用 ultralytics package,它提供了一个高级 API 并封装了 OpenVINO Runtime。

  2. 使用原生 openvino package,用于对推理行为进行更高级或自定义的控制。

使用Ultralytics进行推理

通过 ultralytics 包,您可以轻松地使用导出的 OpenVINO 模型,通过 predict 方法运行推理。您还可以指定目标设备(例如, intel:gpu, intel:npu, intel:cpu)使用 device 参数。

from ultralytics import YOLO

# Load the exported OpenVINO model
ov_model = YOLO("yolo11n_openvino_model/")  # the path of your exported OpenVINO model
# Run inference with the exported model
ov_model.predict(device="intel:gpu")  # specify the device you want to run inference on

当您不需要完全控制推理流程时,此方法非常适合快速原型设计或部署。

使用OpenVINO Runtime进行推理

OpenVINO Runtime 提供了一个统一的 API,用于在所有受支持的 Intel 硬件上进行推理。它还提供高级功能,例如在 Intel 硬件上进行负载均衡和异步执行。有关运行推理的更多信息,请参阅 YOLO11 notebooks

请记住,您需要 XML 和 BIN 文件以及任何特定于应用程序的设置(如输入大小、归一化比例因子等),才能正确设置模型并将其与 Runtime 一起使用。

在您的部署应用程序中,您通常会执行以下步骤:

  1. 通过创建以下对象初始化 OpenVINO: core = Core().
  2. 使用以下方法加载模型: core.read_model() 方法。
  3. 使用以下函数编译模型: core.compile_model() 函数。
  4. 准备输入(图像、文本、音频等)。
  5. 使用以下方法运行推理: compiled_model(input_data).

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

OpenVINO YOLO11 基准测试

Ultralytics 团队对 YOLO11 进行了跨各种模型格式和精度的基准测试,评估了与 OpenVINO 兼容的不同 Intel 设备上的速度和准确性。

注意

下面的基准测试结果仅供参考,可能会因系统的确切硬件和软件配置以及运行基准测试时系统的当前工作负载而异。

所有基准测试均使用 openvino python 包版本 2025.1.0.

Intel Core CPU

Intel® Core® 系列是 Intel 的一系列高性能处理器。该系列包括 Core i3(入门级)、Core i5(中端)、Core i7(高端)和 Core i9(极致性能)。每个系列都满足不同的计算需求和预算,从日常任务到要求严苛的专业工作负载。随着每一代新产品的推出,性能、能源效率和功能都会得到改进。

以下基准测试在 FP32 精度下,于第 12 代 Intel® Core® i9-12900KS CPU 上运行。

Core CPU 基准测试
详细的基准测试结果
模型格式状态大小 (MB)metrics/mAP50-95(B)推理时间 (ms/im)
YOLO11nPyTorch5.40.507121.00
YOLO11nTorchScript10.50.507721.39
YOLO11nONNX10.20.507715.55
YOLO11nOpenVINO10.40.507711.49
YOLO11sPyTorch18.40.577043.16
YOLO11sTorchScript36.60.578150.06
YOLO11sONNX36.30.578131.53
YOLO11sOpenVINO36.40.578130.82
YOLO11mPyTorch38.80.6257110.60
YOLO11mTorchScript77.30.6306128.09
YOLO11mONNX76.90.630676.06
YOLO11mOpenVINO77.10.630679.38
YOLO11lPyTorch49.00.6367150.38
YOLO11lTorchScript97.70.6408172.57
YOLO11lONNX97.00.6408108.91
YOLO11lOpenVINO97.30.6408102.30
YOLO11xPyTorch109.30.6989272.72
YOLO11xTorchScript218.10.6900320.86
YOLO11xONNX217.50.6900196.20
YOLO11xOpenVINO217.80.6900195.32

Intel® Core™ Ultra

Intel® Core™ Ultra™ 系列代表了高性能计算的新标杆,旨在满足现代用户不断变化的需求——从游戏玩家和创作者到利用 AI 的专业人士。这一代产品不仅仅是传统的 CPU 系列;它在单个芯片中结合了强大的 CPU 核心、集成的 GPU 高性能能力和专用的神经处理单元 (NPU),为各种密集型计算工作负载提供统一的解决方案。

Intel® Core Ultra™ 架构的核心是混合设计,可在传统处理任务、GPU 加速工作负载和 AI 驱动的操作中实现卓越性能。NPU 的加入增强了设备上的 AI 推理能力,从而在各种应用中实现更快、更高效的机器学习和数据处理。

Core Ultra™ 系列包括专为不同性能需求量身定制的各种型号,其选项范围从节能设计到以“H”标识的高功率型号,后者非常适合需要强大计算能力的笔记本电脑和紧凑型外形。在整个产品线中,用户都可以从 CPU、GPU 和 NPU 集成的协同作用中受益,从而提供卓越的效率、响应能力和多任务处理能力。

作为 Intel 不断创新的一部分,Core Ultra™ 系列为面向未来的计算设定了新标准。该系列提供多种型号,并且未来还将推出更多型号,这突显了 Intel 致力于为下一代智能、AI 增强型设备提供尖端解决方案的承诺。

以下基准测试在 FP32 和 INT8 精度下,于 Intel® Core™ Ultra™ 7 258V 和 Intel® Core™ Ultra™ 7 265K 上运行。

Intel® Core™ Ultra™ 7 258V

基准测试

Intel Core Ultra GPU 基准测试

详细的基准测试结果
模型格式精确度状态大小 (MB)metrics/mAP50-95(B)推理时间 (ms/im)
YOLO11nPyTorchFP325.40.505232.27
YOLO11nOpenVINOFP3210.40.506811.84
YOLO11nOpenVINOINT83.30.496911.24
YOLO11sPyTorchFP3218.40.577692.09
YOLO11sOpenVINOFP3236.40.579714.82
YOLO11sOpenVINOINT89.80.575112.88
YOLO11mPyTorchFP3238.80.6262277.24
YOLO11mOpenVINOFP3277.10.630622.94
YOLO11mOpenVINOINT820.20.612617.85
YOLO11lPyTorchFP3249.00.6361348.97
YOLO11lOpenVINOFP3297.30.636527.34
YOLO11lOpenVINOINT825.70.624220.83
YOLO11xPyTorchFP32109.30.6984666.07
YOLO11xOpenVINOFP32217.80.689039.09
YOLO11xOpenVINOINT855.90.685630.60

Intel Core Ultra CPU 基准测试

详细的基准测试结果
模型格式精确度状态大小 (MB)metrics/mAP50-95(B)推理时间 (ms/im)
YOLO11nPyTorchFP325.40.505232.27
YOLO11nOpenVINOFP3210.40.507732.55
YOLO11nOpenVINOINT83.30.498022.98
YOLO11sPyTorchFP3218.40.577692.09
YOLO11sOpenVINOFP3236.40.578298.38
YOLO11sOpenVINOINT89.80.574552.84
YOLO11mPyTorchFP3238.80.6262277.24
YOLO11mOpenVINOFP3277.10.6307275.74
YOLO11mOpenVINOINT820.20.6172132.63
YOLO11lPyTorchFP3249.00.6361348.97
YOLO11lOpenVINOFP3297.30.6361348.97
YOLO11lOpenVINOINT825.70.6240171.36
YOLO11xPyTorchFP32109.30.6984666.07
YOLO11xOpenVINOFP32217.80.6900783.16
YOLO11xOpenVINOINT855.90.6890346.82

Intel Core Ultra NPU 基准测试

详细的基准测试结果
模型格式精确度状态大小 (MB)metrics/mAP50-95(B)推理时间 (ms/im)
YOLO11nPyTorchFP325.40.505232.27
YOLO11nOpenVINOFP3210.40.50858.33
YOLO11nOpenVINOINT83.30.50198.91
YOLO11sPyTorchFP3218.40.577692.09
YOLO11sOpenVINOFP3236.40.57889.72
YOLO11sOpenVINOINT89.80.571010.58
YOLO11mPyTorchFP3238.80.6262277.24
YOLO11mOpenVINOFP3277.10.630119.41
YOLO11mOpenVINOINT820.20.612418.26
YOLO11lPyTorchFP3249.00.6361348.97
YOLO11lOpenVINOFP3297.30.636223.70
YOLO11lOpenVINOINT825.70.624021.40
YOLO11xPyTorchFP32109.30.6984666.07
YOLO11xOpenVINOFP32217.80.689243.91
YOLO11xOpenVINOINT855.90.689034.04

Intel® Core™ Ultra™ 7 265K

基准测试

Intel Core Ultra GPU 基准测试

详细的基准测试结果
模型格式精确度状态大小 (MB)metrics/mAP50-95(B)推理时间 (ms/im)
YOLO11nPyTorchFP325.40.507216.29
YOLO11nOpenVINOFP3210.40.507913.13
YOLO11nOpenVINOINT83.30.49768.86
YOLO11sPyTorchFP3218.40.577139.61
YOLO11sOpenVINOFP3236.40.580818.26
YOLO11sOpenVINOINT89.80.572613.24
YOLO11mPyTorchFP3238.80.6258100.65
YOLO11mOpenVINOFP3277.10.631043.50
YOLO11mOpenVINOINT820.20.613720.90
YOLO11lPyTorchFP3249.00.6367131.37
YOLO11lOpenVINOFP3297.30.637154.52
YOLO11lOpenVINOINT825.70.622627.36
YOLO11xPyTorchFP32109.30.6990212.45
YOLO11xOpenVINOFP32217.80.6884112.76
YOLO11xOpenVINOINT855.90.690052.06

Intel Core Ultra CPU 基准测试

详细的基准测试结果
模型格式精确度状态大小 (MB)metrics/mAP50-95(B)推理时间 (ms/im)
YOLO11nPyTorchFP325.40.507216.29
YOLO11nOpenVINOFP3210.40.507715.04
YOLO11nOpenVINOINT83.30.498011.60
YOLO11sPyTorchFP3218.40.577139.61
YOLO11sOpenVINOFP3236.40.578233.45
YOLO11sOpenVINOINT89.80.574520.64
YOLO11mPyTorchFP3238.80.6258100.65
YOLO11mOpenVINOFP3277.10.630781.15
YOLO11mOpenVINOINT820.20.617244.63
YOLO11lPyTorchFP3249.00.6367131.37
YOLO11lOpenVINOFP3297.30.6409103.77
YOLO11lOpenVINOINT825.70.624058.00
YOLO11xPyTorchFP32109.30.6990212.45
YOLO11xOpenVINOFP32217.80.6900208.37
YOLO11xOpenVINOINT855.90.6897113.04

Intel Core Ultra NPU 基准测试

详细的基准测试结果
模型格式精确度状态大小 (MB)metrics/mAP50-95(B)推理时间 (ms/im)
YOLO11nPyTorchFP325.40.507216.29
YOLO11nOpenVINOFP3210.40.50758.02
YOLO11nOpenVINOINT83.30.36569.28
YOLO11sPyTorchFP3218.40.577139.61
YOLO11sOpenVINOFP3236.40.580113.12
YOLO11sOpenVINOINT89.80.568613.12
YOLO11mPyTorchFP3238.80.6258100.65
YOLO11mOpenVINOFP3277.10.631029.88
YOLO11mOpenVINOINT820.20.611126.32
YOLO11lPyTorchFP3249.00.6367131.37
YOLO11lOpenVINOFP3297.30.635637.08
YOLO11lOpenVINOINT825.70.624530.81
YOLO11xPyTorchFP32109.30.6990212.45
YOLO11xOpenVINOFP32217.80.689468.48
YOLO11xOpenVINOINT855.90.641749.76

Intel® Arc GPU

Intel® Arc™ 是 Intel 专为高性能游戏、内容创作和 AI 工作负载而设计的独立显卡系列。Arc 系列采用先进的 GPU 架构,支持实时光线追踪、AI 增强图形和高分辨率游戏。Intel® Arc™ 注重性能和效率,旨在与其他领先的 GPU 品牌竞争,同时提供硬件加速 AV1 编码和对最新图形 API 的支持等独特功能。

以下基准测试在 FP32 和 INT8 精度下,于 Intel Arc A770 和 Intel Arc B580 上运行。

Intel Arc A770

Intel Core Ultra CPU 基准测试
详细的基准测试结果
模型格式精确度状态大小 (MB)metrics/mAP50-95(B)推理时间 (ms/im)
YOLO11nPyTorchFP325.40.507216.29
YOLO11nOpenVINOFP3210.40.50736.98
YOLO11nOpenVINOINT83.30.49787.24
YOLO11sPyTorchFP3218.40.577139.61
YOLO11sOpenVINOFP3236.40.57989.41
YOLO11sOpenVINOINT89.80.57518.72
YOLO11mPyTorchFP3238.80.6258100.65
YOLO11mOpenVINOFP3277.10.631114.88
YOLO11mOpenVINOINT820.20.612611.97
YOLO11lPyTorchFP3249.00.6367131.37
YOLO11lOpenVINOFP3297.30.636419.17
YOLO11lOpenVINOINT825.70.624115.75
YOLO11xPyTorchFP32109.30.6990212.45
YOLO11xOpenVINOFP32217.80.688818.13
YOLO11xOpenVINOINT855.90.693018.91

Intel Arc B580

Intel Core Ultra CPU 基准测试
详细的基准测试结果
模型格式精确度状态大小 (MB)metrics/mAP50-95(B)推理时间 (ms/im)
YOLO11nPyTorchFP325.40.507216.29
YOLO11nOpenVINOFP3210.40.50724.27
YOLO11nOpenVINOINT83.30.49814.33
YOLO11sPyTorchFP3218.40.577139.61
YOLO11sOpenVINOFP3236.40.57895.04
YOLO11sOpenVINOINT89.80.57464.97
YOLO11mPyTorchFP3238.80.6258100.65
YOLO11mOpenVINOFP3277.10.63066.45
YOLO11mOpenVINOINT820.20.61256.28
YOLO11lPyTorchFP3249.00.6367131.37
YOLO11lOpenVINOFP3297.30.63608.23
YOLO11lOpenVINOINT825.70.62368.49
YOLO11xPyTorchFP32109.30.6990212.45
YOLO11xOpenVINOFP32217.80.688911.10
YOLO11xOpenVINOINT855.90.692410.30

复现我们的结果

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

示例

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Benchmark YOLO11n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml")
# Benchmark YOLO11n speed and accuracy on the COCO128 dataset for all export formats
yolo benchmark model=yolo11n.pt data=coco128.yaml

请注意,基准测试结果可能因系统的具体硬件和软件配置以及运行基准测试时系统的当前工作负载而异。为了获得最可靠的结果,请使用包含大量图像的数据集,例如: data='coco.yaml' (5000 张验证图像)。

结论

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

这些基准测试强调了 OpenVINO 作为部署深度学习模型的有效性。通过将模型转换为 OpenVINO 格式,开发人员可以获得显著的性能提升,从而更轻松地在实际应用中部署这些模型。

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

常见问题

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

将 YOLO11 模型导出为 OpenVINO 格式可以显着提高 CPU 速度,并支持 Intel 硬件上的 GPU 和 NPU 加速。要导出,您可以使用 python 或 CLI,如下所示:

示例

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolo11n_openvino_model/'
# Export a YOLO11n PyTorch model to OpenVINO format
yolo export model=yolo11n.pt format=openvino # creates 'yolo11n_openvino_model/'

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

将 OpenVINO 与 YOLO11 模型结合使用有什么好处?

将 Intel 的 OpenVINO 工具包与 YOLO11 模型结合使用可带来诸多好处:

  1. 性能:在 CPU 推理上实现高达 3 倍的加速,并利用 Intel GPU 和 NPU 进行加速。
  2. 模型优化器:转换、优化和执行来自 PyTorch、TensorFlow 和 ONNX 等常用框架的模型。
  3. 易用性:提供 80 多个教程笔记本,以帮助用户入门,其中包括 YOLO11 的教程。
  4. 异构执行:使用统一的 API 在各种 Intel 硬件上部署模型。

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

如何使用导出到 OpenVINO 的 YOLO11 模型运行推理?

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

示例

from ultralytics import YOLO

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

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

有关更多详细信息,请参阅我们的预测模式文档

对于 OpenVINO 导出,为什么我应该选择 Ultralytics YOLO11 而不是其他模型?

Ultralytics YOLO11 经过优化,可实现高精度和速度的实时对象检测。具体来说,当与 OpenVINO 结合使用时,YOLO11 提供:

  • 在 Intel CPU 上的速度提升高达 3 倍
  • 在 Intel GPU 和 NPU 上无缝部署
  • 在各种导出格式中保持一致且具有可比性的准确性

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

我可以在不同的格式(如 PyTorch、ONNX 和 OpenVINO)上对 YOLO11 模型进行基准测试吗?

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

示例

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

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

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



📅创建 2 年 ago ✏️已更新 2 个月前
glenn-jocherambitious-octopuslakshanthadRizwanMunawarMatthewNoyceandrei-kochinabirami-vinaBurhan-Q

评论