Coral Edge TPU su un Raspberry Pi con Ultralytics YOLO11 🚀
Cos'è un Coral Edge TPU?
Il Coral Edge TPU è un dispositivo compatto che aggiunge un coprocessore Edge TPU al tuo sistema. Consente un'inferenza ML a basso consumo e ad alte prestazioni per i modelli TensorFlow Lite. Leggi di più sulla home page di Coral Edge TPU.
Guarda: Come Eseguire l'Inferenza su Raspberry Pi utilizzando Google Coral Edge TPU
Migliora le Prestazioni del Modello 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 quando si utilizzano formati come ONNX o OpenVINO. Il Coral Edge TPU è un'ottima soluzione a questo problema, poiché può essere utilizzato con un Raspberry Pi e accelerare notevolmente le prestazioni di inferenza.
Edge TPU su Raspberry Pi con TensorFlow Lite (Nuovo)⭐
La guida esistente di Coral su come utilizzare Edge TPU con un Raspberry Pi è obsoleta e le attuali build di runtime di Coral Edge TPU non funzionano più con le versioni correnti del runtime di TensorFlow Lite. Inoltre, 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 Edge TPU con le versioni più recenti del runtime di TensorFlow Lite e un runtime Coral Edge TPU aggiornato su un single board computer (SBC) Raspberry Pi.
Prerequisiti
- Raspberry Pi 4B (consigliati 2 GB o più) 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
Installation Walkthrough
Questa guida presuppone che tu abbia già un'installazione funzionante di Raspberry Pi OS e che tu abbia installato ultralytics
e tutte le dipendenze. Per ottenere ultralytics
l'installazione, visita la guida rapida per configurare il tutto prima di continuare qui.
Installazione del runtime Edge TPU
Innanzitutto, dobbiamo installare il runtime Edge TPU. Sono disponibili molte versioni diverse, quindi è necessario scegliere la versione giusta per il sistema operativo. La versione ad alta frequenza esegue l'Edge TPU a una velocità di clock più elevata, il che migliora le prestazioni. Tuttavia, potrebbe causare la limitazione termica dell'Edge TPU, quindi si consiglia di avere una sorta di meccanismo di raffreddamento.
Raspberry Pi OS | Modalità ad 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.deb
Dopo aver installato il runtime, è necessario collegare il tuo Coral Edge TPU a una porta USB 3.0 sul tuo Raspberry Pi. Questo perché, secondo la guida ufficiale, una nuova udev
regola deve entrare in vigore dopo l'installazione.
Importante
Se hai già installato il runtime di 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
Esporta in Edge TPU
Per utilizzare Edge TPU, devi convertire il tuo modello in un formato compatibile. Si consiglia di eseguire l'esportazione su Google Colab, una macchina Linux x86_64, utilizzando il container Docker Ultralytics ufficiale o utilizzando Ultralytics HUB, poiché il compilatore Edge TPU non è disponibile su ARM. Consulta 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")
yolo export model=path/to/model.pt format=edgetpu # Export an official model or custom model
Il modello esportato verrà salvato nella <model_name>_saved_model/
cartella con il nome <model_name>_full_integer_quant_edgetpu.tflite
. È importante che il tuo modello termini con il suffisso _edgetpu.tflite
, altrimenti Ultralytics non saprà che stai utilizzando un modello Edge TPU.
Esecuzione del modello
Prima di poter effettivamente eseguire il modello, sarà necessario installare le librerie corrette.
Se tensorflow
è installato, disinstallare TensorFlow con il seguente comando:
pip uninstall tensorflow tensorflow-aarch64
Quindi installa/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")
yolo predict model=path/to/MODEL_NAME_full_integer_quant_edgetpu.tflite source=path/to/source.png # Load an official model or custom model
Trova informazioni complete nella pagina Predict per i dettagli completi sulla modalità di previsione.
Inferenza con più Edge TPU
Se hai più Edge TPU, puoi utilizzare il seguente codice per selezionare una TPU specifica.
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 64-Bit e una USB Coral Edge TPU.
Nota
Viene mostrato il tempo di inferenza, pre-/post-elaborazione non inclusa.
Dimensione dell'immagine | Modello | Tempo di inferenza standard (ms) | Tempo di inferenza ad 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 |
Dimensione dell'immagine | Modello | Tempo di inferenza standard (ms) | Tempo di inferenza ad alta frequenza (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 |
In media:
- Il Raspberry Pi 5 è più veloce del 22% con la modalità standard rispetto al Raspberry Pi 4B.
- Il Raspberry Pi 5 è più veloce del 30,2% con la modalità ad alta frequenza rispetto al Raspberry Pi 4B.
- La modalità ad alta frequenza è del 28,4% più veloce della modalità standard.
FAQ
Cos'è un Coral Edge TPU e come migliora le prestazioni di Raspberry Pi con Ultralytics YOLO11?
Coral Edge TPU è un dispositivo compatto progettato per aggiungere un coprocessore Edge TPU al tuo sistema. Questo coprocessore consente un'inferenza di machine learning a bassa potenza e ad alte prestazioni, particolarmente ottimizzata per i modelli TensorFlow Lite. Quando si utilizza un Raspberry Pi, l'Edge TPU accelera l'inferenza del modello ML, aumentando significativamente le prestazioni, soprattutto per i modelli Ultralytics YOLO11. Puoi leggere di più su Coral Edge TPU sulla loro home page.
Come posso installare il runtime Coral Edge TPU su un Raspberry Pi?
Per installare il runtime Coral Edge TPU sul tuo Raspberry Pi, scarica l'appropriato .deb
pacchetto per la tua versione del sistema operativo Raspberry Pi da questo link. Una volta scaricato, usa 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 Installazione guidata.
Posso esportare il mio modello Ultralytics YOLO11 per renderlo compatibile con Coral Edge TPU?
Sì, puoi esportare il tuo modello Ultralytics YOLO11 per renderlo compatibile con Coral Edge TPU. Si consiglia di eseguire l'esportazione su Google Colab, una macchina Linux x86_64 o utilizzando il container Docker di Ultralytics. Puoi anche usare Ultralytics HUB per l'esportazione. Ecco come puoi esportare il tuo modello usando python e 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")
yolo export model=path/to/model.pt format=edgetpu # Export an official model or custom model
Per ulteriori informazioni, fare riferimento alla documentazione della Modalità di esportazione.
Cosa devo fare se TensorFlow è già installato sul mio Raspberry Pi, ma voglio usare invece tflite-runtime?
Se hai TensorFlow installato sul tuo Raspberry Pi e hai bisogno di passare a tflite-runtime
, dovrai prima disinstallare TensorFlow usando:
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 posso eseguire l'inferenza con un modello YOLO11 esportato su un Raspberry Pi utilizzando il Coral Edge TPU?
Dopo aver esportato il tuo modello YOLO11 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")
yolo predict model=path/to/edgetpu_model.tflite source=path/to/source.png # Load an official model or custom model
Informazioni complete sulle funzionalità della modalità di previsione completa sono disponibili nella Pagina di Predizione.