Vai al contenuto

Coral Edge TPU su un Raspberry Pi con Ultralytics YOLO11 🚀

Computer a scheda singola Raspberry Pi con acceleratore USB Edge TPU

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

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 libedgetpu1-max_ ... .bullseye_armhf.deb
Bullseye 64bit libedgetpu1-max_ ... .bullseye_arm64.deb
Bookworm 32bit No libedgetpu1-std_ ... .bookworm_armhf.deb
Bookworm 64bit No libedgetpu1-std_ ... .bookworm_arm64.deb
Bookworm 32bit libedgetpu1-max_ ... .bookworm_armhf.deb
Bookworm 64bit 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.



📅 Creato 1 anno fa ✏️ Aggiornato 5 mesi fa

Commenti