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

Развертывание моделей компьютерного зрения на периферийных или встроенных устройствах требует формата, обеспечивающего бесперебойную работу.
Формат экспорта TensorFlow Lite или TFLite позволяет оптимизировать ваши модели Ultralytics YOLO26 для таких задач, как обнаружение объектов и классификация изображений в приложениях на базе периферийных устройств. В этом руководстве мы рассмотрим шаги по преобразованию ваших моделей в формат TFLite, что упрощает их эффективную работу на различных периферийных устройствах.
Зачем экспортировать в TFLite?
Представленный Google в мае 2017 года как часть их фреймворка TensorFlow, TensorFlow Lite, или сокращенно TFLite, представляет собой фреймворк глубокого обучения с открытым исходным кодом, предназначенный для логического вывода на устройстве, также известного как периферийные вычисления. Он предоставляет разработчикам необходимые инструменты для выполнения обученных моделей на мобильных, встроенных и 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 могут анализировать потоки с камер и датчиков на периферии для обнаружения (detect) и идентификации объектов. TFLite также предлагает нативные библиотеки iOS, написанные на Swift и Objective-C. На схеме архитектуры ниже показан процесс развертывания обученной модели на платформах Android и iOS с использованием TensorFlow Lite.

Реализация со встроенной ОС Linux: Если запуск инференса на Raspberry Pi с использованием руководства Ultralytics не соответствует требованиям к скорости для вашего варианта использования, вы можете использовать экспортированную модель 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")
# Export a YOLO26n PyTorch model to TFLite format
yolo export model=yolo26n.pt format=tflite # creates 'yolo26n_float32.tflite'
# Run inference with the exported model
yolo predict model='yolo26n_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 | Добавляет Non-Maximum Suppression (NMS) (Немаксимальное подавление), необходимый для точной и эффективной постобработки обнаружения. |
batch | int | 1 | Указывает размер пакета для модели экспорта или максимальное количество изображений, которые экспортируемая модель будет обрабатывать одновременно в режиме predict режиме. |
data | str | 'coco8.yaml' | Путь к dataset файл конфигурации (по умолчанию: coco8.yaml), необходимые для квантования. |
fraction | float | 1.0 | Указывает долю набора данных, используемую для калибровки квантования INT8. Позволяет проводить калибровку на подмножестве полного набора данных, что полезно для экспериментов или при ограниченности ресурсов. Если не указано при включенном INT8, будет использован полный набор данных. |
device | str | None | Указывает устройство для экспорта: CPU (device=cpu), MPS для Apple silicon (device=mps). |
Для получения более подробной информации о процессе экспорта посетите страницу документации Ultralytics по экспорту.
Развертывание экспортированных моделей YOLO26 TFLite
После успешного экспорта ваших моделей Ultralytics YOLO26 в формат TFLite вы можете их развернуть. Основной и рекомендуемый первый шаг для запуска модели TFLite — использование YOLO("model.tflite") метод, как указано в предыдущем фрагменте кода использования. Однако для получения подробных инструкций по развертыванию ваших моделей TFLite в различных других средах ознакомьтесь со следующими ресурсами:
Android: Краткое руководство по интеграции TensorFlow Lite в приложения Android, содержащее простые в использовании шаги по настройке и запуску моделей машинного обучения.
iOS: Ознакомьтесь с этим подробным руководством для разработчиков по интеграции и развертыванию моделей TensorFlow Lite в приложениях iOS, предлагающим пошаговые инструкции и ресурсы.
Сквозные примеры: На этой странице представлен обзор различных примеров TensorFlow Lite, демонстрирующих практические приложения и учебные пособия, призванные помочь разработчикам внедрить TensorFlow Lite в свои проекты машинного обучения на мобильных и периферийных устройствах.
Обзор
В этом руководстве мы сосредоточились на экспорте в формат TFLite. Преобразуя ваши модели Ultralytics YOLO26 в формат модели TFLite, вы можете повысить эффективность и скорость моделей YOLO26, делая их более эффективными и подходящими для сред периферийных вычислений.
Для получения более подробной информации об использовании посетите официальную документацию TFLite.
Также, если вас интересуют другие интеграции Ultralytics YOLO26, посетите нашу страницу руководства по интеграции. Там вы найдете много полезной информации и аналитических данных.
Часто задаваемые вопросы
Как экспортировать модель 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.
Каковы преимущества использования TensorFlow Lite для развертывания моделей YOLO26?
TensorFlow Lite (TFLite) — это фреймворк глубокого обучения с открытым исходным кодом, разработанный для вывода на устройстве, что делает его идеальным для развертывания моделей YOLO26 на мобильных, встраиваемых и IoT-устройствах. Основные преимущества включают:
- Оптимизация на устройстве: минимизируйте задержку и повысьте конфиденциальность, обрабатывая данные локально.
- Совместимость платформ: поддержка Android, iOS, встроенной Linux и MCU.
- Производительность: использует аппаратное ускорение для оптимизации скорости и эффективности модели.
Чтобы узнать больше, ознакомьтесь с руководством по TFLite.
Можно ли запускать модели YOLO26 TFLite на Raspberry Pi?
Да, вы можете запускать модели YOLO26 TFLite на Raspberry Pi для повышения скорости вывода. Сначала экспортируйте вашу модель в формат TFLite, как объяснялось выше. Затем используйте такой инструмент, как TensorFlow Lite Interpreter, для выполнения модели на вашем Raspberry Pi.
Для дальнейшей оптимизации вы можете рассмотреть возможность использования Coral Edge TPU. Подробные инструкции см. в нашем руководстве по развертыванию на Raspberry Pi и руководстве по интеграции Edge TPU.
Могу ли я использовать модели TFLite на микроконтроллерах для предсказаний YOLO26?
Да, TFLite поддерживает развертывание на микроконтроллерах с ограниченными ресурсами. Базовая среда выполнения TFLite требует всего 16 КБ памяти на Arm Cortex M3 и может запускать базовые модели YOLO26. Это делает его подходящим для развертывания на устройствах с минимальной вычислительной мощностью и памятью.
Для начала посетите руководство по TFLite Micro для микроконтроллеров.
Какие платформы совместимы с экспортированными моделями YOLO26 TFLite?
TensorFlow Lite обеспечивает широкую совместимость с платформами, позволяя развертывать модели YOLO26 на широком спектре устройств, включая:
- Android и iOS: Нативная поддержка через библиотеки TFLite Android и iOS.
- Встроенный Linux: идеально подходит для одноплатных компьютеров, таких как Raspberry Pi.
- Микроконтроллеры: подходят для MCU с ограниченными ресурсами.
Для получения дополнительной информации о вариантах развертывания см. наше подробное руководство по развертыванию.
Как устранять распространенные проблемы при экспорте модели YOLO26 в TFLite?
Если вы столкнулись с ошибками при экспорте моделей YOLO26 в TFLite, распространенные решения включают:
- Проверьте совместимость пакетов: убедитесь, что вы используете совместимые версии Ultralytics и TensorFlow. См. наше руководство по установке.
- Поддержка модели: Убедитесь, что конкретная модель YOLO26 поддерживает экспорт в TFLite, проверив страницу документации по экспорту Ultralytics.
- Проблемы квантования: При использовании квантования INT8 убедитесь, что путь к вашему набору данных правильно указан в
dataпараметр.
Дополнительные советы по устранению неполадок можно найти в нашем руководстве по распространенным проблемам.