Raspberry PiにおけるCoral Edge TPUとUltralytics YOLO26の活用 🚀
Coral Edge TPUとは何ですか?
Coral Edge TPUは、システムにEdge TPUコプロセッサを追加する小型デバイスです。これにより、TensorFlow Liteモデルに対して低消費電力かつ高性能なML推論が可能になります。詳細はCoral Edge TPUホームページをご覧ください。
Watch: How to Run Inference on Raspberry Pi using Google Coral Edge TPU
Coral Edge TPUによるRaspberry Piモデルパフォーマンスの向上
多くのユーザーがRaspberry Piのような組み込みデバイスやモバイルデバイスでのモデル実行を求めています。これらは電力効率に優れ、多様なアプリケーションで使用できるためです。しかし、これらのデバイスでの推論パフォーマンスは、ONNXやOpenVINOのようなフォーマットを使用する場合でも、通常は低調です。Coral Edge TPUはこの問題に対する優れたソリューションであり、Raspberry Piと組み合わせることで推論パフォーマンスを大幅に加速できます。
TensorFlow Liteを使用したRaspberry Pi上のEdge TPU(新機能)⭐
CoralによるRaspberry PiでのEdge TPU使用に関する既存のガイドは古くなっており、現在のCoral Edge TPUランタイムビルドは、現在のTensorFlow Liteランタイムバージョンでは動作しません。さらに、GoogleはCoralプロジェクトを完全に放棄したようで、2021年から2025年の間にアップデートは一切行われていません。本ガイドでは、最新バージョンのTensorFlow LiteランタイムとアップデートされたCoral Edge TPUランタイムを使用して、Raspberry Piシングルボードコンピュータ(SBC)上でEdge TPUを動作させる方法を解説します。
前提条件
- Raspberry Pi 4B(2GB以上を推奨)または Raspberry Pi 5(推奨)
- Raspberry Pi OS Bullseye/Bookworm(64bit版、デスクトップ環境推奨)
- Coral USB Accelerator
- Ultralytics PyTorchモデルをエクスポートするための非ARMベースのプラットフォーム
インストール手順
本ガイドは、すでにRaspberry Pi OSがインストールされ、ultralyticsおよびすべての依存関係がインストール済みであることを前提としています。ultralyticsのインストールが必要な場合は、クイックスタートガイドを参照してセットアップを行ってから先に進んでください。
Edge TPUランタイムのインストール
まず、Edge TPUランタイムをインストールする必要があります。複数のバージョンが存在するため、OSに最適なバージョンを選択してください。 高周波数バージョンはEdge TPUを高いクロック速度で動作させ、パフォーマンスを向上させます。ただし、Edge TPUがサーマルスロットリング(熱による速度低下)を起こす可能性があるため、何らかの冷却機構を用意することをお勧めします。
| Raspberry Pi OS | 高周波数モード | ダウンロードするバージョン |
|---|---|---|
| Bullseye 32bit | いいえ | libedgetpu1-std_ ... .bullseye_armhf.deb |
| Bullseye 64bit | いいえ | libedgetpu1-std_ ... .bullseye_arm64.deb |
| Bullseye 32bit | はい | libedgetpu1-max_ ... .bullseye_armhf.deb |
| Bullseye 64bit | はい | libedgetpu1-max_ ... .bullseye_arm64.deb |
| Bookworm 32bit | いいえ | libedgetpu1-std_ ... .bookworm_armhf.deb |
| Bookworm 64bit | いいえ | libedgetpu1-std_ ... .bookworm_arm64.deb |
| Bookworm 32bit | はい | libedgetpu1-max_ ... .bookworm_armhf.deb |
| Bookworm 64bit | はい | libedgetpu1-max_ ... .bookworm_arm64.deb |
ファイルをダウンロードしたら、次のコマンドでインストールできます:
sudo dpkg -i path/to/package.debランタイムのインストール後、新しいudevルールを適用させるために、Coral Edge TPUをRaspberry PiのUSB 3.0ポートに接続してください。
重要
すでにCoral Edge TPUランタイムがインストールされている場合は、次のコマンドを使用してアンインストールしてください。
# If you installed the standard version
sudo apt remove libedgetpu1-std
# If you installed the high-frequency version
sudo apt remove libedgetpu1-maxEdge TPUへのエクスポート
Edge TPUを使用するには、モデルを互換性のある形式に変換する必要があります。Edge TPUコンパイラはARM上で利用できないため、Google Colab、x86_64 Linuxマシン、公式Ultralytics Dockerコンテナ、またはUltralytics Platformを使用してエクスポートすることをお勧めします。利用可能な引数についてはエクスポートモードを参照してください。
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/model.pt") # Load an official model or custom model
# Export the model
model.export(format="edgetpu")エクスポートされたモデルは、<model_name>_saved_model/フォルダ内に<model_name>_full_integer_quant_edgetpu.tfliteという名前で保存されます。ファイル名が必ず_edgetpu.tfliteというサフィックスで終わっていることを確認してください。そうでない場合、UltralyticsはEdge TPUモデルを使用していることを検出できません。
モデルの実行
モデルを実行するには、適切なライブラリをインストールする必要があります。
すでにTensorFlowがインストールされている場合は、次のコマンドを使用してアンインストールしてください:
pip uninstall tensorflow tensorflow-aarch64次にtflite-runtimeをインストールまたは更新します:
pip install -U tflite-runtimeこれで、以下のコードを使用して推論を実行できます:
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite") # Load an official model or custom model
# Run Prediction
model.predict("path/to/source.png")推論モードの詳細については、予測(Predict)ページで包括的な情報をご覧ください。
複数のEdge TPUがある場合、以下のコードを使用して特定のTPUを選択できます。
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite") # Load an official model or custom model
# Run Prediction
model.predict("path/to/source.png") # Inference defaults to the first TPU
model.predict("path/to/source.png", device="tpu:0") # Select the first TPU
model.predict("path/to/source.png", device="tpu:1") # Select the second TPUベンチマーク
Raspberry Pi OS Bookworm 64bitとUSB Coral Edge TPUでテスト済み。
表示されているのは推論時間であり、前処理および後処理の時間は含まれていません。
| 画像サイズ | モデル | 標準推論時間 (ms) | 高周波数推論時間 (ms) |
|---|---|---|---|
| 320 | YOLOv8n | 32.2 | 26.7 |
| 320 | YOLOv8s | 47.1 | 39.8 |
| 512 | YOLOv8n | 73.5 | 60.7 |
| 512 | YOLOv8s | 149.6 | 125.3 |
平均して:
- Raspberry Pi 5は、標準モードでRaspberry Pi 4Bより22%高速です。
- Raspberry Pi 5は、高周波数モードでRaspberry Pi 4Bより30.2%高速です。
- 高周波数モードは、標準モードより28.4%高速です。
FAQ
Coral Edge TPUとは何か、そしてUltralytics YOLO26を使用したRaspberry Piのパフォーマンスをどのように強化するのか?
Coral Edge TPUは、システムにEdge TPUコプロセッサを追加するために設計された小型デバイスです。このコプロセッサは、特にTensorFlow Liteモデル向けに最適化された、低消費電力かつ高性能な機械学習推論を可能にします。Raspberry Piで使用する場合、Edge TPUはMLモデルの推論を加速させ、特にUltralytics YOLO26モデルにおいてパフォーマンスを大幅に向上させます。Coral Edge TPUの詳細については、ホームページをご覧ください。
Raspberry PiにCoral Edge TPUランタイムをインストールするにはどうすればよいですか?
To install the Coral Edge TPU runtime on your Raspberry Pi, download the appropriate .deb package for your Raspberry Pi OS version from this link. Once downloaded, use the following command to install it:
sudo dpkg -i path/to/package.debインストール手順セクションで概説した手順に従い、以前のCoral Edge TPUランタイムバージョンをアンインストールしてください。
Ultralytics YOLO26モデルをCoral Edge TPUと互換性があるようにエクスポートできますか?
はい、Ultralytics YOLO26モデルをCoral Edge TPUと互換性があるようにエクスポートできます。エクスポートはGoogle Colab、x86_64 Linuxマシン、またはUltralytics Dockerコンテナで行うことを推奨します。エクスポートにはUltralytics Platformを使用することもできます。PythonとCLIを使用したモデルのエクスポート方法は以下の通りです:
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/model.pt") # Load an official model or custom model
# Export the model
model.export(format="edgetpu")詳細については、エクスポートモードのドキュメントを参照してください。
Raspberry PiにTensorFlowがすでにインストールされていますが、代わりにtflite-runtimeを使用したい場合はどうすればよいですか?
Raspberry PiにTensorFlowがインストールされており、tflite-runtimeに切り替える必要がある場合は、最初に次のコマンドでTensorFlowをアンインストールしてください:
pip uninstall tensorflow tensorflow-aarch64その後、以下のコマンドでtflite-runtimeをインストールまたは更新します:
pip install -U tflite-runtime詳細な手順については、モデルの実行セクションを参照してください。
Coral Edge TPUを使用してRaspberry Pi上でエクスポート済みのYOLO26モデルで推論を実行するにはどうすればよいですか?
YOLO26モデルをEdge TPU互換形式にエクスポートした後、以下のコードスニペットを使用して推論を実行できます:
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/edgetpu_model.tflite") # Load an official model or custom model
# Run Prediction
model.predict("path/to/source.png")完全な予測モード機能に関する包括的な詳細については、予測ページをご覧ください。