Ultralytics YOLO27:
Get Started

Экспорт из формата модели YOLO26 в формат модели TF.js#

Устарело — заменено на LiteRT

Начиная с Ultralytics 8.4.83, формат экспорта tfjs (TensorFlow.js) удален и заменен унифицированным форматом Google LiteRT. LiteRT работает в браузере через LiteRT.js (с ускорением WebGPU) и поддерживает сценарии использования в браузере и Node.js, ранее охватывавшиеся TF.js, а также мобильные, встраиваемые и периферийные устройства — все это с помощью одной модели .tflite.

format="tfjs" по-прежнему работает, но выводит предупреждение об устаревании и вместо этого экспортирует модель LiteRT. В дальнейшем используй format="litert"; актуальные инструкции по экспорту и способу развертывания в браузере см. в руководстве по экспорту LiteRT.

Развернуть модели машинного обучения непосредственно в браузере или Node.js бывает непросто. Нужно убедиться, что формат модели оптимизирован для высокой производительности, чтобы ее можно было использовать для интерактивных приложений на устройстве пользователя. Формат моделей TensorFlow.js, или TF.js, разработан для низкого энергопотребления при высокой производительности.

Функция «экспорт в формат модели TF.js» позволяет оптимизировать модели Ultralytics YOLO26 для высокоскоростного локального инференса при обнаружении объектов. В этом руководстве мы покажем, как преобразовать модели в формат TF.js, чтобы они эффективно работали в разных локальных браузерах и приложениях Node.js.

Зачем экспортировать модель в TF.js?#

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

TensorFlow.js browser ML inference architecture

Локальный запуск моделей также снижает задержку и повышает отзывчивость приложений. 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#

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

TF.js предлагает различные варианты развертывания моделей машинного обучения:

  • Веб-приложения с машинным обучением: можно создавать веб-приложения, в которых модели машинного обучения запускаются непосредственно в браузере. Это устраняет необходимость в вычислениях на стороне сервера и снижает нагрузку на него.

  • Приложения Node.js: TensorFlow.js также поддерживает развертывание в средах Node.js, позволяя разрабатывать серверные приложения машинного обучения. Это особенно полезно для приложений, которым нужны вычислительные ресурсы сервера или доступ к серверным данным.

  • Расширения Chrome: один из интересных сценариев развертывания — создание расширений Chrome с TensorFlow.js. Например, можно разработать расширение, которое позволяет пользователям щелкнуть правой кнопкой мыши по изображению на любой веб-странице и классифицировать его с помощью предварительно обученной модели машинного обучения. TensorFlow.js можно встроить в повседневный веб-серфинг, чтобы сразу получать полезные результаты или улучшения на основе машинного обучения.

Экспорт моделей YOLO26 в TensorFlow.js#

Преобразование моделей YOLO26 в TF.js расширяет их совместимость и гибкость развертывания.

Установка#

Чтобы установить необходимый пакет, выполни команду:

Установка
# Install the required package for YOLO26
pip install ultralytics

Подробные инструкции и рекомендации по установке смотри в руководстве по установке Ultralytics. Если при установке пакетов, необходимых для YOLO26, возникнут сложности, решения и советы найдешь в руководстве по распространенным проблемам.

Использование#

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

Аргумент tfjs теперь экспортирует модель .tflite в формате LiteRT, которая поддерживает режимы Export, Predict и Validate локально и работает в браузере через LiteRT.js. Актуальный способ развертывания в браузере и на устройстве см. в руководстве по экспорту LiteRT.

Экспорт
from ultralytics import YOLO

# Загрузи модель YOLO26
model = YOLO("yolo26n.pt")

# Экспортируй модель в формат LiteRT (заменяет TF.js)
model.export(format="litert", imgsz=640)  # используй imgsz=224 для классификации
Предсказание и проверка

Экспортированная модель LiteRT .tflite напрямую загружается с помощью yolo predict и yolo val и работает в браузере через LiteRT.js. См. руководство по экспорту LiteRT.

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

АргументТипПо умолчаниюОписание
formatstr'litert'Целевой формат экспортируемой модели; устаревшее значение 'tfjs' экспортирует LiteRT.
imgszint или tuple640Заданный размер изображения на входе модели. Можно указать целое число для квадратных изображений или кортеж (height, width) для конкретных размеров.
quantizeint или strNoneТочность квантования: 8 (статическая INT8, веса int8 + активации int8; требуется калибровка data/fraction), 'w8a16' (статическая, веса int8 + активации int16; требуется калибровка data/fraction), 'w8a32' (динамическая INT8, веса int8 + активации FP32; калибровка не требуется) или 32/не задано (FP32). FP16 отдельно не экспортируется — модель FP32 автоматически работает в FP16 на делегатах GPU. Заменяет устаревшие флаги half/int8.
batchint1Задаёт размер пакета изображений для инференса экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict.
datastrNoneПуть к YAML-файлу набора данных, необходимому для квантования; для классификации вместо него укажи каталог набора данных или имя встроенного набора данных. Если quantize=8 или 'w8a16' не заданы, Ultralytics выберет набор данных для калибровки по умолчанию для задачи модели.
fractionfloat, int или list1.0Подмножество для калибровки, заданное как доля, количество изображений или [train, val, test] отношения/количества. Если список содержит два элемента, test остаётся без изменений, а 0 пропускает его.
devicestrNoneУказывает устройство для экспорта: CPU (device=cpu), MPS для Apple silicon (device=mps).

