YOLO Vision 2026:

Экспорт моделей TFLite для развертывания (устарело)#

Устарело — заменено на LiteRT

Начиная с Ultralytics 8.4.83, отдельный формат экспорта tflite был удален и заменен унифицированным форматом Google LiteRT. LiteRT (Lite Runtime) — это новое поколение и новое название TensorFlow Lite, которое экспортирует ту же модель .tflite, охватывая теперь развертывание на мобильных, встраиваемых, периферийных устройствах и в браузере в рамках единого формата.

format="tflite" по-прежнему работает, но выдает предупреждение об устаревании и вместо этого экспортирует модель LiteRT. В дальнейшем используй format="litert"; актуальные инструкции и параметры экспорта см. в руководстве по экпорту LiteRT.

TensorFlow Lite edge deployment framework

Развертывание моделей computer vision на периферийных или встраиваемых устройствах требует формата, способного обеспечить бесперебойную работу.

Прежний формат экспорта TensorFlow Lite или TFLite оптимизировал модели Ultralytics YOLO26 для таких задач, как object detection и image classification в периферийных приложениях. В этом руководстве сохранен контекст устаревшего развертывания TFLite; для нового экспорта используй LiteRT.

Почему TFLite использовался для экспорта?#

Представленный Google в мае 2017 года в составе их фреймворка TensorFlow, TensorFlow Lite, или сокращенно TFLite, представлял собой фреймворк глубокого обучения с открытым исходным кодом, созданный для инференса на устройствах, также известного как 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.

  • Высокая производительность: Достигает превосходной производительности за счет аппаратного ускорения и оптимизации моделей.

Измеренная производительность (историческая)#

Запись о миграции до и после заморозки

Эти результаты были записаны с помощью плагина Ultralytics Flutter 0.6.8 и LiteRT 2.1.5 на Android 16/API 36 на Xiaomi 17 с 12 ГБ памяти LPDDR5X. Его 3-нм Snapdragon 8 Elite Gen 5 (SM8850) имеет 8-ядерный процессор Qualcomm Oryon (2 производительных ядра до 4.6 ГГц и 6 ядер эффективности до 3.62 ГГц), графический процессор Adreno и NPU Hexagon. В этих таблицах сравниваются устаревшие ресурсы onnx2tf INT8 TFLite с кандидатными экспортами litert-torch, оцененными в ходе миграции. Релизные ресурсы впоследствии были перезаписаны стандартизированными экспортами, поэтому эти цифры не описывают текущие байты ресурса v0.6.6. Актуальные измерения см. в таблицах производительности LiteRT.

Оба формата запускались в одном и том же последовательном проходе GPU при указанных размерах входа. Каждая ячейка представляет собой общее время (предобработка + инференс + постобработка) с разделением по этапам под ним; нативные логи подтвердили, что оба формата делегировали весь граф LiteRT OpenCL (LITERT_CL) на GPU Adreno.

МодельЗадачаразмер
(пиксели)
Устаревший
onnx2tf INT8 TFLite
(мс)
Кандидат
w8a32 LiteRT
(мс)
YOLO26nОбнаружение64014.0
1.8 / 8.1 / 4.2
13.5
1.9 / 8.1 / 3.5
YOLO26n-segСегментация64030.1
1.9 / 20.3 / 8.0
28.6
1.8 / 20.1 / 6.7
YOLO26n-semСемантика64026.4
1.9 / 16.4 / 8.1
32.9
1.8 / 23.0 / 8.2
YOLO26n-clsКлассификация2243.5
0.9 / 2.2 / 0.4
3.2
1.0 / 2.2 / 0.1
YOLO26n-poseПоза64017.4
2.4 / 9.9 / 5.1
14.0
1.9 / 9.3 / 2.8
YOLO26n-obbOBB64013.9
3.0 / 8.3 / 2.7
13.0
2.9 / 7.9 / 2.3

В том же запуске миграции также сравнивались форматы квантования детекции YOLO26n. Инференс является сопоставимой метрикой, зависящей от формата:

Формат AndroidИнференс GPU (мс)Компиляция GPU
onnx2tf INT8 (устаревший TFLite)8.6да
LiteRT w8a32 (кандидат)8.4да
LiteRT INT8 (quantize=8)11.0да
LiteRT FP328.8да
LiteRT w8a16 (quantize="w8a16")Резервный процессорнет

