Coral Edge TPU auf einem Raspberry Pi mit Ultralytics YOLO11 🚀
Was ist eine Coral Edge TPU?
Die Coral Edge TPU ist ein kompaktes Gerät, das Ihrem System einen Edge TPU-Coprozessor hinzufügt. Sie ermöglicht ML-Inferenz mit geringem Stromverbrauch und hoher Leistung für TensorFlow Lite-Modelle. Lesen Sie mehr auf der Coral Edge TPU-Homepage.
Ansehen: So führen Sie Inferenz auf Raspberry Pi mit Google Coral Edge TPU aus
Steigerung der Raspberry Pi Modell-Leistung mit Coral Edge TPU
Viele Leute möchten ihre Modelle auf einem eingebetteten oder mobilen Gerät wie einem Raspberry Pi ausführen, da diese sehr energieeffizient sind und in vielen verschiedenen Anwendungen eingesetzt werden können. Die Inferenzleistung auf diesen Geräten ist jedoch in der Regel schlecht, selbst bei Verwendung von Formaten wie ONNX oder OpenVINO. Die Coral Edge TPU ist eine großartige Lösung für dieses Problem, da sie mit einem Raspberry Pi verwendet werden kann und die Inferenzleistung erheblich beschleunigt.
Edge TPU auf Raspberry Pi mit TensorFlow Lite (Neu)⭐
Die vorhandene Anleitung von Coral zur Verwendung der 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. Darüber hinaus scheint Google das Coral-Projekt vollständig aufgegeben zu haben, und es gab zwischen 2021 und 2025 keine Updates mehr. Diese Anleitung zeigt Ihnen, wie Sie die 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 bringen.
Voraussetzungen
- Raspberry Pi 4B (2 GB oder mehr empfohlen) oder Raspberry Pi 5 (Empfohlen)
- Raspberry Pi OS Bullseye/Bookworm (64-Bit) mit Desktop (Empfohlen)
- Coral USB-Beschleuniger
- Eine Nicht-ARM-basierte Plattform zum Exportieren eines Ultralytics PyTorch-Modells
Installationsanleitung
Diese Anleitung setzt voraus, dass Sie bereits eine funktionierende Raspberry Pi OS-Installation haben und installiert haben ultralytics
und alle Abhängigkeiten. Um ultralytics
zu installieren, besuchen Sie die Schnellstartanleitung , um die Einrichtung vorzunehmen, bevor Sie hier fortfahren.
Installation der Edge TPU-Runtime
Zuerst müssen wir die Edge TPU-Runtime installieren. Es gibt viele verschiedene Versionen, daher müssen Sie die richtige Version für Ihr Betriebssystem auswählen. Die Hochfrequenzversion betreibt die Edge TPU mit einer höheren Taktrate, was die Leistung verbessert. Dies kann jedoch dazu führen, dass die Edge TPU thermisch gedrosselt wird. Es wird daher empfohlen, eine Art Kühlmechanismus zu installieren.
Raspberry Pi OS | Hochfrequenzmodus | Herunterzuladende Version |
---|---|---|
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 |
Bookworm 32bit | Nein | libedgetpu1-std_ ... .bookworm_armhf.deb |
Bookworm 64bit | Nein | libedgetpu1-std_ ... .bookworm_arm64.deb |
Bookworm 32bit | Ja | libedgetpu1-max_ ... .bookworm_armhf.deb |
Bookworm 64bit | Ja | libedgetpu1-max_ ... .bookworm_arm64.deb |
Laden Sie die neueste Version von hier herunter.
Nach dem Herunterladen der Datei können Sie diese mit dem folgenden Befehl installieren:
sudo dpkg -i path/to/package.deb
Nach der Installation der Runtime müssen Sie Ihre Coral Edge TPU an einen USB 3.0-Anschluss Ihres Raspberry Pi anschließen. Dies liegt daran, dass laut der offiziellen Anleitung eine neue udev
Regel nach der Installation wirksam werden muss.
Wichtig
Wenn Sie die Coral Edge TPU-Runtime bereits installiert haben, deinstallieren Sie 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
Exportieren zu Edge TPU
Um die Edge TPU zu verwenden, müssen Sie Ihr Modell in ein kompatibles Format konvertieren. Es wird empfohlen, den Export auf Google Colab, einer x86_64 Linux-Maschine, mit dem offiziellen Ultralytics Docker Container oder mit Ultralytics HUB auszuführen, da der Edge TPU-Compiler nicht auf ARM verfügbar ist. Weitere Informationen finden Sie im Exportmodus für die verfügbaren Argumente.
Modell 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 im <model_name>_saved_model/
Ordner unter dem Namen <model_name>_full_integer_quant_edgetpu.tflite
gespeichert. Es ist wichtig, dass Ihr Modell mit dem Suffix _edgetpu.tflite
, andernfalls weiß Ultralytics nicht, dass Sie ein Edge TPU-Modell verwenden.
Ausführen des Modells
beendet wird.
Wenn tensorflow
Bevor Sie das Modell tatsächlich ausführen können, müssen Sie die korrekten Bibliotheken installieren.
pip uninstall tensorflow tensorflow-aarch64
installiert ist, deinstallieren Sie TensorFlow mit dem folgenden Befehl: tflite-runtime
:
pip install -U tflite-runtime
Installieren/aktualisieren Sie dann
Ausführen des Modells
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")
yolo predict model=path/to/MODEL_NAME_full_integer_quant_edgetpu.tflite source=path/to/source.png # Load an official model or custom model
Jetzt können Sie die Inferenz mit dem folgenden Code ausführen:
Umfassende Informationen finden Sie auf der Seite Vorhersagen für vollständige Details zum Vorhersagemodus.
Inferenz mit mehreren Edge TPUs
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
Benchmarks
Benchmarks
Getestet mit Raspberry Pi Os Bookworm 64-Bit und einem USB Coral Edge TPU.
Hinweis
Dargestellt ist die Inferenzzeit, Vor- / Nachbearbeitung ist nicht enthalten.
Bildgröße | Modell | Standard-Inferenzzeit (ms) | Hohe Frequenz der Inferenzzeit (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 |
Bildgröße | Modell | Standard-Inferenzzeit (ms) | Hohe Frequenz der Inferenzzeit (ms) |
---|---|---|---|
320 | YOLOv8n | 22.2 | 16.7 |
320 | YOLOv8s | 40.1 | 32.2 |
512 | YOLOv8n | 53.5 | 41.6 |
512 | YOLOv8s | 132.0 | 103.3 |
Im Durchschnitt:
- Der Raspberry Pi 5 ist im Standardmodus 22 % schneller als der Raspberry Pi 4B.
- Der Raspberry Pi 5 ist im Hochfrequenzmodus 30,2 % schneller als der Raspberry Pi 4B.
- Der High-Frequency-Modus ist 28,4 % schneller als der Standardmodus.
FAQ
Was ist eine Coral Edge TPU und wie verbessert sie die Leistung von Raspberry Pi mit Ultralytics YOLO11?
Wenn Sie mehrere Edge TPUs haben, können Sie den folgenden Code verwenden, um eine bestimmte TPU auszuwählen.
Wie installiere ich die Coral Edge TPU-Runtime auf einem Raspberry Pi?
Die Coral Edge TPU ist ein kompaktes Gerät, das entwickelt wurde, um Ihrem System einen Edge TPU-Coprozessor hinzuzufügen. Dieser Coprozessor ermöglicht Machine-Learning-Inferenz mit geringem Stromverbrauch und hoher Leistung, die speziell für TensorFlow Lite-Modelle optimiert ist. Bei Verwendung eines Raspberry Pi beschleunigt die Edge TPU die ML-Modellinferenz und steigert die Leistung erheblich, insbesondere für Ultralytics YOLO11-Modelle. Sie können mehr über die Coral Edge TPU auf ihrer Homepage lesen. .deb
Um die Coral Edge TPU-Runtime auf Ihrem Raspberry Pi zu installieren, laden Sie das entsprechende dieser Link. Nach dem Herunterladen installieren Sie es mit folgendem Befehl:
sudo dpkg -i path/to/package.deb
Stellen Sie sicher, dass Sie alle vorherigen Coral Edge TPU Runtime-Versionen deinstallieren, indem Sie die Schritte im Abschnitt Installationsanleitung befolgen.
Kann ich mein Ultralytics YOLO11-Modell so exportieren, dass es mit Coral Edge TPU kompatibel ist?
Ja, Sie können Ihr Ultralytics YOLO11-Modell so exportieren, dass es mit dem Coral Edge TPU kompatibel ist. Es wird empfohlen, den Export auf Google Colab, einer x86_64 Linux-Maschine oder mit dem Ultralytics Docker Container durchzuführen. Sie können auch Ultralytics HUB zum Exportieren verwenden. Hier erfahren Sie, wie Sie Ihr Modell mit Python und CLI exportieren können:
Modell 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 finden Sie in der Dokumentation zum Exportmodus.
Was soll ich tun, wenn TensorFlow bereits auf meinem Raspberry Pi installiert ist, ich aber stattdessen tflite-runtime verwenden möchte?
Wenn Sie TensorFlow auf Ihrem Raspberry Pi installiert haben und zu tflite-runtime
wechseln müssen, müssen Sie TensorFlow zuerst mit folgendem Befehl deinstallieren:
pip uninstall tensorflow tensorflow-aarch64
Installieren oder aktualisieren Sie dann tflite-runtime
mit folgendem Befehl:
pip install -U tflite-runtime
Detaillierte Anweisungen finden Sie im Abschnitt Modell ausführen.
Wie führe ich Inferenz mit einem exportierten YOLO11-Modell auf einem Raspberry Pi unter Verwendung der Coral Edge TPU aus?
Nachdem Sie Ihr YOLO11-Modell in ein Edge TPU-kompatibles Format exportiert haben, können Sie die Inferenz mit den folgenden Code-Snippets ausführen:
Ausführen des Modells
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 vollständigen Vorhersagemodus finden Sie auf der Predict-Seite.