YOLO11 モデルをTFLite エクスポートして配備するためのガイド

エッジデバイスまたは組み込みデバイスにコンピュータビジョンモデルをデプロイするには、シームレスなパフォーマンスを保証できる形式が必要です。
TensorFlow LiteまたはTFLite エクスポート形式を使用すると、TensorFlow 最適化できます。 Ultralytics YOLO11モデルを最適化することができます。このガイドでは、モデルをTFLite 形式に変換する手順を説明し、モデルがさまざまなエッジデバイスで優れたパフォーマンスを発揮しやすくします。
なぜTFLite輸出が必要なのか?
Google 2017年5月にTensorFlow フレームワークの一部として発表したTensorFlow Lite(略してTFLite )は、エッジコンピューティングとしても知られるデバイス上での推論用に設計されたオープンソースのディープラーニングフレームワークである。開発者は、従来のコンピュータだけでなく、モバイル、組み込み、IoTデバイス上で学習済みモデルを実行するために必要なツールを得ることができる。
TensorFlow Liteは、組み込みLinux、Android、iOS、マイクロコントローラ(MCU)など、幅広いプラットフォームと互換性があります。モデルをTFLite エクスポートすることで、アプリケーションを高速化し、信頼性を高め、オフラインで実行できるようになります。
TFLite モデルの主な特徴
TFLite モデルは、開発者がモバイル、組み込み、エッジデバイス上でモデルを実行できるようにすることで、オンデバイス機械学習を可能にする広範な主要機能を提供します:
オンデバイス最適化:TFLite オンデバイスMLに最適化し、データをローカルに処理することで待ち時間を短縮し、個人データを送信しないことでプライバシーを強化し、モデルサイズを最小化することでスペースを節約します。
マルチプラットフォームのサポート:TFLite 、Android、iOS、組み込みLinux、マイクロコントローラーをサポートし、広範なプラットフォーム互換性を提供します。
多様な言語に対応:TFLite 、Java、Swift、Objective-C、C++、Python、さまざまなプログラミング言語に対応しています。
ハイパフォーマンス: ハードウェアアクセラレーションとモデルの最適化により、優れたパフォーマンスを実現します。
TFLite展開オプション
YOLO11 モデルをTFLite フォーマットにエクスポートするコードを見る前に、TFLite モデルが通常どのように使われるかを理解しよう。
TFLite 、機械学習モデルのためのさまざまなオンデバイス展開オプションを提供している:
- Android iOS展開:TFLite 使用したAndroid iOS アプリケーションは、エッジベースのカメラフィードとセンサーを解析し、物体をdetect ・識別することができます。TFLite Swiftと Objective-Cで書かれたiOS ネイティブライブラリも提供しています。下のアーキテクチャ図は、TensorFlow Liteを使用して学習済みモデルをAndroid およびiOS プラットフォームにデプロイするプロセスを示しています。

