Coral Edge TPU su Raspberry Pi con Ultralytics YOLO26 🚀

Raspberry Pi with Edge TPU accelerator

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

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 OSModalità alta frequenzaVersione da scaricare
Bullseye 32bitNolibedgetpu1-std_ ... .bullseye_armhf.deb
Bullseye 64bitNolibedgetpu1-std_ ... .bullseye_arm64.deb
Bullseye 32bitlibedgetpu1-max_ ... .bullseye_armhf.deb
Bullseye 64bitlibedgetpu1-max_ ... .bullseye_arm64.deb
Bookworm 32bitNolibedgetpu1-std_ ... .bookworm_armhf.deb
Bookworm 64bitNolibedgetpu1-std_ ... .bookworm_arm64.deb
Bookworm 32bitlibedgetpu1-max_ ... .bookworm_armhf.deb
Bookworm 64bitlibedgetpu1-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.deb

Dopo 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-max

Esportazione 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.

Esportazione del modello
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-aarch64

Quindi installa o aggiorna tflite-runtime:

pip install -U tflite-runtime

Ora puoi eseguire l'inferenza utilizzando il seguente codice:

Esecuzione del modello
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.

Inferenza con più Edge TPU

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 TPU

Benchmark

Benchmark

Testato con Raspberry Pi OS Bookworm a 64 bit e un USB Coral Edge TPU.

Nota

Viene mostrato il tempo di inferenza, pre-/post-elaborazione non inclusa.

Dimensione immagineModelloTempo di inferenza standard (ms)Tempo di inferenza alta frequenza (ms)
320YOLOv8n32.226.7
320YOLOv8s47.139.8
512YOLOv8n73.560.7
512YOLOv8s149.6125.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.deb

Assicurati 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:

Esportazione del modello
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-aarch64

Quindi, installa o aggiorna tflite-runtime con il seguente comando:

pip install -U tflite-runtime

Per 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:

Esecuzione del modello
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.

Commenti