Экспорт в формат TF.js модели из формата YOLO11
Развертывание моделей машинного обучения непосредственно в браузере или на Node.js может быть сложной задачей. Вам нужно убедиться, что формат вашей модели оптимизирован для более высокой производительности, чтобы модель можно было использовать для запуска интерактивных приложений локально на устройстве пользователя. Формат модели TensorFlow.js, или TF.js, разработан для минимального энергопотребления при обеспечении высокой производительности.
Функция «экспорта в формат модели TF.js» позволяет оптимизировать ваши модели Ultralytics YOLO11 для высокоскоростного и локального вывода обнаружения объектов. В этом руководстве мы расскажем, как преобразовать ваши модели в формат TF.js, чтобы вашим моделям было легче хорошо работать в различных локальных браузерах и приложениях Node.js.
Зачем экспортировать в TF.js?
Экспорт ваших моделей машинного обучения в TensorFlow.js, разработанный командой TensorFlow как часть более широкой экосистемы TensorFlow, предлагает многочисленные преимущества для развертывания приложений машинного обучения. Это помогает повысить конфиденциальность и безопасность пользователей, сохраняя конфиденциальные данные на устройстве. На изображении ниже показана архитектура TensorFlow.js и то, как модели машинного обучения преобразуются и развертываются как в веб-браузерах, так и в Node.js.
Запуск моделей локально также снижает задержку и обеспечивает более быстрое реагирование пользовательского интерфейса. TensorFlow.js также поставляется с автономными возможностями, позволяя пользователям использовать ваше приложение даже без подключения к Интернету. TF.js разработан для эффективного выполнения сложных моделей на устройствах с ограниченными ресурсами, поскольку он разработан для масштабируемости, с поддержкой ускорения GPU.
Ключевые особенности TF.js
Вот ключевые особенности, которые делают TF.js мощным инструментом для разработчиков:
-
Кроссплатформенная поддержка: TensorFlow.js можно использовать как в браузерах, так и в средах Node.js, что обеспечивает гибкость развертывания на различных платформах. Это позволяет разработчикам легче создавать и развертывать приложения.
-
Поддержка нескольких бэкендов: TensorFlow.js поддерживает различные бэкенды для вычислений, включая CPU, WebGL для ускорения GPU, WebAssembly (WASM) для скорости выполнения, близкой к нативной, и WebGPU для расширенных возможностей машинного обучения на основе браузера.
-
Автономные возможности: С TensorFlow.js модели могут работать в браузере без необходимости подключения к Интернету, что позволяет разрабатывать приложения, которые функционируют в автономном режиме.
Варианты развертывания с TensorFlow.js
Прежде чем мы углубимся в процесс экспорта моделей YOLO11 в формат TF.js, давайте рассмотрим некоторые типичные сценарии развертывания, в которых используется этот формат.
TF.js предоставляет ряд опций для развертывания ваших моделей машинного обучения:
-
ML-приложения в браузере: Вы можете создавать веб-приложения, которые запускают модели машинного обучения непосредственно в браузере. Отпадает необходимость в серверных вычислениях и снижается нагрузка на сервер.
-
Приложения Node.js: TensorFlow.js также поддерживает развертывание в средах Node.js, что позволяет разрабатывать серверные приложения машинного обучения. Это особенно полезно для приложений, требующих вычислительной мощности сервера или доступа к серверным данным.
-
Расширения Chrome: Интересным сценарием развертывания является создание расширений Chrome с помощью TensorFlow.js. Например, вы можете разработать расширение, которое позволит пользователям щелкнуть правой кнопкой мыши изображение на любой веб-странице, чтобы классифицировать его с помощью предварительно обученной модели машинного обучения. TensorFlow.js можно интегрировать в повседневный просмотр веб-страниц, чтобы предоставлять немедленные аналитические данные или расширения на основе машинного обучения.
Экспорт моделей YOLO11 в TensorFlow.js
Вы можете расширить совместимость моделей и гибкость развертывания, преобразовав модели YOLO11 в формат TF.js.
Установка
Чтобы установить необходимый пакет, выполните:
Установка
# Install the required package for YOLO11
pip install ultralytics
Подробные инструкции и рекомендации, касающиеся процесса установки, см. в нашем руководстве по установке Ultralytics. Если во время установки необходимых пакетов для YOLO11 у вас возникнут какие-либо трудности, обратитесь к нашему руководству по распространенным проблемам для получения решений и советов.
Использование
Все модели Ultralytics YOLO11 разработаны для поддержки экспорта из коробки, что упрощает их интеграцию в предпочитаемый вами рабочий процесс развертывания. Вы можете просмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать оптимальную настройку для вашего приложения.
Использование
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF.js format
model.export(format="tfjs") # creates '/yolo11n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO("./yolo11n_web_model")
# Run inference
results = tfjs_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF.js format
yolo export model=yolo11n.pt format=tfjs # creates '/yolo11n_web_model'
# Run inference with the exported model
yolo predict model='./yolo11n_web_model' source='https://ultralytics.com/images/bus.jpg'
Аргументы экспорта
Аргумент | Тип | По умолчанию | Описание |
---|---|---|---|
format |
str |
'tfjs' |
Целевой формат для экспортируемой модели, определяющий совместимость с различными средами развертывания. |
imgsz |
int или tuple |
640 |
Желаемый размер изображения для ввода модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров. |
half |
bool |
False |
Включает квантование FP16 (полуточной точности), уменьшая размер модели и потенциально ускоряя вывод на поддерживаемом оборудовании. |
int8 |
bool |
False |
Активирует квантование INT8, дополнительно сжимая модель и ускоряя вывод с минимальной потерей точности, в основном для периферийных устройств. |
nms |
bool |
False |
Добавляет Non-Maximum Suppression (NMS), необходимую для точной и эффективной постобработки обнаружения. |
batch |
int |
1 |
Указывает размер пакета для модели экспорта или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в режиме predict режиме. |
device |
str |
None |
Указывает устройство для экспорта: CPU (device=cpu ), MPS для Apple silicon (device=mps ). |
Для получения более подробной информации о процессе экспорта посетите страницу документации Ultralytics по экспорту.
Развертывание экспортированных моделей YOLO11 TensorFlow.js
Теперь, когда вы экспортировали свою модель YOLO11 в формат TF.js, следующим шагом будет ее развертывание. Основным и рекомендуемым первым шагом для запуска модели TF.js является использование YOLO("./yolo11n_web_model")
метод, как было показано ранее во фрагменте кода.
Однако для получения подробных инструкций по развертыванию ваших моделей TF.js ознакомьтесь со следующими ресурсами:
-
Расширение Chrome: Здесь представлена документация для разработчиков о том, как развертывать ваши модели TF.js в расширении Chrome.
-
Запуск TensorFlow.js в Node.js: Сообщение в блоге TensorFlow о запуске TensorFlow.js непосредственно в Node.js.
-
Развертывание TensorFlow.js - Node Project на облачной платформе: Публикация в блоге TensorFlow о развертывании модели TensorFlow.js на облачной платформе.
Обзор
В этом руководстве мы узнали, как экспортировать модели Ultralytics YOLO11 в формат TensorFlow.js. Экспортируя в TF.js, вы получаете гибкость в оптимизации, развертывании и масштабировании своих моделей YOLO11 на широком спектре платформ.
Для получения более подробной информации об использовании посетите официальную документацию TensorFlow.js.
Для получения дополнительной информации об интеграции Ultralytics YOLO11 с другими платформами и фреймворками, не забудьте ознакомиться с нашей страницей руководства по интеграции. Там вы найдете множество полезных ресурсов, которые помогут вам максимально эффективно использовать YOLO11 в ваших проектах.
Часто задаваемые вопросы
Как экспортировать модели Ultralytics YOLO11 в формат TensorFlow.js?
Экспорт моделей Ultralytics YOLO11 в формат TensorFlow.js (TF.js) не представляет сложности. Вы можете выполнить следующие действия:
Использование
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF.js format
model.export(format="tfjs") # creates '/yolo11n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO("./yolo11n_web_model")
# Run inference
results = tfjs_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF.js format
yolo export model=yolo11n.pt format=tfjs # creates '/yolo11n_web_model'
# Run inference with the exported model
yolo predict model='./yolo11n_web_model' source='https://ultralytics.com/images/bus.jpg'
Для получения более подробной информации о поддерживаемых опциях экспорта посетите страницу документации Ultralytics, посвященную вариантам развертывания.
Почему мне следует экспортировать мои модели YOLO11 в TensorFlow.js?
Экспорт моделей YOLO11 в TensorFlow.js предоставляет несколько преимуществ, включая:
- Локальное выполнение: Модели могут запускаться непосредственно в браузере или Node.js, снижая задержку и улучшая взаимодействие с пользователем.
- Кроссплатформенная поддержка: TF.js поддерживает несколько сред, что обеспечивает гибкость развертывания.
- Автономные возможности: Позволяет приложениям функционировать без подключения к Интернету, обеспечивая надежность и конфиденциальность.
- Ускорение GPU: Использует WebGL для ускорения GPU, оптимизируя производительность на устройствах с ограниченными ресурсами.
Для получения исчерпывающего обзора ознакомьтесь с нашей интеграцией с TensorFlow.js.
Какую пользу TensorFlow.js приносит приложениям машинного обучения на основе браузера?
TensorFlow.js специально разработан для эффективного выполнения ML-моделей в браузерах и средах Node.js. Вот как это помогает браузерным приложениям:
- Снижает задержку: Запускает модели машинного обучения локально, обеспечивая немедленные результаты без использования серверных вычислений.
- Повышает конфиденциальность: Хранит конфиденциальные данные на устройстве пользователя, сводя к минимуму риски безопасности.
- Обеспечение автономной работы: Модели могут функционировать без подключения к интернету, гарантируя стабильную функциональность.
- Поддерживает несколько бэкендов: Предлагает гибкость с бэкендами, такими как CPU, WebGL, WebAssembly (WASM) и WebGPU, для различных вычислительных потребностей.
Хотите узнать больше о TF.js? Ознакомьтесь с официальным руководством TensorFlow.js.
Каковы ключевые особенности TensorFlow.js для развертывания моделей YOLO11?
Ключевые особенности TensorFlow.js включают:
- Кроссплатформенная поддержка: TF.js можно использовать как в веб-браузерах, так и в Node.js, что обеспечивает широкую гибкость развертывания.
- Несколько бэкендов: Поддержка CPU, WebGL для ускорения GPU, WebAssembly (WASM) и WebGPU для расширенных операций.
- Автономные возможности: Модели могут работать непосредственно в браузере без подключения к Интернету, что делает их идеальными для разработки адаптивных веб-приложений.
Сценарии развертывания и более подробную информацию можно найти в разделе Варианты развертывания с TensorFlow.js.
Могу ли я развернуть модель YOLO11 на серверных приложениях Node.js с использованием TensorFlow.js?
Да, TensorFlow.js позволяет развертывать модели YOLO11 в средах Node.js. Это обеспечивает серверные приложения машинного обучения, которые выигрывают от вычислительной мощности сервера и доступа к серверным данным. Типичные варианты использования включают обработку данных в реальном времени и конвейеры машинного обучения на серверах backend.
Чтобы начать работу с развертыванием Node.js, обратитесь к руководству Запуск TensorFlow.js в Node.js от TensorFlow.