エンタープライズ対応のセキュリティ: ISO 27001 + SOC 2 Type I準拠。

Link to this sectionデプロイ用TFLiteモデルエクスポート(非推奨)#

非推奨 — LiteRTに置き換えられました

Ultralytics 8.4.83より、スタンドアロンのtfliteエクスポート形式が廃止され、統合された**Google LiteRT形式に置き換わりました。LiteRT (Lite Runtime) はTensorFlow Liteの次世代版であり、新しい名称です。これまで通り同じ.tfliteモデル**をエクスポートし、モバイル、組み込み、エッジ、ブラウザでのデプロイを単一の形式でカバーします。

format="tflite"は引き続き動作しますが、非推奨の警告が出力され、代わりにLiteRTモデルがエクスポートされます。今後は**format="litert"を使用してください**。最新のエクスポート手順とオプションについては、**LiteRTエクスポートガイド**を参照してください。

TensorFlow Lite edge deployment framework

コンピュータビジョンモデルをエッジデバイスや組み込みデバイスにデプロイするには、シームレスなパフォーマンスを確保できるフォーマットが必要です。

The former TensorFlow Lite or TFLite export format optimized Ultralytics YOLO26 models for tasks like object detection and image classification in edge applications. This guide preserves the legacy TFLite deployment context; use LiteRT for new exports.

Link to this sectionなぜTFLiteがエクスポートに使用されていたのか#

2017年5月にGoogleのTensorFlowフレームワークの一部として導入されたTensorFlow Lite(略称TFLite)は、オンデバイス推論(エッジコンピューティングとも呼ばれます)向けに設計されたオープンソースのディープラーニングフレームワークです。これにより、開発者は学習済みモデルをモバイル、組み込み機器、IoTデバイス、さらには従来のコンピューター上で実行するためのツールを得ることができました。

TensorFlow Liteは、組み込みLinux、Android、iOS、マイクロコントローラー(MCU)など、幅広いプラットフォームをサポートしていました。TFLiteエクスポートにより、アプリケーションはモデルをローカルかつオフラインで実行することが可能になりました。

Link to this sectionTFLiteモデルの主な機能#

TFLiteモデルには、開発者がモバイル、組み込み、エッジデバイスでモデルを実行できるようにする、オンデバイス機械学習のための多くの主要機能が備わっています。

  • オンデバイス最適化: TFLiteはオンデバイス機械学習向けに最適化されており、データをローカルで処理することでレイテンシを削減し、個人データを送信しないことでプライバシーを強化し、さらにモデルサイズを最小化して容量を節約します。

  • マルチプラットフォームサポート: TFLiteはAndroid、iOS、組み込みLinux、マイクロコントローラをサポートしており、広範なプラットフォーム互換性を提供します。

  • 多様な言語サポート: TFLiteは、Java、Swift、Objective-C、C++、Pythonを含む様々なプログラミング言語と互換性があります。

  • 高性能: ハードウェアアクセラレーションとモデル最適化を通じて、優れたパフォーマンスを実現します。

Link to this section測定されたパフォーマンス(履歴)#

フォーマット移行の前後比較

これらのTFLiteの数値は、onnx2tf-TFLiteからLiteRTへの移行に向けた履歴的な前後比較レコードとして保持されています。以下は、従来のonnx2tf INT8 TFLiteエクスポートと、新しい**LiteRT w8a32**エクスポートの比較です(LiteRTの測定パフォーマンス表を参照)。これらは、新しいlitert-torchフォーマットが置き換え対象のフォーマットに対してどこでパフォーマンスが低下しているかを示すためにGoogle LiteRTチームと共有されています。詳細は以下のフォーマットの回帰を参照してください。

Xiaomi 17 (Qualcomm Snapdragon 8 Elite Gen 5, SM8850) のAdreno GPU上でのタスクごとの実行前後比較です。Ultralytics Flutter plugin 0.6.8 を介して測定しました。従来のonnx2tf INT8 TFLite アセット(NHWC、入力 images)と、新しい w8a32 LiteRT アセット(NCHW、入力 args_0)を、出荷時のAndroid imgsz で同じ連続スイープにてLiteRT 2.x上で実行しています。各セルは合計時間(前処理 + 推論 + 後処理)であり、その下にステージごとの分割時間を記載しています。どちらのフォーマットもGPU上で完全にコンパイルされています。

モデルタスクサイズ
(ピクセル)

onnx2tf INT8 TFLite
(ms)