組み込みLinuxでの実装:RaspberryPi上でUltralytics ガイドを使用して推論を実行しても、ユースケースの速度要件を満たさない場合は、エクスポートされたTFLite モデルを使用して推論時間を高速化することができます。さらに、Coral EdgeTPU デバイスを利用することで、パフォーマンスをさらに向上させることも可能です。
マイクロコントローラでの展開:TFLite モデルは、数キロバイトのメモリしか持たないマイクロコントローラやその他のデバイスにも展開できます。コアのランタイムはArm Cortex M3の16KBに収まるだけで、多くの基本的なモデルを実行できます。オペレーティング・システムのサポート、標準的なCまたはC++ライブラリ、動的メモリ割り当てを必要としない。
TFLiteエクスポート:YOLO11 モデルの変換
モデルをTFLite 形式に変換することで、デバイス上でのモデル実行効率を改善し、パフォーマンスを最適化することができます。
インストール
必要なパッケージをインストールするには、以下を実行します:
インストール
# Install the required package for YOLO11
pip install ultralytics
インストールプロセスに関する詳細な手順とベストプラクティスについては、Ultralyticsインストールガイドをご確認ください。YOLO11に必要なパッケージのインストール中に問題が発生した場合は、よくある問題ガイドで解決策とヒントを参照してください。
使用法
すべてのUltralytics YOLO11モデルは、すぐにエクスポートできるように設計されており、お好みのデプロイメントワークフローに簡単に統合できます。アプリケーションに最適なセットアップを選択するために、サポートされているエクスポート形式と構成オプションの完全なリストを表示できます。
使用法
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
# Load the exported TFLite model
tflite_model = YOLO("yolo11n_float32.tflite")
# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TFLite format
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
# Run inference with the exported model
yolo predict model='yolo11n_float32.tflite' source='https://ultralytics.com/images/bus.jpg'
エクスポート引数
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
format | str | 'tflite' | エクスポートされたモデルのターゲット形式。さまざまなデプロイメント環境との互換性を定義します。 |
imgsz | int または tuple | 640 | モデル入力に必要な画像サイズ。正方形の画像の場合は整数、タプルの場合は (height, width) 特定の寸法の場合。 |
half | bool | False | FP16(半精度)量子化を有効にし、モデルサイズを縮小し、サポートされているハードウェアでの推論を高速化する可能性があります。 |
int8 | bool | False | INT8量子化を有効にすると、モデルがさらに圧縮され、精度の低下を最小限に抑えながら推論が高速化されます。主にエッジデバイス向けです。 |
nms | bool | False | 正確で効率的な検出の後処理に不可欠なNMSNon-Maximum Suppression)を追加。 |
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ドキュメントページをご覧ください。
エクスポートされたYOLO11 TFLite モデルの展開
Ultralytics YOLO11 モデルのTFLite フォーマットへのエクスポートに成功したら、今度はそれをデプロイすることができます。TFLite モデルを実行するための最初のステップとして推奨されるのは YOLO("model.tflite") メソッドを使用します。しかし、TFLite モデルを他の様々な設定でデプロイするための詳細な手順については、以下のリソースをご覧ください:
Android: TensorFlow LiteをAndroidアプリケーションに統合するためのクイックスタートガイドです。設定と機械学習モデルの実行が簡単にできる手順が記載されています。
iOS: iOSアプリケーションでのTensorFlow Liteモデルの統合とデプロイに関する開発者向けの詳細ガイドをご覧ください。ステップごとの手順とリソースが提供されています。
エンドツーエンドの例: このページでは、モバイルおよびエッジデバイスでの機械学習プロジェクトにTensorFlow Liteを実装する開発者を支援するために設計された、TensorFlow Liteのさまざまな例の概要、実用的なアプリケーション、およびチュートリアルを紹介します。
概要
このガイドでは、TFLite 形式にエクスポートする方法に焦点を当てました。Ultralytics YOLO11 モデルをTFLite モデル形式に変換することで、YOLO11 モデルの効率とスピードを向上させ、より効果的でエッジコンピューティング環境に適したものにすることができます。
使用方法の詳細については、TFLite 公式ドキュメントをご覧ください。
また、Ultralytics YOLO11のその他の統合に興味がある場合は、必ず統合ガイドページをチェックしてください。役立つ情報や洞察が満載です。
よくある質問
YOLO11 モデルをTFLite フォーマットにエクスポートするには?
YOLO11 モデルをTFLite フォーマットにエクスポートするには、Ultralytics ライブラリを使います。まず、必要なパッケージをインストールしてください:
pip install ultralytics
次に、次のコードスニペットを使用してモデルをエクスポートします。
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
CLIをご利用の場合、以下のコマンドで実行できます:
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
詳細については、Ultralyticsのエクスポートガイドをご覧ください。
YOLO11 モデルのデプロイに TensorFlow Lite を使用する利点は何ですか?
TensorFlow LiteTFLite)は、オンデバイス推論用に設計されたオープンソースのディープラーニングフレームワークであり、モバイル、組み込み、IoTデバイスへのYOLO11 モデルの導入に最適です。主な利点は以下の通りです:
- On-device optimization: データをローカルで処理することにより、レイテンシーを最小限に抑え、プライバシーを強化します。
- プラットフォームの互換性: Android、iOS、組み込みLinux、およびMCUをサポートします。
- パフォーマンス: ハードウェアアクセラレーションを利用して、モデルの速度と効率を最適化します。
詳しくは、TFLite ガイドをご覧ください。
YOLO11 TFLite モデルをRaspberry Piで動かすことは可能ですか?
はい、YOLO11 TFLite モデルをRaspberry Pi上で実行することで、推論速度を向上させることができます。まず、上記で説明したように、モデルをTFLite 形式にエクスポートします。次に、TensorFlow Lite Interpreterのようなツールを使って、Raspberry Pi上でモデルを実行します。
さらなる最適化のために、Coral Edge TPUの使用を検討してください。詳細な手順については、Raspberry PiのデプロイガイドとEdge TPU統合ガイドを参照してください。
マイコン上のTFLite モデルをYOLO11 予測に使用できますか?
はい、TFLite 限られたリソースのマイクロコントローラへの展開をサポートしています。TFLiteコアランタイムは、Arm Cortex M3上で16KBのメモリしか必要とせず、基本的なYOLO11 モデルを実行できます。このため、計算能力とメモリが最小限のデバイスへの展開に適しています。
まずは、TFLite Micro for Microcontrollersガイドをご覧ください。
TFLite エクスポートされたYOLO11 モデルと互換性のあるプラットフォームは?
TensorFlow Lite は広範なプラットフォーム互換性を提供し、以下を含む幅広いデバイスに YOLO11 モデルをデプロイできます。
- Android and iOS: TFLite AndroidおよびiOSライブラリによるネイティブサポート。
- 組み込み Linux: Raspberry Pi などのシングルボードコンピュータに最適です。
- マイクロコントローラー:リソースが制約されたMCUに適しています。
デプロイメントオプションの詳細については、詳細なデプロイメントガイドをご覧ください。
YOLO11 モデルをTFLiteエクスポートする際によくある問題のトラブルシューティング方法は?
YOLO11 モデルをTFLiteエクスポートする際にエラーが発生した場合、一般的な解決策は以下の通りです:
- パッケージの互換性を確認: UltralyticsとTensorFlowの互換性のあるバージョンを使用していることを確認してください。弊社のインストールガイドを参照してください。
- モデルのサポート特定のYOLO11 モデルがTFLite エクスポートをサポートしているかどうかは、Ultralytics エクスポート・ドキュメントのページを確認してください。
- 量子化に関する問題: INT8 量子化を使用する場合は、データセットのパスが以下で正しく指定されていることを確認してください。
dataパラメータ。
その他のトラブルシューティングのヒントについては、よくある問題ガイドをご覧ください。