Intel OpenVINO 导出
本指南将介绍如何将 YOLO26 模型导出为 OpenVINO 格式。该格式可提供高达 3 倍的 CPU 速度提升,并能加速在 Intel GPU 和 NPU 硬件上的 YOLO 推理。
OpenVINO 是 Open Visual Inference & Neural Network Optimization toolkit(开放式视觉推理和神经网络优化工具包)的缩写,是一个用于优化和部署 AI 推理模型的综合工具包。尽管名称中包含“视觉”,但 OpenVINO 也支持各种其他任务,包括语言、音频、时间序列等。
Watch: How to Export Ultralytics YOLO26 to Intel OpenVINO Format for Faster Inference 🚀
使用示例
将 YOLO26n 模型导出为 OpenVINO 格式并使用导出的模型运行推理。
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model
model.export(format="openvino") # creates 'yolo26n_openvino_model/'
# Load the exported OpenVINO model
ov_model = YOLO("yolo26n_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")导出参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
format | str | 'openvino' | 导出模型的目标格式,定义与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入的所需图像尺寸。可以是正方形图像的整数,也可以是特定维度的元组 (height, width)。 |
half | bool | False | 启用 FP16(半精度)量化,减小模型大小并可能在受支持的硬件上加快推理速度。 |
int8 | bool | False | 激活 INT8 量化,进一步压缩模型并以极小的准确性损失加快推理速度,主要适用于边缘设备。 |
dynamic | bool | False | 允许动态输入大小,提高了处理不同图像尺寸的灵活性。 |
nms | bool | False | 添加非极大值抑制(NMS),这对于准确且高效的检测后处理至关重要。 |
batch | int | 1 | 指定导出模型的批量推理大小,或者导出模型在 predict 模式下将同时处理的最大图像数量。 |
data | str | 'coco8.yaml' | 数据集配置文件的路径(默认:coco8.yaml),这对量化至关重要。 |
fraction | float | 1.0 | 指定用于 INT8 量化校准的数据集比例。允许在完整数据集的子集上进行校准,这对于实验或资源受限时非常有用。如果在启用 INT8 时未指定,将使用完整数据集。 |
有关导出过程的更多详细信息,请访问 Ultralytics 导出文档页面。
OpenVINO™ 与大多数 Intel® 处理器兼容,但为了确保最佳性能,请执行以下操作:
-
验证 OpenVINO™ 支持 使用 Intel 的兼容性列表检查你的 Intel® 芯片是否得到 OpenVINO™ 的官方支持。
-
识别你的加速器 通过查阅 Intel 硬件指南,确定你的处理器是否包含集成 NPU(神经处理单元)或 GPU(集成 GPU)。
-
安装最新驱动程序 如果你的芯片支持 NPU 或 GPU,但 OpenVINO™ 未能检测到,你可能需要安装或更新相关的驱动程序。请按照 驱动程序安装说明来实现全面加速。
遵循这三个步骤,你可以确保 OpenVINO™ 在你的 Intel® 硬件上实现最佳运行。
OpenVINO 的优势
- 性能:OpenVINO 通过利用 Intel CPU、集成和独立 GPU 以及 FPGA 的强大功能,提供高性能推理。
- 异构执行支持:OpenVINO 提供了一个 API,只需编写一次代码,即可在任何受支持的 Intel 硬件(CPU、GPU、FPGA、VPU 等)上进行部署。
- 模型优化器:OpenVINO 提供了一个模型优化器,用于从主流深度学习框架(如 PyTorch、TensorFlow、TensorFlow Lite、Keras、ONNX、PaddlePaddle 和 Caffe)中导入、转换和优化模型。
- 易用性:该工具包附带了 80 多篇教程笔记本(包括 YOLO26 优化),用于教授该工具包的各个方面。
OpenVINO 导出结构
将模型导出为 OpenVINO 格式时,会生成一个包含以下内容的目录:
- XML 文件:描述网络拓扑结构。
- BIN 文件:包含权重和偏差的二进制数据。
- 映射文件:保存原始模型输出张量到 OpenVINO 张量名称的映射。
你可以使用这些文件通过 OpenVINO 推理引擎运行推理。
在部署中使用 OpenVINO 导出
一旦模型成功导出为 OpenVINO 格式,你有两种主要方式来运行推理:
-
使用
ultralytics软件包,它提供了一个高级 API 并封装了 OpenVINO Runtime。 -
使用原生的
openvino软件包,以便对推理行为进行更高级或更定制化的控制。
使用 Ultralytics 进行推理
ultralytics 软件包允许你通过 predict 方法轻松地使用导出的 OpenVINO 模型运行推理。你还可以使用 device 参数指定目标设备(例如 intel:gpu、intel:npu、intel:cpu)。
from ultralytics import YOLO
# Load the exported OpenVINO model
ov_model = YOLO("yolo26n_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 硬件间的负载均衡和异步执行等高级功能。有关运行推理的更多信息,请参考 YOLO26 笔记本。
请记住,你需要 XML 和 BIN 文件,以及任何特定于应用的设置(如输入大小、归一化的缩放因子等),以正确配置并使用 Runtime 运行模型。
在部署应用中,你通常需要执行以下步骤:
- 通过创建
core = Core()初始化 OpenVINO。 - 使用
core.read_model()方法加载模型。 - 使用
core.compile_model()函数编译模型。 - 准备输入数据(图像、文本、音频等)。
- 使用
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(极限性能)。每个系列都满足不同的计算需求和预算,从日常任务到要求苛刻的专业工作负载。每一代新品在性能、能效和功能方面都有所改进。
下方的基准测试在第 12 代 Intel® Core® i9-12900KS CPU 上以 FP32 精度运行。
详细基准测试结果
| 模型 | 格式 | 状态 | 大小 (MB) | metrics/mAP50-95(B) | 推理时间 (ms/im) |
|---|---|---|---|---|---|
| YOLO11n | PyTorch | ✅ | 5.4 | 0.5071 | 21.00 |
| YOLO11n | TorchScript | ✅ | 10.5 | 0.5077 | 21.39 |
| YOLO11n | ONNX | ✅ | 10.2 | 0.5077 | 15.55 |
| YOLO11n | OpenVINO | ✅ | 10.4 | 0.5077 | 11.49 |
| YOLO11s | PyTorch | ✅ | 18.4 | 0.5770 | 43.16 |
| YOLO11s | TorchScript | ✅ | 36.6 | 0.5781 | 50.06 |
| YOLO11s | ONNX | ✅ | 36.3 | 0.5781 | 31.53 |
| YOLO11s | OpenVINO | ✅ | 36.4 | 0.5781 | 30.82 |
| YOLO11m | PyTorch | ✅ | 38.8 | 0.6257 | 110.60 |
| YOLO11m | TorchScript | ✅ | 77.3 | 0.6306 | 128.09 |
| YOLO11m | ONNX | ✅ | 76.9 | 0.6306 | 76.06 |
| YOLO11m | OpenVINO | ✅ | 77.1 | 0.6306 | 79.38 |
| YOLO11l | PyTorch | ✅ | 49.0 | 0.6367 | 150.38 |
| YOLO11l | TorchScript | ✅ | 97.7 | 0.6408 | 172.57 |
| YOLO11l | ONNX | ✅ | 97.0 | 0.6408 | 108.91 |
| YOLO11l | OpenVINO | ✅ | 97.3 | 0.6408 | 102.30 |
| YOLO11x | PyTorch | ✅ | 109.3 | 0.6989 | 272.72 |
| YOLO11x | TorchScript | ✅ | 218.1 | 0.6900 | 320.86 |
| YOLO11x | ONNX | ✅ | 217.5 | 0.6900 | 196.20 |
| YOLO11x | OpenVINO | ✅ | 217.8 | 0.6900 | 195.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 增强设备提供尖端解决方案的承诺。
下方的基准测试在 Intel® Core™ Ultra™ 7 258V 和 Intel® Core™ Ultra™ 7 265K 上以 FP32 和 INT8 精度运行。
Intel® Core™ Ultra™ 7 258V
详细基准测试结果
| 模型 | 格式 | 精度 | 状态 | 大小 (MB) | metrics/mAP50-95(B) | 推理时间 (ms/im) |
|---|---|---|---|---|---|---|
| YOLO11n | PyTorch | FP32 | ✅ | 5.4 | 0.5052 | 32.27 |
| YOLO11n | OpenVINO | FP32 | ✅ | 10.4 | 0.5068 | 11.84 |
| YOLO11n | OpenVINO | INT8 | ✅ | 3.3 | 0.4969 | 11.24 |
| YOLO11s | PyTorch | FP32 | ✅ | 18.4 | 0.5776 | 92.09 |
| YOLO11s | OpenVINO | FP32 | ✅ | 36.4 | 0.5797 | 14.82 |
| YOLO11s | OpenVINO | INT8 | ✅ | 9.8 | 0.5751 | 12.88 |
| YOLO11m | PyTorch | FP32 | ✅ | 38.8 | 0.6262 | 277.24 |
| YOLO11m | OpenVINO | FP32 | ✅ | 77.1 | 0.6306 | 22.94 |
| YOLO11m | OpenVINO | INT8 | ✅ | 20.2 | 0.6126 | 17.85 |
| YOLO11l | PyTorch | FP32 | ✅ | 49.0 | 0.6361 | 348.97 |
| YOLO11l | OpenVINO | FP32 | ✅ | 97.3 | 0.6365 | 27.34 |
| YOLO11l | OpenVINO | INT8 | ✅ | 25.7 | 0.6242 | 20.83 |
| YOLO11x | PyTorch | FP32 | ✅ | 109.3 | 0.6984 | 666.07 |
| YOLO11x | OpenVINO | FP32 | ✅ | 217.8 | 0.6890 | 39.09 |
| YOLO11x | OpenVINO | INT8 | ✅ | 55.9 | 0.6856 | 30.60 |
Intel® Core™ Ultra™ 7 265K
详细基准测试结果
| 模型 | 格式 | 精度 | 状态 | 大小 (MB) | metrics/mAP50-95(B) | 推理时间 (ms/im) |
|---|---|---|---|---|---|---|
| YOLO11n | PyTorch | FP32 | ✅ | 5.4 | 0.5072 | 16.29 |
| YOLO11n | OpenVINO | FP32 | ✅ | 10.4 | 0.5079 | 13.13 |
| YOLO11n | OpenVINO | INT8 | ✅ | 3.3 | 0.4976 | 8.86 |
| YOLO11s | PyTorch | FP32 | ✅ | 18.4 | 0.5771 | 39.61 |
| YOLO11s | OpenVINO | FP32 | ✅ | 36.4 | 0.5808 | 18.26 |
| YOLO11s | OpenVINO | INT8 | ✅ | 9.8 | 0.5726 | 13.24 |
| YOLO11m | PyTorch | FP32 | ✅ | 38.8 | 0.6258 | 100.65 |
| YOLO11m | OpenVINO | FP32 | ✅ | 77.1 | 0.6310 | 43.50 |
| YOLO11m | OpenVINO | INT8 | ✅ | 20.2 | 0.6137 | 20.90 |
| YOLO11l | PyTorch | FP32 | ✅ | 49.0 | 0.6367 | 131.37 |
| YOLO11l | OpenVINO | FP32 | ✅ | 97.3 | 0.6371 | 54.52 |
| YOLO11l | OpenVINO | INT8 | ✅ | 25.7 | 0.6226 | 27.36 |
| YOLO11x | PyTorch | FP32 | ✅ | 109.3 | 0.6990 | 212.45 |
| YOLO11x | OpenVINO | FP32 | ✅ | 217.8 | 0.6884 | 112.76 |
| YOLO11x | OpenVINO | INT8 | ✅ | 55.9 | 0.6900 | 52.06 |
Intel® Arc GPU
Intel® Arc™ 是 Intel 旗下的独立显卡系列,专为高性能游戏、内容创作和 AI 工作负载而设计。Arc 系列采用了先进的 GPU 架构,支持实时光线追踪、AI 增强图形和高分辨率游戏。Intel® Arc™ 专注于性能和能效,旨在与其它领先的 GPU 品牌竞争,同时提供诸如硬件加速 AV1 编码及对最新图形 API 的支持等独特功能。
下方的基准测试在 Intel Arc A770 和 Intel Arc B580 上以 FP32 和 INT8 精度运行。
Intel Arc A770
详细基准测试结果
| 模型 | 格式 | 精度 | 状态 | 大小 (MB) | metrics/mAP50-95(B) | 推理时间 (ms/im) |
|---|---|---|---|---|---|---|
| YOLO11n | PyTorch | FP32 | ✅ | 5.4 | 0.5072 | 16.29 |
| YOLO11n | OpenVINO | FP32 | ✅ | 10.4 | 0.5073 | 6.98 |
| YOLO11n | OpenVINO | INT8 | ✅ | 3.3 | 0.4978 | 7.24 |
| YOLO11s | PyTorch | FP32 | ✅ | 18.4 | 0.5771 | 39.61 |
| YOLO11s | OpenVINO | FP32 | ✅ | 36.4 | 0.5798 | 9.41 |
| YOLO11s | OpenVINO | INT8 | ✅ | 9.8 | 0.5751 | 8.72 |
| YOLO11m | PyTorch | FP32 | ✅ | 38.8 | 0.6258 | 100.65 |
| YOLO11m | OpenVINO | FP32 | ✅ | 77.1 | 0.6311 | 14.88 |
| YOLO11m | OpenVINO | INT8 | ✅ | 20.2 | 0.6126 | 11.97 |
| YOLO11l | PyTorch | FP32 | ✅ | 49.0 | 0.6367 | 131.37 |
| YOLO11l | OpenVINO | FP32 | ✅ | 97.3 | 0.6364 | 19.17 |
| YOLO11l | OpenVINO | INT8 | ✅ | 25.7 | 0.6241 | 15.75 |
| YOLO11x | PyTorch | FP32 | ✅ | 109.3 | 0.6990 | 212.45 |
| YOLO11x | OpenVINO | FP32 | ✅ | 217.8 | 0.6888 | 18.13 |
| YOLO11x | OpenVINO | INT8 | ✅ | 55.9 | 0.6930 | 18.91 |
Intel Arc B580
详细基准测试结果
| 模型 | 格式 | 精度 | 状态 | 大小 (MB) | metrics/mAP50-95(B) | 推理时间 (ms/im) |
|---|---|---|---|---|---|---|
| YOLO11n | PyTorch | FP32 | ✅ | 5.4 | 0.5072 | 16.29 |
| YOLO11n | OpenVINO | FP32 | ✅ | 10.4 | 0.5072 | 4.27 |
| YOLO11n | OpenVINO | INT8 | ✅ | 3.3 | 0.4981 | 4.33 |
| YOLO11s | PyTorch | FP32 | ✅ | 18.4 | 0.5771 | 39.61 |
| YOLO11s | OpenVINO | FP32 | ✅ | 36.4 | 0.5789 | 5.04 |
| YOLO11s | OpenVINO | INT8 | ✅ | 9.8 | 0.5746 | 4.97 |
| YOLO11m | PyTorch | FP32 | ✅ | 38.8 | 0.6258 | 100.65 |
| YOLO11m | OpenVINO | FP32 | ✅ | 77.1 | 0.6306 | 6.45 |
| YOLO11m | OpenVINO | INT8 | ✅ | 20.2 | 0.6125 | 6.28 |
| YOLO11l | PyTorch | FP32 | ✅ | 49.0 | 0.6367 | 131.37 |
| YOLO11l | OpenVINO | FP32 | ✅ | 97.3 | 0.6360 | 8.23 |
| YOLO11l | OpenVINO | INT8 | ✅ | 25.7 | 0.6236 | 8.49 |
| YOLO11x | PyTorch | FP32 | ✅ | 109.3 | 0.6990 | 212.45 |
| YOLO11x | OpenVINO | FP32 | ✅ | 217.8 | 0.6889 | 11.10 |
| YOLO11x | OpenVINO | INT8 | ✅ | 55.9 | 0.6924 | 10.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")请注意,基准测试结果可能会根据系统的确切硬件和软件配置以及运行基准测试时系统的当前工作负载而有所不同。为获得最可靠的结果,请使用包含大量图像的数据集,例如 data='coco.yaml'(5000 张验证集图像)。
总结
基准测试结果清楚地证明了将 YOLO11 模型导出为 OpenVINO 格式的好处。在不同的模型和硬件平台上,OpenVINO 格式在保持相当准确性的同时,推理速度始终优于其他格式。
这些基准测试强调了 OpenVINO 作为部署深度学习模型工具的有效性。通过将模型转换为 OpenVINO 格式,开发者可以实现显著的性能提升,从而更轻松地将这些模型部署到实际应用中。
如需有关使用 OpenVINO 的更多详细信息和说明,请参阅官方 OpenVINO 文档。
常见问题 (FAQ)
如何将 YOLO26 模型导出为 OpenVINO 格式?
将 YOLO26 模型导出为 OpenVINO 格式可以显著提高 CPU 速度,并在 Intel 硬件上启用 GPU 和 NPU 加速。你可以使用 Python 或 CLI 进行导出,如下所示:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model
model.export(format="openvino") # creates 'yolo26n_openvino_model/'有关更多信息,请参阅导出格式文档。
将 OpenVINO 与 YOLO26 模型结合使用有什么好处?
将 Intel 的 OpenVINO 工具套件与 YOLO26 模型结合使用具有以下几点优势:
- 性能:实现高达 3 倍的 CPU 推理加速,并利用 Intel GPU 和 NPU 进行加速。
- 模型优化器:转换、优化并执行来自 PyTorch、TensorFlow 和 ONNX 等主流框架的模型。
- 易用性:提供超过 80 个教程笔记本帮助用户上手,其中包括针对 YOLO26 的教程。
- 异构执行:通过统一的 API 在各种 Intel 硬件上部署模型。
如需详细的性能比较,请访问我们的基准测试部分。
如何使用导出到 OpenVINO 的 YOLO26 模型进行推理?
将 YOLO26n 模型导出为 OpenVINO 格式后,你可以使用 Python 或 CLI 运行推理:
from ultralytics import YOLO
# Load the exported OpenVINO model
ov_model = YOLO("yolo26n_openvino_model/")
# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")有关更多详细信息,请参阅我们的预测模式文档。
为什么在进行 OpenVINO 导出时应该选择 Ultralytics YOLO26 而不是其他模型?
Ultralytics YOLO26 专为高准确率和高速度的实时目标检测而优化。特别是与 OpenVINO 结合使用时,YOLO26 提供:
- 在 Intel CPU 上实现高达 3 倍的速度提升
- 在 Intel GPU 和 NPU 上实现无缝部署
- 在各种导出格式中保持一致且可比的准确性
如需深入的性能分析,请查看我们在不同硬件上针对 YOLO11 基准测试的详细报告。
我可以对不同格式(如 PyTorch、ONNX 和 OpenVINO)的 YOLO26 模型进行基准测试吗?
可以,你可以对各种格式(包括 PyTorch、TorchScript、ONNX 和 OpenVINO)的 YOLO26 模型进行基准测试。使用以下代码片段在你选择的数据集上运行基准测试:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Benchmark YOLO26n speed and [accuracy](https://www.ultralytics.com/glossary/accuracy) on the COCO8 dataset for all export formats
results = model.benchmark(data="coco8.yaml")