Перейти к содержимому

Intel OpenVINO Экспорт

OpenVINO Экосистема

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

OpenVINO, сокращение от Open 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")
# 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Размер изображения в виде скаляра или списка (h, w), то есть (640, 480)
halfFalseКвантование FP16
int8FalseКвантование INT8
batch1Размер партии для вывода
dynamicFalseпозволяет динамически менять размеры входных данных

Преимущества OpenVINO

  1. Производительность: OpenVINO обеспечивает высокопроизводительные выводы, используя мощь Intel процессоров, интегрированных и дискретных графических процессоров и 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 Export в развертывании

Когда у тебя есть файлы OpenVINO , ты можешь использовать OpenVINO Runtime для запуска модели. Runtime предоставляет единый API для проведения выводов на всех поддерживаемых Intel аппаратных средствах. Он также предоставляет расширенные возможности, такие как балансировка нагрузки на Intel оборудование и асинхронное выполнение. Более подробную информацию о выполнении выводов ты найдешь в руководстве Inference with OpenVINO Runtime Guide.

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

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

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

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

OpenVINO YOLOv8 Бенчмарки

YOLOv8 Бенчмарки, представленные ниже, были выполнены командой Ultralytics на 4 различных форматах моделей, измеряющих скорость и точность: PyTorch, TorchScript, ONNX и OpenVINO. Бенчмарки выполнялись на графических процессорах Intel Flex и Arc, а также на процессорах Intel Xeon при FP32. точностьhalf=False аргумент).

Примечание

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

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

Intel Флекс GPU

Серия Intel® Data Center GPU Flex - это универсальное и надежное решение, созданное для интеллектуального визуального облака. Этот GPU поддерживает широкий спектр рабочих нагрузок, включая потоковое воспроизведение медиа, облачные игры, визуальные выводы ИИ и рабочие нагрузки инфраструктуры виртуальных рабочих столов. Его отличает открытая архитектура и встроенная поддержка кодировки AV1, обеспечивающая основанный на стандартах программный стек для высокопроизводительных, кросс-архитектурных приложений. Flex Series GPU оптимизированы для плотности и качества, обеспечивают высокую надежность, доступность и масштабируемость.

Бенчмарки ниже работают на Intel® Data Center GPU Flex 170 с точностью FP32.

Бенчмарки Flex GPU
МодельФорматСтатусРазмер (Мб)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™ представляет собой Intel'набег на специализированный GPU рынок. Серия Arc™, призванная конкурировать с такими ведущими GPU производителями, как AMD и NVIDIA, ориентирована как на рынок ноутбуков, так и на рынок настольных компьютеров. В серию входят мобильные версии для компактных устройств, таких как ноутбуки, и более мощные версии для настольных компьютеров.

Серия Arc™ делится на три категории: Arc™ 3, Arc™ 5 и Arc™ 7, причем каждый номер обозначает уровень производительности. Каждая категория включает в себя несколько моделей, а буква 'M' в названии модели GPU означает мобильный, интегрированный вариант.

Первые отзывы высоко оценили серию Arc™, особенно интегрированную модель A770M GPU, за впечатляющую графическую производительность. Доступность серии Arc™ зависит от региона, и в ближайшее время ожидается выпуск дополнительных моделей. Графические процессоры Intel® Arc™ - это высокопроизводительные решения для самых разных вычислительных задач, от игр до создания контента.

Бенчмарки ниже работают на Intel® Arc 770 GPU с точностью FP32.

Дуга GPU ориентиры
МодельФорматСтатусРазмер (Мб)метрики/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 Xeon CPU

Intel® Xeon® CPU - это высокопроизводительные процессоры серверного класса, предназначенные для сложных и требовательных рабочих нагрузок. От высококлассных облачных вычислений и виртуализации до приложений искусственного интеллекта и машинного обучения - процессоры Xeon® обеспечивают мощность, надежность и гибкость, необходимые для современных центров обработки данных.

