Руководство по экспорту модели YOLO11 в TFLite для развертывания
Развертывание моделей компьютерного зрения на периферийных или встроенных устройствах требует формата, обеспечивающего бесперебойную работу.
Формат экспорта TensorFlow Lite или TFLite позволяет оптимизировать ваши модели Ultralytics YOLO11 для таких задач, как обнаружение объектов и классификация изображений в приложениях на базе периферийных устройств. В этом руководстве мы рассмотрим шаги по преобразованию ваших моделей в формат TFLite, что упростит эффективную работу ваших моделей на различных периферийных устройствах.
Зачем экспортировать в TFLite?
Представленный Google в мае 2017 года как часть их фреймворка TensorFlow, TensorFlow Lite или, сокращенно, TFLite, — это фреймворк глубокого обучения с открытым исходным кодом, предназначенный для логического вывода на устройстве, также известного как периферийные вычисления. Он предоставляет разработчикам необходимые инструменты для выполнения обученных моделей на мобильных, встроенных и IoT-устройствах, а также на традиционных компьютерах.
TensorFlow Lite совместим с широким спектром платформ, включая встроенные системы Linux, Android, iOS и MCU. Экспорт вашей модели в TFLite делает ваши приложения быстрее, надежнее и позволяет работать в автономном режиме.
Ключевые особенности моделей TFLite
Модели TFLite предлагают широкий спектр ключевых функций, которые обеспечивают машинное обучение на устройстве, помогая разработчикам запускать свои модели на мобильных, встроенных и периферийных устройствах:
-
Оптимизация на устройстве: TFLite оптимизирует машинное обучение на устройстве, снижая задержку за счет локальной обработки данных, повышая конфиденциальность за счет не передачи персональных данных и минимизируя размер модели для экономии места.
-
Поддержка нескольких платформ: TFLite предлагает широкую совместимость с платформами, поддерживая Android, iOS, встроенные системы Linux и микроконтроллеры.
-
Разнообразная языковая поддержка: TFLite совместим с различными языками программирования, включая Java, Swift, Objective-C, C++ и Python.
-
Высокая производительность: Достигает превосходной производительности благодаря аппаратному ускорению и оптимизации модели.
Варианты развертывания в TFLite
Прежде чем мы рассмотрим код для экспорта моделей YOLO11 в формат 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++ или динамического выделения памяти.
Экспорт в TFLite: преобразование вашей модели YOLO11
Вы можете повысить эффективность выполнения модели на устройстве и оптимизировать производительность, преобразовав свои модели в формат TFLite.
Установка
Чтобы установить необходимые пакеты, выполните команду:
Установка
# Install the required package for YOLO11
pip install ultralytics
Подробные инструкции и рекомендации, касающиеся процесса установки, см. в нашем руководстве по установке Ultralytics. Если во время установки необходимых пакетов для YOLO11 у вас возникнут какие-либо трудности, обратитесь к нашему руководству по распространенным проблемам для получения решений и советов.
Использование
Все модели Ultralytics YOLO11 разработаны для поддержки экспорта из коробки, что упрощает их интеграцию в предпочитаемый вами рабочий процесс развертывания. Вы можете просмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать оптимальную настройку для вашего приложения.
Использование
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
# Load the exported TFLite model
tflite_model = YOLO("yolo11n_float32.tflite")
# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TFLite format
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
# Run inference with the exported model
yolo predict model='yolo11n_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 по экспорту.
Развертывание экспортированных моделей YOLO11 TFLite
После успешного экспорта ваших моделей Ultralytics YOLO11 в формат TFLite вы можете их развернуть. Основным и рекомендуемым первым шагом для запуска модели TFLite является использование YOLO("model.tflite")
метод, как указано в предыдущем фрагменте кода использования. Однако для получения подробных инструкций по развертыванию ваших моделей TFLite в различных других средах ознакомьтесь со следующими ресурсами:
-
Android: Краткое руководство по интеграции TensorFlow Lite в приложения Android, содержащее простые в использовании шаги по настройке и запуску моделей машинного обучения.
-
iOS: Ознакомьтесь с этим подробным руководством для разработчиков по интеграции и развертыванию моделей TensorFlow Lite в приложениях iOS, предлагающим пошаговые инструкции и ресурсы.
-
Сквозные примеры: На этой странице представлен обзор различных примеров TensorFlow Lite, демонстрирующих практические приложения и учебные пособия, призванные помочь разработчикам внедрить TensorFlow Lite в свои проекты машинного обучения на мобильных и периферийных устройствах.
Обзор
В этом руководстве мы сосредоточились на том, как экспортировать в формат TFLite. Преобразовав ваши модели Ultralytics YOLO11 в формат модели TFLite, вы можете повысить эффективность и скорость моделей YOLO11, что делает их более эффективными и подходящими для периферийных вычислительных сред.
Для получения более подробной информации об использовании посетите официальную документацию TFLite.
Кроме того, если вам интересны другие интеграции Ultralytics YOLO11, обязательно ознакомьтесь с нашей страницей руководства по интеграции. Там вы найдете массу полезной информации и идей.
Часто задаваемые вопросы
Как экспортировать модель YOLO11 в формат TFLite?
Чтобы экспортировать модель YOLO11 в формат TFLite, вы можете использовать библиотеку Ultralytics. Сначала установите необходимый пакет, используя:
pip install ultralytics
Затем используйте следующий фрагмент кода для экспорта вашей модели:
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
Для пользователей CLI это можно сделать с помощью:
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
Для получения более подробной информации посетите руководство по экспорту Ultralytics.
Каковы преимущества использования TensorFlow Lite для развертывания моделей YOLO11?
TensorFlow Lite (TFLite) — это платформа глубокого обучения с открытым исходным кодом, предназначенная для логического вывода на устройстве, что делает ее идеальной для развертывания моделей YOLO11 на мобильных, встроенных и IoT-устройствах. Ключевые преимущества включают в себя:
- Оптимизация на устройстве: минимизируйте задержку и повысьте конфиденциальность, обрабатывая данные локально.
- Совместимость платформ: поддержка Android, iOS, встроенной Linux и MCU.
- Производительность: использует аппаратное ускорение для оптимизации скорости и эффективности модели.
Чтобы узнать больше, ознакомьтесь с руководством по TFLite.
Можно ли запускать модели YOLO11 TFLite на Raspberry Pi?
Да, вы можете запускать модели YOLO11 TFLite на Raspberry Pi для повышения скорости вывода. Сначала экспортируйте свою модель в формат TFLite, как описано выше. Затем используйте такой инструмент, как TensorFlow Lite Interpreter, для выполнения модели на вашем Raspberry Pi.
Для дальнейшей оптимизации вы можете рассмотреть возможность использования Coral Edge TPU. Подробные инструкции см. в нашем руководстве по развертыванию на Raspberry Pi и руководстве по интеграции Edge TPU.
Могу ли я использовать модели TFLite на микроконтроллерах для прогнозирования YOLO11?
Да, TFLite поддерживает развертывание на микроконтроллерах с ограниченными ресурсами. Основной среде выполнения TFLite требуется всего 16 КБ памяти на Arm Cortex M3, и она может запускать базовые модели YOLO11. Это делает его пригодным для развертывания на устройствах с минимальной вычислительной мощностью и памятью.
Чтобы начать, посетите руководство по TFLite Micro для микроконтроллеров.
Какие платформы совместимы с экспортированными моделями YOLO11 в формате TFLite?
TensorFlow Lite обеспечивает широкую совместимость платформ, позволяя развертывать модели YOLO11 на самых разных устройствах, в том числе:
- Android и iOS: встроенная поддержка через библиотеки TFLite для Android и iOS.
- Встроенный Linux: идеально подходит для одноплатных компьютеров, таких как Raspberry Pi.
- Микроконтроллеры: подходят для MCU с ограниченными ресурсами.
Для получения дополнительной информации о вариантах развертывания см. наше подробное руководство по развертыванию.
Как устранить распространенные проблемы при экспорте модели YOLO11 в TFLite?
Если вы столкнулись с ошибками при экспорте моделей YOLO11 в TFLite, распространенные решения включают:
- Проверьте совместимость пакетов: убедитесь, что вы используете совместимые версии Ultralytics и TensorFlow. См. наше руководство по установке.
- Поддержка модели: Убедитесь, что конкретная модель YOLO11 поддерживает экспорт в TFLite, проверив страницу документации по экспорту Ultralytics.
- Проблемы квантования: При использовании квантования INT8 убедитесь, что путь к вашему набору данных правильно указан в
data
параметр.
Дополнительные советы по устранению неполадок можно найти в нашем руководстве по распространенным проблемам.