Перейти к содержанию

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

Логотип TFLite

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

Формат экспорта TensorFlow Lite или TFLite позволяет оптимизировать ваши Ultralytics YOLO11 модели для таких задач, как обнаружение объектов и классификация изображений в приложениях на базе краевых устройств. В этом руководстве мы рассмотрим шаги по конвертации ваших моделей в формат 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

Прежде чем мы рассмотрим код для экспорта моделей YOLO11 в формат 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: Преобразование модели YOLO11

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

Установка

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

Установка

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

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

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

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

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

Аргумент Тип По умолчанию Описание
format str 'tflite' Целевой формат экспортируемой модели, определяющий совместимость с различными средами развертывания.
imgsz int или tuple 640 Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для получения конкретных размеров.
half bool False Включает квантование FP16 (половина точности), уменьшая размер модели и потенциально ускоряя вывод на поддерживаемом оборудовании.
int8 bool False Активирует квантование INT8, что еще больше сжимает модель и ускоряет вывод с минимальной потерей точности, в первую очередь для пограничных устройств.
nms bool False Добавляет не максимальное подавление (NMS), необходимое для точной и эффективной постобработки обнаружения.
batch int 1 Указывает размер пакетного вывода экспортной модели или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в predict режим.
data str 'coco8.yaml' Путь к набор данных файл конфигурации (по умолчанию: coco8.yaml), необходимые для квантования.

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

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

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

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

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

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

Резюме

В этом руководстве мы рассмотрим, как экспортировать модели в формат TFLite. Конвертируя модели Ultralytics YOLO11 в формат TFLite, вы можете повысить эффективность и скорость работы моделей YOLO11 , сделав их более эффективными и пригодными для использования в средах граничных вычислений.

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

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

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

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

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

pip install ultralytics

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

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

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

Для пользователей CLI это можно сделать с помощью:

yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'

Более подробную информацию можно найти в руководстве по экспортуUltralytics .

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

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

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

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

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

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

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

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

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

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

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

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

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

Более подробную информацию о вариантах развертывания см. в нашем подробном руководстве по развертыванию.

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

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

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

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

📅 Создано 1 год назад ✏️ Обновлено 3 дня назад

Комментарии