LiteRT を使用して MediaTek Dimensity に Ultralytics YOLO をデプロイする
Ultralytics YOLO は、既存のLiteRT エクスポートを通じて、MediaTek Dimensity搭載 Android スマートフォンで動作します。MediaTek 専用のエクスポート形式はありません。標準の .tflite モデルをエクスポートし、CPU と GPU の推論に LiteRT を使用する公式のUltralytics YOLO Flutter プラグインで Android 上で実行します。
エクスポート#
LiteRT エクスポートは Linux x86_64 と macOS でサポートされていますが、NVIDIA Jetson などの Linux aarch64 ホストではサポートされていません。分類モデルは 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 プラグインは、LiteRT .tflite エクスポートを Android 上で実行し、YOLO26 の 7 種類すべてのタスクでカメラ推論と単一画像推論に対応します。公式の w8a32 アセットは、yolo-flutter-app v0.7.0 リリースで公開されています。
Google Play でUltralytics YOLO Android アプリをお試しください。以下のプレビューは iOS 上のアプリを示しています。
エクスポートしたモデルを実行するには、Flutter アプリ内の yolo26n_w8a32.tflite を assets/models/ にコピーし、プラグインとアセットを pubspec.yaml に追加します。
dependencies:
flutter:
sdk: flutter
ultralytics_yolo: ^0.7.1
flutter:
assets:
- assets/models/yolo26n_w8a32.tfliteflutter 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'),
),
),
);Android の最小 SDK を 24 に設定してカメラ権限を追加し、スマートフォン上で flutter run を実行します。Android のセットアップについてはプラグインのインストールガイド、単一画像推論についてはクイックスタートをご覧ください。デバイスまたはモデルが GPU を使用できない場合、プラグインは GPU 推論を試みた後、CPU にフォールバックします。
MediaTek デバイスでは、リリース済みの Flutter プラグインは LiteRT の CPU および GPU 推論に対応していますが、MediaTek NPU には対応していません。以下の NPU 結果は、未リリースの NPU 対応プラグインのプロトタイプビルドと LiteRT mediatek 2.3.0 NPU ランタイムを使用し、FP32 エクスポート(quantize なし)で測定したものです。w8a32 アセットは NPU 上で完全にはコンパイルされません。
実測パフォーマンス#
LiteRT ガイドの Xiaomi 17T Pro の結果には、MediaTek NPU 990 と Android 16 / API 36 を搭載した MediaTek Dimensity 9500(MT6993)で、7 種類すべての YOLO26n タスクを実行した結果が掲載されています。各値は、3 回のウォームアップ後に実行した 15 回の呼び出しの平均です。CPU と GPU の測定には ultralytics_yolo 0.7.1 と公式の v0.7.0 w8a32 アセットを使用し、プロトタイプ NPU の測定には FP32 エクスポートを使用しました。YOLO26n の検出にかかる時間は、CPU で 31.4 ms、GPU で 25.6 ms、プロトタイプ NPU 経由で 11.0 ms です。Depth と OBB は NPU の結果がなく、代わりに GPU で実行されます。
Ultralytics モバイルベンチマークページで、他のデバイスやモデルの結果も比較できます。
MediaTek Genio#
これらの結果は、LiteRT を使用する Dimensity 搭載 Android スマートフォンを対象としています。MediaTek Genio IoT プラットフォームでは、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 へのデプロイを検証していません。
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。