Zum Inhalt springen

Coral Edge TPU auf einem Raspberry Pi mit Ultralytics YOLOv8 🚀

Raspberry Pi Einplatinencomputer mit USB Edge TPU Beschleuniger

Was ist eine Coral Edge TPU?

Der Coral Edge TPU ist ein kompaktes Gerät, das dein System um einen Edge TPU Coprozessor erweitert. Er ermöglicht stromsparende und leistungsstarke ML-Inferenz für TensorFlow Lite-Modelle. Weitere Informationen findest du auf der Coral Edge TPU Homepage.

Die Leistung des Raspberry Pi Modells mit Coral Edge steigern TPU

Viele Menschen wollen ihre Modelle auf einem eingebetteten oder mobilen Gerät wie einem Raspberry Pi ausführen, da sie sehr stromsparend sind und in vielen verschiedenen Anwendungen eingesetzt werden können. Allerdings ist die Inferenzleistung auf diesen Geräten in der Regel schlecht, selbst wenn man Formate wie onnx oder openvino. Der Coral Edge TPU ist eine großartige Lösung für dieses Problem, da er mit einem Raspberry Pi verwendet werden kann und die Inferenzleistung erheblich beschleunigt.

Edge TPU auf dem Raspberry Pi mit TensorFlow Lite (Neu)⭐.

Die bestehende Anleitung von Coral zur Verwendung des Edge TPU mit einem Raspberry Pi ist veraltet und die aktuellen Coral Edge TPU Runtime-Builds funktionieren nicht mehr mit den aktuellen TensorFlow Lite-Runtime-Versionen. Außerdem scheint Google das Coral-Projekt komplett aufgegeben zu haben und zwischen 2021 und 2024 gab es keine Updates mehr. Diese Anleitung zeigt dir, wie du den Edge TPU mit den neuesten Versionen der TensorFlow Lite Runtime und einer aktualisierten Coral Edge TPU Runtime auf einem Raspberry Pi Single Board Computer (SBC) zum Laufen bringst.

Voraussetzungen

Komplettlösung für die Installation

In dieser Anleitung wird davon ausgegangen, dass du bereits ein funktionierendes Raspberry Pi OS hast und Folgendes installiert hast ultralytics und alle Abhängigkeiten. Um die ultralytics installiert, besuche die Schnellstartanleitung einrichten, bevor du hier weitermachst.

Installation der Edge TPU Laufzeitumgebung

Zuerst müssen wir die Edge TPU Runtime installieren. Es gibt viele verschiedene Versionen, also musst du die richtige Version für dein Betriebssystem auswählen.

Raspberry Pi OS Hochfrequenz-Modus Version zum Herunterladen
Bullseye 32bit Nein libedgetpu1-std_ ... .bullseye_armhf.deb
Bullseye 64bit Nein libedgetpu1-std_ ... .bullseye_arm64.deb
Bullseye 32bit Ja libedgetpu1-max_ ... .bullseye_armhf.deb
Bullseye 64bit Ja libedgetpu1-max_ ... .bullseye_arm64.deb
Bücherwurm 32bit Nein libedgetpu1-std_ ... .bookworm_armhf.deb
Bücherwurm 64bit Nein libedgetpu1-std_ ... .bookworm_arm64.deb
Bücherwurm 32bit Ja libedgetpu1-max_ ... .bookworm_armhf.deb
Bücherwurm 64bit Ja libedgetpu1-max_ ... .bookworm_arm64.deb

Lade die neueste Version von hier herunter.

Nachdem du die Datei heruntergeladen hast, kannst du sie mit dem folgenden Befehl installieren:

sudo dpkg -i path/to/package.deb

Nachdem du die Runtime installiert hast, musst du deinen Coral Edge TPU an einen USB 3.0-Anschluss deines Raspberry Pi anschließen. Das liegt daran, dass laut der offiziellen Anleitung eine neue udev Regel muss nach der Installation in Kraft treten.

Wichtig

Wenn du die Coral Edge TPU Runtime bereits installiert hast, deinstalliere sie mit dem folgenden Befehl.

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

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

Exportiere dein Modell in ein Edge TPU kompatibles Modell

Um den Edge TPU zu verwenden, musst du dein Modell in ein kompatibles Format konvertieren. Es wird empfohlen, den Export auf Google Colab, einem x86_64-Linux-Rechner, mit dem offiziellen Ultralytics Docker-Container oder mit Ultralytics HUB auszuführen, da der Edge TPU Compiler auf ARM nicht verfügbar ist. Siehe Exportmodus für die verfügbaren Argumente.

exportieren

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")
yolo export model=path/to/model.pt format=edgetpu  # Export an official model or custom model

