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

Руководство по экспорту моделей YOLOv8 в TFLite для развертывания

Логотип TFLite

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

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

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

Представленный Google в мае 2017 года как часть их фреймворка TensorFlow , TensorFlow Lite, или сокращенно TFLite, - это фреймворк глубокого обучения с открытым исходным кодом, предназначенный для выводов на устройствах, также известных как edge computing. Он предоставляет разработчикам необходимые инструменты для выполнения обученных моделей на мобильных, встраиваемых и IoT-устройствах, а также на традиционных компьютерах.

TensorFlow Lite совместим с широким спектром платформ, включая встраиваемые Linux, Android, iOS, и MCU. Экспорт твоей модели в TFLite делает твои приложения быстрее, надежнее и способными работать в автономном режиме.

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

Модели TFLite обладают широким набором ключевых функций, которые обеспечивают машинное обучение на устройствах, помогая разработчикам запускать свои модели на мобильных, встраиваемых и граничных устройствах:

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

  • Поддержка множества платформ: TFLite предлагает широкую совместимость платформ, поддерживая Android, iOS, встроенный Linux и микроконтроллеры.

  • Поддержка различных языков: TFLite совместим с различными языками программирования, включая Java, Swift, Objective-C, C++ и Python.

  • Высокая производительность: Достигни превосходной производительности за счет аппаратного ускорения и оптимизации моделей.

Варианты развертывания в TFLite

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

TFLite предлагает различные варианты развертывания моделей машинного обучения на устройстве, включая:

  • Развертывание с Android и iOS: Приложения Android и iOS с TFLite могут анализировать данные с камер и датчиков, расположенных по краям, чтобы обнаруживать и идентифицировать объекты. TFLite также предлагает нативные библиотеки iOS , написанные на Swift и Objective-C. На схеме архитектуры ниже показан процесс развертывания обученной модели на платформах Android и iOS с помощью TensorFlow Lite.

Архитектура

  • Реализация с помощью Embedded Linux: Если выполнение выводов на Raspberry Pi с помощью руководстваUltralytics не удовлетворяет требованиям по скорости для твоего случая использования, ты можешь использовать экспортированную модель TFLite, чтобы ускорить время выполнения выводов. Кроме того, можно еще больше повысить производительность, используя устройство Coral Edge TPU .

  • Развертывание с помощью микроконтроллеров: Модели TFLite также могут быть развернуты на микроконтроллерах и других устройствах, имеющих всего несколько килобайт памяти. Ядро среды выполнения умещается всего в 16 КБ на Arm Cortex M3 и может запускать множество базовых моделей. Она не требует поддержки операционной системы, каких-либо стандартных библиотек C или C++ или динамического выделения памяти.

Экспорт в TFLite: Преобразование твоей модели YOLOv8

Ты можешь повысить эффективность выполнения моделей на устройстве и оптимизировать производительность, конвертировав их в формат TFLite.

Установка

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

Установка

# 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 TFLite format
model.export(format="tflite")  # creates 'yolov8n_float32.tflite'

# Load the exported TFLite model
tflite_model = YOLO("yolov8n_float32.tflite")

# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to TFLite format
yolo export model=yolov8n.pt format=tflite  # creates 'yolov8n_float32.tflite'

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

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

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

После успешного экспорта твоих моделей Ultralytics YOLOv8 в формат TFLite ты можешь приступить к их развертыванию. Основным и рекомендуемым первым шагом для запуска модели TFLite является использование метода YOLO("model.tflite"), как описано в предыдущем фрагменте кода. Однако для получения подробных инструкций по развертыванию твоих моделей TFLite в различных других условиях, взгляни на следующие ресурсы:

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

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

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

Резюме

В этом руководстве мы сосредоточились на том, как экспортировать в формат TFLite. Конвертировав свои модели Ultralytics YOLOv8 в формат моделей TFLite, ты сможешь повысить эффективность и скорость работы моделей YOLOv8, сделав их более эффективными и подходящими для сред edge computing.

