デプロイメントのためにYOLO11モデルをTFLiteにエクスポートするためのガイド
エッジデバイスまたは組み込みデバイスにコンピュータビジョンモデルをデプロイするには、シームレスなパフォーマンスを保証できる形式が必要です。
TensorFlow LiteまたはTFLiteエクスポート形式を使用すると、エッジデバイスベースのアプリケーションで、Ultralytics YOLO11モデルをオブジェクト検出や画像分類などのタスク向けに最適化できます。このガイドでは、モデルをTFLite形式に変換する手順について説明し、さまざまなエッジデバイスでモデルが適切に機能するようにします。
TFLiteにエクスポートする理由
Googleによって2017年5月にTensorFlowフレームワークの一部として導入されたTensorFlow Lite(略してTFLite)は、オンデバイス推論(エッジコンピューティングとも呼ばれます)用に設計されたオープンソースの深層学習フレームワークです。これにより、開発者はトレーニング済みのモデルをモバイル、組み込み、IoTデバイス、および従来のコンピュータで実行するために必要なツールを入手できます。
TensorFlow Lite は、組み込み Linux、Android、iOS、MCU を含む幅広いプラットフォームと互換性があります。モデルを TFLite にエクスポートすると、アプリケーションがより高速かつ信頼性が高くなり、オフラインで実行できるようになります。
TFLiteモデルの主な特徴
TFLiteモデルは、開発者がモバイル、組み込み、およびエッジデバイスでモデルを実行できるようにすることで、デバイス上での機械学習を可能にする幅広い主要機能を提供します:
-
On-device Optimization: TFLiteはオンデバイスML向けに最適化されており、データをローカルで処理してレイテンシーを短縮し、個人データを送信しないことでプライバシーを強化し、モデルサイズを最小限に抑えてスペースを節約します。
-
複数のプラットフォームのサポート: TFLiteは、Android、iOS、組み込みLinux、マイクロコントローラーをサポートする広範なプラットフォーム互換性を提供します。
-
多様な言語サポート: TFLiteは、Java、Swift、Objective-C、C++、pythonを含むさまざまなプログラミング言語と互換性があります。
-
ハイパフォーマンス: ハードウェアアクセラレーションとモデルの最適化により、優れたパフォーマンスを実現します。
TFLiteでのデプロイメントオプション
YOLO11モデルをTFLite形式にエクスポートするコードを見る前に、TFLiteモデルが通常どのように使用されるかを理解しましょう。
TFLiteは、機械学習モデルのさまざまなオンデバイスデプロイメントオプションを提供します。以下はその例です:
- AndroidおよびiOSでのデプロイ: TFLiteを搭載したAndroidとiOSのアプリケーションは、エッジベースのカメラフィードとセンサーを分析して、オブジェクトを検出および識別できます。TFLiteは、SwiftおよびObjective-Cで記述されたネイティブiOSライブラリも提供しています。以下のアーキテクチャ図は、TensorFlow Liteを使用して、トレーニング済みのモデルをAndroidおよびiOSプラットフォームにデプロイするプロセスを示しています。
-
組み込みLinuxでの実装:Raspberry PiでUltralyticsガイドを使用して推論を実行しても、ユースケースの速度要件を満たせない場合は、エクスポートされたTFLiteモデルを使用して推論時間を短縮できます。さらに、Coral Edge TPUデバイスを利用することで、パフォーマンスをさらに向上させることができます。
-
マイクロコントローラーでのデプロイ: TFLiteモデルは、マイクロコントローラーや、わずか数キロバイトのメモリしかない他のデバイスにもデプロイできます。コアランタイムは、Arm Cortex M3上でわずか16 KBに収まり、多くの基本的なモデルを実行できます。オペレーティングシステムのサポート、標準の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 |
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ドキュメントページをご覧ください。
エクスポートされた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 Lite (TFLite) は、オンデバイス推論用に設計されたオープンソースの深層学習フレームワークであり、モバイル、組み込み、および IoT デバイスへの YOLO11 モデルのデプロイに最適です。主な利点は次のとおりです。
- On-device optimization: データをローカルで処理することにより、レイテンシーを最小限に抑え、プライバシーを強化します。
- プラットフォームの互換性: Android、iOS、組み込みLinux、およびMCUをサポートします。
- パフォーマンス: ハードウェアアクセラレーションを利用して、モデルの速度と効率を最適化します。
詳細については、TFLite ガイドをご覧ください。
Raspberry PiでYOLO11 TFLiteモデルを実行することは可能ですか?
はい、Raspberry PiでYOLO11 TFLiteモデルを実行して、推論速度を向上させることができます。まず、上記の説明に従って、モデルをTFLite形式にエクスポートします。次に、TensorFlow Lite Interpreterなどのツールを使用して、Raspberry Piでモデルを実行します。
さらなる最適化のために、Coral Edge TPUの使用を検討してください。詳細な手順については、Raspberry PiのデプロイガイドとEdge TPU統合ガイドを参照してください。
YOLO11の予測のために、マイクロコントローラーでTFLiteモデルを使用できますか?
はい、TFLiteは、リソースが限られたマイクロコントローラーへのデプロイをサポートしています。TFLiteのコアランタイムは、Arm Cortex M3でわずか16 KBのメモリしか必要とせず、基本的なYOLO11モデルを実行できます。これにより、最小限の計算能力とメモリを備えたデバイスへのデプロイに適しています。
開始するには、マイクロコントローラー向けTFLite Microガイドをご覧ください。
TFLite でエクスポートされた YOLO11 モデルと互換性のあるプラットフォームは何ですか?
TensorFlow Lite は広範なプラットフォーム互換性を提供し、以下を含む幅広いデバイスに YOLO11 モデルをデプロイできます。
- AndroidとiOS: TFLite AndroidおよびiOSライブラリによるネイティブサポート。
- 組み込み Linux: Raspberry Pi などのシングルボードコンピュータに最適です。
- マイクロコントローラー:リソースが制約されたMCUに適しています。
デプロイメントオプションの詳細については、詳細なデプロイメントガイドをご覧ください。
YOLO11モデルをTFLiteにエクスポートする際によくある問題のトラブルシューティング方法を教えてください。
YOLO11モデルをTFLiteにエクスポートする際にエラーが発生した場合、一般的な解決策は次のとおりです。
- パッケージの互換性を確認: UltralyticsとTensorFlowの互換性のあるバージョンを使用していることを確認してください。弊社のインストールガイドを参照してください。
- モデルのサポート: 特定の YOLO11 モデルが TFLite エクスポートをサポートしていることを、Ultralytics のエクスポートに関するドキュメントページで確認してください。
- 量子化に関する問題: INT8 量子化を使用する場合は、データセットのパスが以下で正しく指定されていることを確認してください。
data
パラメータ。
その他のトラブルシューティングのヒントについては、よくある問題ガイドをご覧ください。