Overslaan naar inhoud

Coral Edge TPU op een Raspberry Pi met Ultralytics YOLOv8 šŸš€

Raspberry Pi single board computer met USB Edge TPU versneller

Wat is een koraalrand TPU?

De Coral Edge TPU is een compact apparaat dat een Edge TPU coprocessor toevoegt aan je systeem. Het maakt ML-inferentie met laag stroomverbruik en hoge prestaties mogelijk voor TensorFlow Lite modellen. Lees meer op de Coral Edge TPU homepage.

Verbeter de prestaties van het Raspberry Pi-model met Coral Edge TPU

Veel mensen willen hun modellen uitvoeren op een ingebed of mobiel apparaat zoals een Raspberry Pi, omdat deze zeer energiezuinig zijn en in veel verschillende toepassingen kunnen worden gebruikt. De inferentieprestaties op deze apparaten zijn echter meestal slecht, zelfs bij gebruik van formaten als onnx of openvino. De Coral Edge TPU is een geweldige oplossing voor dit probleem, omdat het gebruikt kan worden met een Raspberry Pi en de inferentieprestaties enorm kan versnellen.

Edge TPU op Raspberry Pi met TensorFlow Lite (Nieuw)ā­

De bestaande gids van Coral over het gebruik van de Edge TPU met een Raspberry Pi is verouderd, en de huidige Coral Edge TPU runtime builds werken niet meer met de huidige TensorFlow Lite runtime versies. Daarnaast lijkt Google het Coral project volledig te hebben verlaten en zijn er geen updates geweest tussen 2021 en 2024. Deze handleiding laat je zien hoe je de Edge TPU werkend krijgt met de nieuwste versies van de TensorFlow Lite runtime en een bijgewerkte Coral Edge TPU runtime op een Raspberry Pi single board computer (SBC).

Vereisten

Installatie doorloop

Deze handleiding gaat ervan uit dat je al een werkende Raspberry Pi OS installatie hebt en het volgende hebt geĆÆnstalleerd ultralytics en alle afhankelijkheden. Om ultralytics geĆÆnstalleerd, bezoek dan de snelstartgids om in te stellen voordat je hier verder gaat.

De runtime Edge TPU installeren

Eerst moeten we de Edge TPU runtime installeren. Er zijn veel verschillende versies beschikbaar, dus je moet de juiste versie voor jouw besturingssysteem kiezen.

Raspberry Pi OS Hoogfrequente modus Versie om te downloaden
Bullseye 32bit Geen libedgetpu1-std_ ... .bullseye_armhf.deb
Bullseye 64bit Geen libedgetpu1-std_ ... .bullseye_arm64.deb
Bullseye 32bit Ja libedgetpu1-max_ ... .bullseye_armhf.deb
Bullseye 64bit Ja libedgetpu1-max_ ... .bullseye_arm64.deb
Boekenwurm 32bit Geen libedgetpu1-std_ ... .bookworm_armhf.deb
Boekenwurm 64bit Geen libedgetpu1-std_ ... .bookworm_arm64.deb
Boekenwurm 32bit Ja libedgetpu1-max_ ... .bookworm_armhf.deb
Boekenwurm 64bit Ja libedgetpu1-max_ ... .bookworm_arm64.deb

Download de nieuwste versie hier.

Nadat je het bestand hebt gedownload, kun je het installeren met het volgende commando:

sudo dpkg -i path/to/package.deb

Na het installeren van de runtime moet je je Coral Edge TPU aansluiten op een USB 3.0 poort van je Raspberry Pi. Dit komt omdat, volgens de officiƫle handleiding, een nieuwe udev regel moet van kracht worden na de installatie.

Belangrijk

Als je de Coral Edge TPU runtime al hebt geĆÆnstalleerd, verwijder deze dan met het volgende commando.

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

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

Exporteer je model naar een Edge TPU compatibel model

Om de Edge TPU te gebruiken, moet je je model converteren naar een compatibel formaat. Het wordt aanbevolen om export uit te voeren op Google Colab, x86_64 Linux machine, met de officiƫle Ultralytics Docker container, of met Ultralytics HUB, omdat de Edge TPU compiler niet beschikbaar is op ARM. Zie de Exportmodus voor de beschikbare argumenten.

