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

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

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

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

TensorFlow GraphDef

Почему тебе стоит экспортировать на TF GraphDef ?

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

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

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

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

TF GraphDef предлагает отличные функции для упрощения развертывания и оптимизации моделей.

Вот обзор его ключевых характеристик:

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

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

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

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

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

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

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

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

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

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

  • Специализированное оборудование: TF GraphDef 's platform-agnostic nature allows it to target custom hardware, such as accelerators and TPUs (Tensor Processing Units). Эти устройства могут обеспечить преимущество в производительности для моделей с интенсивными вычислениями.

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

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

Установка

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

Установка

# Install the required package for YOLOv8
pip install ultralytics

Для получения подробных инструкций и лучших практик, связанных с процессом установки, ознакомься с нашим руководством по установкеUltralytics . Во время установки необходимых пакетов для YOLOv8, если у тебя возникнут какие-либо трудности, обратись к нашему руководству по общим проблемам, чтобы найти решения и советы.

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

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

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

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to TF GraphDef format
model.export(format='pb')  # creates 'yolov8n.pb'

# Load the exported TF GraphDef model
tf_graphdef_model = YOLO('yolov8n.pb')

# Run inference
results = tf_graphdef_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TF GraphDef format
yolo export model=yolov8n.pt format=pb  # creates 'yolov8n.pb'

# Run inference with the exported model
yolo predict model='yolov8n.pb' source='https://ultralytics.com/images/bus.jpg'

Более подробно о поддерживаемых вариантах экспорта можно узнать на странице документацииUltralytics , посвященной вариантам развертывания.

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

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

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

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

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

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

Резюме

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

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

Чтобы узнать больше об интеграции Ultralytics YOLOv8 с другими платформами и фреймворками, не забудь заглянуть на страницу нашего руководства по интеграции. На ней собраны отличные ресурсы и идеи, которые помогут тебе максимально эффективно использовать YOLOv8 в своих проектах.



Создано 2024-03-22, Обновлено 2024-04-03
Авторы: RizwanMunawar (1), Burhan-Q (1), abirami-vina (1)

Комментарии