Экспорт моделей с Ultralytics YOLO
Введение
Конечная цель обучения модели - развернуть ее для применения в реальном мире. Режим экспорта в Ultralytics YOLO11 предлагает универсальный набор опций для экспорта твоей обученной модели в различные форматы, что делает ее пригодной для развертывания на различных платформах и устройствах. Это исчерпывающее руководство призвано провести тебя через все нюансы экспорта моделей, показав, как добиться максимальной совместимости и производительности.
Смотри: Как экспортировать настраиваемую модель Ultralytics YOLO и запустить живую интерференцию на веб-камере.
Почему стоит выбрать режим экспорта YOLO11?
- Универсальность: Экспортируй в множество форматов, включая ONNX, TensorRT, CoreML и другие.
- Производительность: Ускорься в 5 раз до GPU с помощью TensorRT и в 3 раза до CPU с помощью ONNX или OpenVINO.
- Совместимость: Сделай свою модель универсальной для развертывания в многочисленных аппаратных и программных средах.
- Простота использования: простые CLI и Python API для быстрого и понятного экспорта моделей.
Ключевые особенности режима экспорта
Вот некоторые из выделяющихся функциональных возможностей:
- Экспорт в один клик: Простые команды для экспорта в разные форматы.
- Пакетный экспорт: Экспортируй модели, способные к пакетному анализу.
- Оптимизированный вывод: Экспортируемые модели оптимизированы для более быстрого вывода.
- Обучающие видео: Подробные руководства и обучающие материалы помогут тебе без проблем экспортировать.
Наконечник
Примеры использования
Экспортируй модель YOLO11n в другой формат, например ONNX или TensorRT. Полный список аргументов экспорта смотри в разделе "Аргументы" ниже.
Пример
Аргументы
В этой таблице подробно описаны конфигурации и опции, доступные для экспорта моделей 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 и OpenVINO , повышая гибкость в работе с изображениями разных размеров. |
simplify | bool | True | Упрощает построение графика модели для ONNX exports с помощью onnxslim , потенциально повышая производительность и совместимость. |
opset | int | None | Указывает версию опенсета ONNX для совместимости с различными парсерами и режимами выполнения ONNX. Если не задано, используется последняя поддерживаемая версия. |
workspace | float | 4.0 | Устанавливает максимальный размер рабочего пространства в GiB для оптимизации TensorRT , балансируя между использованием памяти и производительностью. |
nms | bool | False | Добавляет Non-Maximum Suppression (NMS) в экспорт CoreML, что необходимо для точной и эффективной постобработки детектирования. |
batch | int | 1 | Задает размер пакета вывода модели экспорта или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в predict режим. |
device | str | None | Указывает устройство для экспорта: GPU (device=0 ), CPU (device=cpu ), MPS для кремния Apple (device=mps ) или DLA для NVIDIA Jetson (device=dla:0 или device=dla:1 ). |
Настройка этих параметров позволяет подстроить процесс экспорта под конкретные требования, такие как среда развертывания, аппаратные ограничения и целевые показатели производительности. Выбор подходящего формата и настроек важен для достижения оптимального баланса между размером модели, скоростью и точностью.
Форматы экспорта
Доступные форматы экспорта YOLO11 приведены в таблице ниже. Ты можешь экспортировать в любой формат, используя format
аргумент, то есть format='onnx'
или format='engine'
. Ты можешь предсказывать или проверять непосредственно на экспортированных моделях, то есть yolo predict model=yolo11n.onnx
. Примеры использования будут показаны для твоей модели после завершения экспорта.
Формат | format Аргумент | Модель | Метаданные | Аргументы |
---|---|---|---|---|
PyTorch | - | yolo11n.pt | ✅ | - |
TorchScript | torchscript | yolo11n.torchscript | ✅ | imgsz , optimize , batch |
ONNX | onnx | yolo11n.onnx | ✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino | yolo11n_openvino_model/ | ✅ | imgsz , half , int8 , batch |
TensorRT | engine | yolo11n.engine | ✅ | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml | yolo11n.mlpackage | ✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model | yolo11n_saved_model/ | ✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb | yolo11n.pb | ❌ | imgsz , batch |
TF Lite | tflite | yolo11n.tflite | ✅ | imgsz , half , int8 , batch |
TF Край TPU | edgetpu | yolo11n_edgetpu.tflite | ✅ | imgsz |
TF.js | tfjs | yolo11n_web_model/ | ✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle | yolo11n_paddle_model/ | ✅ | imgsz , batch |
MNN | mnn | yolo11n.mnn | ✅ | imgsz , batch , int8 , half |
NCNN | ncnn | yolo11n_ncnn_model/ | ✅ | imgsz , half , batch |
IMX500 | imx | yolo11n_imx_model/ | ✅ | imgsz , int8 |
ВОПРОСЫ И ОТВЕТЫ
Как экспортировать модель YOLO11 в формат ONNX ?
Экспортировать модель YOLO11 в формат ONNX проще всего с помощью Ultralytics. Он предоставляет методы Python и CLI для экспорта моделей.
Пример
Более подробную информацию о процессе, включая расширенные опции, такие как работа с разными размерами входных данных, ты найдешь в разделеONNX .
В чем преимущества использования TensorRT для экспорта моделей?
Использование TensorRT для экспорта моделей дает значительный прирост производительности. Модели YOLO11, экспортированные в TensorRT , ускоряются до 5 раз по сравнению с GPU , что делает их идеальными для приложений для выводов в реальном времени.
- Универсальность: Оптимизируй модели под конкретную аппаратную установку.
- Скорость: Добейся более быстрого вывода за счет продвинутых оптимизаций.
- Совместимость: Плавно интегрируйся с оборудованием NVIDIA .
Чтобы узнать больше об интеграции TensorRT, смотри руководство по интеграцииTensorRT .
Как включить квантование INT8 при экспорте модели YOLO11?
Квантование INT8 - отличный способ сжать модель и ускорить вывод, особенно на edge-устройствах. Вот как ты можешь включить квантование INT8:
Пример
Квантование INT8 можно применить к различным форматам, например, TensorRT и CoreML. Более подробную информацию можно найти в разделе "Экспорт".
Почему при экспорте моделей важен динамический размер входных данных?
Динамический размер входных данных позволяет экспортируемой модели работать с различными размерами изображений, обеспечивая гибкость и оптимизируя эффективность обработки для различных случаев использования. При экспорте в такие форматы, как ONNX или TensorRT, включение динамического входного размера гарантирует, что модель сможет легко адаптироваться к различным входным формам.
Чтобы включить эту функцию, используй dynamic=True
флаг во время экспорта:
Пример
За дополнительным контекстом обращайся к настройке динамического размера входа.
Какие основные экспортные аргументы следует учитывать для оптимизации работы модели?
Понимание и настройка аргументов экспорта очень важны для оптимизации работы модели:
format:
Целевой формат экспортируемой модели (например,onnx
,torchscript
,tensorflow
).imgsz:
Желаемый размер изображения для входа в модель (например,640
или(height, width)
).half:
Включает квантование FP16, уменьшая размер модели и потенциально ускоряя вывод.optimize:
Применяет специальные оптимизации для мобильных или ограниченных условий.int8:
Включает квантование INT8, что очень полезно для пограничных развертываний.
Подробный список и объяснения всех аргументов экспорта ты найдешь в разделе "Аргументы экспорта".