Skip to content

Coral Edge TPU sur un Raspberry Pi avec Ultralytics YOLOv8 🚀

Ordinateur monocarte Raspberry Pi avec accélérateur USB Edge TPU

Qu'est-ce qu'un Coral Edge TPU?

Le Coral Edge TPU est un appareil compact qui ajoute un coprocesseur Edge TPU à ton système. Il permet une inférence ML à faible consommation d'énergie et à haute performance pour les modèles TensorFlow Lite. Pour en savoir plus, consulte la page d'accueil du Coral Edge TPU .

Améliore les performances du modèle Raspberry Pi avec Coral Edge TPU

De nombreuses personnes souhaitent exécuter leurs modèles sur un appareil embarqué ou mobile tel qu'un Raspberry Pi, car ils sont très économes en énergie et peuvent être utilisés dans de nombreuses applications différentes. Cependant, les performances d'inférence sur ces appareils sont généralement médiocres, même lorsque l'on utilise des formats comme onnx ou openvino. Le Coral Edge TPU est une excellente solution à ce problème, puisqu'il peut être utilisé avec un Raspberry Pi et accélérer considérablement les performances d'inférence.

Edge TPU sur Raspberry Pi avec TensorFlow Lite (Nouveau)⭐

Le guide existant de Coral sur l'utilisation de l'Edge TPU avec un Raspberry Pi est obsolète, et les builds actuels du runtime Coral Edge TPU ne fonctionnent plus avec les versions actuelles du runtime TensorFlow Lite. En plus de cela, Google semble avoir complètement abandonné le projet Coral, et il n'y a pas eu de mises à jour entre 2021 et 2024. Ce guide te montrera comment faire fonctionner le Edge TPU avec les dernières versions du runtime TensorFlow Lite et un runtime Coral Edge TPU mis à jour sur un ordinateur monocarte (SBC) Raspberry Pi.

Conditions préalables

Guide d'installation

Ce guide suppose que tu disposes déjà d'un Raspberry Pi OS fonctionnel et que tu l'as installé. ultralytics et toutes les dépendances. Pour obtenir ultralytics installé, visite le site guide de démarrage rapide pour l'installer avant de continuer ici.

Installation du moteur d'exécution Edge TPU

Tout d'abord, nous devons installer le moteur d'exécution Edge TPU . Il existe de nombreuses versions différentes, tu dois donc choisir la bonne version pour ton système d'exploitation.

Système d'exploitation Raspberry Pi Mode haute fréquence Version à télécharger
Bullseye 32bit Non libedgetpu1-std_ ... .bullseye_armhf.deb
Bullseye 64bit Non libedgetpu1-std_ ... .bullseye_arm64.deb
Bullseye 32bit Oui libedgetpu1-max_ ... .bullseye_armhf.deb
Bullseye 64bit Oui libedgetpu1-max_ ... .bullseye_arm64.deb
Bookworm 32bit Non libedgetpu1-std_ ... .bookworm_armhf.deb
Bookworm 64bit Non libedgetpu1-std_ ... .bookworm_arm64.deb
Bookworm 32bit Oui libedgetpu1-max_ ... .bookworm_armhf.deb
Bookworm 64bit Oui libedgetpu1-max_ ... .bookworm_arm64.deb

Télécharge la dernière version ici.

Après avoir téléchargé le fichier, tu peux l'installer avec la commande suivante :

sudo dpkg -i path/to/package.deb

Après avoir installé le runtime, tu dois brancher ton Coral Edge TPU sur un port USB 3.0 de ton Raspberry Pi. En effet, d'après le guide officiel, un nouveau udev doit prendre effet après l'installation.

Important

Si le moteur d'exécution Coral Edge TPU est déjà installé, désinstalle-le à l'aide de la commande suivante.

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

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

Exporte ton modèle vers un modèle compatible avec Edge TPU

Pour utiliser le Edge TPU, tu dois convertir ton modèle dans un format compatible. Il est recommandé d'exécuter l'exportation sur Google Colab, sur une machine Linux x86_64, en utilisant le conteneur Docker officiel Ultralytics , ou en utilisant Ultralytics HUB, car le compilateur Edge TPU n'est pas disponible sur ARM. Voir le mode d'exportation pour connaître les arguments disponibles.

Exportation

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

Le modèle exporté sera sauvegardé dans le fichier <model_name>_saved_model/ avec le nom <model_name>_full_integer_quant_edgetpu.tflite.

Exécuter le modèle

Après avoir exporté ton modèle, tu peux lancer l'inférence avec lui en utilisant le code suivant :

Courir

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

Tu trouveras des informations complètes sur la page Prédire pour connaître tous les détails du mode de prédiction.

Important

Tu dois exécuter le modèle en utilisant tflite-runtime et non tensorflow. Si tensorflow est installé, désinstalle tensorflow à l'aide de la commande suivante :

pip uninstall tensorflow tensorflow-aarch64

Puis installe/mets à jour tflite-runtime:

pip install -U tflite-runtime

Si tu veux un tflite-runtime roue pour tensorflow 2.15.0 télécharge-le à partir de ici et l'installer en utilisant pip ou le gestionnaire de paquets de ton choix.



Créé le 2024-02-12, Mis à jour le 2024-04-27
Auteurs : glenn-jocher (3), Skillnoob (1)

Commentaires