YOLOv8 配備のためのTFLiteへのモデルエクスポートガイド
コンピュータビジョンモデルをエッジデバイスや組み込みデバイスに展開するには、シームレスなパフォーマンスを保証できるフォーマットが必要です。
TensorFlow LiteまたはTFLiteのエクスポート・フォーマットにより、エッジ・デバイス・ベースのアプリケーションのようなタスクで、モデルを最適化することができます。 Ultralytics YOLOv8モデルを最適化することができます。このガイドでは、モデルを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の展開オプション
YOLOv8 、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へのエクスポート:YOLOv8 モデルの変換
TFLite形式に変換することで、デバイス上でのモデル実行効率を向上させ、パフォーマンスを最適化することができます。
インストール
必要なパッケージをインストールするには
インストールプロセスに関する詳細な説明とベストプラクティスについては、Ultralytics インストールガイドをご覧ください。YOLOv8 に必要なパッケージをインストールする際に、何らかの問題が発生した場合は、解決策やヒントについて、よくある問題ガイドを参照してください。
使用方法
使い方の説明に入る前に、Ultralytics YOLOv8 の全モデルでエクスポートが可能ですが、 ここで選択したモデルがエクスポート機能をサポートしているかどうかを確認することができます。
使用方法
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO('yolov8n.pt')
# Export the model to TFLite format
model.export(format='tflite') # creates 'yolov8n_float32.tflite'
# Load the exported TFLite model
tflite_model = YOLO('yolov8n_float32.tflite')
# Run inference
results = tflite_model('https://ultralytics.com/images/bus.jpg')
エクスポートプロセスの詳細については、Ultralytics ドキュメントのエクスポートに関するページをご覧ください。
エクスポートされたYOLOv8 TFLite モデルの展開
Ultralytics YOLOv8 モデルのTFLiteフォーマットへのエクスポートに成功したら、それらをデプロイすることができます。TFLiteモデルを実行するための最初のステップとして推奨されるのは、YOLO ("model.tflite")メソッドを利用することです。しかし、他の様々な設定でのTFLiteモデルのデプロイに関する詳細な説明は、以下のリソースをご覧ください:
-
アンドロイド:Android アプリケーションにTensorFlow Lite を統合するためのクイック・スタート・ガイドで、機械学習モデルをセットアップして実行するための簡単な手順を提供します。
-
iOS:iOS アプリケーションにTensorFlow Lite モデルを統合して展開するための開発者向け詳細ガイドをご覧ください。
-
エンドツーエンドの例:このページでは、TensorFlow Lite の様々な例の概要を提供します。開発者がモバイルやエッジデバイス上の機械学習プロジェクトにTensorFlow Lite を実装するのに役立つように設計された、実用的なアプリケーションやチュートリアルを紹介しています。
概要
このガイドでは、TFLite フォーマットにエクスポートする方法に焦点を当てました。Ultralytics YOLOv8 モデルをTFLiteモデル形式に変換することで、YOLOv8 モデルの効率とスピードを向上させ、より効果的でエッジコンピューティング環境に適したものにすることができます。
使い方の詳細については、TFLiteの公式ドキュメントをご覧ください。
また、その他のUltralytics YOLOv8 の統合についてご興味のある方は、統合ガイドページをぜひご覧ください。役立つ情報や洞察が満載です。