Ultralytics YOLO26 mit einer Coral Edge TPU auf einem Raspberry Pi ausführen#
Ein Raspberry Pi ist eine energieeffiziente und erschwingliche Plattform für Computer Vision am Netzwerkrand. Die Inferenz auf dem Gerät ist jedoch selbst mit optimierten Formaten wie ONNX oder OpenVINO langsam. Wenn du den Pi mit einem Coral-Edge-TPU-Coprozessor kombinierst, wird die Inferenz an dedizierte Hardware ausgelagert und erheblich beschleunigt. Diese Anleitung zeigt dir, wie du die Laufzeitumgebung installierst, ein Ultralytics-YOLO26-Modell in das Edge-TPU-Format exportierst und beschleunigte Inferenz ausführst.
Ansehen: So führst du Inferenz auf Raspberry Pi mit Google Coral Edge TPU aus
Warum eine Coral Edge TPU verwenden?#
Die Coral Edge TPU ist ein kompaktes Gerät, das deinem System einen Edge-TPU-Coprozessor hinzufügt. Damit ermöglicht sie eine leistungsstarke ML-Inferenz bei geringem Stromverbrauch für TensorFlow-Lite-Modelle. Sie eignet sich hervorragend für eingebettete und mobile Anwendungen, bei denen eine CPU allein nicht ausreicht:
- Schnellere Inferenz — die Edge TPU beschleunigt quantisierte Modelle weit stärker, als es die CPU des Raspberry Pi allein schafft.
- Niedriger Stromverbrauch — sie bietet einen hohen Durchsatz pro Watt und eignet sich ideal für batteriebetriebene oder solarbetriebene Anwendungen.
- Einfach anschließen und loslegen — der USB-Beschleuniger wird über USB 3.0 angeschlossen, sodass keine zusätzliche Hardwareintegration erforderlich ist.
Die offizielle Coral-Anleitung ist veraltet: Die ursprünglichen Coral-Laufzeitpakete funktionieren nicht mehr mit aktuellen TensorFlow-Lite-Laufzeitversionen, und das Projekt wurde zwischen 2021 und 2025 nicht aktualisiert. Diese Anleitung verwendet eine aktiv gepflegte Edge-TPU-Laufzeitumgebung und die aktuelle Version von tflite-runtime, damit der Beschleuniger mit einer aktuellen Raspberry-Pi-OS-Installation funktioniert.
Voraussetzungen#
- Raspberry Pi 4B (mindestens 2 GB empfohlen) oder Raspberry Pi 5 (empfohlen)
- Raspberry Pi OS Bullseye/Bookworm (64-Bit) mit Desktop (empfohlen)
- Coral USB Accelerator
- Eine x86_64-Linux-Plattform (Google Colab, ein x86_64-Linux-Rechner oder der Ultralytics-Docker-Container auf einem x86_64-Host) zum Exportieren des Modells, da der Edge-TPU-Compiler nur für x86_64 Linux verfügbar ist
In dieser Anleitung wird davon ausgegangen, dass du bereits eine funktionierende Raspberry-Pi-OS-Installation mit ultralytics und den zugehörigen Abhängigkeiten eingerichtet hast. Falls nicht, folge zuerst der Schnellstartanleitung.
Sobald die Voraussetzungen erfüllt sind, umfasst der Ablauf drei Schritte: Installiere die Edge-TPU-Laufzeitumgebung auf dem Pi, exportiere dein Modell auf einem x86_64-Linux-Rechner und führe die Inferenz aus auf dem Pi.
Edge-TPU-Laufzeitumgebung installieren#
Die Laufzeitumgebung ist in mehreren Varianten verfügbar. Wähle die passende für dein Betriebssystem aus. Die Variante mit hoher Taktfrequenz betreibt die Edge TPU mit höherer Taktfrequenz und bietet dadurch eine bessere Leistung, kann aber zu einer thermischen Drosselung führen. Sorge für eine geeignete Kühlung, wenn du diese Variante auswählst.
| Raspberry Pi OS | Modus mit hoher Taktfrequenz | Herunterzuladende Version |
|---|---|---|
| Bullseye 32-Bit | Nein | libedgetpu1-std_ ... .bullseye_armhf.deb |
| Bullseye 64-Bit | Nein | libedgetpu1-std_ ... .bullseye_arm64.deb |
| Bullseye 32-Bit | Ja | libedgetpu1-max_ ... .bullseye_armhf.deb |
| Bullseye 64-Bit | Ja | libedgetpu1-max_ ... .bullseye_arm64.deb |
| Bookworm 32-Bit | Nein | libedgetpu1-std_ ... .bookworm_armhf.deb |
| Bookworm 64-Bit | Nein | libedgetpu1-std_ ... .bookworm_arm64.deb |
| Bookworm 32-Bit | Ja | libedgetpu1-max_ ... .bookworm_armhf.deb |
| Bookworm 64-Bit | Ja | libedgetpu1-max_ ... .bookworm_arm64.deb |
Lade hier die aktuelle Version herunter und installiere anschließend das Paket .deb:
sudo dpkg -i path/to/package.debSchließe nach der Installation der Laufzeitumgebung deine Coral Edge TPU an einen USB-3.0-Anschluss des Raspberry Pi an, damit die neue Regel udev wirksam wird.
Vorhandene Laufzeitumgebung zuerst entfernen
Wenn die Coral-Edge-TPU-Laufzeitumgebung bereits installiert ist, deinstalliere sie, bevor du eine neue Variante installierst.
# If you installed the standard version
sudo apt remove libedgetpu1-std
# If you installed the high-frequency version
sudo apt remove libedgetpu1-maxModell ins Edge-TPU-Format exportieren#
Damit du die Edge TPU verwenden kannst, musst du dein Modell in ein kompatibles Format konvertieren. Führe den Export unter x86_64 Linux aus – in Google Colab, auf einem x86_64-Linux-Rechner, mit dem offiziellen Ultralytics-Docker-Container auf einem x86_64-Host oder über die Ultralytics Platform –, da der Edge-TPU-Compiler nur für x86_64 Linux verfügbar ist. In der Dokumentation zum Exportmodus findest du die verfügbaren Argumente.
from ultralytics import YOLO
# Ein Modell laden
model = YOLO("path/to/model.pt") # Ein offizielles Modell oder ein benutzerdefiniertes Modell laden
# Modell exportieren
model.export(format="edgetpu")Das exportierte Modell wird im Ordner <model_name>_saved_model/ unter dem Namen <model_name>_full_integer_quant_edgetpu.tflite gespeichert.
Der Dateiname muss auf _edgetpu.tflite enden. Wenn du die Datei anders benennst, lädt Ultralytics sie als normales LiteRT-Modell (.tflite), anstatt die Edge TPU zu erkennen. Der Beschleuniger wird dann nicht verwendet.
Inferenz auf der Edge TPU ausführen#
Bevor du das Modell ausführst, installiere die passenden Bibliotheken auf dem Raspberry Pi. Wenn TensorFlow bereits installiert ist, deinstalliere es zuerst:
pip uninstall tensorflow tensorflow-aarch64Installiere oder aktualisiere jetzt tflite-runtime:
pip install -U tflite-runtimeJetzt kannst du die Inferenz ausführen:
from ultralytics import YOLO
# Ein Modell laden
model = YOLO("path/to/yolo26n_full_integer_quant_edgetpu.tflite") # Ein offizielles Modell oder ein benutzerdefiniertes Modell laden
# Vorhersage ausführen
model.predict("path/to/source.png")Ausführliche Informationen zum Vorhersagemodus findest du auf der Seite Predict.
Wenn du mehrere Edge TPUs verwendest, kannst du mit dem Argument device eine bestimmte TPU auswählen.
from ultralytics import YOLO
# Ein Modell laden
model = YOLO("path/to/yolo26n_full_integer_quant_edgetpu.tflite") # Ein offizielles Modell oder ein benutzerdefiniertes Modell laden
# Vorhersage ausführen
model.predict("path/to/source.png") # Standardmäßig wird für die Inferenz die erste TPU verwendet
model.predict("path/to/source.png", device="tpu:0") # Die erste TPU auswählen
model.predict("path/to/source.png", device="tpu:1") # Die zweite TPU auswählenBenchmarks#
Die nachstehenden Werte wurden mit Raspberry Pi OS Bookworm (64-Bit) und einer Coral USB Edge TPU gemessen. Sie zeigen ausschließlich die Inferenzzeit (ohne Vor- und Nachverarbeitung) und dienen als Vergleichswert für die Beschleunigung durch die Edge TPU bei verschiedenen Pi-Modellen und Betriebsmodi.
Diese Benchmarks wurden mit YOLOv8-Modellen ermittelt. Die absoluten Inferenzzeiten variieren je nach Modellversion und Bildgröße, die relativen Geschwindigkeitsunterschiede zwischen Pi-Modellen und Taktmodi bleiben jedoch bestehen.
| Bildgröße | Modell | Inferenzzeit im Standardmodus (ms) | Inferenzzeit im Modus mit hoher Taktfrequenz (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 |
Im Durchschnitt:
- Der Raspberry Pi 5 ist im Standardmodus 22 % schneller als der Raspberry Pi 4B.
- Der Raspberry Pi 5 ist im Modus mit hoher Taktfrequenz 30,2 % schneller als der Raspberry Pi 4B.
- Der Modus mit hoher Taktfrequenz ist 28,4 % schneller als der Standardmodus.
Fazit#
Eine Coral Edge TPU macht aus einem Raspberry Pi ein leistungsfähiges Inferenzgerät mit niedrigem Stromverbrauch für Ultralytics YOLO26. Exportiere dein Modell auf einem x86_64-Linux-Rechner, behalte die Endung _edgetpu.tflite bei und führe es mit tflite-runtime auf dem Pi aus, um beschleunigte Inferenz am Netzwerkrand zu erhalten. Weitere Bereitstellungsoptionen findest du in der Anleitung für Raspberry Pi.
Häufig gestellte Fragen#
Die Coral Edge TPU ist ein kompaktes Gerät, das deinem System einen Edge-TPU-Coprozessor hinzufügt. Dieser Coprozessor ermöglicht eine leistungsstarke ML-Inferenz bei geringem Stromverbrauch und ist besonders für TensorFlow-Lite-Modelle optimiert. Auf einem Raspberry Pi beschleunigt er die Inferenz weit über das hinaus, was die CPU allein schafft, und steigert damit die Leistung von Ultralytics-YOLO26-Modellen erheblich.
Lade das passende Paket
.debfür deine Raspberry-Pi-OS-Version über diesen Link herunter und installiere es anschließend:sudo dpkg -i path/to/package.debDeinstalliere alle bisherigen Versionen der Coral-Edge-TPU-Laufzeitumgebung. Folge dazu den Schritten im Abschnitt Edge-TPU-Laufzeitumgebung installieren.
Ja. Führe den Export in Google Colab, auf einem x86_64-Linux-Rechner oder mit dem Ultralytics-Docker-Container aus. Du kannst dafür auch die Ultralytics Platform verwenden. So exportierst du mit Python und der CLI:
Modell exportierenfrom ultralytics import YOLO # Ein Modell laden model = YOLO("path/to/model.pt") # Ein offizielles Modell oder ein benutzerdefiniertes Modell laden # Modell exportieren model.export(format="edgetpu")Weitere Informationen findest du in der Dokumentation zum Exportmodus.
Wenn TensorFlow installiert ist und du zu
tflite-runtimewechseln möchtest, deinstalliere zuerst TensorFlow:pip uninstall tensorflow tensorflow-aarch64Installiere oder aktualisiere jetzt
tflite-runtime:pip install -U tflite-runtimeEine ausführliche Anleitung findest du im Abschnitt Inferenz auf der Edge TPU ausführen.
Nachdem du dein YOLO26-Modell in ein Edge-TPU-kompatibles Format exportiert hast, kannst du die Inferenz mit den folgenden Codebeispielen ausführen. Der Modellname muss die Endung
_edgetpu.tflitebeibehalten, damit Ultralytics das Modell auf der Edge TPU lädt:Modell ausführenfrom ultralytics import YOLO # Ein Modell laden model = YOLO("path/to/yolo26n_full_integer_quant_edgetpu.tflite") # Ein offizielles Modell oder ein benutzerdefiniertes Modell laden # Vorhersage ausführen model.predict("path/to/source.png")Ausführliche Informationen zum Vorhersagemodus findest du auf der Seite Predict.