Raspberry Pi上でCoral Edge TPUを使用してUltralytics YOLO26を実行する方法#
Raspberry Piはエッジでコンピュータビジョンを実行するための省電力かつ手頃な価格のプラットフォームですが、ONNXやOpenVINOのような最適化されたフォーマットを使用しても、オンデバイス推論は低速です。PiとCoral Edge TPUコプロセッサを組み合わせることで、推論を専用ハードウェアにオフロードし、大幅に高速化できます。このガイドでは、ランタイムのインストール方法、Ultralytics YOLO26モデルのEdge TPUフォーマットへのエクスポート方法、および高速化された推論の実行方法について説明します。
Watch: How to Run Inference on Raspberry Pi using Google Coral Edge TPU
Coral Edge TPUを使用する理由#
Coral Edge TPUは、システムにEdge TPUコプロセッサを追加するコンパクトなデバイスであり、TensorFlow Liteモデルに対して低消費電力かつ高性能なML推論を可能にします。CPUだけでは追いつかない組み込み環境やモバイル環境での導入に最適です。
- 推論の高速化 — Edge TPUは、Raspberry PiのCPU単体で実現できる性能をはるかに超えて、量子化モデルを加速させます。
- 低消費電力 — ワットあたりの高いスループットを実現し、バッテリー駆動やソーラー駆動の導入に理想的です。
- プラグアンドプレイ — USB AcceleratorはUSB 3.0経由で接続するため、追加のハードウェア統合は不要です。
公式のCoralガイドは古くなっています。オリジナルのCoralランタイムビルドは現在のTensorFlow Liteランタイムバージョンでは動作しなくなり、プロジェクトは2021年から2025年の間に更新されていません。このガイドでは、アクティブにメンテナンスされているEdge TPUランタイムと最新の tflite-runtime を使用して、現在のRaspberry Pi OSインストールでアクセラレータが動作するようにしています。
前提条件#
- Raspberry Pi 4B(2GB以上推奨)またはRaspberry Pi 5(推奨)
- Raspberry Pi OS Bullseye/Bookworm(64ビット)デスクトップ版(推奨)
- Coral USB Accelerator
- Edge TPUコンパイラがARM上で利用できないため、モデルのエクスポートには非ARMプラットフォーム(Google Colab、x86_64 Linuxマシン、またはUltralytics Dockerコンテナ)が必要です。
このガイドでは、 ultralytics とその依存関係がインストールされた、動作するRaspberry Pi OS環境がすでに準備されていることを前提としています。そうでない場合は、まずクイックスタートガイドに従ってください。
前提条件が準備できたら、ワークフローは3つのステップで構成されます。PiへのEdge TPUランタイムのインストール、非ARMマシンでのモデルのエクスポート、そしてPiに戻っての推論の実行です。
Edge TPUランタイムのインストール#
ランタイムは複数のビルドで提供されているため、お使いのオペレーティングシステムに一致するものを選んでください。高周波ビルド(High-frequency build)は、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 |
ここから最新バージョンをダウンロードし、 .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-maxモデルをEdge TPUフォーマットにエクスポートする#
Edge TPUを使用するには、モデルを互換性のある形式に変換します。Edge TPUコンパイラはARM環境では利用できないため、Google Colab、x86_64 Linuxマシン、公式の Ultralytics Docker container、または Ultralytics Platform などの非ARMプラットフォーム上でエクスポートを実行してください。利用可能な引数については、Export mode を参照してください。
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 Liteモデルとして読み込むため、アクセラレータは使用されません。
Edge TPU上で推論を実行する#
モデルを実行する前に、Raspberry Piに適切なライブラリをインストールします。すでに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がある場合は、 device 引数を使用して特定のものを選択できます。
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 64-bitとUSB Coral Edge TPUを使用して測定したものです。これは推論時間のみ(前処理・後処理は除外)を示しており、Piのモデルやモード間でEdge TPUが提供する加速の相対的な参考値となります。
これらのベンチマークはYOLOv8モデルで記録されました。絶対的な推論時間はモデルのバージョンや画像サイズによって異なりますが、Piモデルやクロックモード間での相対的な速度向上は一貫しています。
| 画像サイズ | モデル | 標準推論時間 (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%高速です。
結論#
Coral Edge TPUを使用すると、Raspberry PiをUltralytics YOLO26向けの高性能で低消費電力な推論デバイスに変換できます。非ARMマシンでモデルをエクスポートし、 _edgetpu.tflite サフィックスを維持したまま、Pi上で tflite-runtime を使用して実行することで、高速化されたエッジ推論を実現します。その他のデプロイオプションについては、Raspberry Piガイドを参照してください。
よくある質問 (FAQ)#
Coral Edge TPUは、システムにEdge TPUコプロセッサを追加するコンパクトなデバイスです。このコプロセッサは、特にTensorFlow Liteモデルに最適化された、低消費電力かつ高性能なML推論を可能にします。Raspberry Piにおいて、CPU単体での処理性能を大きく上回る加速を実現し、Ultralytics YOLO26モデルのパフォーマンスを大幅に向上させます。
このリンクからお使いのRaspberry Pi OSバージョンに適した
.debパッケージをダウンロードし、インストールします。sudo dpkg -i path/to/package.debInstall the Edge TPU Runtimeセクションの手順に従って、以前のバージョンの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")詳細については、Exportモードのドキュメントを参照してください。
TensorFlowがインストールされていて
tflite-runtimeに切り替える必要がある場合は、最初にTensorFlowをアンインストールしてください。pip uninstall tensorflow tensorflow-aarch64次に、
tflite-runtimeをインストールまたは更新します。pip install -U tflite-runtime詳細な手順については、Run Inference on the Edge TPUセクションを参照してください。
YOLO26モデルをEdge TPU互換フォーマットにエクスポートした後、次のスニペットで推論を実行します。UltralyticsがEdge TPU上でモデルを読み込めるよう、モデルファイルには
_edgetpu.tfliteサフィックスを保持する必要があります。モデルの実行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ページをご覧ください。