Coral Edge TPU su un Raspberry Pi con Ultralytics YOLO11 🚀
Cos'è il Coral Edge TPU?
Coral Edge TPU è un dispositivo compatto che aggiunge un coprocessore Edge TPU al vostro sistema. Consente l'inferenza ML a basso consumo e ad alte prestazioni per i modelli TensorFlow modelli Lite. Per saperne di più, visitate la home page di Coral Edge TPU .
Guarda: Come eseguire l'inferenza su Raspberry Pi usando Google Coral Edge TPU
Aumentare le prestazioni del modello Raspberry Pi con Coral Edge TPU
Molti 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 dell'inferenza su questi dispositivi sono solitamente scarse anche quando si utilizzano formati come ONNX o OpenVINO. 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 del runtime Coral Edge TPU non funzionano più con le attuali versioni del runtime TensorFlow Lite. Inoltre, Google sembra aver abbandonato completamente il progetto Coral e non ci sono stati aggiornamenti tra il 2021 e il 2024. Questa guida mostra come far funzionare Edge TPU con le ultime versioni del runtime TensorFlow Lite e con un runtime Coral Edge TPU aggiornato su un single board computer (SBC) Raspberry Pi.
Prerequisiti
- Raspberry Pi 4B (consigliato 2GB o più) o Raspberry Pi 5 (consigliato)
- Raspberry Pi OS Bullseye/Bookworm (64 bit) con desktop (consigliato)
- Acceleratore USB Coral
- Una piattaforma non basata su ARM per esportare un Ultralytics PyTorch modello
Guida all'installazione
Questa guida presuppone che si disponga già di un sistema operativo Raspberry Pi funzionante e che si siano installati ultralytics
e tutte le dipendenze. Per ottenere ultralytics
installato, visitare il sito guida rapida per ottenere la configurazione prima di continuare qui.
Installazione del runtime Edge TPU
Per prima cosa è necessario installare il runtime Edge TPU . Esistono molte versioni diverse, quindi è necessario scegliere quella giusta per il proprio sistema operativo.
Sistema operativo Raspberry Pi | 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 |
Scaricate l'ultima versione da qui.
Dopo aver scaricato il file, è possibile installarlo con il seguente comando:
Dopo aver installato il runtime, è necessario collegare Coral Edge TPU a una porta USB 3.0 del Raspberry Pi. Questo perché, secondo la guida ufficiale, una nuova porta udev
La regola deve entrare in vigore dopo l'installazione.
Importante
Se è già installato il runtime Coral Edge TPU , disinstallarlo con il seguente comando.
Esportazione del modello in un modello compatibile con Edge TPU
Per utilizzare Edge TPU, è necessario convertire il modello in un formato compatibile. Si consiglia di eseguire l'esportazione su Google Colab, su una macchina Linux x86_64, utilizzando il contenitore Docker ufficiale Ultralytics o utilizzando Ultralytics HUB, poiché il compilatore Edge TPU non è disponibile su ARM. Vedere la modalità di esportazione per gli argomenti disponibili.
Esportazione del modello
Il modello esportato verrà salvato nella cartella <model_name>_saved_model/
con il nome <model_name>_full_integer_quant_edgetpu.tflite
. È importante che il modello finisca con il suffisso _edgetpu.tflite
, altrimenti ultralytics non sa che si sta utilizzando un modello Edge TPU .
Esecuzione del modello
Prima di poter eseguire il modello, è necessario installare le librerie corrette.
Se tensorflow
è installato, disinstallare tensorflow con il seguente comando:
Quindi installare/aggiornare tflite-runtime
:
Ora è possibile eseguire l'inferenza utilizzando il seguente codice:
Esecuzione del modello
Per informazioni complete sulla modalità di previsione, consultare la pagina Predict.
Inferenza con più TPU Edge
Se si dispone di più Edge TPU, è possibile 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
FAQ
Cos'è 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 vostro sistema. Questo coprocessore consente un'inferenza di apprendimento automatico a basso consumo e ad alte prestazioni, particolarmente ottimizzata per i modelli TensorFlow Lite. Quando si utilizza un Raspberry Pi, Edge TPU accelera l'inferenza dei modelli di ML, aumentando significativamente le prestazioni, soprattutto per i modelli Ultralytics YOLO11 . Per saperne di più su Coral Edge TPU è possibile consultare la sua home page.
Come si installa il runtime Coral Edge TPU su un Raspberry Pi?
Per installare il runtime Coral Edge TPU sul vostro Raspberry Pi, scaricate l'apposito file .deb
per la versione del sistema operativo Raspberry Pi da questo link. Una volta scaricato, utilizzate il seguente comando per installarlo:
Assicuratevi di disinstallare qualsiasi versione precedente del runtime Coral Edge TPU seguendo i passaggi indicati nella sezione Installazione guidata.
Posso esportare il mio modello Ultralytics YOLO11 per renderlo compatibile con Coral Edge TPU?
Sì, è possibile esportare il modello Ultralytics YOLO11 per renderlo compatibile con Coral Edge TPU. Si consiglia di eseguire l'esportazione su Google Colab, un computer Linux x86_64 o utilizzando il contenitore Docker Ultralytics . È anche possibile utilizzare Ultralytics HUB per l'esportazione. Ecco come esportare il modello utilizzando Python e CLI:
Esportazione del modello
Per ulteriori informazioni, consultare la documentazione sulla modalità di esportazione.
Cosa devo fare se TensorFlow è già installato sul mio Raspberry Pi ma voglio usare invece tflite-runtime?
Se avete installato TensorFlow sul vostro Raspberry Pi e dovete passare a tflite-runtime
è necessario disinstallare prima TensorFlow utilizzando:
Quindi, installare o aggiornare tflite-runtime
con il seguente comando:
Per una ruota specifica, come TensorFlow 2.15.0 tflite-runtime
è possibile scaricarlo da questo link e installarlo usando pip
. Istruzioni dettagliate sono disponibili nella sezione relativa all'esecuzione del modello. Esecuzione del modello.
Come si esegue l'inferenza con un modello YOLO11 esportato su un Raspberry Pi utilizzando Coral Edge TPU?
Dopo aver esportato il modello YOLO11 in un formato compatibile con Edge TPU, è possibile eseguire l'inferenza utilizzando i seguenti frammenti di codice:
Esecuzione del modello
I dettagli completi sulle caratteristiche della modalità di previsione sono disponibili nella pagina Previsione.