В этом запуске w8a16 переключился на CPU со значением около 660 мс общего времени против примерно 17 мс для форматов GPU. Эти результаты послужили стимулом для выпуска w8a32, но совместимость делегатов и производительность зависят от устройства и версии рантайма. Протестируй целевое устройство и подтверди размещение ускорителя в его логах рантайма.

Варианты развертывания в TFLite#

Прежде чем мы рассмотрим пример экспорта для замены на LiteRT, давай разберемся, как обычно используются модели TFLite.

TFLite предлагает различные варианты развертывания моделей машинного обучения на устройствах, включая:

  • Развертывание в Android и iOS: приложения как для Android, так и для iOS с использованием TFLite могут анализировать видеопотоки с камер и датчики на периферийных устройствах для обнаружения и идентификации объектов. TFLite также предлагает нативные библиотеки iOS, написанные на Swift и Objective-C. На диаграмме архитектуры ниже показан процесс развертывания обученной модели на платформах Android и iOS с использованием TensorFlow Lite.

TensorFlow Lite deployment architecture for mobile

  • Реализация со Embedded Linux: если выполнение инференса на Raspberry Pi с использованием руководства Ultralytics не отвечает требованиям по скорости для твоего сценария использования, ты можешь использовать экспортированную модель TFLite для ускорения времени инференса. Кроме того, можно дополнительно повысить производительность, используя устройство Coral Edge TPU.

  • Развертывание на микроконтроллерах: Модели TFLite также можно развертывать на микроконтроллерах и других устройствах, имеющих всего несколько килобайт памяти. Основная среда выполнения занимает всего 16 КБ на процессорах Arm Cortex M3 и может запускать многие базовые модели. Она не требует поддержки операционной системы, стандартных библиотек C или C++, а также динамического распределения памяти.

Замени экспорт TFLite на LiteRT#

Для нового экспорта конвертируй свою модель в LiteRT. Полученная модель сохраняет расширение файла .tflite.

Установка#

Чтобы установить необходимые пакеты, выполни:

Установка
# Install the required package for YOLO26
pip install ultralytics

Подробные инструкции и лучшие практики, связанные с процессом установки, можно найти в нашем руководстве по установке Ultralytics. Если в процессе установки необходимых пакетов для YOLO26 у тебя возникнут какие-либо трудности, обратись к нашему руководству по частым проблемам за решениями и советами.

Использование#

Все модели Ultralytics YOLO26 поддерживают экспорт из коробки, что позволяет легко интегрировать их в твой привычный рабочий процесс развертывания. Ты можешь посмотреть полный список поддерживаемых форматов экспорта и параметров конфигурации, чтобы выбрать оптимальную настройку для своего приложения.

Заменяющий формат LiteRT поддерживает режимы Export, Predict и Validate. Экспортируй свою модель, затем загрузи экспортированную модель .tflite, чтобы запустить инференс или проверить ее точность.

Экспорт
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to LiteRT format
model.export(format="litert", imgsz=640)  # use imgsz=224 for classification
Предсказание
from ultralytics import YOLO

# Load the exported TFLite model
model = YOLO("yolo26n.tflite")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Валидация
from ultralytics import YOLO

# Load the exported TFLite model
model = YOLO("yolo26n.tflite")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Аргументы экспорта#

АргументТипПо умолчаниюОписание
formatstr'litert'Целевой формат для экспортированной модели, определяющий совместимость с различными средами развертывания.
imgszint или tuple640Желаемый размер изображения для входа модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров.
quantizeint или strNoneТочность квантования: 8 (статический INT8, веса int8 + активации int8; требуется калибровка data/fraction), 'w8a16' (статический, веса int8 + активации int16; требуется калибровка data/fraction), 'w8a32' (динамический INT8, веса int8 + активации FP32; калибровка не требуется) или 32/не задано (FP32). FP16 не экспортируется отдельно — модель FP32 запускается в FP16 автоматически на делегатах GPU. Заменяет устаревшие флаги half/int8.
batchint1Указывает размер пакета для пакетного инференса экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict.
datastrNoneПуть к YAML датасета, необходимый для квантования; для классификации вместо этого указывается каталог датасета или встроенное имя датасета. Если пропущено с quantize=8 или 'w8a16', Ultralytics выбирает датасет калибровки по умолчанию для задачи модели.
fractionfloat, int или list1.0Калибровочное подмножество в виде соотношения, количества изображений или [train, val] соотношений/количеств; список ограничивает train или val, в то время как test остается полным.
devicestrNoneУказывает устройство для экспорта: CPU (device=cpu), MPS для Apple silicon (device=mps).

