Перейти к содержанию

Intel OpenVINO Экспорт

OpenVINO Экосистема

В этом руководстве мы рассмотрим экспорт YOLO11 модели в формате OpenVINO , которые могут обеспечить ускорение CPU до 3 раз, а также ускорение YOLO вывод о Intel Аппаратное обеспечение GPU и нейропроцессора .

OpenVINOСокращение от Open Visual Inference & Neural Network Optimization toolkit - это комплексный набор инструментов для оптимизации и развертывания моделей искусственного интеллекта. Несмотря на то, что в названии присутствует слово Visual, OpenVINO также поддерживает различные дополнительные задачи, включая языки, аудио, временные ряды и т.д.



Смотреть: Как экспортировать и оптимизировать модель Ultralytics YOLOv8 для вывода с помощью 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"

Аргументы экспорта

Аргумент Тип По умолчанию Описание
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®, но для обеспечения оптимальной производительности:

  1. Проверьте поддержку OpenVINO™. Проверьте, поддерживается ли ваш чип Intel® официально OpenVINO™, используя список совместимости Intel .

  2. Определите свой ускоритель. Определите, включает ли ваш процессор интегрированный NPU (нейронный процессор) или GPU (интегрированный) GPU ) обратившись к руководству по оборудованию Intel .

  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 optimization), обучающих различным аспектам работы с инструментарием.

OpenVINO Структура экспорта

При экспорте модели в формат OpenVINO создается каталог, содержащий следующее:

  1. XML-файл: Описывает топологию сети.
  2. Файл BIN: Содержит двоичные данные weights and biases .
  3. Файл отображения: Хранит отображение исходных выходных тензоров модели на имена OpenVINO tensor .

Вы можете использовать эти файлы для проведения выводов с помощью OpenVINO Inference Engine.

Использование экспорта OpenVINO в развертывании

После успешного экспорта вашей модели в OpenVINO format, у вас есть два основных варианта выполнения вывода:

  1. Используйте ultralytics пакет, который предоставляет высокоуровневый API и оборачивает OpenVINO Время выполнения.

  2. Используйте родной openvino пакет для более расширенного или настраиваемого управления поведением вывода.

Вывод с Ultralytics

The ultralytics Пакет позволяет вам легко выполнять вывод с использованием экспортированного OpenVINO модель через метод прогнозирования. Вы также можете указать целевое устройство (например, intel:gpu, intel:npu, intel:cpu) с использованием аргумента устройства.

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 Время выполнения

The openvino Среда выполнения предоставляет унифицированный API для вывода во всех поддерживаемых Intel Аппаратное обеспечение. Он также обеспечивает расширенные возможности, такие как балансировка нагрузки по Intel Аппаратное и асинхронное выполнение. Для получения дополнительной информации о запуске вывода обратитесь к блокнотам YOLO11 .

Помните, что для правильной настройки и использования модели в Runtime вам понадобятся файлы XML и BIN, а также любые специфические для приложения настройки, такие как размер входных данных, масштабный коэффициент для нормализации и т. д.

В приложении для развертывания обычно выполняются следующие действия:

  1. Инициализируйте OpenVINO , создав core = Core().
  2. Загрузите модель с помощью core.read_model() метод.
  3. Скомпилируйте модель, используя core.compile_model() функция.
  4. Подготовьте входные данные (изображение, текст, аудио и т. д.).
  5. Выполните вывод, используя compiled_model(input_data).

Более подробные шаги и фрагменты кода см. в документацииOpenVINO или в учебнике по API.

OpenVINO YOLO11 Показатели

The Ultralytics команда, прошедшая сравнительный анализ YOLO11 в различных форматах моделей и точности , оценивая скорость и точность на разных Intel устройства, совместимые с OpenVINO .

Примечание

Приведенные ниже результаты бенчмарков носят справочный характер и могут отличаться в зависимости от точной аппаратной и программной конфигурации системы, а также от текущей нагрузки на систему в момент запуска бенчмарков.

Все бенчмарки выполняются с openvino Python версия пакета 2025.1.0.

Intel Ядро CPU

Серия Intel® Core® - это линейка высокопроизводительных процессоров от Intel. В линейку входят Core i3 (начальный уровень), Core i5 (средний уровень), Core i7 (высокий уровень) и Core i9 (экстремальная производительность). Каждая серия рассчитана на различные вычислительные потребности и бюджеты - от повседневных задач до сложных профессиональных нагрузок. С каждым новым поколением улучшается производительность, энергоэффективность и функциональность.

Приведенные ниже тесты выполняются на процессоре Intel® Core® i9-12900KS 12-го поколения. CPU с точностью FP32.

