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'è 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

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

Scaricate l'ultima versione da qui.

Dopo aver scaricato il file, è possibile installarlo con il seguente comando:

sudo dpkg -i path/to/package.deb

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.

# If you installed the standard version
sudo apt remove libedgetpu1-std

# If you installed the high frequency version
sudo apt remove libedgetpu1-max

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

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

pip uninstall tensorflow tensorflow-aarch64

Quindi installare/aggiornare tflite-runtime:

pip install -U tflite-runtime

Ora è possibile 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

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:

sudo dpkg -i path/to/package.deb

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

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

pip uninstall tensorflow tensorflow-aarch64

Quindi, installare o aggiornare tflite-runtime con il seguente comando:

pip install -U tflite-runtime

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

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

I dettagli completi sulle caratteristiche della modalità di previsione sono disponibili nella pagina Previsione.

📅C reato 9 mesi fa ✏️ Aggiornato 1 mese fa

Commenti