Link to this sectionYOLO26モデルをTFLiteへエクスポートしてデプロイするためのガイド#
コンピュータビジョンモデルをエッジデバイスや組み込みデバイスにデプロイするには、シームレスなパフォーマンスを確保できるフォーマットが必要です。
The TensorFlow Lite or TFLite export format allows you to optimize your Ultralytics YOLO26 models for tasks like object detection and image classification in edge device-based applications. In this guide, we'll walk through the steps for converting your models to the TFLite format, making it easier for your models to perform well on various edge devices.
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 sectionTFLiteにおけるデプロイオプション#
YOLO26モデルをTFLiteフォーマットにエクスポートするコードを見る前に、TFLiteモデルが通常どのように使用されているかを理解しましょう。
TFLiteは、機械学習モデルに対して以下のような様々なオンデバイスデプロイオプションを提供しています。
- AndroidおよびiOSへのデプロイ: TFLiteを搭載したAndroidおよびiOSアプリケーションは、エッジベースのカメラフィードやセンサーを分析し、物体を検出・識別できます。また、TFLiteはSwiftおよびObjective-Cで記述されたネイティブiOSライブラリも提供しています。以下のアーキテクチャ図は、TensorFlow Liteを使用して学習済みモデルをAndroidおよびiOSプラットフォームにデプロイするプロセスを示しています。
-
Implementing with Embedded Linux: If running inferences on a Raspberry Pi using the Ultralytics Guide does not meet the speed requirements for your use case, you can use an exported TFLite model to accelerate inference times. Additionally, it's possible to further improve performance by utilizing a Coral Edge TPU device.
-
マイクロコントローラへのデプロイ: TFLiteモデルは、わずか数キロバイトのメモリしか搭載していないマイクロコントローラやその他のデバイスにもデプロイ可能です。コアランタイムはArm Cortex M3上でわずか16 KBのサイズに収まり、多くの基本的なモデルを実行できます。オペレーティングシステムのサポートや、標準のC/C++ライブラリ、動的なメモリ割り当ては必要ありません。
Link to this sectionTFLiteへのエクスポート:YOLO26モデルの変換#
モデルをTFLiteフォーマットに変換することで、オンデバイスでの実行効率を向上させ、パフォーマンスを最適化できます。
Link to this sectionインストール#
必要なパッケージをインストールするには、以下を実行してください。
# Install the required package for YOLO26
pip install ultralyticsインストールプロセスの詳細およびベストプラクティスについては、Ultralyticsインストールガイドをご確認ください。YOLO26に必要なパッケージをインストールする際に問題が発生した場合は、解決策とヒントについて共通の問題ガイドを参照してください。
Link to this section使用方法#
すべてのUltralytics YOLO26モデルは、導入後すぐにエクスポートをサポートするように設計されており、好みの展開ワークフローに簡単に統合できます。サポートされているエクスポートフォーマットと設定オプションの全リストを表示して、アプリケーションに最適な構成を選択してください。
TFLiteフォーマットはExport、Predict、Validateモードをサポートしています。モデルをエクスポートした後、エクスポートされたモデルを読み込んで推論を実行したり、その精度を検証したりできます。
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo26n_float32.tflite'from ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n_float32.tflite")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n_float32.tflite")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionエクスポートの引数#
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
format | str | 'tflite' | エクスポートするモデルのターゲット形式。さまざまなデプロイ環境との互換性を定義します。 |
imgsz | intまたはtuple | 640 | モデル入力用の希望する画像サイズ。正方形画像の場合は整数、特定の寸法の場合はタプル(height, width)を指定できます。 |
half | bool | False | FP16(半精度)量子化を有効にし、モデルサイズを縮小して、サポートされているハードウェアでの推論を高速化する可能性があります。 |
int8 | bool | False | INT8量子化を有効にし、モデルをさらに圧縮して、主にエッジデバイス向けに精度を最小限の損失に抑えつつ推論を高速化します。 |
nms | bool | False | Non-Maximum Suppression (NMS) を追加します。これは正確で効率的な検出後処理に不可欠です。 |
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のエクスポートに関するドキュメントページを参照してください。
Link to this sectionエクスポートされたYOLO26 TFLiteモデルのデプロイ#
Ultralytics YOLO26モデルをTFLiteフォーマットに正常にエクスポートしたら、いよいよデプロイが可能です。TFLiteモデルを実行するための推奨される第一歩は、前の使用コードスニペットで示したように、YOLO("model.tflite")メソッドを使用することです。ただし、他の様々な設定でTFLiteモデルをデプロイするための詳細な手順については、以下のリソースを参照してください:
-
Android: TensorFlow LiteをAndroidアプリケーションに統合するためのクイックスタートガイド。設定と機械学習モデルの実行について、分かりやすい手順を提供しています。
-
iOS: TensorFlow LiteモデルをiOSアプリケーションに統合してデプロイする方法を解説した、開発者向けの詳しいガイドです。ステップバイステップの手順とリソースを提供しています。
-
エンドツーエンドの例: 様々なTensorFlow Liteの例を紹介しているページです。モバイルやエッジデバイス上でTensorFlow Liteを機械学習プロジェクトに実装しようとしている開発者向けに、実用的なアプリケーションやチュートリアルを紹介しています。
Link to this section要約#
本ガイドでは、TFLiteフォーマットへのエクスポート方法に焦点を当てました。Ultralytics YOLO26モデルをTFLiteフォーマットに変換することで、YOLO26モデルの効率と速度を向上させ、エッジコンピューティング環境に適したより強力なモデルにすることができます。
使用方法の詳細については、TFLite公式ドキュメントをご覧ください。
また、他のUltralytics YOLO26の統合に興味がある場合は、統合ガイドページをチェックしてみてください。役立つ情報や洞察がたくさん見つかります。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionYOLO26モデルをTFLiteフォーマットにエクスポートするにはどうすればよいですか?#
YOLO26モデルをTFLiteフォーマットにエクスポートするには、Ultralyticsライブラリを使用できます。まず、以下のコマンドで必要なパッケージをインストールしてください:
pip install ultralytics次に、以下のコードスニペットを使用してモデルをエクスポートします:
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo26n_float32.tflite'CLIユーザーの場合は、以下を実行することで達成できます:
yolo export model=yolo26n.pt format=tflite # creates 'yolo26n_float32.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で実行することは可能ですか?#
はい、YOLO26 TFLiteモデルをRaspberry Pi上で実行して推論速度を向上させることができます。まず、上述の通りモデルをTFLiteフォーマットにエクスポートしてください。その後、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モデルをTFLiteにエクスポートする際、一般的な問題のトラブルシューティングはどうすればよいですか?#
YOLO26モデルをTFLiteにエクスポートする際にエラーが発生した場合の一般的な解決策は以下の通りです:
- パッケージの互換性を確認: UltralyticsとTensorFlowの互換性のあるバージョンを使用していることを確認してください。インストールガイドを参照してください。
- モデルのサポート: 特定のYOLO26モデルがTFLiteエクスポートをサポートしているか、Ultralyticsのエクスポートドキュメントページを確認してください。
- 量子化の問題: INT8量子化を使用する場合は、
dataパラメータでデータセットのパスが正しく指定されていることを確認してください。
その他のトラブルシューティングのヒントについては、共通の問題ガイドをご覧ください。