Skip to content

Coral Edge TPU sur un Raspberry Pi avec Ultralytics YOLO11 🚀

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 dispositif compact qui ajoute un coprocesseur Edge TPU à votre système. Il permet une inférence ML à faible consommation d'énergie et à haute performance pour les modèles Lite. TensorFlow modèles légers. Pour en savoir plus, consultez la page d'accueil du Coral Edge TPU .



Regarder : Comment exécuter l'inférence sur Raspberry Pi en utilisant Google Coral Edge TPU

Améliorer 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 en utilisant des formats tels que ONNX ou OpenVINO. Le Coral Edge TPU est une excellente solution à ce problème, car 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 la façon d'utiliser l'Edge TPU avec un Raspberry Pi est dépassé, et les builds actuels du runtime Coral Edge TPU ne fonctionnent plus avec les versions actuelles du runtime TensorFlow Lite. De plus, Google semble avoir complètement abandonné le projet Coral, et il n'y a eu aucune mise à jour entre 2021 et 2024. Ce guide vous montrera comment faire fonctionner l'Edge TPU avec les dernières versions du runtime TensorFlow Lite et un runtime Coral Edge TPU mis à jour sur un Raspberry Pi single board computer (SBC).

Conditions préalables

Guide d'installation

Ce guide suppose que vous disposez déjà d'un Raspberry Pi OS fonctionnel et que vous avez installé ultralytics et toutes les dépendances. Pour obtenir ultralytics installé, visitez le site guide de démarrage rapide pour l'installer avant de continuer.

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, vous devez donc choisir la bonne version pour votre 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échargez la dernière version à partir d'ici.

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

sudo dpkg -i path/to/package.deb

Après avoir installé le runtime, vous devez brancher votre Coral Edge TPU sur un port USB 3.0 de votre Raspberry Pi. En effet, selon le guide officiel, un nouveau port USB 3.0 doit être installé sur votre Raspberry Pi. udev doit prendre effet après l'installation.

Important

Si le moteur d'exécution Coral Edge TPU est déjà installé, désinstallez-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

Exporter votre modèle vers un modèle compatible avec Edge TPU

Pour utiliser Edge TPU, vous devez convertir votre modèle dans un format compatible. Il est recommandé d'exécuter l'exportation sur Google Colab, 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 les arguments disponibles.

Exporter le modèle

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 enregistré dans le fichier <model_name>_saved_model/ avec le nom <model_name>_full_integer_quant_edgetpu.tflite. Il est important que votre modèle se termine par le suffixe _edgetpu.tflitesinon ultralytics ne sait pas que vous utilisez un modèle Edge TPU .

Exécution du modèle

Avant de pouvoir exécuter le modèle, vous devez installer les bibliothèques appropriées.

Si tensorflow est installé, désinstallez tensorflow avec la commande suivante :

pip uninstall tensorflow tensorflow-aarch64

Puis installer/mettre à jour tflite-runtime:

pip install -U tflite-runtime

Vous pouvez maintenant exécuter l'inférence à l'aide du code suivant :

Exécution du modèle

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

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

Inférence avec plusieurs TPU Edge

Si vous avez plusieurs TPU Edge, vous pouvez utiliser le code suivant pour sélectionner une TPU spécifique.

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

FAQ

Qu'est-ce qu'un Coral Edge TPU et comment améliore-t-il les performances du Raspberry Pi avec Ultralytics YOLO11 ?

Le Coral Edge TPU est un dispositif compact conçu pour ajouter un coprocesseur Edge TPU à votre système. Ce coprocesseur permet une inférence d'apprentissage automatique à faible consommation d'énergie et à haute performance, particulièrement optimisée pour les modèles TensorFlow Lite. Lors de l'utilisation d'un Raspberry Pi, l'Edge TPU accélère l'inférence des modèles ML, augmentant considérablement les performances, en particulier pour les modèles Ultralytics YOLO11 . Vous pouvez en savoir plus sur le Coral Edge TPU sur leur page d'accueil.

Comment installer le runtime Coral Edge TPU sur un Raspberry Pi ?

Pour installer le runtime Coral Edge TPU sur votre Raspberry Pi, téléchargez le fichier .deb pour la version de votre système d'exploitation Raspberry Pi à partir de ce lien. Une fois téléchargé, utilisez la commande suivante pour l'installer :

sudo dpkg -i path/to/package.deb

Veillez à désinstaller toute version antérieure du moteur d'exécution de Coral Edge TPU en suivant les étapes décrites dans la section Installation Walkthrough.

Puis-je exporter mon modèle Ultralytics YOLO11 pour qu'il soit compatible avec Coral Edge TPU?

Oui, vous pouvez exporter votre modèle Ultralytics YOLO11 pour le rendre compatible avec le Coral Edge TPU. Il est recommandé d'effectuer l'exportation sur Google Colab, une machine Linux x86_64, ou en utilisant le conteneur Docker Ultralytics . Vous pouvez également utiliser Ultralytics HUB pour l'exportation. Voici comment vous pouvez exporter votre modèle en utilisant Python et CLI:

Exporter le modèle

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

Pour plus d'informations, reportez-vous à la documentation sur le mode d'exportation.

Que dois-je faire si TensorFlow est déjà installé sur mon Raspberry Pi mais que je souhaite utiliser tflite-runtime à la place ?

Si vous avez installé TensorFlow sur votre Raspberry Pi et que vous avez besoin de passer à tflite-runtimeVous devrez désinstaller TensorFlow avant de l'utiliser :

pip uninstall tensorflow tensorflow-aarch64

Ensuite, installez ou mettez à jour tflite-runtime avec la commande suivante :

pip install -U tflite-runtime

Pour une roue spécifique, telle que TensorFlow 2.15.0 tflite-runtimeVous pouvez le télécharger à partir de ce lien et l'installer en utilisant pip. Des instructions détaillées sont disponibles dans la section relative à l'exécution du modèle. Exécution du modèle.

Comment faire de l'inférence avec un modèle exporté YOLO11 sur un Raspberry Pi en utilisant Coral Edge TPU?

Après avoir exporté votre modèle YOLO11 dans un format compatible avec Edge TPU, vous pouvez exécuter l'inférence à l'aide des extraits de code suivants :

Exécution du modèle

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

Des détails complets sur les fonctionnalités du mode de prédiction sont disponibles sur la page Predict.

📅C réé il y a 9 mois ✏️ Mis à jour il y a 1 mois

Commentaires