コンテンツへスキップ

Coral EdgeTPU on Raspberry Pi withUltralytics YOLOv8 🚀.

USB EdgeTPU アクセラレータ搭載 Raspberry Pi シングルボードコンピュータ

コーラルエッジTPU とは?

Coral EdgeTPU は、EdgeTPU コプロセッサをシステムに追加するコンパクトなデバイスです。TensorFlow Liteモデル用の低消費電力で高性能なML推論を可能にします。詳しくはCoral EdgeTPU ホームページをご覧ください。

Coral EdgeでRaspberry Piモデルのパフォーマンスを高めるTPU

Raspberry Piのような組み込みデバイスやモバイルデバイスは、電力効率が非常に高く、さまざまなアプリケーションで使用できるため、多くの人がモデルを実行したいと考えている。しかし、これらのデバイスでの推論性能は、たとえ onnxまたは openvino.Coral EdgeTPU は、Raspberry Pi で使用することができ、推論パフォーマンスを大幅に加速することができるため、この問題に対する素晴らしいソリューションです。

TensorFlow Liteを使ったRaspberry PiのエッジTPU (New)⭐。

RaspberryPiでEdgeTPU を使用する方法に関するCoralによる既存のガイドは古く、現在のCoral EdgeTPU ランタイムビルドは、現在のTensorFlow Lite ランタイムバージョンではもう動作しない。さらに、GoogleはCoralプロジェクトを完全に放棄したようで、2021年から2024年にかけてアップデートは行われていません。このガイドでは、Raspberry Piシングルボードコンピュータ(SBC)上で最新バージョンのTensorFlow Liteランタイムと更新されたCoral EdgeTPU ランタイムを使ってEdgeTPU を動作させる方法を紹介します。

前提条件

インストール・ウォークスルー

このガイドでは、すでにRaspberry PiのOSがインストールされており、以下のファイルがインストールされていることを前提としています。 ultralytics とすべての依存関係。取得するには ultralytics をインストールしてください。 クイックスタートガイド をクリックし、セットアップを済ませてから、ここに進むこと。

EdgeTPU ランタイムのインストール

まず、EdgeTPU ランタイムをインストールする必要があります。さまざまなバージョンが用意されているので、自分のオペレーティング・システムに合ったバージョンを選択する必要がある。

ラズベリーパイOS 高周波モード ダウンロード版
ブルズアイ 32ビット いいえ libedgetpu1-std_ ... .bullseye_armhf.deb
ブルズアイ 64ビット いいえ libedgetpu1-std_ ... .bullseye_arm64.deb
ブルズアイ 32ビット はい libedgetpu1-max_ ... .bullseye_armhf.deb
ブルズアイ 64ビット はい libedgetpu1-max_ ... .bullseye_arm64.deb
本の虫 32bit いいえ libedgetpu1-std_ ... .bookworm_armhf.deb
本の虫 64ビット いいえ libedgetpu1-std_ ... .bookworm_arm64.deb
本の虫 32bit はい libedgetpu1-max_ ... .bookworm_armhf.deb
本の虫 64ビット はい libedgetpu1-max_ ... .bookworm_arm64.deb

最新版のダウンロードはこちらから。

ファイルをダウンロードしたら、以下のコマンドでインストールできる:

sudo dpkg -i path/to/package.deb

ランタイムをインストールした後、Raspberry PiのUSB 3.0ポートにCoral EdgeTPU を接続する必要があります。これは、公式ガイドによると、新しい udev ルールはインストール後に有効にする必要がある。

重要

すでにCoral EdgeTPU ランタイムがインストールされている場合は、以下のコマンドを使用してアンインストールします。

# If you installed the standard version
sudo apt remove libedgetpu1-std 

# If you installed the high frequency version
sudo apt remove libedgetpu1-max 

モデルをEdgeTPU 互換モデルにエクスポートする

EdgeTPU を使用するには、モデルを互換性のある形式に変換する必要があります。EdgeのTPU コンパイラはARMでは利用できないため、Google Colab、x86_64 Linuxマシン、公式のUltralytics Dockerコンテナを使用するか、Ultralytics HUBを使用してエクスポートを実行することを推奨します。使用可能な引数については、エクスポート・モードを参照してください。

輸出

from ultralytics import YOLO

# Load a model
model = YOLO('path/to/model.pt')  # Load a official model or custom model

# Export the model
model.export(format='edgetpu')
yolo export model=path/to/model.pt format=edgetpu  # Export a official model or custom model

エクスポートされたモデルは <model_name>_saved_model/ という名前の <model_name>_full_integer_quant_edgetpu.tflite.

モデルの実行

モデルをエクスポートしたら、次のコードを使って推論を実行することができる:

ランニング

from ultralytics import YOLO

# Load a model
model = YOLO('path/to/edgetpu_model.tflite')  # Load a official model or custom model

# Run Prediction
model.predict("path/to/source.png")
yolo predict model=path/to/edgetpu_model.tflite source=path/to/source.png  # Load a official model or custom model

予想モードの詳細については、「予想」のページで包括的な情報をご覧ください。

重要

モデルは tflite-runtime そして tensorflow. もし tensorflow がインストールされている場合は、以下のコマンドでtensorflow をアンインストールする:

pip uninstall tensorflow tensorflow-aarch64

その後、インストール/アップデートする。 tflite-runtime:

pip install -U tflite-runtime

をお望みなら tflite-runtime ホイール tensorflow 2.15.0 ダウンロード これ を使用してインストールする。 pip またはお好みのパッケージ・マネージャーを選択してください。



作成日:2024-02-12 更新日:2024-03-03
作成者:glenn-jocher(2),Skillnoob(1)

コメント