Ultralytics YOLO27:

Как экспортировать YOLO26 в TF GraphDef для развертывания#

При развертывании передовых моделей компьютерного зрения, таких как YOLO26, в разных средах могут возникнуть проблемы совместимости. GraphDef от Google для TensorFlow, или TF GraphDef, решает эту проблему, предоставляя сериализованное платформонезависимое представление модели. Формат модели TF GraphDef позволяет развертывать YOLO26 в средах, где может быть недоступна полная экосистема TensorFlow, например на мобильных устройствах или специализированном оборудовании.

В этом руководстве мы пошагово расскажем, как экспортировать модели Ultralytics YOLO26 в формат TF GraphDef. Преобразовав модель, ты упростишь развертывание и сможешь использовать возможности компьютерного зрения YOLO26 в более широком спектре приложений и платформ.

TensorFlow GraphDef model serialization format

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

TF GraphDef — это мощный компонент экосистемы TensorFlow, разработанный Google. Его можно использовать для оптимизации и развертывания моделей, таких как YOLO26. Экспорт в TF GraphDef позволяет переносить модели из исследований в реальные приложения. Модели могут работать в средах без полного фреймворка TensorFlow.

Формат GraphDef представляет модель в виде сериализованного вычислительного графа. Это позволяет применять различные методы оптимизации, например свертку констант, квантование и преобразования графа. Такие оптимизации обеспечивают эффективное выполнение, снижают потребление памяти и ускоряют инференс.

Модели GraphDef могут использовать аппаратные ускорители, такие как GPU, TPU и AI-чипы, что позволяет значительно повысить производительность конвейера инференса YOLO26. Формат TF GraphDef создает автономный пакет с моделью и ее зависимостями, упрощая развертывание и интеграцию в различные системы.

Ключевые особенности моделей TF GraphDef#

TF GraphDef предлагает ряд возможностей для упрощения развертывания моделей и их оптимизации.

Рассмотрим основные характеристики:

  • Сериализация моделей: TF GraphDef позволяет сериализовать и хранить модели TensorFlow в платформонезависимом формате. Благодаря такому представлению ты можешь загружать и выполнять модели без исходной кодовой базы на Python, что упрощает развертывание.

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

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

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

Варианты развертывания с TF GraphDef#

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

Вот как эффективно развертывать модели с TF GraphDef на разных платформах.

  • TensorFlow Serving: этот фреймворк предназначен для развертывания моделей TensorFlow в производственной среде. TensorFlow Serving предоставляет инструменты управления моделями и их версиями, а также инфраструктуру для эффективной работы моделей в больших масштабах. Это простой способ интегрировать модели на основе GraphDef в производственные веб-сервисы или API.

  • Мобильные и встраиваемые устройства: с помощью таких инструментов, как LiteRT, ты можешь преобразовывать модели TF GraphDef в форматы, оптимизированные для смартфонов, планшетов и различных встраиваемых устройств. Затем эти модели можно использовать для инференса непосредственно на устройстве: вычисления выполняются локально, что часто повышает производительность и позволяет работать без подключения к сети.

  • Веб-браузеры: TensorFlow.js позволяет развертывать модели TF GraphDef прямо в веб-браузерах. Это открывает путь к приложениям для обнаружения объектов в реальном времени на стороне клиента, использующим возможности YOLO26 через JavaScript.

  • Специализированное оборудование: независимость TF GraphDef от платформы позволяет использовать его с заказным оборудованием, например ускорителями и TPU (тензорными процессорами). Такие устройства могут повысить производительность вычислительно сложных моделей.

Поддерживаемые задачи#

Экспорт TF GraphDef поддерживает шесть из семи задач Ultralytics. Семантическая сегментация и оценка глубины доступны только в YOLO26 — единственном семействе моделей с соответствующими головами. Модели для определения позы можно экспортировать, но инференс Ultralytics GraphDef для них пока не поддерживается.

Экспорт моделей YOLO26 в TF GraphDef#

Ты можешь преобразовать модель YOLO26 в формат TF GraphDef, совместимый с различными системами, чтобы повысить ее производительность на разных платформах.

Установка#

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

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

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

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

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

Формат TF GraphDef поддерживает режимы Export, Predict и Validate, но для моделей определения позы пока доступен только экспорт. Экспортируй модель, а затем загрузи ее, чтобы запустить инференс или проверить точность.

Экспорт
from ultralytics import YOLO

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

# Экспортируй модель в формат TF GraphDef
model.export(format="pb")  # создает 'yolo26n.pb'
Предсказание
from ultralytics import YOLO

# Загрузи экспортированную модель TF GraphDef
model = YOLO("yolo26n.pb")

# Выполнить инференс
results = model("https://ultralytics.com/images/bus.jpg")
Проверка
from ultralytics import YOLO

# Загрузи экспортированную модель TF GraphDef
model = YOLO("yolo26n.pb")

# Проверить точность на наборе данных COCO8
metrics = model.val(data="coco8.yaml")

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

