Link to this sectionРуководство по экспорту моделей YOLO26 в TFLite для развертывания#
Для развертывания моделей computer vision на периферийных или встраиваемых устройствах требуется формат, обеспечивающий бесперебойную работу.
Формат экспорта TensorFlow Lite, или TFLite, позволяет оптимизировать модели Ultralytics YOLO26 для таких задач, как object detection и image classification в приложениях для периферийных устройств. В этом руководстве мы пройдем по шагам конвертации твоих моделей в формат TFLite, что упростит их эффективную работу на различных периферийных устройствах.
Link to this sectionПочему стоит экспортировать в TFLite?#
Представленный Google в мае 2017 года как часть их фреймворка TensorFlow, TensorFlow Lite, или сокращенно TFLite, — это фреймворк глубокого обучения с открытым исходным кодом, разработанный для локального вывода (on-device inference), также известного как edge computing. Он предоставляет разработчикам необходимые инструменты для запуска обученных моделей на мобильных, встраиваемых и 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 Guide не обеспечивает требуемую скорость для твоего случая, ты можешь использовать экспортированную модель 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, дополнительно сжимая модель и ускоряя вывод с минимальной потерей accuracy, в основном для периферийных устройств (edge devices). |
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 по экспорту.
Link to this sectionРазвертывание экспортированных моделей 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 в свои проекты машинного обучения на мобильных и периферийных устройствах.
Link to this sectionИтог#
В этом руководстве мы сосредоточились на том, как выполнить экспорт в формат TFLite. Конвертируя модели Ultralytics YOLO26 в формат TFLite, ты можешь повысить эффективность и скорость работы моделей YOLO26, делая их более производительными и подходящими для сред периферийных вычислений.
Для получения более подробной информации об использовании посети TFLite official documentation.
Также, если тебе интересно узнать о других интеграциях Ultralytics YOLO26, загляни на нашу страницу integration guide page. Там ты найдешь много полезной информации и идей.
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 export guide.
Link to this sectionКаковы преимущества использования TensorFlow Lite для развертывания моделей YOLO26?#
TensorFlow Lite (TFLite) — это фреймворк deep learning с открытым исходным кодом, разработанный для локального вывода, что делает его идеальным для развертывания моделей YOLO26 на мобильных, встраиваемых и IoT-устройствах. Ключевые преимущества включают:
- Оптимизация на устройстве: Минимизация задержки и повышение конфиденциальности за счет локальной обработки данных.
- Совместимость платформ: Поддержка Android, iOS, встроенного Linux и MCU.
- Производительность: Использование аппаратного ускорения для оптимизации скорости и эффективности модели.
Чтобы узнать больше, ознакомься с TFLite guide.
Link to this sectionМожно ли запускать модели 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.
Link to this sectionМогу ли я использовать модели TFLite на микроконтроллерах для предсказаний YOLO26?#
Да, TFLite поддерживает развертывание на микроконтроллерах с ограниченными ресурсами. Основная среда выполнения TFLite требует всего 16 КБ памяти на Arm Cortex M3 и может запускать базовые модели YOLO26. Это делает его подходящим для развертывания на устройствах с минимальной вычислительной мощностью и объемом памяти.
Чтобы начать, посети TFLite Micro for Microcontrollers guide.
Link to this sectionКакие платформы совместимы с экспортированными моделями YOLO26 TFLite?#
TensorFlow Lite обеспечивает широкую совместимость платформ, позволяя развертывать модели YOLO26 на самых разных устройствах, включая:
- Android и iOS: Нативная поддержка через библиотеки TFLite для Android и iOS.
- Встроенный Linux: Идеально подходит для одноплатных компьютеров, таких как Raspberry Pi.
- Микроконтроллеры: Подходит для MCU с ограниченными ресурсами.
Для получения дополнительной информации о вариантах развертывания смотри наше подробное deployment guide.
Link to this sectionКак устранить распространенные проблемы при экспорте модели YOLO26 в TFLite?#
Если ты столкнулся с ошибками при экспорте моделей YOLO26 в TFLite, распространенные решения включают:
- Проверь совместимость пакетов: Убедись, что ты используешь совместимые версии Ultralytics и TensorFlow. Обратись к нашему installation guide.
- Поддержка моделей: Убедись, что конкретная модель YOLO26 поддерживает экспорт в TFLite, проверив страницу export documentation page от Ultralytics.
- Проблемы с квантованием: При использовании квантования INT8 убедись, что путь к твоему набору данных правильно указан в параметре
data.
Для получения дополнительных советов по устранению неполадок посети наше руководство Common Issues guide.