Link to this sectionYOLOモデルをエッジおよびWeb展開用にLiteRTへエクスポートする#
LiteRT(Lite Runtimeの略)は、オンデバイスAI向けのGoogle製高性能ランタイムです。これはTensorFlow Lite (TFLite) の次世代版であり、新しい名称です。同一の.tfliteモデルフォーマットを実行します。LiteRTを使用すれば、エクスポートされた1つのUltralytics YOLOモデルを、モバイル、組み込み、エッジ、ブラウザのすべてに展開可能です。これまではtfliteとtfjsという古いエクスポート形式で個別に扱っていたものが、今後は1つに統合されます。
LiteRTエクスポート形式は、物体検出、セグメンテーション、姿勢推定、分類などのタスクに向けてモデルを最適化するため、幅広いデバイス上で高速かつオフラインでの実行が可能になります。
公式のUltralytics YOLO Flutter pluginは、Android上でLiteRTの.tfliteエクスポートをそのまま実行可能です。リアルタイムカメラ推論、単一画像の予測、GPUアクセラレーション、そしてDepthを含むすべての7つのYOLO26タスクの自動モデルダウンロードに対応しています。Apple製デバイスではCoreML exportを、Qualcomm Snapdragon NPUではQualcomm QNN integrationを参照してください。
The official Ultralytics YOLO NPM package runs LiteRT .tflite exports directly in the browser via LiteRT.js no server or Python required — with real-time webcam inference, single-image prediction, and WebGPU acceleration (automatic CPU/WASM fallback) across all six YOLO26 tasks (detect, segment, pose, OBB, classify, semantic). On WebGPU it's often ~2× faster than ONNX Runtime Web.
npm i @ultralytics/yolo @litertjs/coreLink to this sectionなぜLiteRTにエクスポートすべきなのか?#
LiteRTは、エッジコンピューティングとしても知られるオンデバイス推論のために設計されたオープンソースフレームワークです。開発者はこれを使用することで、学習済みモデルをモバイル、組み込みデバイス、IoTデバイス、従来のコンピュータで実行できるほか、LiteRT.jsを通じてWebブラウザやNode.js上で直接実行することも可能です。
1つのモデル形式で、あらゆるターゲットに対応:
- モバイルおよび組み込み:Android、iOS、組み込みLinux、およびマイクロコントローラ(MCU)。
- エッジアクセラレータ:Coral Edge TPUと互換性があり、さらなる高速化が可能です。
- ブラウザおよびNode.js:LiteRT.jsにより、WebGPU/WASMアクセラレーションを使用してWeb上で同一の
.tfliteモデルを実行可能です。これにより、個別のTensorFlow.jsエクスポートが不要になります。
Link to this sectionLiteRTモデルの主な特徴#
- オンデバイス最適化:データをローカルで処理することでレイテンシを削減し、個人データを送信しないことでプライバシーを強化します。また、モデルサイズを最小化して容量を節約します。
- マルチプラットフォームサポート:Android、iOS、組み込みLinux、マイクロコントローラ、および最新のWebブラウザで動作します。
- ハードウェアアクセラレーション:CPU上でXNNPACKを利用し、OpenCL、Metal、WebGPU経由でGPUアクセラレーションを活用します。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測定されたパフォーマンス#
End-to-end single-image inference for the official YOLO26n Android LiteRT assets (w8a32: int8 weights, FP32 activations) on a Xiaomi 17 phone powered by the Qualcomm Snapdragon 8 Elite Gen 5 (SM8850), measured through the Ultralytics Flutter plugin 0.6.10. Each cell shows the total time (preprocessing + inference + postprocessing, excluding annotation) with the per-stage split beneath it. CPU runs the LiteRT XNNPACK delegate; GPU runs the LiteRT OpenCL/GL delegate (FP16).
| モデル | タスク | サイズ (ピクセル) | CPU w8a32 LiteRT (ms) | GPU Adreno w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | Detect(検出) | 640 | 52.4 1.8 / 48.2 / 2.4 | 13.5 1.9 / 8.1 / 3.5 |
| YOLO26n-seg | Segment(セグメンテーション) | 640 | 72.8 1.8 / 65.3 / 5.7 | 28.6 1.8 / 20.1 / 6.7 |
| YOLO26n-sem | セマンティック | 640 | 60.3 1.8 / 50.4 / 8.1 | 32.9 1.8 / 23.0 / 8.2 |
| YOLO26n-depth | Depth | 640 | 325.1 5.1 / 300.9 / 19.2 | 23.0 2.0 / 12.9 / 8.2 |
| YOLO26n-cls | Classify(分類) | 224 | 10.5 0.9 / 9.6 / 0.1 | 3.2 1.0 / 2.2 / 0.1 |
| YOLO26n-pose | Pose(姿勢推定) | 640 | 56.9 1.8 / 53.9 / 1.2 | 14.0 1.9 / 9.3 / 2.8 |
| YOLO26n-obb | OBB(指向性バウンディングボックス) | 640 | 50.5 1.8 / 47.3 / 1.4 | 13.0 2.9 / 7.9 / 2.3 |
- 速度の値は、Flutterプラグインのオンデバイスベンチマークハーネス(プロファイルモード)を使用して
bus.jpgに対してウォームアップ3回後に15回実行した平均値である単一画像バーストレイテンシです。全タスクスイートを連続して実行するため、CPU負荷の高い前処理ステージは継続的な動作を反映しています(熱的に安定したシングルタスク測定値はこれより低くなります)。GPU/CPU推論ステージは定常状態の計算コストを示しています。 - LiteRTエクスポートはPyTorchモデルを直接トレースし、浮動小数点入力を備えたNCHWの
.tfliteを生成します。GPUデリゲートがグラフ全体をコンパイルするため(ここでは7つのタスクすべてがAdreno GPU上で実行されます)、w8a32ではキャリブレーションデータは不要です。公式のAndroidアセットはyolo-flutter-appv0.6.6releaseでホストされており、詳細なベンチマーク記録はFlutter performance docに記載されています。 - 対応するSnapdragon Hexagon NPU の数値(およびINT8 TFLite CPU/GPUベースライン)については、Qualcomm QNN integrationをご覧ください。
Link to this sectionLiteRTへのエクスポート: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形式はエクスポート、推論、および検証モードをサポートしているため、モデルをエクスポートした後にロードして、ローカルで推論を実行したり精度を検証したりすることが可能です。
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 | エクスポートされたモデルのバッチ推論サイズ、あるいはpredictモードで同時に処理する画像の最大数を指定します。 |
data | str | 'coco8.yaml' | INT8キャリブレーションに使用するデータセットのYAML。quantize=8で省略された場合、Ultralyticsはモデルタスクのデフォルトのキャリブレーションデータセットを選択します。 |
device | str | None | エクスポート先のデバイスを指定します。LiteRTエクスポートはCPU(device=cpu)上で実行されます。 |
従来のtfliteエクスポートとは異なり、LiteRTでは個別のFP16エクスポートは不要です。FP32の.tfliteモデルは、GPUデリゲート(WebGPU、OpenCL、Metal)を使用する場合、実行時に半精度で動作します。これがFP16推論に対する正式なLiteRTのアプローチです。
エクスポートプロセスの詳細については、Ultralyticsのエクスポートに関するドキュメントページを参照してください。
Link to this sectionエクスポートしたYOLO LiteRTモデルの展開#
Ultralytics YOLOモデルをLiteRTにエクスポートした後、さまざまなプラットフォームに展開できます。ローカルで検証する最も迅速な方法は、前述のYOLO("yolo26n.tflite")メソッドです。他の環境への展開については、以下のリソースを参照してください:
Link to this sectionモバイルおよび組み込み#
- Android:AndroidアプリケーションにLiteRTを統合するためのクイックスタートガイドです。
- iOS:iOSアプリケーションにLiteRTモデルを統合・展開するためのガイドです。
- 組み込みLinuxおよびRaspberry Pi:シングルボードコンピュータでLiteRTモデルを実行します。Coral Edge TPUを使用して高速化することも可能です。
- マイクロコントローラ:わずか数キロバイトのメモリしかないMCUに展開可能です。コアランタイムはArm Cortex-M3で約16 KBに収まります。
Link to this sectionブラウザおよびNode.js (LiteRT.js)#
- LiteRT.jsの概要:WebGPU/WASMアクセラレーションにより、ブラウザ上で直接同じ
.tfliteモデルを実行し、サーバー側の計算を不要にしてデータをユーザーのデバイス内に保持します。 - エンドツーエンドの例:モバイル、エッジ、Web全体でLiteRTを実装するための実践的な例とチュートリアルです。
Link to this section要約#
本ガイドでは、Ultralytics YOLOモデルをLiteRT形式にエクスポートする方法を解説しました。モバイル/エッジ(旧TFLite)とブラウザ(旧TF.js)の展開を単一の.tfliteモデルに統合することで、LiteRTはYOLOモデルをより高速かつ軽量にし、あらゆるオンデバイスターゲット間でポータブルにします。
詳細については、LiteRT公式ドキュメントをご覧ください。
また、他のUltralytics YOLO統合に興味がある場合は、統合ガイドページで役立つリソースを多数紹介していますので、ぜひご覧ください。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionYOLOモデルを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 sectionLiteRT、TFLite、TF.jsの違いは何ですか?#
LiteRTはTensorFlow Liteの新しい名称です。モデルフォーマット(.tflite)やランタイムの系譜は同じで、Googleによってブランド名が変更されました。Ultralyticsでは、これまで2つの別々のフォーマットを必要としていた両方のユースケースを、単一のlitertエクスポート形式でカバーできるようになりました:
- 従来の
tfliteフォーマット → モバイル、組み込み、およびエッジへの展開。 - The old
tfjsformat → browser and Node.js deployment, now handled by LiteRT.js running the same.tflitefile.
既存の.tfliteファイルがある場合、YOLO("model.tflite")で直接ロードでき、LiteRTバックエンドを通じて実行されます。
Link to this sectionYOLO LiteRTモデルをRaspberry Piで実行できますか?#
はい。モデルをLiteRT形式にエクスポートし、Raspberry Pi上で実行することで推論速度を向上させることができます。さらなる最適化にはCoral Edge TPUを検討してください。詳細な手順については、Raspberry Pi展開ガイドを参照してください。
Link to this sectionLiteRTを使ってブラウザでYOLOモデルを実行できますか?#
はい。LiteRT.jsを使用すると、WebGPU/WASMアクセラレーションにより、WebブラウザやNode.jsアプリケーション上でエクスポート済みの同じ.tfliteモデルを直接実行できます。これにより、以前のTensorFlow.jsワークフローが置き換わります。個別のブラウザ用エクスポートは不要で、LiteRTモデルをLiteRT.jsランタイムで展開するだけです。
Link to this sectionLiteRTはFP16(半精度)推論をサポートしていますか?#
はい、実行時にサポートされます。FP32のLiteRTモデルは、GPUデリゲート(WebGPU、OpenCL、またはMetal)で実行される際に自動的にFP16で動作します。これが正式なLiteRTのアプローチです。したがって、専用のFP16エクスポートは不要です。さらなる圧縮が必要な場合は、quantize=8を使用してINT8量子化を行ってください。
Link to this sectionLiteRTエクスポート中に発生する一般的な問題をトラブルシューティングするにはどうすればよいですか?#
YOLOモデルをLiteRTにエクスポートする際にエラーが発生した場合、一般的な解決策は以下の通りです:
- プラットフォームの確認:LiteRTのエクスポートはLinux x86_64およびmacOSでサポートされています。環境が適合しているか確認してください。
- パッケージ互換性の確認:互換性のあるバージョンのUltralyticsを使用していることを確認してください。インストールガイドを参照してください。
- 量子化の問題: INT8量子化を使用する場合は、
dataパラメータでデータセットのパスが正しく指定されていることを確認してください。
その他のトラブルシューティングのヒントについては、共通の問題ガイドをご覧ください。