АргументТипПо умолчаниюОписание
formatstr'pb'Целевой формат экспортируемой модели, определяющий совместимость с различными средами развертывания.
imgszint или tuple640Заданный размер изображения на входе модели. Можно указать целое число для квадратных изображений или кортеж (height, width) для конкретных размеров.
quantizeint или strNoneЭкспорт выполняется только в FP32. GraphDef не поддерживает преобразование точности в FP16, INT8 или W8A16 во время экспорта.
opsetintNoneЗадает версию opset ONNX для промежуточного графа ONNX. Если значение не задано, используется последняя поддерживаемая версия.
batchint1Задаёт размер пакета изображений для инференса экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict.
devicestrNoneУказывает устройство для экспорта: CPU (device=cpu), MPS для Apple silicon (device=mps).

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

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

После экспорта модели YOLO26 в формат TF GraphDef следующий шаг — развертывание. Основной и рекомендуемый способ запустить модель TF GraphDef — использовать метод YOLO("model.pb"), как показано ранее во фрагменте кода.

Дополнительные сведения о развертывании моделей TF GraphDef см. в следующих материалах:

  • TensorFlow Serving: руководство по TensorFlow Serving, в котором рассказывается, как эффективно развертывать модели машинного обучения и обеспечивать их работу в производственной среде.

  • TensorFlow Lite: на этой странице описано, как преобразовывать модели машинного обучения в формат, оптимизированный для инференса на устройстве с TensorFlow Lite.

  • TensorFlow.js: руководство по преобразованию моделей, в котором рассказывается, как преобразовать модели TensorFlow или Keras в формат TensorFlow.js для веб-приложений.

Итоги#

В этом руководстве мы рассмотрели, как экспортировать модели Ultralytics YOLO26 в формат TF GraphDef. Это позволяет гибко развертывать оптимизированные модели YOLO26 в различных средах.

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

Сведения об интеграции Ultralytics YOLO26 с другими платформами и фреймворками см. на странице руководства по интеграции.

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

  • Модели Ultralytics YOLO26 можно легко экспортировать в формат TensorFlow GraphDef (TF GraphDef). Этот формат представляет собой сериализованное платформонезависимое представление модели, которое идеально подходит для развертывания в различных средах, например на мобильных устройствах и в вебе. Чтобы экспортировать модель YOLO26 в TF GraphDef, выполни следующие действия:

    Использование
    from ultralytics import YOLO
    
    # Загрузи модель YOLO26
    model = YOLO("yolo26n.pt")
    
    # Экспортируй модель в формат TF GraphDef
    model.export(format="pb")  # создает 'yolo26n.pb'
    
    # Загрузи экспортированную модель TF GraphDef
    tf_graphdef_model = YOLO("yolo26n.pb")
    
    # Выполнить инференс
    results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")

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

  • Экспорт моделей YOLO26 в формат TF GraphDef дает несколько преимуществ:

    1. Независимость от платформы: TF GraphDef — платформонезависимый формат, позволяющий развертывать модели в различных средах, включая мобильные устройства и веб-браузеры.
    2. Оптимизация: формат позволяет применять различные оптимизации, например свертку констант, квантование и преобразования графа, которые повышают эффективность выполнения и снижают потребление памяти.
    3. Аппаратное ускорение: модели в формате TF GraphDef могут использовать аппаратные ускорители, такие как GPU, TPU и AI-чипы, для повышения производительности.

    Подробнее о преимуществах читай в разделе TF GraphDef нашей документации.

  • Ultralytics YOLO26 дает множество преимуществ по сравнению с другими моделями, например YOLOv5 и YOLOv7. К основным преимуществам относятся:

    1. Передовая производительность: YOLO26 обеспечивает высокую скорость и точность для обнаружения объектов, сегментации экземпляров, семантической сегментации и классификации в реальном времени.
    2. Простота использования: удобный API для обучения, валидации, предсказания и экспорта моделей делает библиотеку доступной как для новичков, так и для экспертов.
    3. Широкая совместимость: поддерживается экспорт во множество форматов, включая ONNX, TensorRT, CoreML и TensorFlow, что обеспечивает гибкость при развертывании.

    Подробнее читай в нашем введении в YOLO26.

  • После экспорта модели YOLO26 в формат TF GraphDef ее можно развернуть на различных платформах со специализированным оборудованием. Типичные сценарии развертывания:

    • TensorFlow Serving: используй TensorFlow Serving для масштабируемого развертывания моделей в производственной среде. Он поддерживает управление моделями и их эффективную подачу.
    • Мобильные устройства: преобразуй модели TF GraphDef в TensorFlow Lite, оптимизированный для мобильных и встраиваемых устройств, чтобы запускать инференс непосредственно на устройстве.
    • Веб-браузеры: развертывай модели с помощью TensorFlow.js для инференса на стороне клиента в веб-приложениях.
    • AI-ускорители: используй TPU и заказные AI-чипы для ускорения инференса.

    Подробную информацию см. в разделе варианты развертывания.

  • Для решения распространенных проблем с экспортом моделей YOLO26 Ultralytics предлагает подробные руководства и материалы. Если при установке или экспорте модели возникнут проблемы, обратись к следующим ресурсам:

    Эти материалы помогут решить большинство проблем, связанных с экспортом и развертыванием моделей YOLO26.

Комментарии