Link to this sectionЭкспорт моделей YOLO в LiteRT для развертывания на периферийных устройствах и в веб-среде#
LiteRT (сокращение от Lite Runtime) — это высокопроизводительная среда выполнения Google для ИИ на устройствах. Это следующее поколение и новое название TensorFlow Lite (TFLite), использующее тот же формат моделей .tflite. С помощью LiteRT одна экспортированная модель Ultralytics YOLO развертывается на мобильных, встроенных, периферийных устройствах и в браузере, охватывая все возможности, которые ранее требовали отдельных форматов tflite и tfjs, теперь под одной оболочкой.
Формат экспорта LiteRT оптимизирует твои модели для таких задач, как обнаружение объектов, сегментация, оценка позы и классификация, чтобы они работали быстро и без подключения к сети на самых разных устройствах.
Link to this sectionПочему стоит экспортировать в LiteRT?#
LiteRT — это фреймворк с открытым исходным кодом, предназначенный для локального вывода (инференса), также известного как периферийные вычисления. Он дает разработчикам инструменты для запуска обученных моделей на мобильных, встроенных и IoT-устройствах, обычных компьютерах и — через LiteRT.js — непосредственно в веб-браузерах и Node.js.
Один формат модели для всех целей:
- Мобильные и встроенные системы: Android, iOS, встроенный Linux и микроконтроллеры (MCU).
- Периферийные ускорители: Совместимость с Coral Edge TPU для дополнительного ускорения.
- Браузер и Node.js: LiteRT.js запускает ту же модель
.tfliteв вебе с ускорением WebGPU/WASM, устраняя необходимость в отдельном экспорте TensorFlow.js.
Link to this sectionКлючевые особенности моделей LiteRT#
- Оптимизация на устройстве: Снижает задержку за счет локальной обработки данных, повышает конфиденциальность, не передавая личные данные, и минимизирует размер модели для экономии места.
- Поддержка множества платформ: Работает на Android, iOS, встроенном Linux, микроконтроллерах и современных веб-браузерах.
- Аппаратное ускорение: Использует XNNPACK на CPU, а также ускорение GPU через OpenCL, Metal и WebGPU. Делегат GPU по умолчанию работает в режиме FP16 для дополнительного ускорения.
- Квантование: Поддерживает FP32, статический INT8 (
quantize=8, int8 веса + int8 активации), статический INT16-активации (quantize="w8a16", int8 веса + int16 активации для более высокой точности) и динамический INT8 (quantize="w8a32", int8 веса + FP32 активации, калибровочные данные не нужны) для сжатия моделей и ускорения инференса с минимальной потерей точности. - Поддержка различных языков: Совместимо с Java/Kotlin, Swift, Objective-C, C++, Python и JavaScript.
Link to this sectionЭкспорт в LiteRT: Конвертация твоей модели YOLO#
Ты можешь повысить эффективность выполнения на устройстве и расширить возможности развертывания, конвертировав свои модели в формат LiteRT.
Link to this sectionУстановка#
Чтобы установить необходимый пакет, выполни:
# Install the required package for YOLO
pip install ultralyticsПодробные инструкции и лучшие практики ищи в нашем руководстве по установке Ultralytics. Если возникнут трудности, загляни в наш справочник по общим проблемам.
Экспорт в LiteRT в настоящее время поддерживается на Linux x86_64 и macOS. Сама экспортированная модель .tflite запускается на всех платформах, поддерживаемых LiteRT (мобильных, встроенных, периферийных и в браузере).
Link to this sectionИспользование#
Все модели Ultralytics YOLO поддерживают экспорт «из коробки». Формат LiteRT поддерживает режимы Export, Predict и Validate, поэтому ты можешь экспортировать модель, а затем загрузить ее для запуска инференса или проверки точности локально.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to LiteRT format
model.export(format="litert") # creates 'yolo26n.tflite'from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Dynamic INT8: int8 weights, FP32 activations - no calibration data needed
model.export(format="litert", quantize="w8a32") # creates 'yolo26n_w8a32.tflite'
# Static INT8: int8 weights + int8 activations - needs calibration data
model.export(format="litert", quantize=8, data="coco8.yaml") # creates 'yolo26n_int8.tflite'
# Static w8a16: int8 weights + int16 activations (higher accuracy) - needs calibration data
model.export(format="litert", quantize="w8a16", data="coco8.yaml") # creates 'yolo26n_w8a16.tflite'from ultralytics import YOLO
# Load the exported LiteRT model
model = YOLO("yolo26n.tflite")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported LiteRT model
model = YOLO("yolo26n.tflite")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionАргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'litert' | Целевой формат для экспортированной модели, определяющий совместимость с различными средами развертывания. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений или кортежем (height, width) для конкретных размеров. |
quantize | int или str | None | Точность квантования: 8 (статический INT8, int8 веса + int8 активации; требует калибровочные data/fraction), 'w8a16' (статический, int8 веса + int16 активации; требует калибровочные data/fraction), 'w8a32' (динамический INT8, int8 веса + FP32 активации; калибровка не нужна) или 32/не задано (FP32). FP16 не экспортируется отдельно (см. примечание ниже). Заменяет устаревшие флаги half/int8. |
batch | int | 1 | Задает размер пакета (batch) для вывода экспортированной модели или максимальное количество изображений, которые модель будет обрабатывать одновременно в режиме predict. |
data | str | 'coco8.yaml' | YAML-файл набора данных, используемый для калибровки INT8. Если при quantize=8 он не указан, Ultralytics выбирает стандартный набор данных для калибровки под задачу модели. |
device | str | None | Указывает устройство для экспорта. Экспорт LiteRT выполняется на CPU (device=cpu). |
В отличие от старого экспорта tflite, LiteRT не требует отдельного экспорта FP16. Модель FP32 .tflite запускается в половинной точности во время выполнения при использовании делегата GPU (WebGPU, OpenCL, Metal) — это официальный подход LiteRT к инференсу FP16.
Для получения дополнительной информации о процессе экспорта посети страницу документации Ultralytics по экспорту.
Link to this sectionРазвертывание экспортированных моделей YOLO LiteRT#
После экспорта модели Ultralytics YOLO в LiteRT ты можешь развернуть ее на различных платформах. Самый быстрый способ проверить ее локально — метод YOLO("yolo26n.tflite"), показанный выше. Для развертывания в других средах ознакомься со следующими ресурсами:
Link to this sectionМобильные и встроенные системы#
- Android: Краткое руководство по интеграции LiteRT в приложения для Android.
- iOS: Руководство по интеграции и развертыванию моделей LiteRT в приложениях iOS.
- Встроенный Linux и Raspberry Pi: Запускай модели LiteRT на одноплатных компьютерах, при необходимости с ускорением через Coral Edge TPU.
- Микроконтроллеры: Развертывание на MCU с памятью всего в несколько килобайт — основная среда выполнения занимает около 16 КБ на Arm Cortex-M3.
Link to this sectionБраузер и Node.js (LiteRT.js)#
- Обзор LiteRT.js: Запускай ту же модель
.tfliteнепосредственно в браузере с ускорением WebGPU/WASM, исключая серверные вычисления и сохраняя данные на устройстве пользователя. - Комплексные примеры: Практические примеры и руководства по внедрению LiteRT на мобильных, периферийных устройствах и в вебе.
Link to this sectionРезюме#
В этом руководстве мы разобрали, как экспортировать модели Ultralytics YOLO в формат LiteRT. Объединив развертывание на мобильных/периферийных устройствах (ранее TFLite) и в браузере (ранее TF.js) в одну модель .tflite, LiteRT делает твои модели YOLO быстрее, меньше и переносимее практически на любую целевую платформу на устройстве.
Дополнительные сведения можно найти в официальной документации LiteRT.
Кроме того, если тебе интересны другие интеграции Ultralytics YOLO, загляни на нашу страницу руководств по интеграции, где собрано множество полезных ресурсов.
Link to this sectionFAQ#
Link to this sectionКак экспортировать модель YOLO в формат LiteRT?#
Используй библиотеку Ultralytics для экспорта модели YOLO в LiteRT (.tflite). Сначала установи пакет:
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") # creates 'yolo26n.tflite'Для пользователей CLI:
yolo export model=yolo26n.pt format=litert # creates 'yolo26n.tflite'Для получения подробной информации посети руководство по экспорту Ultralytics.
Link to this sectionВ чем разница между LiteRT, TFLite и TF.js?#
LiteRT — это новое название TensorFlow Lite: тот же формат модели .tflite, та же родословная среды выполнения, проведен ребрендинг Google. В Ultralytics единый формат экспорта litert теперь охватывает оба варианта использования, для которых раньше требовались два разных формата:
- Старый формат
tflite→ развертывание на мобильных, встроенных и периферийных устройствах. - Старый формат
tfjs→ развертывание в браузере и Node.js, теперь обрабатывается через LiteRT.js с использованием того же файла.tflite.
Если у тебя уже есть файл .tflite, ты можешь загрузить его напрямую через YOLO("model.tflite"), и он будет работать через бэкенд LiteRT.
Link to this sectionМогу ли я запустить модели YOLO LiteRT на Raspberry Pi?#
Да. Экспортируй модель в формат LiteRT, а затем запусти ее на Raspberry Pi, чтобы повысить скорость инференса. Для дальнейшей оптимизации рассмотри возможность использования Coral Edge TPU. Подробные шаги см. в нашем руководстве по развертыванию на Raspberry Pi.
Link to this sectionМогу ли я запустить модели YOLO в браузере с помощью LiteRT?#
Да. LiteRT.js запускает ту же экспортированную модель .tflite непосредственно в веб-браузере или приложении Node.js с ускорением WebGPU/WASM. Это заменяет предыдущий рабочий процесс TensorFlow.js — отдельный экспорт для браузера больше не нужен, просто разверни свою модель LiteRT с помощью среды выполнения LiteRT.js.
Link to this sectionПоддерживает ли LiteRT инференс FP16 (половинной точности)?#
Да, во время выполнения. Модель LiteRT FP32 автоматически запускается в FP16 при выполнении на делегате GPU (WebGPU, OpenCL или Metal), что является официальным подходом LiteRT. Поэтому тебе не нужен специальный экспорт FP16; для дальнейшего сжатия используй квантование INT8 с помощью quantize=8.
Link to this sectionКак устранить распространенные проблемы при экспорте в LiteRT?#
Если ты столкнулся с ошибками при экспорте моделей YOLO в LiteRT, вот стандартные решения:
- Проверь платформу: Экспорт LiteRT поддерживается на Linux x86_64 и macOS. Убедись, что твоя среда соответствует требованиям.
- Проверь совместимость пакета: Убедись, что используешь совместимую версию Ultralytics. См. наше руководство по установке.
- Проблемы квантования: При использовании квантования INT8 убедись, что путь к набору данных правильно указан в параметре
data.
Дополнительные советы по устранению неполадок ищи в нашем руководстве по распространенным проблемам.