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(推奨)
- デスクトップ環境を備えたBullseye/Bookworm対応のRaspberry Pi OS(64ビット、推奨)
- Coral USB Accelerator
- モデルをエクスポートするための非ARMプラットフォーム(Google Colab、x86_64 Linuxマシン、またはUltralytics Dockerコンテナ。Edge TPUコンパイラーはARMでは利用できません)
このガイドでは、ultralyticsとその依存関係がインストールされた、動作するRaspberry Pi OS環境をすでに用意していることを前提とします。まだの場合は、先にクイックスタートガイドに従ってください。
前提条件の準備ができたら、ワークフローは3つのステップで構成されます。PiにEdge TPUランタイムをインストールし、非ARMマシンでモデルをエクスポートしてから、Piに戻って推論を実行します。
Edge TPUランタイムをインストールする#
ランタイムには複数のビルドがあるため、オペレーティングシステムに合ったものを選択してください。高周波数ビルドはEdge TPUをより高いクロック速度で動作させ、パフォーマンスを向上させますが、サーマルスロットリングを引き起こす可能性があります。選択する場合は、何らかの冷却手段を使用してください。
| Raspberry Pi OS | 高周波数モード | ダウンロードするバージョン |
|---|---|---|
| Bullseye 32ビット | いいえ | libedgetpu1-std_ ... .bullseye_armhf.deb |
| Bullseye 64ビット | いいえ | libedgetpu1-std_ ... .bullseye_arm64.deb |
| Bullseye 32ビット | はい | libedgetpu1-max_ ... .bullseye_armhf.deb |
| Bullseye 64ビット | はい | libedgetpu1-max_ ... .bullseye_arm64.deb |
| Bookworm 32ビット | いいえ | libedgetpu1-std_ ... .bookworm_armhf.deb |
| Bookworm 64ビット | いいえ | libedgetpu1-std_ ... .bookworm_arm64.deb |
| Bookworm 32ビット | はい | libedgetpu1-max_ ... .bookworm_armhf.deb |
| Bookworm 64ビット | はい | libedgetpu1-max_ ... .bookworm_arm64.deb |
こちらから最新バージョンをダウンロードしてから、.debパッケージをインストールします。
sudo dpkg -i path/to/package.debランタイムのインストール後、Coral Edge TPUをRaspberry PiのUSB 3.0ポートに接続して、新しいudevルールを適用できるようにします。
まず既存のランタイムを削除してください
すでに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では利用できないため、エクスポートは非ARMプラットフォーム(Google Colab、x86_64 Linuxマシン、公式のUltralytics Dockerコンテナ、またはUltralytics Platform)で実行してください。利用可能な引数については、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/yolo26n_full_integer_quant_edgetpu.tflite") # Load an official model or custom model
# Run Prediction
model.predict("path/to/source.png")予測モードの詳細については、Predictページを参照してください。
複数のEdge TPUがある場合は、device引数で特定の1台を選択できます。
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/yolo26n_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ビットと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.debEdge TPUランタイムをインストールするセクションの手順に従って、以前の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 modeのドキュメントを参照してください。
TensorFlowがインストールされていて、
tflite-runtimeに切り替える必要がある場合は、先にTensorFlowをアンインストールしてください。pip uninstall tensorflow tensorflow-aarch64続いて
tflite-runtimeをインストールまたは更新します。pip install -U tflite-runtime詳しい手順については、Edge TPUで推論を実行するセクションを参照してください。
YOLO26モデルをEdge TPU対応形式にエクスポートしたら、以下のスニペットで推論を実行します。UltralyticsがEdge TPU上でモデルを読み込めるように、モデルファイルでは
_edgetpu.tfliteサフィックスを維持する必要があります。モデルを実行するfrom ultralytics import YOLO # Load a model model = YOLO("path/to/yolo26n_full_integer_quant_edgetpu.tflite") # Load an official model or custom model # Run Prediction model.predict("path/to/source.png")予測モードの詳細については、Predictページを参照してください。