Saltar al contenido

Coral Edge TPU en una Raspberry Pi con Ultralytics YOLOv8 ūüöÄ

Ordenador monoplaca Raspberry Pi con acelerador USB Edge TPU

¬ŅQu√© es un borde de coral TPU?

El Coral Edge TPU es un dispositivo compacto que a√Īade un coprocesador Edge TPU a tu sistema. Permite una inferencia ML de bajo consumo y alto rendimiento para los modelos TensorFlow Lite. M√°s informaci√≥n en la p√°gina de inicio de Coral Edge TPU .

Aumenta el rendimiento del modelo Raspberry Pi con Coral Edge TPU

Mucha gente quiere ejecutar sus modelos en un dispositivo embebido o móvil, como una Raspberry Pi, ya que consumen muy poca energía y pueden utilizarse en muchas aplicaciones diferentes. Sin embargo, el rendimiento de la inferencia en estos dispositivos suele ser pobre, incluso cuando se utilizan formatos como onnx o openvino. El Coral Edge TPU es una gran solución a este problema, ya que puede utilizarse con una Raspberry Pi y acelerar enormemente el rendimiento de la inferencia.

Edge TPU en Raspberry Pi con TensorFlow Lite (Nuevo)‚≠ź

La gu√≠a existente de Coral sobre c√≥mo utilizar Edge TPU con una Raspberry Pi est√° obsoleta, y las versiones actuales del tiempo de ejecuci√≥n de Coral Edge TPU ya no funcionan con las versiones actuales del tiempo de ejecuci√≥n de TensorFlow Lite. Adem√°s, Google parece haber abandonado por completo el proyecto Coral, y no ha habido ninguna actualizaci√≥n entre 2021 y 2024. Esta gu√≠a te mostrar√° c√≥mo conseguir que Edge TPU funcione con las √ļltimas versiones del tiempo de ejecuci√≥n TensorFlow Lite y un tiempo de ejecuci√≥n actualizado de Coral Edge TPU en un ordenador monoplaca (SBC) Raspberry Pi.

Requisitos previos

Guía de instalación

Esta guía asume que ya tienes una instalación operativa del SO Raspberry Pi y que has instalado ultralytics y todas las dependencias. Para obtener ultralytics instalado, visita la página guía de inicio rápido para configurarlo antes de continuar aquí.

Instalación del tiempo de ejecución Edge TPU

En primer lugar, tenemos que instalar el tiempo de ejecución de Edge TPU . Existen muchas versiones diferentes, por lo que debes elegir la versión adecuada para tu sistema operativo.

SO Raspberry Pi Modo de alta frecuencia Versión para descargar
Bullseye 32 bits No libedgetpu1-std_ ... .bullseye_armhf.deb
Ojo de buey 64bit No libedgetpu1-std_ ... .bullseye_arm64.deb
Bullseye 32 bits Sí libedgetpu1-max_ ... .bullseye_armhf.deb
Ojo de buey 64bit Sí libedgetpu1-max_ ... .bullseye_arm64.deb
Ratón de biblioteca 32bit No libedgetpu1-std_ ... .bookworm_armhf.deb
Ratón de biblioteca 64bit No libedgetpu1-std_ ... .bookworm_arm64.deb
Ratón de biblioteca 32bit Sí libedgetpu1-max_ ... .bookworm_armhf.deb
Ratón de biblioteca 64bit Sí libedgetpu1-max_ ... .bookworm_arm64.deb

Descarga la √ļltima versi√≥n desde aqu√≠.

Después de descargar el archivo, puedes instalarlo con el siguiente comando:

sudo dpkg -i path/to/package.deb

Despu√©s de instalar el tiempo de ejecuci√≥n, tienes que conectar tu Coral Edge TPU a un puerto USB 3.0 de tu Raspberry Pi. Esto se debe a que, seg√ļn la gu√≠a oficial, un nuevo udev tiene que entrar en vigor despu√©s de la instalaci√≥n.

Importante

Si ya tienes instalado el tiempo de ejecución Coral Edge TPU , desinstálalo utilizando el siguiente comando.

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

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

Exporta tu modelo a un modelo compatible con Edge TPU

Para utilizar Edge TPU, tienes que convertir tu modelo a un formato compatible. Se recomienda que ejecutes la exportación en Google Colab, en una máquina Linux x86_64, utilizando el contenedor Docker oficial Ultralytics , o utilizando Ultralytics HUB, ya que el compilador Edge TPU no está disponible en ARM. Consulta el Modo de Ex portación para conocer los argumentos disponibles.

Exportando

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

El modelo exportado se guardar√° en la carpeta <model_name>_saved_model/ con el nombre <model_name>_full_integer_quant_edgetpu.tflite.

Ejecutar el modelo

Después de exportar tu modelo, puedes ejecutar la inferencia con él utilizando el código siguiente:

Correr

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

Encuentra información completa en la página Predecir para conocer todos los detalles del modo de predicción.

Importante

Debes ejecutar el modelo utilizando tflite-runtime y no tensorflow. Si tensorflow est√° instalado, desinstala tensorflow con el siguiente comando:

pip uninstall tensorflow tensorflow-aarch64

A continuación, instala/actualiza tflite-runtime:

pip install -U tflite-runtime

Si quieres un tflite-runtime rueda para tensorflow 2.15.0 descárgalo de aquí e instálalo utilizando pip o el gestor de paquetes que prefieras.



Creado 2024-02-12, Actualizado 2024-05-18
Autores: glenn-jocher (4), Skillnoob (1)

Comentarios