Руководство по экспорту моделей YOLO26 в TFLite для развертывания
Развертывание моделей 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.
-
Реализация на встроенном 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")Аргументы экспорта
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
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' | Путь к файлу конфигурации 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-приложения, содержащее простые шаги по настройке и запуску моделей 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.