Coral Edge TPU
und Ultralytics
an einem Ort: edge-tpu-silva
. Unser Edge-TPU-Silva ist ein Python-Paket, das die Installation der Coral TPU USB-Abhängigkeit vereinfacht und die Kompatibilität mit PyCoral und Ultralytics gewährleistet. Dieses Paket ermöglicht die detection
, segmentation
und classification
auf verschiedenen Edge-Geräten, um höhere FPS
(Real Time Processor Speed) zu erreichen.
Coral USB Accelerator Exclusivity
:
Die Edge-TPU-Silva-Bibliothek wurde speziell für die nahtlose Integration mit dem Coral USB Accelerator entwickelt. Dieser leistungsstarke Hardwarebeschleuniger ist nicht nur eine Voraussetzung, sondern eine strategische Entscheidung, da er das volle Potenzial der Bibliothek für überlegene detection
, segmentation
und classification
freisetzt.
Entdecken Sie den Coral USB Accelerator und erleben Sie einen maßgeschneiderten Ansatz für Edge Computing mit der Edge-TPU-Silva-Bibliothek.
Das Paket edge-tpu-silva
ist nur mit python versions <3.10
komprimierbar. Installieren Sie eine bestimmte Python-Version, wenn Ihre Python-Version nicht kompatibel ist.
Beispiel: Für
Raspberry Pi
können Sie auf klicken, um Anweisungen zur Installation einer bestimmten Python-Version mit pyenv zu erhalten
Hinweis: Python 3.6 bis 3.9 wird empfohlen. Klicken Sie auf den Link oben, um zu erfahren, wie Sie eine bestimmte Python-Version installieren
Hinweis: Stellen Sie sicher, dass Ihr Raspberry Pi auf dem neuesten Stand ist. Führen Sie dazu den folgenden Befehl im Terminal aus.
sudo apt-get updatesudo apt-get upgrade
Führen Sie den folgenden Bash-Code in Ihrem Terminal aus, um eine neue virtuelle Umgebung mit dem Namen .venv
zu erstellen und zu aktivieren. Stellen Sie sicher, dass Sie sich in dem spezifischen Verzeichnis befinden, in dem diese Umgebung installiert werden soll.
python3 -m venv .venv
source .venv/bin/activate
Um „edge-tpu-silva“ zu installieren, verwenden Sie den folgenden Pip-Befehl in einer angegebenen Python-Umgebung:
pip install edge-tpu-silva
Diese Tabelle gibt einen Überblick über die Kompatibilität des Systems mit verschiedenen Geräten und Betriebssystemen.
Kompatibilität | Setup-Befehl | |
---|---|---|
Raspberry Pi 5 | ✔ | Silvatpu-Linux-Setup |
Raspberry Pi 4 | ✔ | Silvatpu-Linux-Setup |
Raspberry Pi 3 | ✔ | Silvatpu-Linux-Setup |
Jetson Nano | ✔ | Silvatpu-Linux-Setup |
Windows | ||
macOS |
Um Setup-Tools für Ihr System zu konfigurieren, führen Sie nach Abschluss von Schritt 1 den Setup-Befehl im Terminal aus.
Beispiel: Wenn Sie einen Raspberry Pi 5 verwenden, führen Sie nach Schritt 1 den folgenden Befehl im Terminal aus.
silvatpu-linux-setup
Der Befehl installiert die Standard-Edge-TPU-Laufzeitumgebung für Linux und führt das Gerät mit einer reduzierten Taktfrequenz aus. Alternativ können Sie eine Version für maximale Geschwindigkeit installieren, achten Sie jedoch auf einen erhöhten Stromverbrauch und eine höhere Gerätewärme. Wenn Sie sich nicht sicher sind, bleiben Sie aus Sicherheitsgründen bei der reduzierten Frequenz. Um die Laufzeit mit maximaler Frequenz zu installieren, geben Sie die Geschwindigkeit des Setup-Befehls auf max
an.
silvatpu-linux-setup --speed max
Sie können nicht beide Versionen der Runtime gleichzeitig installieren, aber Sie können wechseln, indem Sie einfach die alternative Runtime installieren, wie oben gezeigt
Achtung: Die Verwendung des USB-Beschleunigers bei maximaler Taktfrequenz kann zu gefährlicher Hitze führen. Um Verbrennungen vorzubeugen, bewahren Sie es außer Reichweite auf oder betreiben Sie es mit reduzierter Taktfrequenz.
Hinweis: Bitte stellen Sie sicher, dass Sie den
Coral USB Accelerator
überusb 3.0 port (for faster speed)
. Wenn der Coral USB Accelerator während der Installation und Einrichtung angeschlossen war, trennen Sie ihn bitte und schließen Sie ihn erneut an, umproper configuration.
Um die Leistungsfähigkeit der detection
, segmentation
und classification
mit dieser Bibliothek zu nutzen, benötigen Sie ein Edge TPU-kompatibles .tflite-Modell. Diese Modelle sollten mit Ultralytics
exportiert werden, um eine nahtlose Integration mit der Edge-TPU-Silva-Bibliothek sicherzustellen.
HINWEIS: Bitte beachten Sie, dass der beim YOLO-Export angegebene
imgsz
Wert mit dem gleichen Wert übereinstimmen sollte, der beim Definieren vonimgsz
für einen der Prozesse verwendet wurde. Die Konsistenz dieser Einstellungen ist für eine optimale Leistung von entscheidender Bedeutung.
Kleinere Modelle laufen schneller, haben aber möglicherweise eine geringere Genauigkeit, während größere Modelle langsamer laufen, aber normalerweise eine höhere Genauigkeit aufweisen. Entdecken Sie die Möglichkeiten des Edge Computing mit den folgenden Modellen mithilfe der Edge-TPU-Silva-Bibliothek.
Download-Link | Verfahren | Basismodell | imgsz | Objektklassen |
---|---|---|---|---|
Modell herunterladen | Erkennung | yolov8n.pt | 240 | COCO128 |
Modell herunterladen | Segmentierung | yolov8n-seg.pt | 240 | COCO128 |
Modell herunterladen | Erkennung | yolov8n.pt | 192 | COCO128 |
Modell herunterladen | Segmentierung | yolov8n-seg.pt | 192 | COCO128 |
Modell herunterladen | Einstufung | yolov8n-cls.pt | 640 | ImageNet |
Modell herunterladen | Erkennung | yolov9c.pt | 240 | COCO128 |
HINWEIS: Das YOLOv9-Modell, insbesondere die Version YOLOv9c.pt, ist beträchtlich groß, was dazu führt, dass auch die TensorFlow Lite-Version recht groß ist. Dadurch ist die Verarbeitungsgeschwindigkeit auf einem Edge-TPU vergleichsweise langsamer.
Um eine Objekterkennung mit der Funktion process_detection
durchzuführen, können Sie diesem Beispiel folgen:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_detection
im Terminal ausführen: Verwendung des Einstiegspunkts „silvatpu“ Um die Objekterkennung mit der Funktion process_detection
über die Befehlszeile durchzuführen, können Sie den benutzerfreundlichen Einstiegspunkt silvatpu
verwenden. Hier ist ein Beispielbefehl:
silvatpu -p det -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
Um eine Objektsegmentierung mit der Funktion process_segmentation
durchzuführen, können Sie diesem Beispiel folgen:
from edge_tpu_silva import process_segmentation
# Run the object segmentation process
outs = process_segmentation ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_segmentation
im Terminal ausführen: Verwendung des Einstiegspunkts „silvatpu“ Um eine Objektsegmentierung mit der Funktion process_segmentation
über die Befehlszeile durchzuführen, können Sie den benutzerfreundlichen Einstiegspunkt silvatpu
verwenden. Hier ist ein Beispielbefehl:
silvatpu -p seg -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
detection
, segmentation
und classification
FunktionseingabeparameterParameter | Beschreibung | Standardwert |
---|---|---|
model_path | Pfad zum Objektsegmentierungsmodell. | - |
input_path | Dateipfad des zu verarbeitenden Bildes/Videos (Kamera(0|1|2)). | - |
imgsz | Definiert die Bildgröße für die Inferenz. | - |
threshold | Schwellenwert für erkannte Objekte. | 0.4 |
verbose | Ausdrucke auf dem Terminal anzeigen. | True |
show | Anzeigerahmen mit Segmentierung. | False |
classes | Filtert Vorhersagen nach einer Reihe von Klassen-IDs. | None |
detection
, segmentation
und classification
FunktionsausgabeJede Prozessfunktion liefert die folgende Ausgabe:
Ausgabeparameter | Beschreibung |
---|---|
objs_lst | Liste der im Frame erkannten Objekte. |
fps | Bilder pro Sekunde (fps) des verarbeiteten Frames. |
Beispielverwendung:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for objs_lst , fps in outs :
# Access the output parameters as needed
print ( f"Processed frame with { len ( objs_lst ) } objects. FPS: { fps } " )
print ( "List of object predictions in frame:" )
print ( objs_lst )
Beiträge sind willkommen! Wenn Sie Probleme finden oder Verbesserungsvorschläge haben, öffnen Sie bitte ein Problem oder senden Sie eine Pull-Anfrage.
Betreuer des Python-Paketindex (c) [2024] David Nyarko