コンテンツへスキップ

YOLOv8 モデルから TFLite EdgeTPU 形式へのエクスポートを学ぶ

コンピュータビジョンモデルを、モバイルや組込みシステムのような計算能力に制限のあるデバイスに展開するのは、厄介なことです。より高速に動作するように最適化されたモデル形式を使用することで、プロセスを簡素化することができます。TensorFlow Lite EdgeTPUまたは TFLite EdgeTPU モデル形式は、ニューラル・ネットワークの高速性能を実現しながら、消費電力を最小限に抑えるように設計されています。

TFLite EdgeTPU フォーマットへのエクスポート機能により、モデルを最適化することができます。 Ultralytics YOLOv8モデルを最適化することができます。このガイドでは、モデルをTFLite EdgeTPU フォーマットに変換し、様々なモバイル機器や組込み機器でのパフォーマンスを向上させる方法を説明します。

なぜTFLite EdgeTPU にエクスポートする必要があるのですか?

TensorFlow EdgeTPU にモデルをエクスポートすることで、機械学習タスクが高速かつ効率的になります。このテクノロジーは、パワー、コンピューティング・リソース、接続性が限られたアプリケーションに適している。EdgeTPU は、Googleによるハードウェア・アクセラレータである。エッジ・デバイス上のTensorFlow Liteモデルを高速化する。下の画像はそのプロセスの一例である。

TFLiteエッジTPU

エッジTPU は量子化されたモデルで動作する。量子化することで、精度をそれほど落とすことなく、モデルをより小さく、より速くすることができる。エッジ・コンピューティングの限られたリソースに最適で、待ち時間を短縮し、クラウドに依存することなくローカルで素早くデータを処理できるため、アプリケーションは迅速に対応できる。また、ローカル処理では、リモート・サーバーに送信されないため、ユーザー・データのプライベート性と安全性が保たれます。

TFLiteエッジの主な特徴TPU

以下は、TFLite EdgeTPU が開発者にとって素晴らしいモデルフォーマットの選択肢となる主な特徴です:

  • エッジデバイスでの最適化されたパフォーマンス:TFLite EdgeTPU は、量子化、モデルの最適化、ハードウェア・アクセラレーション、コンパイラの最適化により、高速なニューラル・ネットワーキングのパフォーマンスを実現します。その最小限のアーキテクチャは、小型化とコスト効率に貢献しています。

  • 高い計算スループット:TFLite EdgeTPU は、専用のハードウェアアクセラレーションと効率的なランタイム実行を組み合わせることで、高い計算スループットを実現します。エッジデバイス上で厳しい性能要件を満たす機械学習モデルの展開に適しています。

  • 効率的な行列計算 TensorFlow EdgeTPU は、ニューラル・ネットワークの計算に不可欠な行列演算に最適化されています。この効率性は、機械学習モデル、特に多数の複雑な行列の乗算と変換を必要とするモデルにおいて重要です。

TFLite Edgeの展開オプションTPU

YOLOv8 モデルをTFLite EdgeTPU フォーマットにエクスポートする方法に入る前に、TFLite EdgeTPU モデルが通常どのような場所で使用されるのかを理解しましょう。

TFLite EdgeTPU は、機械学習モデルのための様々な展開オプションを提供する:

  • オンデバイスでの展開:TensorFlow エッジTPU モデルは、モバイルデバイスや組み込みデバイスに直接デプロイすることができます。オンデバイスでの展開により、モデルはハードウェア上で直接実行され、クラウド接続の必要性がなくなります。

  • クラウドTensorFlow TPUによるエッジコンピューティング:エッジデバイスの処理能力が限られているシナリオでは、TensorFlow エッジTPUは、TPUを搭載したクラウドサーバーに推論タスクをオフロードすることができる。

  • ハイブリッド展開:ハイブリッド・アプローチは、オンデバイスとクラウドのデプロイメントを組み合わせたもので、機械学習モデルのデプロイメントに多用途でスケーラブルなソリューションを提供する。利点として、迅速な応答にはオンデバイス処理、より複雑な計算にはクラウド・コンピューティングが挙げられます。

YOLOv8 モデルを TFLite Edge にエクスポートするTPU

YOLOv8 モデルをTensorFlow EdgeTPU に変換することで、モデルの互換性と展開の柔軟性を拡大できます。

インストール

必要なパッケージをインストールするには、以下を実行する:

インストール

# Install the required package for YOLOv8
pip install ultralytics

インストールプロセスに関する詳細な説明とベストプラクティスについては、Ultralytics インストールガイドをご覧ください。YOLOv8 に必要なパッケージをインストールする際に、何らかの問題が発生した場合は、解決策やヒントについて、よくある問題ガイドを参照してください。

使用方法

使い方の説明に入る前に、Ultralytics YOLOv8 の全モデルでエクスポートが可能ですが、 ここで選択したモデルがエクスポート機能をサポートしているかどうかを確認することができます。

使用方法

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to TFLite Edge TPU format
model.export(format='edgetpu')  # creates 'yolov8n_full_integer_quant_edgetpu.tflite’

# Load the exported TFLite Edge TPU model
edgetpu_model = YOLO('yolov8n_full_integer_quant_edgetpu.tflite')

# Run inference
results = edgetpu_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TFLite Edge TPU format
yolo export model=yolov8n.pt format=edgetpu  # creates 'yolov8n_full_integer_quant_edgetpu.tflite'

# Run inference with the exported model
yolo predict model=yolov8n_full_integer_quant_edgetpu.tflite source='https://ultralytics.com/images/bus.jpg'

サポートされているエクスポートオプションの詳細については、Ultralytics 配置オプションのドキュメントページを参照してください。

エクスポートされたYOLOv8 TFLite EdgeTPU モデルの展開

Ultralytics YOLOv8 モデルをTFLite EdgeTPU フォーマットにエクスポートした後、デプロイすることができます。TFLite EdgeTPU モデルを実行するための最初のステップとして推奨されるのは、YOLO("model_edgetpu.tflite") メソッドを使用することです。

ただし、TFLite EdgeTPU モデルの展開に関する詳しい説明については、以下のリソースをご覧ください:

概要

このガイドでは、Ultralytics YOLOv8 モデルを TFLite EdgeTPU フォーマットにエクスポートする方法を学びました。上記のステップに従うことで、コンピュータビジョンアプリケーションのスピードとパワーを向上させることができます。

使用方法の詳細については、EdgeTPU 公式ウェブサイトをご覧ください。

また、その他のUltralytics YOLOv8 の統合については、統合ガイドページをご覧ください。そこでは、貴重なリソースや洞察を発見することができます。



作成 2024-03-13 更新 2024-04-02
著者Burhan-Q(1),abirami-vina(1)

コメント