Das exportierte Modell wird in der Datei <model_name>_saved_model/ Ordner mit dem Namen <model_name>_full_integer_quant_edgetpu.tflite.

Ausführen des Modells

Nachdem du dein Modell exportiert hast, kannst du mit dem folgenden Code eine Inferenz durchführen:

Laufen

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")
yolo predict model=path/to/edgetpu_model.tflite source=path/to/source.png  # Load an official model or custom model

Umfassende Informationen findest du auf der Seite Vorhersage für alle Details zum Vorhersagemodus.

Wichtig

Du solltest das Modell mit tflite-runtime und nicht tensorflow. Wenn tensorflow installiert ist, deinstalliere tensorflow mit dem folgenden Befehl:

pip uninstall tensorflow tensorflow-aarch64

Dann installiere/aktualisiere tflite-runtime:

pip install -U tflite-runtime

Wenn du eine tflite-runtime Rad für tensorflow 2.15.0 herunterladen von hier und installiere sie mit pip oder den Paketmanager deiner Wahl.

FAQ

Was ist ein Coral Edge TPU und wie verbessert es die Leistung des Raspberry Pi mit Ultralytics YOLOv8 ?

Der Coral Edge TPU ist ein kompaktes Gerät, mit dem du einen Edge TPU Coprozessor in dein System einbauen kannst. Dieser Koprozessor ermöglicht stromsparende und leistungsstarke Inferenzen für maschinelles Lernen, die insbesondere für TensorFlow Lite-Modelle optimiert sind. Wenn du einen Raspberry Pi verwendest, beschleunigt der Edge TPU die Inferenz von ML-Modellen und steigert die Leistung erheblich, insbesondere für Ultralytics YOLOv8 Modelle. Mehr über den Coral Edge TPU erfährst du auf der Homepage des Unternehmens.

Wie installiere ich die Coral Edge TPU Laufzeitumgebung auf einem Raspberry Pi?

Um die Coral Edge TPU Runtime auf deinem Raspberry Pi zu installieren, lade die entsprechende .deb Paket für deine Raspberry Pi OS Version von dieser Link. Nach dem Download installierst du es mit folgendem Befehl:

sudo dpkg -i path/to/package.deb

Stelle sicher, dass du alle früheren Coral Edge TPU Runtime-Versionen deinstallierst, indem du die Schritte im Abschnitt Installationsanleitung befolgst.

Kann ich mein Ultralytics YOLOv8 Modell exportieren, damit es mit Coral Edge TPU kompatibel ist?

Ja, du kannst dein Ultralytics YOLOv8 Modell exportieren, damit es mit dem Coral Edge TPU kompatibel ist. Es wird empfohlen, den Export auf Google Colab, einem x86_64 Linux Rechner oder mit dem Ultralytics Docker Container durchzuführen. Du kannst auch Ultralytics HUB zum Exportieren verwenden. Hier siehst du, wie du dein Modell mit Python und CLI exportieren kannst:

exportieren

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")
yolo export model=path/to/model.pt format=edgetpu  # Export an official model or custom model

Weitere Informationen findest du in der Dokumentation zum Exportmodus.

Was muss ich tun, wenn TensorFlow bereits auf meinem Raspberry Pi installiert ist, ich aber stattdessen tflite-runtime verwenden möchte?

Wenn du TensorFlow auf deinem Raspberry Pi installiert hast und zu tflite-runtimemusst du zuerst TensorFlow deinstallieren:

pip uninstall tensorflow tensorflow-aarch64

Installiere oder aktualisiere dann tflite-runtime mit dem folgenden Befehl:

pip install -U tflite-runtime

Für ein bestimmtes Rad, z. B. TensorFlow 2.15.0 tflite-runtimekannst du es herunterladen unter dieser Link und installiere sie mit pip. Detaillierte Anweisungen findest du im Abschnitt über die Ausführung des Modells Ausführen des Modells.

Wie führe ich Inferenzen mit einem exportierten YOLOv8 Modell auf einem Raspberry Pi mit Coral Edge TPU durch?

Nachdem du dein YOLOv8 Modell in ein Edge TPU-kompatibles Format exportiert hast, kannst du die Inferenz mit den folgenden Codeschnipseln durchführen:

Laufen

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")
yolo predict model=path/to/edgetpu_model.tflite source=path/to/source.png  # Load an official model or custom model

Umfassende Details zu den Funktionen des Vorhersagemodus findest du auf der Seite Vorhersage.



Erstellt am 2024-02-12, Aktualisiert am 2024-07-05
Autoren: glenn-jocher (7), Skillnoob (1)

Kommentare