Для получения дополнительной информации об использовании посетите официальную документацию TFLite.

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

ВОПРОСЫ И ОТВЕТЫ

Как экспортировать модель YOLOv8 в формат TFLite?

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

pip install ultralytics

Затем используй следующий фрагмент кода, чтобы экспортировать свою модель:

from ultralytics import YOLO

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

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolov8n_float32.tflite'

Для пользователей CLI ты можешь добиться этого с помощью:

yolo export model=yolov8n.pt format=tflite  # creates 'yolov8n_float32.tflite'

Для получения более подробной информации посетите руководство по экспортуUltralytics .

В чем преимущества использования TensorFlow Lite для развертывания модели YOLOv8 ?

TensorFlow Lite (TFLite) - это фреймворк глубокого обучения с открытым исходным кодом, предназначенный для выводов на устройстве, что делает его идеальным для развертывания моделей YOLOv8 на мобильных, встраиваемых и IoT-устройствах. Основные преимущества включают в себя:

  • Оптимизация на устройстве: Минимизируй задержки и повышай конфиденциальность, обрабатывая данные локально.
  • Совместимость с платформами: Поддерживает Android, iOS, встроенный Linux и MCU.
  • Производительность: Используй аппаратное ускорение, чтобы оптимизировать скорость и эффективность модели.

Чтобы узнать больше, ознакомься с руководством по TFLite.

Можно ли запустить модели YOLOv8 TFLite на Raspberry Pi?

Да, ты можешь запускать модели YOLOv8 TFLite на Raspberry Pi, чтобы повысить скорость выводов. Сначала экспортируй свою модель в формат TFLite, как объясняется здесь. Затем используй такой инструмент, как TensorFlow Lite Interpreter, чтобы выполнить модель на твоем Raspberry Pi.

Для дальнейшей оптимизации ты можешь рассмотреть возможность использования Coral Edge TPU. За подробными шагами обращайся к нашему руководству по развертыванию Raspberry Pi.

Можно ли использовать модели TFLite на микроконтроллерах для предсказаний YOLOv8 ?

Да, TFLite поддерживает развертывание на микроконтроллерах с ограниченными ресурсами. Ядро среды выполнения TFLite требует всего 16 КБ памяти на Arm Cortex M3 и может выполнять базовые модели YOLOv8 . Это делает его подходящим для развертывания на устройствах с минимальной вычислительной мощностью и памятью.

Чтобы начать, посети руководство TFLite Micro for Microcontrollers.

Какие платформы совместимы с экспортируемыми TFLite моделями YOLOv8 ?

TensorFlow Lite обеспечивает широкую совместимость с платформами, позволяя тебе развернуть модели YOLOv8 на широком спектре устройств, включая:

  • Android и iOS: Нативная поддержка с помощью библиотек TFLite Android и iOS .
  • Встраиваемый Linux: Идеально подходит для одноплатных компьютеров, таких как Raspberry Pi.
  • Микроконтроллеры: Подходит для MCU с ограниченными ресурсами.

Подробнее о вариантах развертывания читай в нашем подробном руководстве по развертыванию.

Как устранить распространенные проблемы при экспорте модели YOLOv8 в TFLite?

Если ты столкнулся с ошибками при экспорте моделей YOLOv8 в TFLite, распространенные решения включают в себя:

  • Проверь совместимость пакетов: Убедись, что ты используешь совместимые версии Ultralytics и TensorFlow. Обратись к нашему руководству по установке.
  • Поддержка модели: Убедись, что конкретная модель YOLOv8 поддерживает экспорт TFLite, поставив здесь галочку.

Дополнительные советы по устранению неполадок можно найти в нашем руководстве по общим проблемам.



Создано 2024-03-01, Обновлено 2024-07-05
Авторы: glenn-jocher (6), abirami-vina (1)

Комментарии