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

TensorFlow Lite edge deployment framework

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

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

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

Представленный Google в мае 2017 года как часть их фреймворка TensorFlow, TensorFlow Lite, или сокращенно TFLite, представляет собой open-source фреймворк глубокого обучения, разработанный для инференса на устройстве, что также известно как 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

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

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

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

TensorFlow Lite deployment architecture for mobile

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

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

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

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

Установка

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

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

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

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

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

Использование
  from ultralytics import YOLO

  # Load the YOLO26 model
  model = YOLO("yolo26n.pt")

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

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

  # Run inference
  results = tflite_model("https://ultralytics.com/images/bus.jpg")

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

АргументТипПо умолчаниюОписание
formatstr'tflite'Целевой формат для экспортируемой модели, определяющий совместимость с различными средами развертывания.
imgszint или tuple640Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для указания конкретных размеров.
halfboolFalseВключает квантование FP16 (половинной точности), уменьшая размер модели и потенциально ускоряя логический вывод на поддерживаемом оборудовании.
int8boolFalseАктивирует квантование INT8, дополнительно сжимая модель и ускоряя логический вывод с минимальной потерей точности, в основном для периферийных устройств.
nmsboolFalseДобавляет подавление немаксимумов (NMS), необходимое для точной и эффективной постобработки обнаружений.
batchint1Указывает размер пакетного инференса для экспортированной модели или максимальное количество изображений, которые модель будет обрабатывать одновременно в режиме predict.
datastr'coco8.yaml'Путь к файлу конфигурации dataset (по умолчанию: coco8.yaml), необходимому для квантования.
fractionfloat1.0Задает долю набора данных для использования при калибровке квантования INT8. Позволяет выполнять калибровку на подмножестве полного набора данных, что полезно для экспериментов или при ограниченных ресурсах. Если не указано при включенном INT8, будет использован полный набор данных.
devicestrNoneУказывает устройство для экспорта: CPU (device=cpu), MPS для Apple silicon (device=mps).

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

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

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

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

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

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

Резюме

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

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

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

Часто задаваемые вопросы (FAQ)

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

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

pip install ultralytics

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

from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

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

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

yolo export model=yolo26n.pt format=tflite # creates 'yolo26n_float32.tflite'

Для получения дополнительных сведений посети Ultralytics export guide.

Каковы преимущества использования TensorFlow Lite для развертывания моделей YOLO26?

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

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

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

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

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

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

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

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

Чтобы начать, посети TFLite Micro for Microcontrollers guide.

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

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

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

Для получения дополнительной информации о вариантах развертывания см. наше подробное deployment guide.

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

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

  • Проверка совместимости пакетов: убедись, что ты используешь совместимые версии Ultralytics и TensorFlow. См. наше installation guide.
  • Поддержка моделей: проверь, поддерживает ли конкретная модель YOLO26 экспорт в TFLite, просмотрев export documentation page от Ultralytics.
  • Проблемы квантования: при использовании квантования INT8 убедись, что путь к набору данных правильно указан в параметре data.

Для получения дополнительных советов по устранению неполадок посети наше Common Issues guide.

Комментарии