Ultralytics YOLO27: ウェイティングリストに登録してください。
はじめる

LiteRT を使用して MediaTek Dimensity に Ultralytics YOLO をデプロイする

MediaTek Dimensity chip on a circuit board

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 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 プラグインは、LiteRT .tflite エクスポートを Android 上で実行し、YOLO26 の 7 種類すべてのタスクでカメラ推論と単一画像推論に対応します。公式の w8a32 アセットは、yolo-flutter-app v0.7.0 リリースで公開されています。

Google Play でUltralytics YOLO Android アプリをお試しください。以下のプレビューは iOS 上のアプリを示しています。

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

Get it on Google Play

エクスポートしたモデルを実行するには、Flutter アプリ内の yolo26n_w8a32.tflite を assets/models/ にコピーし、プラグインとアセットを 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'),
        ),
      ),
    );

Android の最小 SDK を 24 に設定してカメラ権限を追加し、スマートフォン上で flutter run を実行します。Android のセットアップについてはプラグインのインストールガイド、単一画像推論についてはクイックスタートをご覧ください。デバイスまたはモデルが GPU を使用できない場合、プラグインは GPU 推論を試みた後、CPU にフォールバックします。

MediaTek NPU のサポートはプロトタイプです

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 へのデプロイを検証していません。

コメント

質問したり、結果を共有したり、ほかの人をサポートしたりできます。