Coral Edge TPU su Raspberry Pi con Ultralytics YOLO26 🚀
Cos'è un Coral Edge TPU?
Il Coral Edge TPU è un dispositivo compatto che aggiunge un coprocessore Edge TPU al tuo sistema. Abilita l'inferenza ML a basso consumo e alte prestazioni per i modelli TensorFlow Lite. Leggi di più sulla home page di Coral Edge TPU.
Watch: How to Run Inference on Raspberry Pi using Google Coral Edge TPU
Migliora le prestazioni del Raspberry Pi con Coral Edge TPU
Molte persone desiderano eseguire i propri modelli su un dispositivo embedded o mobile come un Raspberry Pi, poiché sono molto efficienti dal punto di vista energetico e possono essere utilizzati in molte applicazioni diverse. Tuttavia, le prestazioni di inferenza su questi dispositivi sono solitamente scarse, anche utilizzando formati come ONNX o OpenVINO. Il Coral Edge TPU è un'ottima soluzione a questo problema, poiché può essere utilizzato con un Raspberry Pi per accelerare notevolmente le prestazioni di inferenza.
Edge TPU su Raspberry Pi con TensorFlow Lite (Nuovo)⭐
La guida esistente di Coral su come utilizzare l'Edge TPU con un Raspberry Pi è obsoleta e le attuali build del runtime Coral Edge TPU non funzionano più con le attuali versioni del runtime TensorFlow Lite. Oltre a ciò, Google sembra aver abbandonato completamente il progetto Coral e non ci sono stati aggiornamenti tra il 2021 e il 2025. Questa guida ti mostrerà come far funzionare l'Edge TPU con le ultime versioni del runtime TensorFlow Lite e un runtime Coral Edge TPU aggiornato su un computer a scheda singola (SBC) Raspberry Pi.
Prerequisiti
- Raspberry Pi 4B (consigliato 2GB o superiore) o Raspberry Pi 5 (consigliato)
- Raspberry Pi OS Bullseye/Bookworm (64-bit) con desktop (consigliato)
- Coral USB Accelerator
- Una piattaforma non basata su ARM per esportare un modello PyTorch di Ultralytics
Guida all'installazione
Questa guida presuppone che tu abbia già un'installazione funzionante di Raspberry Pi OS e di aver installato ultralytics e tutte le dipendenze. Per installare ultralytics, visita la guida rapida per prepararti prima di continuare qui.
Installazione del runtime Edge TPU
Per prima cosa, dobbiamo installare il runtime Edge TPU. Sono disponibili molte versioni diverse, quindi devi scegliere quella giusta per il tuo sistema operativo. La versione ad alta frequenza esegue l'Edge TPU a una velocità di clock superiore, il che migliora le prestazioni. Tuttavia, potrebbe causare il thermal throttling dell'Edge TPU, quindi si consiglia di disporre di un qualche meccanismo di raffreddamento.
| Raspberry Pi OS | Modalità alta frequenza | Versione da scaricare |
|---|---|---|
| Bullseye 32bit | No | libedgetpu1-std_ ... .bullseye_armhf.deb |
| Bullseye 64bit | No | libedgetpu1-std_ ... .bullseye_arm64.deb |
| Bullseye 32bit | Sì | libedgetpu1-max_ ... .bullseye_armhf.deb |
| Bullseye 64bit | Sì | libedgetpu1-max_ ... .bullseye_arm64.deb |
| Bookworm 32bit | No | libedgetpu1-std_ ... .bookworm_armhf.deb |
| Bookworm 64bit | No | libedgetpu1-std_ ... .bookworm_arm64.deb |
| Bookworm 32bit | Sì | libedgetpu1-max_ ... .bookworm_armhf.deb |
| Bookworm 64bit | Sì | libedgetpu1-max_ ... .bookworm_arm64.deb |
Scarica l'ultima versione da qui.
Dopo aver scaricato il file, puoi installarlo con il seguente comando:
sudo dpkg -i path/to/package.debDopo aver installato il runtime, collega il tuo Coral Edge TPU a una porta USB 3.0 sul Raspberry Pi affinché la nuova regola udev possa avere effetto.
Importante
Se hai già installato il runtime Coral Edge TPU, disinstallalo utilizzando il seguente comando.
# If you installed the standard version
sudo apt remove libedgetpu1-std
# If you installed the high-frequency version
sudo apt remove libedgetpu1-maxEsportazione su Edge TPU
Per utilizzare l'Edge TPU, devi convertire il tuo modello in un formato compatibile. Si consiglia di eseguire l'esportazione su Google Colab, su una macchina Linux x86_64, utilizzando il container Docker di Ultralytics ufficiale o utilizzando la piattaforma Ultralytics, poiché il compilatore Edge TPU non è disponibile su ARM. Vedi la Modalità di esportazione per gli argomenti disponibili.
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")Il modello esportato verrà salvato nella cartella <model_name>_saved_model/ con il nome <model_name>_full_integer_quant_edgetpu.tflite. Assicurati che il nome del file termini con il suffisso _edgetpu.tflite; in caso contrario, Ultralytics non rileverà che stai utilizzando un modello Edge TPU.
Esecuzione del modello
Prima di poter eseguire effettivamente il modello, dovrai installare le librerie corrette.
Se hai già installato TensorFlow, disinstallalo con il seguente comando:
pip uninstall tensorflow tensorflow-aarch64Quindi installa o aggiorna tflite-runtime:
pip install -U tflite-runtimeOra puoi eseguire l'inferenza utilizzando il seguente codice:
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")Trova informazioni complete sulla pagina Predict per i dettagli sulla modalità di predizione completa.
Se hai più Edge TPU, puoi utilizzare il seguente codice per selezionare uno specifico 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") # 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 TPUBenchmark
Testato con Raspberry Pi OS Bookworm a 64 bit e un USB Coral Edge TPU.
Viene mostrato il tempo di inferenza, pre-/post-elaborazione non inclusa.
| Dimensione immagine | Modello | Tempo di inferenza standard (ms) | Tempo di inferenza alta frequenza (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 |
In media:
- Il Raspberry Pi 5 è il 22% più veloce con la modalità standard rispetto al Raspberry Pi 4B.
- Il Raspberry Pi 5 è il 30,2% più veloce con la modalità ad alta frequenza rispetto al Raspberry Pi 4B.
- La modalità ad alta frequenza è il 28,4% più veloce rispetto alla modalità standard.
FAQ
Cos'è un Coral Edge TPU e come migliora le prestazioni del Raspberry Pi con Ultralytics YOLO26?
Il Coral Edge TPU è un dispositivo compatto progettato per aggiungere un coprocessore Edge TPU al tuo sistema. Questo coprocessore abilita l'inferenza di machine learning a basso consumo e alte prestazioni, particolarmente ottimizzata per i modelli TensorFlow Lite. Quando utilizzi un Raspberry Pi, l'Edge TPU accelera l'inferenza del modello ML, aumentando significativamente le prestazioni, specialmente per i modelli Ultralytics YOLO26. Puoi leggere di più sul Coral Edge TPU sulla loro home page.
Come installo il runtime Coral Edge TPU su un Raspberry Pi?
Per installare il runtime Coral Edge TPU sul tuo Raspberry Pi, scarica il pacchetto .deb appropriato per la tua versione di Raspberry Pi OS da questo link. Una volta scaricato, utilizza il seguente comando per installarlo:
sudo dpkg -i path/to/package.debAssicurati di disinstallare eventuali versioni precedenti del runtime Coral Edge TPU seguendo i passaggi descritti nella sezione Guida all'installazione.
Posso esportare il mio modello Ultralytics YOLO26 per renderlo compatibile con Coral Edge TPU?
Sì, puoi esportare il tuo modello Ultralytics YOLO26 per renderlo compatibile con il Coral Edge TPU. Si consiglia di eseguire l'esportazione su Google Colab, su una macchina Linux x86_64 o utilizzando il container Docker di Ultralytics. Puoi anche utilizzare la piattaforma Ultralytics per l'esportazione. Ecco come puoi esportare il tuo modello utilizzando Python e 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")Per ulteriori informazioni, consulta la documentazione Modalità di esportazione.
Cosa dovrei fare se TensorFlow è già installato sul mio Raspberry Pi, ma voglio utilizzare tflite-runtime?
Se hai TensorFlow installato sul tuo Raspberry Pi e devi passare a tflite-runtime, dovrai prima disinstallare TensorFlow utilizzando:
pip uninstall tensorflow tensorflow-aarch64Quindi, installa o aggiorna tflite-runtime con il seguente comando:
pip install -U tflite-runtimePer istruzioni dettagliate, consulta la sezione Esecuzione del modello.
Come eseguo l'inferenza con un modello YOLO26 esportato su un Raspberry Pi utilizzando il Coral Edge TPU?
Dopo aver esportato il tuo modello YOLO26 in un formato compatibile con Edge TPU, puoi eseguire l'inferenza utilizzando i seguenti frammenti di codice:
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")Dettagli completi sulle funzionalità della modalità di predizione completa sono disponibili sulla Pagina di predizione.