Coral Edge TPU sur un Raspberry Pi avec Ultralytics YOLO11 🚀
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 l'utilisation de l'Edge TPU avec un Raspberry Pi est obsolète, et les versions actuelles 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 2025. 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
- Raspberry Pi 4B (2GB ou plus recommandé) ou Raspberry Pi 5 (recommandé)
- Raspberry Pi OS Bullseye/Bookworm (64-bit) avec bureau (recommandé)
- Accélérateur USB Coral
- Une plateforme non-ARM pour l'exportation d'un Ultralytics PyTorch modèle
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. La version haute fréquence fait tourner l'Edge TPU à une vitesse d'horloge plus élevée, ce qui améliore les performances. Cependant, elle peut entraîner un étranglement thermique de l'Edge TPU , il est donc recommandé de mettre en place une sorte de mécanisme de refroidissement.
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 :
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.
Exporter vers 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
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.tflite
sinon 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 :
Puis installer/mettre à jour tflite-runtime
:
Vous pouvez maintenant exécuter l'inférence à l'aide du code suivant :
Exécution du modèle
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
Critères de référence
Critères de référence
Testé avec Raspberry Pi Os Bookworm 64-Bit et un USB Coral Edge TPU.
Note
Il s'agit du temps d'inférence, les opérations de pré/post-traitement n'étant pas incluses.
Taille de l'image | Modèle | Temps d'inférence standard (ms) | Temps d'inférence à haute fréquence (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 |
Taille de l'image | Modèle | Temps d'inférence standard (ms) | Temps d'inférence à haute fréquence (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 |
En moyenne :
- Le Raspberry Pi 5 est 22% plus rapide avec le mode standard que le Raspberry Pi 4B.
- Le Raspberry Pi 5 est 30,2% plus rapide avec le mode haute fréquence que le Raspberry Pi 4B.
- Le mode haute fréquence est 28,4 % plus rapide que le mode standard.
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 :
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 TPU Coral Edge. Il est recommandé d'effectuer l'exportation sur Google Colab, une machine Linux x86_64, ou en utilisant le conteneurUltralytics Docker. 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
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 veux utiliser tflite-runtime à la place ?
Si vous avez installé TensorFlow sur votre Raspberry Pi et que vous avez besoin de passer à tflite-runtime
Vous devrez désinstaller TensorFlow avant de l'utiliser :
Ensuite, installez ou mettez à jour tflite-runtime
avec la commande suivante :
Pour des instructions détaillées, reportez-vous à la section 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
Des détails complets sur les fonctionnalités du mode de prédiction sont disponibles sur la page Predict.