デプロイ用TFLiteモデルのエクスポート(非推奨)#
Ultralytics 8.4.83以降、スタンドアロンのtfliteエクスポート形式は削除され、統合された**Google LiteRT**形式に置き換えられました。LiteRT(Lite Runtime)はTensorFlow Liteの次世代版かつ新しい名称であり、同じ.tfliteモデルをエクスポートします。これにより、モバイル、組み込み、エッジ、ブラウザーへのデプロイを1つの形式でカバーできます。
format="tflite"は引き続き動作しますが、非推奨の警告を出力し、代わりにLiteRTモデルをエクスポートします。今後は**format="litert"を使用してください。現在のエクスポート手順とオプションについては、LiteRTエクスポートガイド**を参照してください。
コンピュータービジョンモデルをエッジデバイスまたは組み込みデバイスにデプロイするには、安定したパフォーマンスを確保できる形式が必要です。
以前のTensorFlow LiteまたはTFLiteエクスポート形式は、エッジアプリケーションでの物体検出や画像分類などのタスク向けにUltralytics YOLO26モデルを最適化していました。このガイドでは従来のTFLiteデプロイ環境を維持しています。新しいエクスポートにはLiteRTを使用してください。
TFLiteがエクスポートに使用された理由#
TensorFlow Lite、略してTFLiteは、Googleが2017年5月にTensorFlowフレームワークの一部として導入したオープンソースのディープラーニングフレームワークです。オンデバイス推論向けに設計されており、エッジコンピューティングとしても知られています。開発者はこれを使って、モバイル、組み込み、IoTデバイスだけでなく、従来型のコンピューターでも学習済みモデルを実行できました。
TensorFlow Liteは、組み込みLinux、Android、iOS、マイクロコントローラー(MCU)など、幅広いプラットフォームをサポートしていました。TFLiteエクスポートにより、アプリケーションはモデルをローカルかつオフラインで実行できました。
TFLiteモデルの主な特徴#
TFLiteモデルは、開発者がモバイル、組み込み、エッジデバイスでモデルを実行できるようにすることで、オンデバイス機械学習を実現する幅広い主要機能を提供します。
-
オンデバイス最適化: TFLiteはオンデバイスML向けに最適化されており、データをローカルで処理してレイテンシを削減し、個人データを送信しないことでプライバシーを強化し、モデルサイズを最小化して必要な容量を節約します。
-
複数プラットフォームのサポート: TFLiteは高いプラットフォーム互換性を備え、Android、iOS、組み込みLinux、マイクロコントローラーをサポートします。
-
多様な言語のサポート: TFLiteは、Java、Swift、Objective-C、C++、Pythonなど、さまざまなプログラミング言語と互換性があります。
-
高パフォーマンス: ハードウェアアクセラレーションとモデル最適化により、優れたパフォーマンスを実現します。
測定パフォーマンス(過去の記録)#
これらの結果は、Android 16/API 36上で、12 GBのLPDDR5Xメモリを搭載したXiaomi 17において、Ultralytics Flutterプラグイン0.6.8とLiteRT2.1.5を使用して記録されました。3 nmのSnapdragon 8 Elite Gen 5(SM8850)は、8コアのQualcomm Oryon CPU(最大4.6 GHzのPrimeコア2個と最大3.62 GHzのPerformanceコア6個)、Adreno GPU、Hexagon NPUを搭載しています。これらの表では、従来のonnx2tf INT8 TFLiteアセットと、移行中に評価した候補のlitert-torchエクスポートを比較しています。その後、リリースアセットは標準化されたエクスポートで上書きされたため、これらの数値は現在のv0.6.6アセットのバイト列を示すものではありません。現在の測定値については、LiteRTパフォーマンステーブルを参照してください。
両形式は、表示されている入力サイズで同じ連続GPUスイープを実行しました。各セルは合計時間(前処理 + 推論 + 後処理)を示し、その下にステージごとの内訳を記載しています。ネイティブログにより、両形式がAdreno GPU上のLiteRT OpenCL(LITERT_CL)に完全なグラフを委譲したことが確認されました。
| モデル | タスク | サイズ (ピクセル) | 従来 onnx2tf INT8 TFLite (ms) | 候補 w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | Detect | 640 | 14.0 1.8 / 8.1 / 4.2 | 13.5 1.9 / 8.1 / 3.5 |
| YOLO26n-seg | Segment | 640 | 30.1 1.9 / 20.3 / 8.0 | 28.6 1.8 / 20.1 / 6.7 |
| YOLO26n-sem | Semantic | 640 | 26.4 1.9 / 16.4 / 8.1 | 32.9 1.8 / 23.0 / 8.2 |
| YOLO26n-cls | 分類 | 224 | 3.5 0.9 / 2.2 / 0.4 | 3.2 1.0 / 2.2 / 0.1 |
| YOLO26n-pose | ポーズ | 640 | 17.4 2.4 / 9.9 / 5.1 | 14.0 1.9 / 9.3 / 2.8 |
| YOLO26n-obb | OBB | 640 | 13.9 3.0 / 8.3 / 2.7 | 13.0 2.9 / 7.9 / 2.3 |
同じ移行実行では、YOLO26n detectの量子化形式も比較しました。推論は、形式に依存する比較可能な指標です。
| Android形式 | GPU推論(ms) | GPUコンパイル |
|---|---|---|
| onnx2tf INT8(従来のTFLite) | 8.6 | はい |
| LiteRT w8a32(候補) | 8.4 | はい |
LiteRT INT8(quantize=8) | 11.0 | はい |
| LiteRT FP32 | 8.8 | はい |
LiteRT w8a16(quantize="w8a16") | CPUフォールバック | いいえ |
今回の実行では、w8a16は合計約660 msでCPUにフォールバックしました。一方、GPU形式では約17 msでした。これらの結果を受けてw8a32の提供が決まりましたが、デリゲートの互換性とパフォーマンスはデバイスおよびランタイムのバージョンによって異なります。対象デバイスでベンチマークを実行し、ランタイムログでアクセラレーターへの配置を確認してください。
TFLiteでのデプロイオプション#
LiteRTの置き換えエクスポート例を見る前に、TFLiteモデルが通常どのように使用されるかを理解しましょう。
TFLiteは、機械学習モデル向けに次のようなさまざまなオンデバイスデプロイオプションを提供します。
- AndroidおよびiOSでのデプロイ: TFLiteを使用するAndroidおよびiOSアプリケーションでは、エッジベースのカメラフィードやセンサーを分析して、物体を検出および識別できます。TFLiteは、SwiftおよびObjective-Cで記述されたネイティブiOSライブラリも提供します。以下のアーキテクチャ図は、TensorFlow Liteを使用して学習済みモデルをAndroidおよびiOSプラットフォームにデプロイするプロセスを示しています。
-
組み込みLinuxでの実装: Ultralyticsガイドを使用してRaspberry Pi上で推論を実行してもユースケースの速度要件を満たせない場合は、エクスポートしたTFLiteモデルを使用して推論時間を短縮できます。さらに、Coral Edge TPUデバイスを利用してパフォーマンスをさらに向上させることも可能です。
-
マイクロコントローラーでのデプロイ: TFLiteモデルは、マイクロコントローラーや数キロバイトのメモリしか持たないその他のデバイスにもデプロイできます。コアランタイムはArm Cortex M3上でわずか16 KBに収まり、多くの基本的なモデルを実行できます。オペレーティングシステムのサポート、標準CまたはC++ライブラリ、動的メモリ割り当ては必要ありません。
TFLiteエクスポートをLiteRTに置き換える#
新しいエクスポートでは、モデルをLiteRTに変換してください。生成されるモデルのファイル拡張子は.tfliteのままです。
インストール#
必要なパッケージをインストールするには、次を実行します。
# Install the required package for YOLO26
pip install ultralyticsインストールプロセスの詳細な手順とベストプラクティスについては、Ultralyticsインストールガイドをご確認ください。YOLO26に必要なパッケージのインストール中に問題が発生した場合は、解決策とヒントについて一般的な問題のガイドを参照してください。
使用方法#
すべてのUltralytics YOLO26モデルは、すぐにエクスポートできるよう設計されているため、任意のデプロイワークフローに簡単に統合できます。アプリケーションに最適な設定を選択するには、サポートされているエクスポート形式と設定オプションの全一覧を確認してください。
置き換え後のLiteRT形式は、Export、Predict、Validateモードをサポートします。モデルをエクスポートした後、エクスポートされた.tfliteモデルを読み込んで推論を実行するか、精度を検証してください。
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to LiteRT format
model.export(format="litert", imgsz=640) # use imgsz=224 for classificationfrom 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")エクスポート引数#
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
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は個別にはエクスポートされません。FP32モデルはGPUデリゲート上で自動的にFP16で実行されます。非推奨のhalf/int8フラグに置き換わります。 |
batch | int | 1 | エクスポートするモデルのバッチ推論サイズ、またはpredictモードでエクスポート済みモデルが同時に処理する画像の最大数を指定します。 |
data | str | None | 量子化に必要なデータセット YAMLへのパスです。分類の場合は、データセットディレクトリまたは組み込みデータセット名を指定します。quantize=8または'w8a16'とともに省略すると、Ultralyticsはモデルタスク用のデフォルトキャリブレーションデータセットを選択します。 |
fraction | float、int、またはlist | 1.0 | キャリブレーションサブセットを、比率、画像枚数、または [train, val, test] の比率/枚数として指定します。2項目のリストでは、test はすべて使用され、0 はスキップされます。 |
device | str | None | エクスポートに使用するデバイスを指定します。Apple siliconではCPU(device=cpu)、MPS(device=mps)を指定します。 |
エクスポートプロセスの詳細については、エクスポートに関するUltralyticsドキュメントページをご覧ください。
エクスポートしたYOLO26 TFLiteモデルのデプロイ#
Ultralytics YOLO26モデルをLiteRT形式にエクスポートした後、生成された.tfliteモデルをデプロイできます。TFLiteモデルを実行する際の主な推奨手順は、前述の使用例コードに示されているYOLO("model.tflite")メソッドを使用することです。ただし、さまざまな環境でTFLiteモデルをデプロイする詳細な手順については、次のリソースを参照してください。
-
Android: TensorFlow LiteをAndroidアプリケーションに統合するためのクイックスタートガイドです。セットアップと機械学習モデルの実行手順を分かりやすく説明しています。
-
iOS: TensorFlow LiteモデルをiOSアプリケーションに統合およびデプロイするための、開発者向けの詳細なガイドです。手順とリソースを段階的に説明しています。
-
エンドツーエンドの例: さまざまなTensorFlow Liteの例を概説するページです。モバイルおよびエッジデバイス上の機械学習プロジェクトにTensorFlow Liteを実装するための実践的なアプリケーションとチュートリアルを紹介しています。
まとめ#
このガイドでは従来のTFLiteデプロイワークフローを維持しています。新しいエクスポートでは、LiteRTを使用してエッジコンピューティング環境向けの.tfliteモデルを作成してください。
使用方法の詳細については、TFLite公式ドキュメントを参照してください。
また、その他のUltralytics YOLO26統合に関心がある場合は、統合ガイドページをご覧ください。役立つ情報や知見が掲載されています。
FAQ#
新しいエクスポートでは、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", imgsz=640) # use imgsz=224 for classificationCLIユーザーは、次のコマンドで実行できます。
yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classification詳しくは、Ultralyticsエクスポートガイドを参照してください。
TensorFlow Lite(TFLite)は、オンデバイス推論向けに設計されたオープンソースのディープラーニングフレームワークです。そのため、モバイル、組み込み、IoTデバイスへのYOLO26モデルのデプロイに適しています。主なメリットは次のとおりです。
- オンデバイス最適化: データをローカルで処理することで、レイテンシを最小化し、プライバシーを強化します。
- プラットフォーム互換性: Android、iOS、組み込みLinux、MCUをサポートします。
- パフォーマンス: ハードウェアアクセラレーションを利用して、モデルの速度と効率を最適化します。
詳細については、TFLiteガイドをご覧ください。
はい、YOLO26 TFLiteモデルをRaspberry Piで実行して推論速度を向上させることができます。まず、上記の説明に従ってモデルをLiteRT形式にエクスポートしてください。次に、TensorFlow Lite Interpreterなどのツールを使用して、Raspberry Pi上でモデルを実行します。
さらなる最適化のために、Coral Edge TPUの使用を検討できます。詳細な手順については、Raspberry PiデプロイガイドとEdge TPU統合ガイドを参照してください。
はい、TFLiteはリソースが限られたマイクロコントローラーへのデプロイをサポートしています。TFLiteのコアランタイムはArm Cortex M3上でわずか16 KBのメモリしか必要とせず、基本的なYOLO26モデルを実行できます。そのため、計算能力とメモリが最小限のデバイスへのデプロイに適しています。
開始するには、TFLite Micro for Microcontrollersガイドをご覧ください。
TensorFlow Liteは幅広いプラットフォーム互換性を提供しており、次のようなさまざまなデバイスにYOLO26モデルをデプロイできます。
- AndroidおよびiOS: TFLiteのAndroidおよびiOSライブラリを通じてネイティブサポートされます。
- 組み込みLinux: Raspberry Piなどのシングルボードコンピューターに適しています。
- マイクロコントローラー: リソースに制約のあるMCUに適しています。
デプロイオプションの詳細については、詳細なデプロイガイドを参照してください。
YOLO26モデルをLiteRTにエクスポート中にエラーが発生した場合、一般的な解決策は次のとおりです。
- パッケージの互換性を確認: Ultralytics、
litert-torch、ai-edge-litertの互換性のあるバージョンを使用していることを確認してください。インストールガイドを参照してください。 - モデルのサポート: Ultralyticsのエクスポートドキュメントページを確認し、対象のYOLO26モデルがLiteRTエクスポートをサポートしていることを確認してください。
- 量子化の問題:INT8量子化を使用する場合は、
dataパラメーターでデータセットパスが正しく指定されていることを確認してください。
その他のトラブルシューティングのヒントについては、一般的な問題のガイドをご覧ください。
- パッケージの互換性を確認: Ultralytics、