Подробнее о процессе экспорта смотри на странице документации Ultralytics об экспорте.

Развертывание экспортированных моделей YOLO26 TensorFlow.js#

Теперь, когда ты экспортировал модель YOLO26, пора ее развернуть. В результате экспорта создается модель .tflite в формате LiteRT, которая работает на устройстве и в браузере через LiteRT.js. Актуальный способ развертывания см. в руководстве по экспорту LiteRT.

Для справки ниже приведены ресурсы по устаревшей среде выполнения TensorFlow.js:

Итоги#

В этом руководстве мы узнали, как экспортировать модели Ultralytics YOLO26 в формат TensorFlow.js. Экспорт в TF.js дает возможность оптимизировать, развертывать и масштабировать модели YOLO26 на самых разных платформах.

Подробнее об использовании см. в официальной документации TensorFlow.js.

Дополнительную информацию об интеграции Ultralytics YOLO26 с другими платформами и фреймворками см. на странице руководства по интеграции. Здесь собрано множество полезных ресурсов, которые помогут максимально эффективно использовать YOLO26 в твоих проектах.

Часто задаваемые вопросы#

  • Экспортировать модели Ultralytics YOLO26 в формат TensorFlow.js (TF.js) просто. Выполни следующие действия:

    Использование
    from ultralytics import YOLO
    
    # Загрузи модель YOLO26
    model = YOLO("yolo26n.pt")
    
    # Экспортируй модель в формат LiteRT (заменяет TF.js)
    model.export(format="litert", imgsz=640)  # используй imgsz=224 для классификации
    
    # Экспортированная модель '.tflite' работает в браузере через LiteRT.js или локально с помощью yolo predict/val.

    Подробнее о поддерживаемых вариантах экспорта см. на странице документации Ultralytics о вариантах развертывания.

  • Экспорт моделей YOLO26 в TensorFlow.js дает ряд преимуществ, в том числе:

    1. Локальное выполнение: модели запускаются непосредственно в браузере или Node.js, снижая задержку и улучшая взаимодействие с пользователем.
    2. Кроссплатформенная поддержка: TF.js поддерживает несколько сред, обеспечивая гибкость развертывания.
    3. Автономная работа: приложения могут работать без подключения к интернету, что обеспечивает надежность и конфиденциальность.
    4. Ускорение на GPU: использует WebGL для ускорения на GPU и повышения производительности устройств с ограниченными ресурсами.
  • TensorFlow.js специально разработан для эффективного выполнения моделей машинного обучения в браузерах и средах Node.js. Вот чем он полезен для браузерных приложений:

    • Снижает задержку: запускает модели машинного обучения локально и сразу предоставляет результаты без вычислений на стороне сервера.
    • Повышает конфиденциальность: оставляет конфиденциальные данные на устройстве пользователя, снижая риски для безопасности.
    • Обеспечивает автономную работу: модели работают без подключения к интернету, гарантируя стабильное функционирование.
    • Поддерживает несколько бэкендов: предлагает гибкий выбор бэкендов для разных вычислительных задач, включая CPU, WebGL, WebAssembly (WASM) и WebGPU.

    Хочешь узнать больше о TF.js? Загляни в официальное руководство TensorFlow.js.

  • Основные возможности TensorFlow.js:

    • Кроссплатформенная поддержка: TF.js можно использовать в веб-браузерах и Node.js, что обеспечивает широкие возможности развертывания.
    • Несколько бэкендов: поддерживаются CPU, WebGL для ускорения на GPU, WebAssembly (WASM) и WebGPU для сложных операций.
    • Автономная работа: модели запускаются непосредственно в браузере без подключения к интернету, что делает этот формат подходящим для разработки отзывчивых веб-приложений.

    Сценарии развертывания и подробную информацию см. в разделе «Варианты развертывания с TensorFlow.js».

  • Да, TensorFlow.js позволяет развертывать модели YOLO26 в средах Node.js. Это дает возможность создавать серверные приложения машинного обучения, использующие вычислительные ресурсы сервера и доступ к серверным данным. Типичные сценарии применения — обработка данных в реальном времени и конвейеры машинного обучения на бэкенд-серверах.

    Чтобы начать развертывание в Node.js, ознакомься с руководством TensorFlow «Запуск TensorFlow.js в Node.js».

Комментарии