Exporteren

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

Het geƫxporteerde model wordt opgeslagen in de <model_name>_saved_model/ map met de naam <model_name>_full_integer_quant_edgetpu.tflite.

Het model uitvoeren

Nadat je je model hebt geƫxporteerd, kun je er inferentie mee uitvoeren met de volgende code:

Hardlopen

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

Op de pagina Voorspellen vind je uitgebreide informatie over de voorspellingsmodus.

Belangrijk

Je moet het model uitvoeren met tflite-runtime en niet tensorflow. Als tensorflow is geĆÆnstalleerd, verwijder dan tensorflow met het volgende commando:

pip uninstall tensorflow tensorflow-aarch64

Installeer/updat tflite-runtime:

pip install -U tflite-runtime

Als je een tflite-runtime wiel voor tensorflow 2.15.0 downloaden van hier en installeer het met pip of een pakketbeheerder naar keuze.

FAQ

Wat is een Coral Edge TPU en hoe verbetert het de prestaties van de Raspberry Pi met Ultralytics YOLOv8 ?

De Coral Edge TPU is een compact apparaat dat is ontworpen om een Edge TPU coprocessor aan je systeem toe te voegen. Deze coprocessor maakt machine learning inference mogelijk met een laag stroomverbruik en hoge prestaties, met name geoptimaliseerd voor TensorFlow Lite modellen. Bij gebruik van een Raspberry Pi versnelt de Edge TPU de inferentie van ML-modellen, waardoor de prestaties aanzienlijk worden verbeterd, vooral voor Ultralytics YOLOv8 modellen. Je kunt meer lezen over de Coral Edge TPU op hun homepage.

Hoe installeer ik de Coral Edge TPU runtime op een Raspberry Pi?

Om de Coral Edge TPU runtime op je Raspberry Pi te installeren, download je de juiste .deb pakket voor jouw Raspberry Pi OS versie van deze link. Eenmaal gedownload, gebruik je het volgende commando om het te installeren:

sudo dpkg -i path/to/package.deb

Zorg ervoor dat je eerdere Coral Edge TPU runtime-versies verwijdert door de stappen te volgen die worden beschreven in het hoofdstuk Installatiehandleiding.

Kan ik mijn Ultralytics YOLOv8 model exporteren zodat het compatibel is met Coral Edge TPU?

Ja, je kunt je Ultralytics YOLOv8 model exporteren zodat het compatibel is met de Coral Edge TPU. Het wordt aanbevolen om de export uit te voeren op Google Colab, een x86_64 Linux machine, of met behulp van de Ultralytics Docker container. Je kunt ook Ultralytics HUB gebruiken om te exporteren. Hier zie je hoe je je model kunt exporteren met Python en CLI:

Exporteren

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

Raadpleeg voor meer informatie de documentatie over de Exportmodus.

Wat moet ik doen als TensorFlow al is geĆÆnstalleerd op mijn Raspberry Pi maar ik in plaats daarvan tflite-runtime wil gebruiken?

Als je TensorFlow op je Raspberry Pi hebt geĆÆnstalleerd en je moet overschakelen naar tflite-runtimemoet je eerst TensorFlow verwijderen met behulp van:

pip uninstall tensorflow tensorflow-aarch64

Installeer of update vervolgens tflite-runtime met het volgende commando:

pip install -U tflite-runtime

Voor een specifiek wiel, zoals TensorFlow 2.15.0 tflite-runtimeJe kunt het downloaden van deze link en installeer het met pip. Gedetailleerde instructies zijn beschikbaar in het gedeelte over het uitvoeren van het model Het model uitvoeren.

Hoe voer ik inferentie uit met een geƫxporteerd YOLOv8 model op een Raspberry Pi met behulp van de Coral Edge TPU?

Nadat je je YOLOv8 model hebt geƫxporteerd naar een formaat dat compatibel is met Edge TPU, kun je inferentie uitvoeren met de volgende codefragmenten:

Hardlopen

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

Uitgebreide details over alle functies van de voorspellingsmodus kun je vinden op de pagina Voorspellen.



Gemaakt op 2024-02-12, Bijgewerkt op 2024-07-05
Auteurs: glenn-jocher (7), Skillnoob (1)

Reacties