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モデルは、開発者がモバイル、組み込み、エッジデバイス上でモデルを実行できるようにすることで、オンデバイス機械学習を可能にする広範な主要機能を提供します:
-
オンデバイス最適化: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 プラットフォームに学習済みモデルをデプロイするプロセスを示しています。
-
Embedded Linuxでの実装:Ultralytics ガイドを使用してRaspberry Pi上で推論を実行してもユースケースの速度要件を満たさない場合は、エクスポートしたTFLiteモデルを使用して推論時間を高速化することができます。さらに、Coral EdgeTPU 。
-
マイクロコントローラでの展開:TFLiteモデルは、数キロバイトのメモリしか持たないマイクロコントローラやその他のデバイスにも展開できます。コアのランタイムはArm Cortex M3の16KBに収まるだけで、多くの基本的なモデルを実行できます。オペレーティング・システムのサポート、標準的なCまたはC++ライブラリ、動的メモリ割り当てを必要としない。
TFLiteへのエクスポート:YOLO11 モデルの変換
モデルをTFLite形式に変換することで、デバイス上でのモデル実行効率を改善し、パフォーマンスを最適化することができます。
インストール
必要なパッケージをインストールするには
インストールプロセスに関する詳細な説明とベストプラクティスについては、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")
エクスポートの引数
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
format |
str |
'tflite' |
エクスポートされたモデルのターゲットフォーマットで、さまざまな展開環境との互換性を定義します。 |
imgsz |
int または tuple |
640 |
モデル入力に必要な画像サイズ。正方形画像の場合は整数,正方形画像の場合はタプルになります. (height, width) 具体的な寸法については |
half |
bool |
False |
FP16(半精度)量子化を有効にし、モデルサイズを縮小し、サポートされているハードウェアでの推論を高速化する可能性があります。 |
int8 |
bool |
False |
INT8量子化を有効にし、モデルをさらに圧縮し、主にエッジデバイスのために、最小限の精度損失で推論を高速化する。 |
nms |
bool |
False |
正確で効率的な検出の後処理に不可欠なNMS(Non-Maximum Suppression)を追加。 |
batch |
int |
1 |
エクスポートモデルのバッチ推論サイズ、またはエクスポートされたモデルが同時に処理する画像の最大数を指定します。 predict モードだ。 |
data |
str |
'coco8.yaml' |
への道 データセット 設定ファイル(デフォルト: coco8.yaml )、量子化に不可欠である。 |
エクスポートプロセスの詳細については、Ultralytics ドキュメントのエクスポートに関するページをご覧ください。
エクスポートされたYOLO11 TFLite モデルの展開
Ultralytics YOLO11 モデルのTFLiteフォーマットへのエクスポートに成功したら、今度はそれをデプロイすることができます。TFLiteモデルを実行するための最初のステップとして推奨されるのは YOLO("model.tflite")
メソッドを使用します。しかし、TFLiteモデルを他の様々な設定でデプロイするための詳細な手順については、以下のリソースをご覧ください:
-
Android:Liteを アプリケーションに統合するためのクイックスタートガイド。 TensorFlowLiteをAndroid アプリケーションに統合するためのクイックスタートガイド。機械学習モデルをセットアップして実行するための簡単な手順を提供する。
-
iOS:iOS アプリケーションにTensorFlow Lite モデルを統合して展開するための開発者向け詳細ガイドをご覧ください。
-
エンドツーエンドの例:このページでは、TensorFlow Lite の様々な例の概要を提供します。開発者がモバイルやエッジデバイス上の機械学習プロジェクトにTensorFlow Lite を実装するのに役立つように設計された、実用的なアプリケーションやチュートリアルを紹介しています。
概要
このガイドでは、TFLite形式にエクスポートする方法に焦点を当てました。Ultralytics YOLO11 モデルをTFLiteモデル形式に変換することで、YOLO11 モデルの効率とスピードを向上させ、より効果的でエッジコンピューティング環境に適したものにすることができます。
使用方法の詳細については、TFLite公式ドキュメントをご覧ください。
また、その他のUltralytics YOLO11 の統合についてご興味のある方は、統合ガイドページをぜひご覧ください。役立つ情報や洞察が満載です。
よくあるご質問
YOLO11 モデルを TFLite フォーマットにエクスポートするには?
YOLO11 モデルを TFLite フォーマットにエクスポートするには、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 :
詳しくは、Ultralytics エクスポート・ガイドをご覧ください。
YOLO11 モデルの展開にTensorFlow Lite を使用するメリットは何ですか?
TensorFlow Lite(TFLite)は、オンデバイス推論用に設計されたオープンソースのディープラーニングフレームワークで、モバイル、組み込み、IoTデバイスへのYOLO11 モデルの展開に最適です。主な利点は以下の通り:
- デバイス上での最適化:ローカルでデータを処理することで、待ち時間を最小限に抑え、プライバシーを強化します。
- プラットフォーム互換性:Android,iOS, 組み込みLinux, MCUをサポート。
- パフォーマンスハードウェアアクセラレーションを活用し、モデルの速度と効率を最適化。
詳しくは、TFLiteガイドをご覧ください。
YOLO11 TFLiteモデルをRaspberry Piで動かすことは可能ですか?
はい、YOLO11 TFLiteモデルをRaspberry Pi上で実行することで、推論速度を向上させることができます。まず、上記で説明したように、モデルをTFLite形式にエクスポートします。次に、TensorFlow Lite Interpreterのようなツールを使って、Raspberry Pi上でモデルを実行します。
さらなる最適化のために、Coral EdgeTPU使用を検討してください。詳細な手順については、Raspberry Piデプロイメントガイドと EdgeTPU インテグレーションガイドを参照してください。
YOLO11 、マイクロコントローラ上でTFLiteモデルを使用できますか?
はい、TFLiteは限られたリソースのマイクロコントローラへの展開をサポートしています。TFLiteのコアランタイムは、Arm Cortex M3上でわずか16KBのメモリしか必要とせず、基本的なYOLO11 モデルを実行できます。このため、計算能力とメモリが最小限のデバイスへの展開に適しています。
まずは、TFLite Micro for Microcontrollersガイドをご覧ください。
TFLiteYOLO11 にエクスポートされたモデルと互換性のあるプラットフォームは?
TensorFlow Liteは広範なプラットフォームとの互換性を提供し、YOLO11 のモデルを以下のような幅広いデバイスに展開することができます:
- Android およびiOS: TFLiteAndroid およびiOS ライブラリによるネイティブサポート。
- 組み込みLinux:Raspberry Piなどのシングルボードコンピュータに最適。
- マイクロコントローラー:リソースに制約のあるMCUに適しています。
展開オプションの詳細については、詳細な展開ガイドを参照してください。
YOLO11 モデルをTFLiteにエクスポートする際によくある問題のトラブルシューティング方法を教えてください。
YOLO11 モデルをTFLiteにエクスポートする際にエラーが発生した場合、一般的な解決方法は以下の通りです:
- パッケージの互換性をチェックする:互換性のあるバージョンのUltralytics とTensorFlow を使用していることを確認してください。インストールガイドを参照してください。
- モデルのサポート:特定のYOLO11 モデルが TFLite エクスポートをサポートしているかどうかを確認します。
- 量子化の問題:INT8量子化を使用する場合は、データセットのパスが
data
パラメータが必要だ。
その他のトラブルシューティングのヒントについては、「よくある問題」ガイドをご覧ください。