英特尔OpenVINO Export
在本指南中,我们将介绍如何将YOLOv8 模型导出为 OpenVINO格式的模型,这种格式可将CPU速度提高 3 倍,并可加速YOLO 在英特尔GPU和NPU硬件上的推理。
OpenVINOOpen Visual Inference & Neural Network Optimization toolkit 的缩写,是一个用于优化和部署人工智能推理模型的综合工具包。虽然名称中包含 Visual,但OpenVINO 还支持语言、音频、时间序列等各种附加任务。
观看: 如何导出和优化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')
论据
钥匙 | 价值 | 说明 |
---|---|---|
format |
'openvino' |
格式导出到 |
imgsz |
640 |
图像尺寸标量或(高,宽)列表,即(640,480) |
half |
False |
FP16 量化 |
的好处OpenVINO
- 性能:OpenVINO 利用英特尔 CPU、集成和独立 GPU 以及 FPGA 的强大功能提供高性能推理。
- 支持异构执行:OpenVINO 提供 API,只需编写一次,即可在任何支持的英特尔硬件(CPU、GPU、FPGA、VPU 等)上部署。
- 模型优化器:OpenVINO 提供了一个模型优化器,可从PyTorch,TensorFlow,TensorFlow Lite、Keras、ONNX,PaddlePaddle 和 Caffe 等流行的深度学习框架导入、转换和优化模型。
- 易用性:工具包附带80 多本教程笔记本(包括YOLOv8 优化),教授工具包的不同方面。
OpenVINO 出口结构
将模型导出为OpenVINO 格式时,会生成一个包含以下内容的目录:
- XML 文件:描述网络拓扑结构。
- BIN 文件:包含weights and biases 二进制数据。
- 映射文件:保存原始模型输出张量到OpenVINO tensor 名称的映射。
您可以使用这些文件通过OpenVINO 推理引擎运行推理。
在部署中使用OpenVINO 导出
获得OpenVINO 文件后,就可以使用OpenVINO Runtime 运行模型。运行时为所有支持的英特尔硬件提供了统一的推理 API。它还提供跨英特尔硬件负载均衡和异步执行等高级功能。有关运行推理的更多信息,请参阅《使用OpenVINO Runtime 进行推理指南》。
请记住,您需要 XML 和 BIN 文件以及任何特定于应用程序的设置,如输入大小、规范化的比例因子等,以便正确设置模型并将其用于 Runtime。
在部署应用程序中,通常需要执行以下步骤:
- 初始化OpenVINO ,创建
core = Core()
. - 使用
core.read_model()
方法。 - 使用
core.compile_model()
功能。 - 准备输入内容(图像、文本、音频等)。
- 使用
compiled_model(input_data)
.
有关更详细的步骤和代码片段,请参阅OpenVINO 文档或API 教程。
OpenVINO YOLOv8 基准
YOLOv8 以下基准测试由Ultralytics 团队在 4 种不同的模型格式上运行,测量速度和精度:PyTorch,TorchScript,ONNX 和OpenVINO 。基准测试在英特尔 Flex 和 Arc GPU 以及英特尔至强 CPU 上以 FP32 精度运行(以 half=False
参数)。
英特尔 Flex GPU
英特尔® 数据中心 GPU Flex 系列是专为智能视觉云设计的多功能、强大的解决方案。该 GPU 支持包括媒体流、云游戏、人工智能视觉推理和虚拟桌面基础架构工作负载在内的各种工作负载。它因其开放式架构和对 AV1 编码的内置支持而脱颖而出,为高性能、跨架构应用提供了基于标准的软件栈。Flex 系列 GPU 针对密度和质量进行了优化,具有高可靠性、可用性和可扩展性。
以下基准测试在英特尔® 数据中心 GPU Flex 170 上以 FP32 精度运行。
模型 | 格式 | 现状 | 大小(MB) | mAP50-95(B) | 推理时间(毫秒/分钟) |
---|---|---|---|---|---|
YOLOv8n | PyTorch | ✅ | 6.2 | 0.3709 | 21.79 |
YOLOv8n | TorchScript | ✅ | 12.4 | 0.3704 | 23.24 |
YOLOv8n | ONNX | ✅ | 12.2 | 0.3704 | 37.22 |
YOLOv8n | OpenVINO | ✅ | 12.3 | 0.3703 | 3.29 |
YOLOv8s | PyTorch | ✅ | 21.5 | 0.4471 | 31.89 |
YOLOv8s | TorchScript | ✅ | 42.9 | 0.4472 | 32.71 |
YOLOv8s | ONNX | ✅ | 42.8 | 0.4472 | 43.42 |
YOLOv8s | OpenVINO | ✅ | 42.9 | 0.4470 | 3.92 |
YOLOv8m | PyTorch | ✅ | 49.7 | 0.5013 | 50.75 |
YOLOv8m | TorchScript | ✅ | 99.2 | 0.4999 | 47.90 |
YOLOv8m | ONNX | ✅ | 99.0 | 0.4999 | 63.16 |
YOLOv8m | OpenVINO | ✅ | 49.8 | 0.4997 | 7.11 |
YOLOv8l | PyTorch | ✅ | 83.7 | 0.5293 | 77.45 |
YOLOv8l | TorchScript | ✅ | 167.2 | 0.5268 | 85.71 |
YOLOv8l | ONNX | ✅ | 166.8 | 0.5268 | 88.94 |
YOLOv8l | OpenVINO | ✅ | 167.0 | 0.5264 | 9.37 |
YOLOv8x | PyTorch | ✅ | 130.5 | 0.5404 | 100.09 |
YOLOv8x | TorchScript | ✅ | 260.7 | 0.5371 | 114.64 |
YOLOv8x | ONNX | ✅ | 260.4 | 0.5371 | 110.32 |
YOLOv8x | OpenVINO | ✅ | 260.6 | 0.5367 | 15.02 |
本表是五种不同模型(YOLOv8n,YOLOv8s,YOLOv8m,YOLOv8l,YOLOv8x )和四种不同格式(PyTorch,TorchScript,ONNX,OpenVINO )的基准结果,给出了每种组合的状态、大小、mAP50-95(B) 指标和推理时间。
英特尔弧形图形处理器
英特尔® Arc™ 代表着英特尔进军专用 GPU 市场。Arc™ 系列旨在与 AMD 和 Nvidia 等领先 GPU 制造商竞争,同时面向笔记本电脑和台式机市场。该系列包括适用于笔记本电脑等小型设备的移动版本,以及适用于台式电脑的更大更强大的版本。
Arc™ 系列分为三个类别:Arc™ 3、Arc™ 5 和 Arc™ 7,每个数字表示性能级别。每个类别包括多个型号,GPU 型号名称中的 "M "表示移动、集成变体。
早期的评论对 Arc™ 系列,尤其是集成的 A770M GPU 的图形性能给予了高度评价。Arc™ 系列的供货情况因地区而异,预计不久将发布更多型号。英特尔® Arc™ GPU为从游戏到内容创建等一系列计算需求提供了高性能解决方案。
以下基准测试在英特尔® Arc 770 GPU 上以 FP32 精度运行。
模型 | 格式 | 现状 | 大小(MB) | 公制/mAP50-95(B) | 推理时间(毫秒/分钟) |
---|---|---|---|---|---|
YOLOv8n | PyTorch | ✅ | 6.2 | 0.3709 | 88.79 |
YOLOv8n | TorchScript | ✅ | 12.4 | 0.3704 | 102.66 |
YOLOv8n | ONNX | ✅ | 12.2 | 0.3704 | 57.98 |
YOLOv8n | OpenVINO | ✅ | 12.3 | 0.3703 | 8.52 |
YOLOv8s | PyTorch | ✅ | 21.5 | 0.4471 | 189.83 |
YOLOv8s | TorchScript | ✅ | 42.9 | 0.4472 | 227.58 |
YOLOv8s | ONNX | ✅ | 42.7 | 0.4472 | 142.03 |
YOLOv8s | OpenVINO | ✅ | 42.9 | 0.4469 | 9.19 |
YOLOv8m | PyTorch | ✅ | 49.7 | 0.5013 | 411.64 |
YOLOv8m | TorchScript | ✅ | 99.2 | 0.4999 | 517.12 |
YOLOv8m | ONNX | ✅ | 98.9 | 0.4999 | 298.68 |
YOLOv8m | OpenVINO | ✅ | 99.1 | 0.4996 | 12.55 |
YOLOv8l | PyTorch | ✅ | 83.7 | 0.5293 | 725.73 |
YOLOv8l | TorchScript | ✅ | 167.1 | 0.5268 | 892.83 |
YOLOv8l | ONNX | ✅ | 166.8 | 0.5268 | 576.11 |
YOLOv8l | OpenVINO | ✅ | 167.0 | 0.5262 | 17.62 |
YOLOv8x | PyTorch | ✅ | 130.5 | 0.5404 | 988.92 |
YOLOv8x | TorchScript | ✅ | 260.7 | 0.5371 | 1186.42 |
YOLOv8x | ONNX | ✅ | 260.4 | 0.5371 | 768.90 |
YOLOv8x | OpenVINO | ✅ | 260.6 | 0.5367 | 19 |
英特尔至强 CPU
英特尔® 至强® CPU 是一款高性能的服务器级处理器,专为复杂和高要求的工作负载而设计。从高端云计算和虚拟化到人工智能和机器学习应用,至强® CPU 提供了当今数据中心所需的强大功能、可靠性和灵活性。
值得一提的是,至强® CPU具有高计算密度和可扩展性,是小型企业和大型企业的理想选择。通过选择英特尔® 至强® CPU,企业可以自信地处理最苛刻的计算任务,并在保持成本效益和运营效率的同时促进创新。
以下基准测试在 FP32 精度的第 4 代 Intel® Xeon® Scalable CPU 上运行。
模型 | 格式 | 现状 | 大小(MB) | 公制/mAP50-95(B) | 推理时间(毫秒/分钟) |
---|---|---|---|---|---|
YOLOv8n | PyTorch | ✅ | 6.2 | 0.3709 | 24.36 |
YOLOv8n | TorchScript | ✅ | 12.4 | 0.3704 | 23.93 |
YOLOv8n | ONNX | ✅ | 12.2 | 0.3704 | 39.86 |
YOLOv8n | OpenVINO | ✅ | 12.3 | 0.3704 | 11.34 |
YOLOv8s | PyTorch | ✅ | 21.5 | 0.4471 | 33.77 |
YOLOv8s | TorchScript | ✅ | 42.9 | 0.4472 | 34.84 |
YOLOv8s | ONNX | ✅ | 42.8 | 0.4472 | 43.23 |
YOLOv8s | OpenVINO | ✅ | 42.9 | 0.4471 | 13.86 |
YOLOv8m | PyTorch | ✅ | 49.7 | 0.5013 | 53.91 |
YOLOv8m | TorchScript | ✅ | 99.2 | 0.4999 | 53.51 |
YOLOv8m | ONNX | ✅ | 99.0 | 0.4999 | 64.16 |
YOLOv8m | OpenVINO | ✅ | 99.1 | 0.4996 | 28.79 |
YOLOv8l | PyTorch | ✅ | 83.7 | 0.5293 | 75.78 |
YOLOv8l | TorchScript | ✅ | 167.2 | 0.5268 | 79.13 |
YOLOv8l | ONNX | ✅ | 166.8 | 0.5268 | 88.45 |
YOLOv8l | OpenVINO | ✅ | 167.0 | 0.5263 | 56.23 |
YOLOv8x | PyTorch | ✅ | 130.5 | 0.5404 | 96.60 |
YOLOv8x | TorchScript | ✅ | 260.7 | 0.5371 | 114.28 |
YOLOv8x | ONNX | ✅ | 260.4 | 0.5371 | 111.02 |
YOLOv8x | OpenVINO | ✅ | 260.6 | 0.5371 | 83.28 |
英特尔酷睿处理器
英特尔®酷睿®系列是英特尔公司推出的一系列高性能处理器。该系列包括酷睿 i3(入门级)、酷睿 i5(中端)、酷睿 i7(高端)和酷睿 i9(极致性能)。从日常任务到苛刻的专业工作负载,每个系列都能满足不同的计算需求和预算。每一代产品在性能、能效和功能方面都有改进。
以下基准测试在 FP32 精度的第 13 代 Intel® Core® i7-13700H CPU 上运行。
模型 | 格式 | 现状 | 大小(MB) | 公制/mAP50-95(B) | 推理时间(毫秒/分钟) |
---|---|---|---|---|---|
YOLOv8n | PyTorch | ✅ | 6.2 | 0.4478 | 104.61 |
YOLOv8n | TorchScript | ✅ | 12.4 | 0.4525 | 112.39 |
YOLOv8n | ONNX | ✅ | 12.2 | 0.4525 | 28.02 |
YOLOv8n | OpenVINO | ✅ | 12.3 | 0.4504 | 23.53 |
YOLOv8s | PyTorch | ✅ | 21.5 | 0.5885 | 194.83 |
YOLOv8s | TorchScript | ✅ | 43.0 | 0.5962 | 202.01 |
YOLOv8s | ONNX | ✅ | 42.8 | 0.5962 | 65.74 |
YOLOv8s | OpenVINO | ✅ | 42.9 | 0.5966 | 38.66 |
YOLOv8m | PyTorch | ✅ | 49.7 | 0.6101 | 355.23 |
YOLOv8m | TorchScript | ✅ | 99.2 | 0.6120 | 424.78 |
YOLOv8m | ONNX | ✅ | 99.0 | 0.6120 | 173.39 |
YOLOv8m | OpenVINO | ✅ | 99.1 | 0.6091 | 69.80 |
YOLOv8l | PyTorch | ✅ | 83.7 | 0.6591 | 593.00 |
YOLOv8l | TorchScript | ✅ | 167.2 | 0.6580 | 697.54 |
YOLOv8l | ONNX | ✅ | 166.8 | 0.6580 | 342.15 |
YOLOv8l | OpenVINO | ✅ | 167.0 | 0.0708 | 117.69 |
YOLOv8x | PyTorch | ✅ | 130.5 | 0.6651 | 804.65 |
YOLOv8x | TorchScript | ✅ | 260.8 | 0.6650 | 921.46 |
YOLOv8x | ONNX | ✅ | 260.4 | 0.6650 | 526.66 |
YOLOv8x | OpenVINO | ✅ | 260.6 | 0.6619 | 158.73 |
复制我们的结果
要在所有导出格式上重现上述Ultralytics 基准,请运行此代码:
示例
请注意,基准测试结果可能会因系统的具体硬件和软件配置以及运行基准测试时系统的当前工作量而有所不同。为获得最可靠的结果,请使用包含大量图像的数据集,即 data='coco128.yaml' (128 val images), or
data='coco.yaml'` (5000 val images)。
结论
基准测试结果清楚地表明了将YOLOv8 模型导出为OpenVINO 格式的好处。在不同的模型和硬件平台上,OpenVINO 格式的推理速度始终优于其他格式,同时保持了相当的准确性。
对于英特尔® 数据中心 GPU Flex 系列,OpenVINO 格式的推理速度几乎是原始PyTorch 格式的 10 倍。在至强 CPU 上,OpenVINO 格式的推理速度是PyTorch 格式的两倍。不同格式的模型准确性几乎相同。
这些基准测试凸显了OpenVINO 作为深度学习模型部署工具的有效性。通过将模型转换为OpenVINO 格式,开发人员可以显著提高性能,从而更容易在实际应用中部署这些模型。
有关使用OpenVINO 的详细信息和说明,请参阅 OpenVINO 官方文档。