w8a32 LiteRT
(ms)
YOLO26nDetect(検出)64014.0
1.8 / 8.1 / 4.2
13.5
1.9 / 8.1 / 3.5
YOLO26n-segSegment(セグメンテーション)64030.1
1.9 / 20.3 / 8.0
28.6
1.8 / 20.1 / 6.7
YOLO26n-semセマンティック64026.4
1.9 / 16.4 / 8.1
32.9
1.8 / 23.0 / 8.2
YOLO26n-clsClassify(分類)2243.5
0.9 / 2.2 / 0.4
3.2
1.0 / 2.2 / 0.1
YOLO26n-posePose(姿勢推定)64017.4
2.4 / 9.9 / 5.1
14.0
1.9 / 9.3 / 2.8
YOLO26n-obbOBB(指向性バウンディングボックス)64013.9
3.0 / 8.3 / 2.7
13.0
2.9 / 7.9 / 2.3

w8a32 LiteRTは、合計レイテンシにおいて6つのタスクのうち5つで従来のonnx2tf INT8フォーマットと同等かそれを上回ります。Semanticは依然としてフォーマットの回帰対象です。これは、前処理のクリーンアップ後であっても、w8a32 NCHWロジットが従来のNHWCロジットよりも推論時間にコストがかかるためです。従来のonnx2tfモデルは、新しいNCHWエクスポートと並行してLiteRT 2.x上で変更なしに実行できます。公式のAndroid LiteRTアセットは yolo-flutter-app v0.6.6 リリース でホストされており、詳細なベンチマーク記録は Flutterパフォーマンスドキュメント に記載されています。

Link to this sectionフォーマットの回帰 vs LiteRT#

Xiaomi 17 のAdreno GPUでの同一デバイスYOLO26n検出。従来のonnx2tf INT8 TFLiteと4つのLiteRT量子化フォーマットを、すべて1回の持続的な実行で測定しました(したがって、推論が比較可能なフォーマット依存のメトリクスとなります):

AndroidフォーマットGPU推論 (ms)GPUコンパイル
onnx2tf INT8 (レガシー TFLite)8.6はい
LiteRT w8a32 (新しい公式)8.4はい
LiteRT INT8 (quantize=8)11.0はい
LiteRT FP328.8はい
LiteRT w8a16 (quantize="w8a16")(CPUフォールバック)いいえ — 失敗

本番環境のAndroidアセットをonnx2tf TFLiteからLiteRTへ移行する際に判明した、Google LiteRT / litert-torchチームへの課題:

  1. NCHWレイアウトにより、コンシューマー側でのレイアウト認識が必要になります。 litert-torchはPyTorchモデルをトレースし、float入力を伴う NCHW [1,3,H,W] を出力しますが、onnx2tf TFLiteエクスポートはカメラ/ビットマップレイアウトと一致する NHWC [1,H,W,3] でした。現在のFlutterプラグインはRGBパッキング中に直接プレーンなCHWを書き込むため、個別のHWC→CHW転置は不要ですが、より単純なコンシューマーでは依然として直接的なプレーンパッキングか、追加の転置が必要です。
  2. quantize="w8a16"はGPU (OpenCL) デリゲート上でコンパイルされず、CPUパスにサイレントにフォールバックします。これは約40倍低速(約660 ms vs 約17 ms)であり、int16アクティベーション形式はGPUデプロイメントで使用できません。
  3. 静的INT8 (quantize=8) は最も低速なGPUフォーマットです — 同等の従来のonnx2tf INT8モデルが約8.6 msであるのに対し、約11 msかかります。つまり、LiteRT独自のINT8パスは、置き換えたフォーマットに対して性能が低下しています。動的レンジのw8a32のみが、以前のINT8速度と一致する唯一のLiteRTフォーマットであり、これが現在出荷されている理由です。
  4. セマンティックモデルは、グラフ内にArgMaxオプションのない未加工のNCHWロジットとしてエクスポートされます。 これにより、[1, C, H, W]に対するキャッシュ効率の悪いホスト側のargmax処理が強制されます(各クラスプレーンはH×Wだけ離れています)。onnx2tf、CoreML、およびQNNパスでは、代わりにコンパクトなクラスマップを出力できます。
  5. 出力テンソルが output_0, output_1, … にリネームされました (onnx2tfの Identity, Identity_1, … と比較して)。これにより、コンシューマー側で新しい名前を追加するまで、ランタイムの出力形状検索が正常に機能しなくなりました。

対応するLiteRT w8a32の数値(現在出荷されているフォーマット)は、LiteRTページに記載されています。

Link to this sectionTFLiteにおけるデプロイオプション#

LiteRTへの置き換えに関するエクスポート例を見る前に、TFLiteモデルが一般的にどのように使用されているかを理解しましょう。

