Link to this sectionРуководство по экспорту модели YOLO26 в TFLite для развертывания#
Развертывание моделей компьютерного зрения на периферийных или встраиваемых устройствах требует формата, обеспечивающего бесперебойную работу.
Формат экспорта TensorFlow Lite, или TFLite, позволяет оптимизировать твои модели Ultralytics YOLO26 для таких задач, как обнаружение объектов и классификация изображений, в приложениях для периферийных устройств. В этом руководстве мы пройдем по шагам конвертации моделей в формат TFLite, чтобы облегчить их эффективную работу на различных периферийных устройствах.
Link to this sectionЗачем экспортировать в TFLite?#
Представленный Google в мае 2017 года как часть фреймворка TensorFlow, TensorFlow Lite, или сокращенно TFLite, представляет собой open-source фреймворк глубокого обучения, предназначенный для локального вывода (on-device inference), также известного как периферийные вычисления. Он предоставляет разработчикам необходимые инструменты для выполнения обученных моделей на мобильных, встраиваемых и IoT-устройствах, а также на обычных компьютерах.
TensorFlow Lite совместим с широким спектром платформ, включая встроенный Linux, Android, iOS и микроконтроллеры (MCU). Экспорт модели в TFLite делает твои приложения быстрее, надежнее и позволяет им работать в автономном режиме.
Link to this sectionКлючевые особенности моделей TFLite#
Модели TFLite предлагают ряд ключевых функций, которые обеспечивают машинное обучение на устройстве, помогая разработчикам запускать свои модели на мобильных, встраиваемых и периферийных устройствах:
-
Локальная оптимизация: TFLite оптимизирован для ML на устройстве, снижая задержку за счет локальной обработки данных, повышая конфиденциальность за счет отсутствия передачи персональных данных и минимизируя размер модели для экономии места.
-
Поддержка нескольких платформ: TFLite предлагает широкую совместимость, поддерживая Android, iOS, встроенный Linux и микроконтроллеры.
-
Разнообразная языковая поддержка: TFLite совместим с различными языками программирования, включая Java, Swift, Objective-C, C++ и Python.
-
Высокая производительность: Достигает превосходной производительности за счет аппаратного ускорения и оптимизации моделей.
Link to this sectionВарианты развертывания в TFLite#
Прежде чем мы перейдем к коду для экспорта моделей YOLO26 в формат TFLite, давай разберемся, как обычно используются модели TFLite.
TFLite предлагает различные варианты развертывания моделей машинного обучения на устройствах, включая:
- Развертывание на Android и iOS: Приложения для Android и iOS с использованием TFLite могут анализировать потоки с периферийных камер и данные датчиков для обнаружения и идентификации объектов. TFLite также предлагает нативные библиотеки для iOS, написанные на Swift и Objective-C. На схеме архитектуры ниже показан процесс развертывания обученной модели на платформах Android и iOS с использованием TensorFlow Lite.
-
Реализация на встроенном Linux: Если запуск вывода на Raspberry Pi с использованием руководства Ultralytics не соответствует требованиям по скорости для твоего сценария использования, ты можешь использовать экспортированную модель TFLite для ускорения времени вывода. Кроме того, можно еще больше улучшить производительность, используя устройство Coral Edge TPU.
-
Развертывание на микроконтроллерах: Модели TFLite также можно развертывать на микроконтроллерах и других устройствах, имеющих всего несколько килобайт памяти. Основная среда выполнения занимает всего 16 КБ на процессорах Arm Cortex M3 и может запускать многие базовые модели. Она не требует поддержки операционной системы, стандартных библиотек C или C++, а также динамического распределения памяти.
Link to this sectionЭкспорт в TFLite: конвертация твоей модели YOLO26#
Ты можешь повысить эффективность выполнения модели на устройстве и оптимизировать производительность, конвертировав свои модели в формат TFLite.
Link to this sectionУстановка#
Чтобы установить необходимые пакеты, выполни:
# Install the required package for YOLO26
pip install ultralyticsПодробные инструкции и лучшие практики по процессу установки ищи в нашем руководстве по установке Ultralytics. Если при установке необходимых пакетов для YOLO26 у тебя возникнут трудности, обратись к нашему руководству по распространенным проблемам за решениями и советами.
Link to this sectionИспользование#
Все модели Ultralytics YOLO26 разработаны с поддержкой экспорта «из коробки», что упрощает их интеграцию в твой рабочий процесс развертывания. Ты можешь просмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать лучшую настройку для своего приложения.
Формат TFLite поддерживает режимы Export, Predict и Validate. Экспортируй свою модель, а затем загружай ее для запуска вывода или проверки точности.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo26n_float32.tflite'from ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n_float32.tflite")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n_float32.tflite")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionАргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'tflite' | Целевой формат для экспортированной модели, определяющий совместимость с различными средами развертывания. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров. |
half | bool | False | Включает квантование FP16 (половинная точность), уменьшая размер модели и потенциально ускоряя вывод на поддерживаемом оборудовании. |
int8 | bool | False | Активирует квантование INT8, дополнительно сжимая модель и ускоряя вывод с минимальной потерей точности, в первую очередь для периферийных устройств. |
nms | bool | False | Добавляет подавление немаксимумов (NMS), что необходимо для точной и эффективной постобработки обнаружений. |
batch | int | 1 | Задает размер пакета (batch) для вывода экспортированной модели или максимальное количество изображений, которые модель будет обрабатывать одновременно в режиме predict. |
data | str | 'coco8.yaml' | Путь к файлу конфигурации датасета (по умолчанию: coco8.yaml), что важно для квантования. |
fraction | float | 1.0 | Указывает часть датасета, которую нужно использовать для калибровки квантования INT8. Позволяет выполнять калибровку на подмножестве полного датасета, что полезно для экспериментов или при ограниченных ресурсах. Если не указано при включенном INT8, будет использован весь датасет. |
device | str | None | Указывает устройство для экспорта: CPU (device=cpu), MPS для Apple silicon (device=mps). |
Для получения дополнительной информации о процессе экспорта посети страницу документации Ultralytics по экспорту.
Link to this sectionРазвертывание экспортированных моделей YOLO26 TFLite#
После успешного экспорта моделей Ultralytics YOLO26 в формат TFLite ты можешь развернуть их. Основной и рекомендуемый первый шаг для запуска модели TFLite — использование метода YOLO("model.tflite"), как описано в предыдущем фрагменте кода. Однако для получения более подробных инструкций по развертыванию моделей TFLite в других условиях ознакомься со следующими ресурсами:
-
Android: Краткое руководство по интеграции TensorFlow Lite в приложения для Android, содержащее простые шаги по настройке и запуску моделей машинного обучения.
-
iOS: Ознакомься с этим подробным руководством для разработчиков по интеграции и развертыванию моделей TensorFlow Lite в приложениях iOS, где предлагаются пошаговые инструкции и ресурсы.
-
Примеры End-To-End: На этой странице представлен обзор различных примеров TensorFlow Lite, демонстрирующих практические приложения и учебные пособия, предназначенные для помощи разработчикам в реализации TensorFlow Lite в их проектах машинного обучения на мобильных и периферийных устройствах.
Link to this sectionРезюме#
В этом руководстве мы сосредоточились на том, как выполнить экспорт в формат TFLite. Конвертируя модели Ultralytics YOLO26 в формат TFLite, ты можешь повысить эффективность и скорость моделей YOLO26, делая их более эффективными и подходящими для сред периферийных вычислений.
Для получения дополнительной информации об использовании посети официальную документацию TFLite.
Кроме того, если тебе интересно узнать о других интеграциях Ultralytics YOLO26, загляни на нашу страницу руководств по интеграции. Там ты найдешь много полезной информации.
Link to this sectionFAQ#
Link to this sectionКак мне экспортировать модель YOLO26 в формат TFLite?#
Чтобы экспортировать модель YOLO26 в формат TFLite, ты можешь использовать библиотеку Ultralytics. Сначала установи необходимый пакет с помощью:
pip install ultralyticsЗатем используй следующий фрагмент кода для экспорта модели:
from ultralytics import YOLO
# Load a 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.
Link to this sectionКаковы преимущества использования TensorFlow Lite для развертывания моделей YOLO26?#
TensorFlow Lite (TFLite) — это open-source фреймворк глубокого обучения, разработанный для локального вывода, что делает его идеальным для развертывания моделей YOLO26 на мобильных, встраиваемых и IoT-устройствах. Основные преимущества:
- Локальная оптимизация: Минимизируй задержку и повышай конфиденциальность, обрабатывая данные локально.
- Совместимость с платформами: Поддерживает Android, iOS, встроенный Linux и MCU.
- Производительность: Использует аппаратное ускорение для оптимизации скорости и эффективности модели.
Чтобы узнать больше, изучи руководство по TFLite.
Link to this sectionМожно ли запускать модели YOLO26 TFLite на Raspberry Pi?#
Да, ты можешь запускать модели YOLO26 TFLite на Raspberry Pi, чтобы повысить скорость вывода. Сначала экспортируй свою модель в формат TFLite, как описано выше. Затем используй такой инструмент, как TensorFlow Lite Interpreter, для выполнения модели на своем Raspberry Pi.
Для дальнейшей оптимизации ты можешь рассмотреть возможность использования Coral Edge TPU. Подробные шаги см. в нашем руководстве по развертыванию на Raspberry Pi и руководстве по интеграции с Edge TPU.
Link to this sectionМогу ли я использовать модели TFLite на микроконтроллерах для предсказаний YOLO26?#
Да, TFLite поддерживает развертывание на микроконтроллерах с ограниченными ресурсами. Основная среда выполнения TFLite требует всего 16 КБ памяти на Arm Cortex M3 и может запускать базовые модели YOLO26. Это делает ее подходящей для развертывания на устройствах с минимальной вычислительной мощностью и памятью.
Чтобы начать, посети руководство TFLite Micro для микроконтроллеров.
Link to this sectionКакие платформы совместимы с экспортированными моделями YOLO26 TFLite?#
TensorFlow Lite обеспечивает широкую совместимость платформ, позволяя развертывать модели YOLO26 на самых разных устройствах, включая:
- Android и iOS: Нативная поддержка через библиотеки TFLite для Android и iOS.
- Встроенный Linux: Идеально подходит для одноплатных компьютеров, таких как Raspberry Pi.
- Микроконтроллеры: Подходит для MCU с ограниченными ресурсами.
Для получения дополнительной информации о вариантах развертывания см. наше подробное руководство по развертыванию.
Link to this sectionКак устранить распространенные проблемы при экспорте моделей YOLO26 в TFLite?#
Если при экспорте моделей YOLO26 в TFLite возникают ошибки, распространенные решения включают:
- Проверка совместимости пакетов: Убедись, что используешь совместимые версии Ultralytics и TensorFlow. См. наше руководство по установке.
- Поддержка модели: Убедись, что конкретная модель YOLO26 поддерживает экспорт в TFLite, проверив страницу документации по экспорту Ultralytics.
- Проблемы квантования: При использовании квантования INT8 убедись, что путь к набору данных правильно указан в параметре
data.
Дополнительные советы по устранению неполадок ищи в нашем руководстве по распространенным проблемам.