Дополнительную информацию о процессе экспорта см. на странице документации Ultralytics по экспорту.

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

После экспорта твоей модели Ultralytics YOLO26 в формат LiteRT ты сможешь развернуть полученную модель .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. Для нового экспорта используй LiteRT для создания моделей .tflite для сред периферийных вычислений.

Для получения дополнительных сведений об использовании посетите официальную документацию TFLite.

Кроме того, если тебе интересны другие интеграции Ultralytics YOLO26, загляни на нашу страницу руководства по интеграции. Там ты найдешь много полезной информации и идей.

FAQ#

  • Для нового экспорта используй формат LiteRT. Сначала установи необходимый пакет с помощью:

    pip install ultralytics

    Затем используй следующий фрагмент кода для экспорта модели:

    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export the model to LiteRT format
    model.export(format="litert", imgsz=640)  # use imgsz=224 for classification

    Для пользователей CLI это можно сделать с помощью:

    yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classification

    Для получения подробной информации посети руководство по экспорту Ultralytics.

  • TensorFlow Lite (TFLite) — это фреймворк deep learning с открытым исходным кодом, разработанный для инференса на устройствах, что делает его идеальным для развертывания моделей YOLO26 на мобильных, встраиваемых и IoT-устройствах. Ключевые преимущества включают в себя:

    • Локальная оптимизация: Минимизируй задержку и повышай конфиденциальность, обрабатывая данные локально.
    • Совместимость с платформами: Поддерживает Android, iOS, встроенный Linux и MCU.
    • Производительность: Использует аппаратное ускорение для оптимизации скорости и эффективности модели.

    Чтобы узнать больше, ознакомься с руководством по TFLite.

  • Да, ты можешь запускать модели YOLO26 TFLite на Raspberry Pi для повышения скорости инференса. Сначала экспортируй свою модель в формат LiteRT, как объяснялось выше. Затем используй инструмент, например TensorFlow Lite Interpreter, для выполнения модели на твоем Raspberry Pi.

    Для дальнейшей оптимизации ты можешь рассмотреть возможность использования Coral Edge TPU. Подробные шаги см. в нашем руководстве по развертыванию Raspberry Pi и руководстве по интеграции Edge TPU.

  • Да, TFLite поддерживает развертывание на микроконтроллерах с ограниченными ресурсами. Основная среда выполнения TFLite требует всего 16 КБ памяти на Arm Cortex M3 и может запускать базовые модели YOLO26. Это делает ее подходящей для развертывания на устройствах с минимальной вычислительной мощностью и памятью.

    Для начала работы посети руководство TFLite Micro для микроконтроллеров.

  • TensorFlow Lite обеспечивает широкую совместимость платформ, позволяя развертывать модели YOLO26 на самых разных устройствах, включая:

    • Android и iOS: Нативная поддержка через библиотеки TFLite для Android и iOS.
    • Встроенный Linux: Идеально подходит для одноплатных компьютеров, таких как Raspberry Pi.
    • Микроконтроллеры: Подходит для MCU с ограниченными ресурсами.

    Для получения дополнительной информации о вариантах развертывания см. наше подробное руководство по развертыванию.

  • Если ты столкнулся с ошибками при экспорте моделей YOLO26 в LiteRT, общие решения включают:

    • Проверь совместимость пакетов: убедись, что ты используешь совместимые версии Ultralytics, litert-torch и ai-edge-litert. Обратись к нашему руководству по установке.
    • Поддержка моделей: убедись, что конкретная модель YOLO26 поддерживает экспорт LiteRT, проверив страницу документации по экспорту Ultralytics.
    • Проблемы с квантованием: При использовании квантования INT8 убедись, что путь к твоему датасету правильно указан в параметре data.

    Дополнительные советы по устранению неполадок см. в нашем руководстве по общим проблемам.

Комментарии