Saltar al contenido

Coral Edge TPU en una Raspberry Pi con Ultralytics YOLO11 🚀

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 modelos TensorFlow modelos Lite. Más información en la página de inicio de Coral Edge TPU .



Observa: Cómo ejecutar Inferencia en Raspberry Pi utilizando Google 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 compilaciones actuales del tiempo de ejecución de Coral Edge TPU ya no funcionan con las versiones actuales del tiempo de ejecución TensorFlow Lite. Además, Google parece haber abandonado completamente 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 PiModo de alta frecuenciaVersión para descargar
Bullseye 32 bitsNolibedgetpu1-std_ ... .bullseye_armhf.deb
Ojo de buey 64bitNolibedgetpu1-std_ ... .bullseye_arm64.deb
Bullseye 32 bitslibedgetpu1-max_ ... .bullseye_armhf.deb
Ojo de buey 64bitlibedgetpu1-max_ ... .bullseye_arm64.deb
Ratón de biblioteca 32bitNolibedgetpu1-std_ ... .bookworm_armhf.deb
Ratón de biblioteca 64bitNolibedgetpu1-std_ ... .bookworm_arm64.deb
Ratón de biblioteca 32bitlibedgetpu1-max_ ... .bookworm_armhf.deb
Ratón de biblioteca 64bitlibedgetpu1-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 el Edge TPU, necesitas 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 Exportación para conocer los argumentos disponibles.

Exportar el modelo

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. Es importante que tu modelo termine con el sufijo _edgetpu.tfliteDe lo contrario, ultralytics no sabrá que estás utilizando un modelo Edge TPU .

Ejecutar el modelo

Antes de poder ejecutar realmente el modelo, tendrás que instalar las bibliotecas correctas.

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

Ahora puedes ejecutar la inferencia utilizando el código siguiente:

Ejecutar el modelo

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

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

Inferencia con múltiples TPU de Arista

Si tienes varios TPU Edge, puedes utilizar el siguiente código para seleccionar un TPU específico.

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

PREGUNTAS FRECUENTES

¿Qué es un Coral Edge TPU y cómo mejora el rendimiento de Raspberry Pi con Ultralytics YOLO11?

El Coral Edge TPU es un dispositivo compacto diseñado para añadir un coprocesador Edge TPU a tu sistema. Este coprocesador permite una inferencia de aprendizaje automático de bajo consumo y alto rendimiento, especialmente optimizada para los modelos TensorFlow Lite. Cuando se utiliza una Raspberry Pi, el Edge TPU acelera la inferencia del modelo ML, aumentando significativamente el rendimiento, especialmente para los modelos Ultralytics YOLO11. Puedes obtener más información sobre Coral Edge TPU en su página de inicio.

¿Cómo instalo el tiempo de ejecución Coral Edge TPU en una Raspberry Pi?

Para instalar el tiempo de ejecución Coral Edge TPU en tu Raspberry Pi, descarga el programa adecuado .deb para tu versión del sistema operativo Raspberry Pi desde este enlace. Una vez descargado, utiliza el siguiente comando para instalarlo:

sudo dpkg -i path/to/package.deb

Asegúrate de desinstalar cualquier versión anterior del tiempo de ejecución de Coral Edge TPU siguiendo los pasos descritos en la sección Guía de instalación.

¿Puedo exportar mi modelo Ultralytics YOLO11 para que sea compatible con Coral Edge TPU?

Sí, puedes exportar tu modelo Ultralytics YOLO11 para que sea compatible con el Coral Edge TPU. Se recomienda realizar la exportación en Google Colab, una máquina Linux x86_64, o utilizando el contenedorUltralytics Docker. También puedes utilizar Ultralytics HUB para exportar. Así es como puedes exportar tu modelo utilizando Python y CLI:

Exportar el modelo

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

Para más información, consulta la documentación del Modo Exportación.

¿Qué debo hacer si TensorFlow ya está instalado en mi Raspberry Pi pero quiero utilizar tflite-runtime en su lugar?

Si tienes TensorFlow instalado en tu Raspberry Pi y necesitas cambiar a tflite-runtime, tendrás que desinstalar primero TensorFlow utilizando:

pip uninstall tensorflow tensorflow-aarch64

A continuación, instala o actualiza tflite-runtime con el siguiente comando:

pip install -U tflite-runtime

Para una rueda concreta, como TensorFlow 2.15.0 tflite-runtimepuedes descargarlo de este enlace e instálalo utilizando pip. Encontrarás instrucciones detalladas en la sección sobre la ejecución del modelo Ejecutar el modelo.

¿Cómo ejecuto la inferencia con un modelo YOLO11 exportado en una Raspberry Pi utilizando el Coral Edge TPU?

Después de exportar tu modelo YOLO11 a un formato compatible con Edge TPU, puedes ejecutar la inferencia utilizando los siguientes fragmentos de código:

Ejecutar el modelo

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

Puedes encontrar información detallada sobre todas las funciones del modo de predicción en la Página de Predicción.

📅 C reado hace 9 meses ✏️ Actualizado hace 1 mes

Comentarios