Примечательно, что процессоры Xeon® обеспечивают высокую плотность вычислений и масштабируемость, что делает их идеальными как для малого бизнеса, так и для крупных предприятий. Выбирая процессоры Intel® Xeon®, организации могут уверенно справляться с самыми требовательными вычислительными задачами и способствовать инновациям, сохраняя при этом экономичность и операционную эффективность.

Бенчмарки ниже работают на масштабируемых процессорах Intel® Xeon® 4-го поколения CPU с точностью FP32.

Бенчмарки Xeon CPU
МодельФорматСтатусРазмер (Мб)метрики/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® Core® - это линейка высокопроизводительных процессоров от Intel. В линейку входят Core i3 (начальный уровень), Core i5 (средний уровень), Core i7 (высокий уровень) и Core i9 (экстремальная производительность). Каждая серия рассчитана на разные вычислительные потребности и бюджеты - от повседневных задач до сложных профессиональных нагрузок. С каждым новым поколением улучшается производительность, энергоэффективность и функциональность.

Бенчмарки ниже работают на процессорах 13-го поколения Intel® Core® i7-13700H CPU с точностью FP32.

Контрольные точки Core CPU
МодельФорматСтатусРазмер (Мб)метрики/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

Intel® Ultra™ 7 155H представляет собой новый эталон в области высокопроизводительных вычислений, предназначенный для самых требовательных пользователей, от геймеров до создателей контента. Ultra™ 7 155H - это не просто CPU; он объединяет мощный GPU и продвинутый NPU (Neural Processing Unit) в рамках одного чипа, предлагая комплексное решение для различных вычислительных потребностей.

Эта гибридная архитектура позволяет Ultra™ 7 155H отлично справляться как с традиционными задачами CPU , так и с GPU-ускоренными рабочими нагрузками, а NPU улучшает процессы, управляемые искусственным интеллектом, позволяя быстрее и эффективнее выполнять операции машинного обучения. Это делает Ultra™ 7 155H универсальным выбором для приложений, требующих высокопроизводительной графики, сложных вычислений и выводов ИИ.

Серия Ultra™ 7 включает в себя несколько моделей, каждая из которых предлагает различные уровни производительности, а обозначение "H" указывает на высокомощный вариант, подходящий для ноутбуков и компактных устройств. Первые бенчмарки подчеркнули исключительную производительность Ultra™ 7 155H, особенно в многозадачных средах, где объединенная мощь CPU, GPU и NPU приводит к поразительной эффективности и скорости.

В рамках стремления Intel к передовым технологиям, Ultra™ 7 155H разработан с учетом потребностей будущих вычислений, и в будущем ожидается выпуск новых моделей. Доступность Ultra™ 7 155H зависит от региона, и он продолжает получать похвалы за интеграцию трех мощных вычислительных блоков в одном чипе, устанавливая новые стандарты вычислительной производительности.

Бенчмарки ниже работают на Intel® Ultra™ 7 155H с точностью FP32 и INT8.

Бенчмарки

МодельФорматТочностьСтатусРазмер (Мб)метрики/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
МодельФорматТочностьСтатусРазмер (Мб)метрики/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
МодельФорматТочностьСтатусРазмер (Мб)метрики/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

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

Чтобы воспроизвести приведенные выше бенчмарки 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 изображений).

Заключение

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

Для ЦОД Intel® серии GPU Flex формат OpenVINO обеспечил скорость вывода почти в 10 раз выше, чем оригинальный формат PyTorch . На процессорах Xeon CPU формат OpenVINO был в два раза быстрее формата PyTorch . Точность моделей оставалась практически одинаковой для разных форматов.

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

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

ВОПРОСЫ И ОТВЕТЫ

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

Экспорт моделей YOLOv8 в формат OpenVINO может значительно повысить скорость работы CPU и обеспечить ускорение GPU и NPU на оборудовании Intel . Для экспорта ты можешь использовать либо 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 toolkit с YOLOv8 моделями дает несколько преимуществ:

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

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

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

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

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

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

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

Да, ты можешь проводить бенчмарки моделей 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

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

📅 Создано 1 год назад ✏️ Обновлено 1 месяц назад

Комментарии