Развёртывание Ultralytics YOLO на MediaTek Dimensity с LiteRT
Ultralytics YOLO работает на Android-смартфонах MediaTek Dimensity благодаря уже имеющемуся экспорту LiteRT. Отдельного формата экспорта для MediaTek нет: экспортируй стандартную модель .tflite и запускай её на Android с помощью официального плагина Ultralytics YOLO для Flutter, который использует LiteRT для инференса на CPU и GPU.
Экспорт#
Экспорт LiteRT поддерживается на Linux x86_64 и macOS, но не на хостах Linux aarch64, таких как NVIDIA Jetson. Экспортируй модели классификации в imgsz=224, а модели для всех остальных задач — в imgsz=640.
pip install ultralyticsfrom ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="litert", imgsz=640) # создаёт 'yolo26n.tflite' (FP32)
model.export(format="litert", quantize="w8a32", imgsz=640) # создаёт 'yolo26n_w8a32.tflite'Проверить экспортированную модель на хосте можно с помощью YOLO("yolo26n.tflite")("https://ultralytics.com/images/bus.jpg"). Для этого LiteRT запускается локально; MediaTek NPU не выбирается и не тестируется. Информацию о предсказаниях, валидации и всех аргументах экспорта см. в руководстве по LiteRT.
Развёртывание на Android#
Плагин Ultralytics YOLO для Flutter запускает на Android экспорты LiteRT .tflite с обработкой изображений с камеры и инференсом для одного изображения для всех семи задач YOLO26. Официальные ресурсы w8a32 опубликованы в релизе v0.7.0 приложения yolo-flutter-app.
Попробуй приложение Ultralytics YOLO для Android в Google Play. На изображениях ниже показано приложение для iOS.
Чтобы запустить экспортированную модель, скопируй yolo26n_w8a32.tflite в assets/models/ приложения Flutter и добавь плагин и ресурс в pubspec.yaml:
dependencies:
flutter:
sdk: flutter
ultralytics_yolo: ^0.7.1
flutter:
assets:
- assets/models/yolo26n_w8a32.tfliteЗапусти flutter pub get, а затем используй модель для инференса с камеры в lib/main.dart:
import 'package:flutter/material.dart';
import 'package:ultralytics_yolo/ultralytics_yolo.dart';
void main() => runApp(
MaterialApp(
home: Scaffold(
body: YOLOView(modelPath: 'assets/models/yolo26n_w8a32.tflite'),
),
),
);Установи минимальную версию SDK Android 24, добавь разрешение на использование камеры и запусти flutter run на смартфоне. Инструкции по настройке Android см. в руководстве по установке плагина, а инференс для одного изображения — в кратком руководстве. Плагин пытается выполнять инференс на GPU и переключается на CPU, если устройство или модель не поддерживают GPU.
На устройствах MediaTek выпущенный плагин Flutter поддерживает инференс LiteRT на CPU и GPU, но не на MediaTek NPU. Результаты для NPU ниже получены с помощью прототипной, ещё не выпущенной сборки плагина с поддержкой NPU и среды выполнения LiteRT mediatek 2.3.0 для NPU, используя экспорты FP32 (без quantize). Ресурсы w8a32 не компилируются на NPU полностью.
Измеренная производительность#
В результатах для Xiaomi 17T Pro в руководстве по LiteRT приведены данные по всем семи задачам YOLO26n на устройстве MediaTek Dimensity 9500 (MT6993) с MediaTek NPU 990 и Android 16 / API 36. Каждое значение — среднее по 15 запускам после 3 прогревочных. Для измерений на CPU и GPU использовались ultralytics_yolo 0.7.1 и официальные ресурсы v0.7.0 w8a32; для прототипных измерений на NPU использовались экспорты FP32. Обнаружение объектов YOLO26n занимает 31.4 мс на CPU, 25.6 мс на GPU и 11.0 мс на прототипном NPU. Для оценки глубины и OBB результатов на NPU нет, поэтому эти задачи выполняются на GPU.
Сравни результаты для других устройств и моделей на странице мобильных бенчмарков Ultralytics.
MediaTek Genio#
Эти результаты получены на Android-смартфонах Dimensity с LiteRT. IoT-платформы MediaTek Genio используют отдельный программный стек Yocto и NeuroPilot. Ultralytics не проверяет и не документирует развёртывание на Genio, поэтому приведённые выше результаты для Dimensity неприменимы к платам Genio.
Часто задаваемые вопросы#
Используй
model.export(format="litert", imgsz=640)илиyolo export model=yolo26n.pt format=litert imgsz=640. Для классификации используйimgsz=224. Полученный файл.tfliteможно запустить с помощью плагина Flutter; отдельного формата экспорта для MediaTek нет.Выпущенный плагин поддерживает инференс LiteRT на CPU и GPU. Для приведённых выше результатов на NPU использовалась не выпущенная прототипная версия с моделями FP32; официальные ресурсы
w8a32не компилируются на NPU полностью.Нет. Измерения сделаны на Android-смартфоне, а Genio использует другой программный стек. Ultralytics не проверяла развёртывание на Genio.
Комментарии
Задай вопрос, поделись результатами или помоги кому-нибудь.