Core CPU benchmarks
Модель Формат Статус Размер (МБ) метрики/mAP50-95(B) Время вывода (мс/им)
YOLO11n PyTorch 5.4 0.61 28.73
YOLO11n TorchScript 10.5 0.6082 36.27
YOLO11n ONNX 10.2 0.6082 19.62
YOLO11n OpenVINO 10.4 0.6082 12.72
YOLO11s PyTorch 18.4 0.7526 35.28
YOLO11s TorchScript 36.6 0.74 54.57
YOLO11s ONNX 36.3 0.74 37.91
YOLO11s OpenVINO 36.4 0.74 34.38
YOLO11m PyTorch 38.8 0.7598 82.46
YOLO11m TorchScript 77.3 0.7643 121.66
YOLO11m ONNX 76.9 0.7643 87.21
YOLO11m OpenVINO 77.1 0.7643 78.94
YOLO11l PyTorch 49.0 0.743 111.51
YOLO11l TorchScript 97.7 0.725 161.36
YOLO11l ONNX 97.0 0.725 109.23
YOLO11l OpenVINO 97.3 0.725 100.42
YOLO11x PyTorch 109.3 0.8288 241.93
YOLO11x TorchScript 218.1 0.8308 307.04
YOLO11x ONNX 217.5 0.8308 205.75
YOLO11x OpenVINO 217.8 0.8308 211.69

Intel® Core™ Ультра

Серия Intel® Core™ Ultra™ представляет собой новый эталон высокопроизводительных вычислений, разработанный для удовлетворения меняющихся потребностей современных пользователей — от геймеров и создателей до профессионалов, использующих ИИ. Эта линейка следующего поколения — больше, чем традиционная CPU серия; она сочетает в себе мощный CPU ядра, интегрированные высокопроизводительные GPU возможности и специализированный нейронный процессор (NPU) в одном чипе, предлагающий унифицированное решение для разнообразных и интенсивных вычислительных нагрузок.

В основе архитектуры Intel® Core Ultra™ лежит гибридная конструкция, которая обеспечивает исключительную производительность при выполнении традиционных задач обработки. GPU - ускоренные рабочие нагрузки и операции, управляемые ИИ. Включение NPU улучшает вывод ИИ на устройстве, обеспечивая более быстрое и эффективное машинное обучение и обработку данных в широком спектре приложений.

Семейство Core Ultra™ включает в себя различные модели, адаптированные под различные потребности в производительности, с вариантами от энергоэффективных конструкций до мощных вариантов, отмеченных обозначением «H» — идеально подходящих для ноутбуков и компактных форм-факторов, требующих серьезной вычислительной мощности. Во всей линейке пользователи получают выгоду от синергии CPU , GPU и интеграция с NPU, обеспечивающая замечательную эффективность, быстроту реагирования и возможности многозадачности.

Как часть Intel продолжающиеся инновации, серия Core Ultra™ устанавливает новый стандарт для будущих вычислений. С несколькими доступными моделями и еще большим количеством на горизонте, эта серия подчеркивает Intel стремление компании предоставлять передовые решения для следующего поколения интеллектуальных устройств с улучшенными возможностями искусственного интеллекта.

Приведенные ниже тесты проводились на процессоре Intel® Core™ Ultra™ 7 258V с точностью FP32 и INT8.

Intel® Core™ Ultra™ 7 258 В

Бенчмарки

Модель Формат Точность Статус Размер (МБ) метрики/mAP50-95(B) Время вывода (мс/им)
YOLO11n PyTorch FP32 5.4 0.6316 39.52
YOLO11n OpenVINO FP32 10.4 0.6112 19.59
YOLO11n OpenVINO INT8 3.3 0.6219 14.43
YOLO11s PyTorch FP32 18.4 0.7469 104.09
YOLO11s OpenVINO FP32 36.4 0.7414 16.274
YOLO11s OpenVINO INT8 9.8 0.7086 19.436
YOLO11m PyTorch FP32 38.8 0.7642 286.281
YOLO11m OpenVINO FP32 77.1 0.7642 18.69
YOLO11m OpenVINO INT8 20.2 0.7445 21.74
YOLO11l PyTorch FP32 49.0 0.7401 352.25
YOLO11l OpenVINO FP32 97.3 0.7264 31.90
YOLO11l OpenVINO INT8 25.7 0.7376 25.64
YOLO11x PyTorch FP32 109.3 0.8467 731.15
YOLO11x OpenVINO FP32 217.8 0.8308 45.12
YOLO11x OpenVINO INT8 55.9 0.8156 32.57

Intel Бенчмарки Core Ultra GPU

Модель Формат Точность Статус Размер (МБ) метрики/mAP50-95(B) Время вывода (мс/им)
YOLO11n PyTorch FP32 5.4 0.6316 39.52
YOLO11n OpenVINO FP32 10.4 0.6082 30.21
YOLO11n OpenVINO INT8 3.3 0.6256 17.98
YOLO11s PyTorch FP32 18.4 0.7469 104.09
YOLO11s OpenVINO FP32 36.4 0.7400 81.09
YOLO11s OpenVINO INT8 9.8 0.7488 41.04
YOLO11m PyTorch FP32 38.8 0.7642 286.28
YOLO11m OpenVINO FP32 77.1 0.7642 204.31
YOLO11m OpenVINO INT8 20.2 0.7504 109.51
YOLO11l PyTorch FP32 49.0 0.7401 352.25
YOLO11l OpenVINO FP32 97.3 0.7249 319.97
YOLO11l OpenVINO INT8 25.7 0.7318 136.44
YOLO11x PyTorch FP32 109.3 0.8467 731.15
YOLO11x OpenVINO FP32 217.8 0.8308 742.98
YOLO11x OpenVINO INT8 55.9 0.819 288.02

