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

Экспорт моделей с Ultralytics YOLO

Ultralytics YOLO Экосистема и интеграции

Введение

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



Смотри: Как экспортировать настраиваемую модель Ultralytics YOLOv8 и запустить живую интерференцию на веб-камере.

Почему стоит выбрать YOLOv8'Export Mode?

  • Универсальность: Экспортируй в множество форматов, включая ONNX, TensorRT, CoreML и другие.
  • Производительность: Получи до 5-кратного ускорения GPU с помощью TensorRT и 3-кратного ускорения CPU с помощью ONNX или OpenVINO.
  • Совместимость: Сделай свою модель универсальной для развертывания в многочисленных аппаратных и программных средах.
  • Простота использования: простые CLI и Python API для быстрого и понятного экспорта моделей.

Ключевые особенности режима экспорта

Вот некоторые из выделяющихся функциональных возможностей:

  • Экспорт в один клик: Простые команды для экспорта в разные форматы.
  • Пакетный экспорт: Экспортируй модели, способные к пакетному анализу.
  • Оптимизированный вывод: Экспортируемые модели оптимизированы для более быстрого вывода.
  • Обучающие видео: Подробные руководства и обучающие материалы помогут тебе без проблем экспортировать.

Наконечник

  • Экспортируй в ONNX или OpenVINO для ускорения процессора в 3 раза.
  • Экспортируй в TensorRT для ускорения GPU до 5 раз.

Примеры использования

Экспортируй модель YOLOv8n в другой формат, например в ONNX или TensorRT. Полный список аргументов экспорта смотри в разделе "Аргументы" ниже.

Пример

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolov8n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Аргументы

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

Аргумент Тип По умолчанию Описание
format str 'torchscript' Целевой формат экспортируемой модели, например 'onnx', 'torchscript', 'tensorflow', или другие, определяющие совместимость с различными средами развертывания.
imgsz int или tuple 640 Желаемый размер изображения на входе модели. Может быть целым числом для квадратных изображений или кортежем (height, width) за конкретные размеры.
keras bool False Включает экспорт в формат Keras для TensorFlow SavedModel , обеспечивая совместимость с сервисами и API TensorFlow .
optimize bool False Применяет оптимизацию для мобильных устройств при экспорте в TorchScript, потенциально уменьшая размер модели и улучшая производительность.
half bool False Включает квантование FP16 (половинной точности), уменьшая размер модели и потенциально ускоряя вывод на поддерживаемом оборудовании.
int8 bool False Активирует квантование INT8, еще больше сжимая модель и ускоряя вывод с минимальной потерей точности, в первую очередь для краевых устройств.
dynamic bool False Позволяет использовать динамические размеры входных данных для экспорта ONNX и TensorRT, что повышает гибкость в работе с изображениями разных размеров.
simplify bool False Simplifies the model graph for ONNX exports with onnxslim, potentially improving performance and compatibility.
opset int None Указывает версию опенсета ONNX для совместимости с различными парсерами и режимами выполнения ONNX. Если не задано, используется последняя поддерживаемая версия.
workspace float 4.0 Устанавливает максимальный размер рабочего пространства в GiB для оптимизации TensorRT , балансируя между использованием памяти и производительностью.
nms bool False Добавляет Non-Maximum Suppression (NMS) в экспорт CoreML, что необходимо для точной и эффективной постобработки детектирования.
batch int 1 Specifies export model batch inference size or the max number of images the exported model will process concurrently in predict режим.

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

Форматы экспорта

Доступные форматы экспорта YOLOv8 приведены в таблице ниже. Ты можешь экспортировать в любой формат, используя format аргумент, то есть format='onnx' или format='engine'. Ты можешь предсказывать или проверять непосредственно на экспортированных моделях, то есть yolo predict model=yolov8n.onnx. Примеры использования будут показаны для твоей модели после завершения экспорта.

Формат format Аргумент Модель Метаданные Аргументы
PyTorch - yolov8n.pt -
TorchScript torchscript yolov8n.torchscript imgsz, optimize, batch
ONNX onnx yolov8n.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolov8n.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolov8n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolov8n.pb imgsz, batch
TF Lite tflite yolov8n.tflite imgsz, half, int8, batch
TF Край TPU edgetpu yolov8n_edgetpu.tflite imgsz
TF.js tfjs yolov8n_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n_paddle_model/ imgsz, batch
NCNN ncnn yolov8n_ncnn_model/ imgsz, half, batch


Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (15), Burhan-Q (4), Kayzwer (2)

Комментарии