Link to this sectionComment exécuter Ultralytics YOLO26 sur un Raspberry Pi avec un Coral Edge TPU#
Un Raspberry Pi est une plateforme économe en énergie et abordable pour exécuter la vision par ordinateur à la périphérie (edge), mais l'inférence sur l'appareil est lente, même avec des formats optimisés comme ONNX ou OpenVINO. Associer le Pi à un coprocesseur Coral Edge TPU décharge l'inférence sur un matériel dédié et l'accélère considérablement. Ce guide te montre comment installer le runtime, exporter un modèle Ultralytics YOLO26 au format Edge TPU et exécuter une inférence accélérée.
Watch: How to Run Inference on Raspberry Pi using Google Coral Edge TPU
Link to this sectionPourquoi utiliser un Coral Edge TPU ?#
Le Coral Edge TPU est un appareil compact qui ajoute un coprocesseur Edge TPU à ton système, permettant une inférence ML haute performance et à faible consommation pour les modèles TensorFlow Lite. C'est une excellente solution pour les déploiements embarqués et mobiles où un CPU seul ne suffit pas :
- Inférence plus rapide — l'Edge TPU accélère les modèles quantifiés bien au-delà de ce que le CPU du Raspberry Pi peut atteindre seul.
- Faible consommation d'énergie — il offre un débit élevé par watt, idéal pour les déploiements alimentés par batterie ou par énergie solaire.
- Plug-and-play — le USB Accelerator se connecte via USB 3.0, donc aucune intégration matérielle supplémentaire n'est requise.
Le guide officiel Coral est obsolète : les versions originales du runtime Coral ne fonctionnent plus avec les versions actuelles du runtime TensorFlow Lite, et le projet n'a reçu aucune mise à jour entre 2021 et 2025. Ce guide utilise un runtime Edge TPU activement maintenu et le dernier tflite-runtime afin que l'accélérateur fonctionne sur une installation actuelle de Raspberry Pi OS.
Link to this sectionPrérequis#
- Raspberry Pi 4B (2 Go ou plus recommandés) ou Raspberry Pi 5 (recommandé)
- Raspberry Pi OS Bullseye/Bookworm (64 bits) avec bureau (recommandé)
- Coral USB Accelerator
- Une plateforme non-ARM (Google Colab, une machine Linux x86_64 ou le conteneur Docker Ultralytics) pour exporter le modèle, car le compilateur Edge TPU n'est pas disponible sur ARM
Ce guide suppose que tu as déjà une installation fonctionnelle de Raspberry Pi OS avec ultralytics et ses dépendances installés. Sinon, suis d'abord le guide de démarrage rapide.
Avec les prérequis en place, le flux de travail comporte trois étapes : installer le runtime Edge TPU sur le Pi, exporter ton modèle sur une machine non-ARM, et exécuter l'inférence de retour sur le Pi.
Link to this sectionInstaller le runtime Edge TPU#
Le runtime est disponible en plusieurs versions, choisis donc celle qui correspond à ton système d'exploitation. La version haute fréquence fait fonctionner l'Edge TPU à une vitesse d'horloge plus élevée pour de meilleures performances, mais elle peut provoquer une limitation thermique (thermal throttling) — utilise une forme de refroidissement si tu la choisis.
| Raspberry Pi OS | Mode haute fréquence | Version à télécharger |
|---|---|---|
| Bullseye 32 bits | Non | libedgetpu1-std_ ... .bullseye_armhf.deb |
| Bullseye 64 bits | Non | libedgetpu1-std_ ... .bullseye_arm64.deb |
| Bullseye 32 bits | Oui | libedgetpu1-max_ ... .bullseye_armhf.deb |
| Bullseye 64 bits | Oui | libedgetpu1-max_ ... .bullseye_arm64.deb |
| Bookworm 32 bits | Non | libedgetpu1-std_ ... .bookworm_armhf.deb |
| Bookworm 64 bits | Non | libedgetpu1-std_ ... .bookworm_arm64.deb |
| Bookworm 32 bits | Oui | libedgetpu1-max_ ... .bookworm_armhf.deb |
| Bookworm 64 bits | Oui | libedgetpu1-max_ ... .bookworm_arm64.deb |
Télécharge la dernière version ici, puis installe le paquet .deb :
sudo dpkg -i path/to/package.debAprès avoir installé le runtime, branche ton Coral Edge TPU sur un port USB 3.0 du Raspberry Pi pour que la nouvelle règle udev puisse prendre effet.
Supprime d'abord tout runtime existant
Si tu as déjà le runtime Coral Edge TPU installé, désinstalle-le avant d'installer une nouvelle version.
# If you installed the standard version
sudo apt remove libedgetpu1-std
# If you installed the high-frequency version
sudo apt remove libedgetpu1-maxLink to this sectionExporter ton modèle au format Edge TPU#
Pour utiliser l'Edge TPU, convertis ton modèle dans un format compatible. Exécute l'exportation sur une plateforme non-ARM — Google Colab, une machine Linux x86_64, le conteneur Docker officiel Ultralytics, ou Ultralytics Platform — car le compilateur Edge TPU n'est pas disponible sur ARM. Consulte le mode Export pour les arguments disponibles.
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")Le modèle exporté est enregistré dans le dossier <model_name>_saved_model/ sous le nom <model_name>_full_integer_quant_edgetpu.tflite.
Le nom du fichier doit se terminer par _edgetpu.tflite. Si tu le renommes autrement, Ultralytics le chargera comme un simple modèle TensorFlow Lite au lieu de détecter l'Edge TPU, et l'accélérateur ne sera pas utilisé.
Link to this sectionExécuter l'inférence sur l'Edge TPU#
Avant d'exécuter le modèle, installe les bibliothèques correctes sur le Raspberry Pi. Si TensorFlow est déjà installé, désinstalle-le d'abord :
pip uninstall tensorflow tensorflow-aarch64Installe ou mets ensuite à jour tflite-runtime :
pip install -U tflite-runtimeMaintenant, tu peux exécuter l'inférence :
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")Trouve tous les détails sur le mode prédiction sur la page Predict.
Si tu possèdes plusieurs Edge TPU, tu peux en sélectionner un spécifique avec l'argument device.
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 TPULink to this sectionBenchmarks#
Les chiffres ci-dessous ont été mesurés avec Raspberry Pi OS Bookworm 64 bits et un USB Coral Edge TPU. Ils montrent uniquement le temps d'inférence (prétraitement/post-traitement exclus) et servent de référence relative pour l'accélération fournie par l'Edge TPU sur les modèles Pi et les modes d'horloge.
Ces benchmarks ont été enregistrés avec des modèles YOLOv8. Les temps d'inférence absolus varient selon la version du modèle et la taille de l'image, mais les accélérations relatives entre les modèles Pi et les modes d'horloge sont valables.
| 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 |
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.
Link to this sectionConclusion#
Un Coral Edge TPU transforme un Raspberry Pi en un appareil d'inférence performant et basse consommation pour Ultralytics YOLO26. Exporte ton modèle sur une machine non-ARM, garde le suffixe _edgetpu.tflite et exécute-le avec tflite-runtime sur le Pi pour obtenir une inférence périphérique accélérée. Pour plus d'options de déploiement, consulte le guide Raspberry Pi.
Link to this sectionFAQ#
Link to this sectionQu'est-ce qu'un Coral Edge TPU et comment améliore-t-il les performances du Raspberry Pi avec Ultralytics YOLO26 ?#
Le Coral Edge TPU est un appareil compact qui ajoute un coprocesseur Edge TPU à ton système. Ce coprocesseur permet une inférence ML haute performance et à faible consommation, particulièrement optimisée pour les modèles TensorFlow Lite. Sur un Raspberry Pi, il accélère l'inférence bien au-delà de ce que le CPU atteint seul, ce qui améliore considérablement les performances des modèles Ultralytics YOLO26.
Link to this sectionComment installer le runtime Coral Edge TPU sur un Raspberry Pi ?#
Télécharge le paquet .deb approprié pour ta version de Raspberry Pi OS depuis ce lien, puis installe-le :
sudo dpkg -i path/to/package.debAssure-toi de désinstaller toute version précédente du runtime Coral Edge TPU en suivant les étapes de la section Installer le runtime Edge TPU.
Link to this sectionPuis-je exporter mon modèle Ultralytics YOLO26 pour qu'il soit compatible avec le Coral Edge TPU ?#
Oui. Exécute l'exportation sur Google Colab, une machine Linux x86_64, ou le conteneur Docker Ultralytics ; tu peux aussi utiliser Ultralytics Platform. Voici comment exporter avec Python et la CLI :
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")Pour plus d'informations, reporte-toi à la documentation Mode Export.
Link to this sectionQue dois-je faire si TensorFlow est déjà installé sur mon Raspberry Pi, mais que je veux utiliser tflite-runtime à la place ?#
Si tu as TensorFlow installé et que tu dois passer à tflite-runtime, désinstalle d'abord TensorFlow :
pip uninstall tensorflow tensorflow-aarch64Installe ou mets ensuite à jour tflite-runtime :
pip install -U tflite-runtimePour des instructions détaillées, reporte-toi à la section Exécuter l'inférence sur l'Edge TPU.
Link to this sectionComment exécuter l'inférence avec un modèle YOLO26 exporté sur un Raspberry Pi en utilisant le Coral Edge TPU ?#
Après avoir exporté ton modèle YOLO26 vers un format compatible Edge TPU, exécute l'inférence avec les extraits suivants. Le fichier du modèle doit garder le suffixe _edgetpu.tflite pour qu'Ultralytics le charge sur l'Edge TPU :
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")Des détails complets sur le mode prédiction se trouvent sur la page Predict.