Vai al contenuto

Coral Edge TPU su un Raspberry Pi con Ultralytics YOLOv8 🚀

Computer a scheda singola Raspberry Pi con acceleratore USB Edge TPU

Che cos'è il Coral Edge TPU?

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. Per saperne di più visita la home page di Coral Edge TPU .

Aumenta 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 ti mostrerà come far funzionare Edge TPU con le ultime versioni del runtime TensorFlow Lite e un runtime Coral Edge TPU aggiornato su un single board computer (SBC) Raspberry Pi.

Prerequisiti

Guida all'installazione

Questa guida presuppone che tu abbia già installato un sistema operativo Raspberry Pi funzionante e che tu abbia installato ultralytics e tutte le dipendenze. Per ottenere ultralytics installata, visita la pagina guida rapida per configurarlo prima di continuare qui.

Installazione del runtime Edge TPU

Per prima cosa, dobbiamo installare il runtime Edge TPU . Esistono diverse versioni disponibili, quindi devi scegliere quella giusta per il tuo 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

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, devi collegare Coral Edge TPU a una porta USB 3.0 del tuo Raspberry Pi. Questo perché, secondo la guida ufficiale, una nuova porta udev La regola deve entrare in vigore dopo l'installazione.

Importante

Se hai già installato il runtime Coral Edge TPU , disinstallalo usando 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 il tuo modello in un modello compatibile con Edge TPU

Per utilizzare 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 contenitore Docker ufficiale Ultralytics o utilizzando Ultralytics HUB, poiché il compilatore Edge TPU non è disponibile su ARM. Vedi la Modalità di esportazione per gli argomenti disponibili.

Esportazione

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 di <model_name>_full_integer_quant_edgetpu.tflite.

Esecuzione del modello

Dopo aver esportato il tuo modello, puoi eseguire l'inferenza con esso utilizzando il seguente codice:

In corsa

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

Per informazioni complete sulla modalità di previsione, consulta la pagina Predict.

Importante

Dovresti eseguire il modello utilizzando tflite-runtime e non tensorflow. Se tensorflow è installato, disinstalla tensorflow con il seguente comando:

pip uninstall tensorflow tensorflow-aarch64

Quindi installa/aggiorna tflite-runtime:

pip install -U tflite-runtime

Se vuoi un tflite-runtime ruota per tensorflow 2.15.0 scaricalo da qui e installarlo utilizzando pip o il tuo gestore di pacchetti preferito.



Creato 2024-02-12, Aggiornato 2024-04-27
Autori: glenn-jocher (3), Skillnoob (1)

Commenti