Ultralytics YOLO27: Запишись в список ожидания.
Начать

Развёртывание Ultralytics YOLO на MediaTek Dimensity с LiteRT

MediaTek Dimensity chip on a circuit board

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 ultralytics
Экспорт в LiteRT
from 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.

Ultralytics YOLO app previews on iOS showing segmentation, pose, depth, oriented boxes, and detection

Get it on Google Play

Чтобы запустить экспортированную модель, скопируй 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 NPU — прототип

На устройствах 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.

Комментарии

Задай вопрос, поделись результатами или помоги кому-нибудь.