デプロイ用TFLiteモデルエクスポート(非推奨)#
Ultralytics 8.4.83以降、スタンドアロンの tflite エクスポート形式は削除され、統合された Google LiteRT 形式に置き換えられました。LiteRT (Lite Runtime) は TensorFlow Lite の次世代バージョンであり、新しい名称です。これにより、モバイル、組み込み、エッジ、ブラウザへのデプロイが 1 つの形式で 同じ .tflite モデル としてエクスポートされます。
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はオンデバイス機械学習向けに最適化されており、データをローカルで処理することでレイテンシを削減し、個人データを送信しないことでプライバシーを強化し、さらにモデルサイズを最小化して容量を節約します。
-
マルチプラットフォームサポート: TFLiteはAndroid、iOS、組み込みLinux、マイクロコントローラをサポートしており、広範なプラットフォーム互換性を提供します。
-
多様な言語サポート: TFLiteは、Java、Swift、Objective-C、C++、Pythonを含む様々なプログラミング言語と互換性があります。
-
高性能: ハードウェアアクセラレーションとモデル最適化を通じて、優れたパフォーマンスを実現します。
測定されたパフォーマンス(履歴)#
これらの結果は、12 GB LPDDR5X メモリを搭載したXiaomi 17上の Android 16/API 36 で、Ultralytics Flutter プラグイン 0.6.8 および LiteRT 2.1.5 を使用して記録されました。その 3 nm のSnapdragon 8 Elite Gen 5 (SM8850) には、8コアの Qualcomm Oryon CPU(最高 4.6 GHz のプライムコア 2基、最高 3.62 GHz のパフォーマンスコア 6基)、Adreno GPU、および Hexagon NPU が搭載されています。これらのテーブルは、移行時に評価された候補である litert-torch エクスポートとレガシーの onnx2tf INT8 TFLite アセットを比較しています。リリースアセットはその後標準化されたエクスポートで上書きされたため、これらの数値は現在の v0.6.6 アセットのバイト数を表すものではありません。現在の測定値については、LiteRT performance tables を参照してください。
両方の形式は、示した入力サイズで同じ連続 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 | セマンティック | 640 | 26.4 1.9 / 16.4 / 8.1 | 32.9 1.8 / 23.0 / 8.2 |
| YOLO26n-cls | Classify(分類) | 224 | 3.5 0.9 / 2.2 / 0.4 | 3.2 1.0 / 2.2 / 0.1 |
| YOLO26n-pose | 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 Guideを使用してRaspberry Pi上で推論を実行しても、ユースケースの速度要件を満たさない場合は、エクスポートされた TFLite モデルを使用して推論時間を高速化できます。さらに、Coral Edge TPU deviceを活用することで、パフォーマンスをさらに向上させることができます。
-
マイクロコントローラへのデプロイ: 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 | 'coco8.yaml' | データセット設定ファイルへのパス(デフォルト:coco8.yaml)。量子化に不可欠です。 |
fraction | float | 1.0 | INT8量子化キャリブレーションに使用するデータセットの割合を指定します。フルデータセットのサブセットでキャリブレーションを行えるため、実験やリソースが限られている場合に便利です。INT8が有効で指定されていない場合、フルデータセットが使用されます。 |
device | str | None | エクスポートするデバイスを指定します: CPU(device=cpu)、Apple シリコン用 MPS(device=mps)。 |
エクスポートプロセスの詳細については、Ultralytics documentation page on exporting をご覧ください。
エクスポートされたYOLO26 TFLiteモデルのデプロイ#
Ultralytics YOLO26 モデルを LiteRT 形式にエクスポートした後、生成された .tflite モデルをデプロイできます。TFLite モデルを実行するための主要かつ推奨される最初のステップは、前の使用法コードスニペットで説明されているように、番地 YOLO("model.tflite") メソッドを使用することです。ただし、さまざまな他の設定で TFLite モデルをデプロイするための詳細な手順については、次のリソースをご覧ください。
-
Android: Android アプリケーションに TensorFlow Lite を統合するためのクイックスタートガイドであり、機械学習モデルの設定と実行に関するわかりやすい手順を提供します。
-
iOS: iOS アプリケーションへの TensorFlow Lite モデルの統合とデプロイに関する、開発者向けのこの詳細なガイドをご覧ください。ステップバイステップの手順とリソースが提供されています。
-
エンドツーエンドの例: このページでは、さまざまな TensorFlow Lite の例の概要を提供し、モバイルおよびエッジデバイス上の機械学習プロジェクトで開発者が TensorFlow Lite を実装できるように設計された実践的なアプリケーションとチュートリアルを紹介しています。
要約#
このガイドでは、従来の TFLite デプロイワークフローを保持しています。新規のエクスポートには、エッジコンピューティング環境用の .tflite モデルを作成するために LiteRT を使用してください。
使用方法の詳細については、TFLite 公式ドキュメントをご覧ください。
また、他の Ultralytics YOLO26 統合に興味がある場合は、統合ガイドページをご確認ください。そこには役立つ多くの情報や知見が見つかります。
よくある質問 (FAQ)#
TFLiteエクスポートを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", imgsz=640) # use imgsz=224 for classificationCLIユーザーの場合は、以下を実行することで達成できます:
yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classification詳細については、Ultralytics export guide をご覧ください。
YOLO26モデルのデプロイにTensorFlow Liteを使用する利点は何ですか?#
TensorFlow Lite (TFLite) は、オンデバイス推論向けに設計されたオープンソースのディープラーニングフレームワークであり、モバイル、組み込み、および IoT デバイス上で YOLO26 モデルをデプロイするのに最適です。主な利点は次のとおりです。
- オンデバイス最適化: データをローカルで処理することにより、レイテンシを最小化し、プライバシーを強化します。
- プラットフォームの互換性: Android、iOS、組み込みLinux、およびMCUをサポートしています。
- パフォーマンス: ハードウェアアクセラレーションを活用して、モデルの速度と効率を最適化します。
詳細については、TFLite ガイドをご確認ください。
YOLO26 TFLiteモデルをRaspberry Piで実行することは可能ですか?#
はい、Raspberry Pi上でYOLO26 TFLiteモデルを実行して推論速度を向上させることが可能です。まず、上述の通りモデルをLiteRT形式にエクスポートしてください。その後、TensorFlow Lite Interpreterなどのツールを使用して、Raspberry Pi上でモデルを実行します。
さらなる最適化のために、Coral Edge TPU の使用を検討することをお勧めします。詳細な手順については、Raspberry Pi デプロイガイドおよび Edge TPU 統合ガイドを参照してください。
YOLO26の予測にマイクロコントローラ上でTFLiteモデルを使用できますか?#
はい、TFLiteはリソースが限られたマイクロコントローラ上でのデプロイをサポートしています。TFLiteのコアランタイムはArm Cortex M3上でわずか16 KBのメモリを消費するだけで、基本的なYOLO26モデルを実行できます。これにより、計算能力やメモリが最小限のデバイスにも適しています。
始めるには、マイクロコントローラ向け TFLite Micro ガイドにアクセスしてください。
TFLiteにエクスポートされたYOLO26モデルと互換性のあるプラットフォームは何ですか?#
TensorFlow Liteは広範なプラットフォーム互換性を提供しており、YOLO26モデルを以下を含む幅広いデバイスにデプロイできます:
- AndroidおよびiOS: TFLite AndroidおよびiOSライブラリを通じたネイティブサポート。
- 組み込みLinux: Raspberry Piなどのシングルボードコンピュータに最適。
- マイクロコントローラ: リソースが制限されたMCUに適しています。
デプロイオプションの詳細については、詳細なデプロイガイドを参照してください。
YOLO26モデルをLiteRTにエクスポートする際によくある問題をトラブルシューティングするにはどうすればよいですか?#
YOLO26モデルをLiteRTへエクスポートする際にエラーが発生した場合、一般的な解決策は以下の通りです。
- パッケージの互換性の確認: Ultralytics、
litert-torch、およびai-edge-litertの互換性のあるバージョンを使用していることを確認してください。インストールガイドを参照してください。 - モデルのサポート: 特定の YOLO26 モデルが LiteRT エクスポートをサポートしていることを、Ultralytics のエクスポートドキュメントページを確認して検証してください。
- 量子化の問題: INT8 量子化を使用する場合は、
dataパラメータでデータセットのパスが正しく指定されていることを確認してください。
その他のトラブルシューティングのヒントについては、Common Issues guide をご覧ください。