TFLiteは、機械学習モデルに対して以下のような様々なオンデバイスデプロイオプションを提供しています。

  • AndroidおよびiOSへのデプロイ: TFLiteを搭載したAndroidおよびiOSアプリケーションは、エッジベースのカメラフィードやセンサーを分析し、物体を検出・識別できます。また、TFLiteはSwiftおよびObjective-Cで記述されたネイティブiOSライブラリも提供しています。以下のアーキテクチャ図は、TensorFlow Liteを使用して学習済みモデルをAndroidおよびiOSプラットフォームにデプロイするプロセスを示しています。

TensorFlow Lite deployment architecture for mobile

  • 組み込みLinuxでの実装: Raspberry Pi 上で Ultralyticsガイド を使用して推論を実行しても、ユースケースの速度要件を満たせない場合は、エクスポートされたTFLiteモデルを使用して推論時間を短縮できます。さらに、Coral Edge TPUデバイス を活用することで、パフォーマンスをさらに向上させることが可能です。

  • マイクロコントローラへのデプロイ: TFLiteモデルは、わずか数キロバイトのメモリしか搭載していないマイクロコントローラやその他のデバイスにもデプロイ可能です。コアランタイムはArm Cortex M3上でわずか16 KBのサイズに収まり、多くの基本的なモデルを実行できます。オペレーティングシステムのサポートや、標準のC/C++ライブラリ、動的なメモリ割り当ては必要ありません。

Link to this sectionTFLiteエクスポートをLiteRTに置き換える#

For new exports, convert your model to LiteRT. The resulting model keeps the .tflite file extension.

Link to this sectionインストール#

必要なパッケージをインストールするには、以下を実行してください。

インストール
# Install the required package for YOLO26
pip install ultralytics

インストールプロセスの詳細およびベストプラクティスについては、Ultralyticsインストールガイドをご確認ください。YOLO26に必要なパッケージをインストールする際に問題が発生した場合は、解決策とヒントについて共通の問題ガイドを参照してください。

Link to this section使用方法#

すべてのUltralytics YOLO26モデルは、導入後すぐにエクスポートをサポートするように設計されており、好みの展開ワークフローに簡単に統合できます。サポートされているエクスポートフォーマットと設定オプションの全リストを表示して、アプリケーションに最適な構成を選択してください。

The replacement LiteRT format supports the Export, Predict, and Validate modes. Export your model, then load the exported .tflite model to run inference or validate its accuracy.

エクスポート
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

# Load the exported TFLite model
model = YOLO("yolo26n.tflite")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
検証
from ultralytics import YOLO

# Load the exported TFLite model
model = YOLO("yolo26n.tflite")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionエクスポートの引数#

引数タイプデフォルト説明
formatstr'litert'エクスポートするモデルのターゲット形式。さまざまなデプロイ環境との互換性を定義します。
imgszintまたはtuple640モデル入力用の希望する画像サイズ。正方形画像の場合は整数、特定の寸法の場合はタプル(height, width)を指定できます。
quantizeint または strNone量子化精度: 8 (静的INT8、int8重み + int8活性化関数; キャリブレーション用 data/fraction が必要)、'w8a16' (静的、int8重み + int16活性化関数; キャリブレーション用 data/fraction が必要)、'w8a32' (動的INT8、int8重み + FP32活性化関数; キャリブレーション不要)、または 32/未設定 (FP32)。FP16は別途エクスポートされません。FP32モデルはGPUデリゲート上で自動的にFP16として実行されます。非推奨となった half/int8 フラグに代わるものです。
batchint1エクスポートされたモデルのバッチ推論サイズ、あるいはpredictモードで同時に処理する画像の最大数を指定します。
datastr'coco8.yaml'量子化に不可欠なデータセット設定ファイル(デフォルト: coco8.yaml)へのパスです。
fractionfloat1.0INT8量子化キャリブレーションに使用するデータセットの割合を指定します。フルデータセットのサブセットでキャリブレーションを行えるため、実験やリソースが限られている場合に便利です。INT8が有効で指定されていない場合、フルデータセットが使用されます。
devicestrNoneエクスポート先のデバイスを指定します:CPU(device=cpu)、Appleシリコン向けにはMPS(device=mps)。

エクスポートプロセスの詳細については、Ultralyticsのエクスポートに関するドキュメントページを参照してください。

Link to this sectionエクスポートされたYOLO26 TFLiteモデルのデプロイ#