Intel Бенчмарки Core Ultra CPU

Модель Формат Точность Статус Размер (МБ) метрики/mAP50-95(B) Время вывода (мс/им)
YOLO11n PyTorch FP32 5.4 0.6316 39.52
YOLO11n OpenVINO FP32 10.4 0.6096 11.58
YOLO11n OpenVINO INT8 3.3 0.6380 12.60
YOLO11s PyTorch FP32 18.4 0.7469 104.09
YOLO11s OpenVINO FP32 36.4 0.7430 15.15
YOLO11s OpenVINO INT8 9.8 0.744 21.22
YOLO11m PyTorch FP32 38.8 0.7642 286.28
YOLO11m OpenVINO FP32 77.1 0.7642 32.92
YOLO11m OpenVINO INT8 20.2 0.7445 21.74
YOLO11l PyTorch FP32 49.0 0.7401 352.25
YOLO11l OpenVINO FP32 97.3 0.7264 43.15
YOLO11l OpenVINO INT8 25.7 0.7313 42.27
YOLO11x PyTorch FP32 109.3 0.8467 731.15
YOLO11x OpenVINO FP32 217.8 0.8308 74.33
YOLO11x OpenVINO INT8 55.9 0.8211 59.41

Intel Бенчмарки Core Ultra NPU

Воспроизведите наши результаты

Чтобы воспроизвести приведенные выше примеры Ultralytics на всех форматах экспорта, выполните этот код:

Пример

from ultralytics import YOLO

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

# Benchmark YOLO11n speed and 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

Обратите внимание, что результаты бенчмарков могут отличаться в зависимости от точной аппаратной и программной конфигурации системы, а также от текущей нагрузки на систему в момент запуска бенчмарков. Для получения наиболее достоверных результатов используйте набор данных с большим количеством изображений, т. е. data='coco128.yaml' (128 изображений), или data='coco.yaml' (5000 вал. изображений).

Заключение

Результаты сравнительного анализа наглядно демонстрируют преимущества экспорта YOLO11 модель для OpenVINO Формат. В разных моделях и аппаратных платформах OpenVINO Формат стабильно превосходит другие форматы по скорости вывода, сохраняя при этом сопоставимую точность.

Бенчмарки подчеркивают эффективность OpenVINO как инструмента для развертывания моделей глубокого обучения. Конвертируя модели в формат OpenVINO , разработчики могут добиться значительного повышения производительности, что упрощает развертывание моделей в реальных приложениях.

Для получения более подробной информации и инструкций по использованию OpenVINO обратитесь к официальной документации OpenVINO .

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как экспортировать YOLO11 модели для OpenVINO формат?

Экспорт YOLO11 модели для OpenVINO Формат может значительно улучшить CPU скорость и включить GPU и ускорения NPU на Intel Аппаратное обеспечение. Для экспорта можно использовать либо 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 's OpenVINO набор инструментов с YOLO11 Модели обладают рядом преимуществ:

  1. Производительность: Достигайте 3-кратного ускорения при выводе данных на сайте CPU и используйте графические и цифровые процессоры Intel для ускорения.
  2. Оптимизатор моделей: Конвертируйте, оптимизируйте и выполняйте модели из таких популярных фреймворков, как PyTorch, TensorFlow и ONNX.
  3. Простота использования : доступно более 80 учебных пособий, которые помогут пользователям начать работу, включая те, которые предназначены для YOLO11 .
  4. Гетерогенное исполнение: Развертывание моделей на различных аппаратных средствах Intel с помощью унифицированного API.

Для детального сравнения производительности посетите наш раздел бенчмарков.

Как я могу выполнить вывод, используя YOLO11 модель экспортирована в OpenVINO ?

После экспорта модели 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'

Более подробную информацию см. в нашей документации по режиму предсказания.

Почему мне следует выбрать Ultralytics YOLO11 по сравнению с другими моделями для OpenVINO экспорт?

Ultralytics YOLO11 оптимизирован для обнаружения объектов в реальном времени с высокой точностью и скоростью. В частности, в сочетании с OpenVINO , YOLO11 обеспечивает:

  • Ускорение до 3 раз на процессорах Intel .
  • Бесшовное развертывание на Intel GPU и NPU.
  • Последовательная и сопоставимая точность при экспорте в различных форматах

Для более глубокого анализа производительности ознакомьтесь с нашими подробными тестами YOLO11 на различном оборудовании.

Могу ли я провести сравнительный анализ? YOLO11 модели в разных форматах, таких как PyTorch , ONNX , и OpenVINO ?

Да, вы можете провести бенчмаркинг 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

Подробные результаты бенчмарков можно найти в разделе бенчмарков и документации по форматам экспорта.



📅 Создано 1 год назад ✏️ Обновлено 1 день назад

Комментарии