After exporting your Ultralytics YOLO26 model to LiteRT format, you can deploy the resulting .tflite model. The primary and recommended first step for running a TFLite model is to use the YOLO("model.tflite") method, as outlined in the previous usage code snippet. However, for in-depth instructions on deploying your TFLite models in various other settings, take a look at the following resources:

  • Android: TensorFlow LiteをAndroidアプリケーションに統合するためのクイックスタートガイド。設定と機械学習モデルの実行について、分かりやすい手順を提供しています。

  • iOS: TensorFlow LiteモデルをiOSアプリケーションに統合してデプロイする方法を解説した、開発者向けの詳しいガイドです。ステップバイステップの手順とリソースを提供しています。

  • エンドツーエンドの例: 様々なTensorFlow Liteの例を紹介しているページです。モバイルやエッジデバイス上でTensorFlow Liteを機械学習プロジェクトに実装しようとしている開発者向けに、実用的なアプリケーションやチュートリアルを紹介しています。

Link to this section要約#

This guide preserves the legacy TFLite deployment workflow. For new exports, use LiteRT to create .tflite models for edge computing environments.

使用方法の詳細については、TFLite公式ドキュメントをご覧ください。

また、他のUltralytics YOLO26の統合に興味がある場合は、統合ガイドページをチェックしてみてください。役立つ情報や洞察がたくさん見つかります。

Link to this sectionよくある質問 (FAQ)#

Link to this sectionTFLiteエクスポートをLiteRTに置き換えるにはどうすればよいですか?#

新規エクスポートにはLiteRT形式を使用してください。まず、以下のコマンドで必要なパッケージをインストールします。

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 sectionYOLO26モデルのデプロイにTensorFlow Liteを使用する利点は何ですか?#

TensorFlow Lite(TFLite)は、オンデバイス推論向けに設計されたオープンソースのディープラーニングフレームワークであり、モバイル、組み込み、IoTデバイスへYOLO26モデルをデプロイするのに最適です。主な利点は以下の通りです:

  • オンデバイス最適化: データをローカルで処理することにより、レイテンシを最小化し、プライバシーを強化します。
  • プラットフォームの互換性: Android、iOS、組み込みLinux、およびMCUをサポートしています。
  • パフォーマンス: ハードウェアアクセラレーションを活用して、モデルの速度と効率を最適化します。

詳細については、TFLiteガイドをご確認ください。

Link to this sectionYOLO26 TFLiteモデルをRaspberry Piで実行することは可能ですか?#

はい、Raspberry Pi上でYOLO26 TFLiteモデルを実行して推論速度を向上させることが可能です。まず、上述の通りモデルをLiteRT形式にエクスポートしてください。その後、TensorFlow Lite Interpreterなどのツールを使用して、Raspberry Pi上でモデルを実行します。

さらなる最適化のためには、Coral Edge TPUの使用を検討してください。詳細な手順については、Raspberry PiデプロイガイドおよびEdge TPU統合ガイドを参照してください。

Link to this sectionYOLO26の予測にマイクロコントローラ上でTFLiteモデルを使用できますか?#

はい、TFLiteはリソースが限られたマイクロコントローラ上でのデプロイをサポートしています。TFLiteのコアランタイムはArm Cortex M3上でわずか16 KBのメモリを消費するだけで、基本的なYOLO26モデルを実行できます。これにより、計算能力やメモリが最小限のデバイスにも適しています。

開始するには、TFLite Micro for Microcontrollersガイドをご覧ください。

Link to this sectionTFLiteにエクスポートされたYOLO26モデルと互換性のあるプラットフォームは何ですか?#

TensorFlow Liteは広範なプラットフォーム互換性を提供しており、YOLO26モデルを以下を含む幅広いデバイスにデプロイできます:

  • AndroidおよびiOS: TFLite AndroidおよびiOSライブラリを通じたネイティブサポート。
  • 組み込みLinux: Raspberry Piなどのシングルボードコンピュータに最適。
  • マイクロコントローラ: リソースが制限されたMCUに適しています。

デプロイオプションの詳細については、詳細なデプロイガイドを参照してください。

Link to this sectionYOLO26モデルをLiteRTにエクスポートする際によくある問題をトラブルシューティングするにはどうすればよいですか?#

YOLO26モデルをLiteRTへエクスポートする際にエラーが発生した場合、一般的な解決策は以下の通りです。

  • パッケージの互換性を確認する: Ultralytics、litert-torch、および ai-edge-litert の互換性のあるバージョンを使用していることを確認してください。インストールガイドを参照してください。
  • モデルのサポート: Ultralyticsのエクスポートドキュメントページを確認し、対象のYOLO26モデルがLiteRTエクスポートをサポートしているかを確認してください。
  • 量子化の問題: INT8量子化を使用する場合は、dataパラメータでデータセットのパスが正しく指定されていることを確認してください。

その他のトラブルシューティングのヒントについては、共通の問題ガイドをご覧ください。

コメント