Coral Edge TPU en una Raspberry Pi con Ultralytics YOLO11 🚀
¿Qué es un Coral Edge TPU?
El Coral Edge TPU es un dispositivo compacto que agrega un coprocesador Edge TPU a tu sistema. Permite una inferencia de ML de bajo consumo y alto rendimiento para modelos TensorFlow Lite. Lee más en la página de inicio de Coral Edge TPU.
Ver: Cómo ejecutar la inferencia en Raspberry Pi utilizando Google Coral Edge TPU
Mejora el rendimiento del modelo Raspberry Pi con Coral Edge TPU
Mucha gente quiere ejecutar sus modelos en un dispositivo integrado o móvil como una Raspberry Pi, ya que son muy eficientes energéticamente y pueden utilizarse en muchas aplicaciones diferentes. Sin embargo, el rendimiento de la inferencia en estos dispositivos suele ser bajo, incluso cuando se utilizan formatos como ONNX u 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 usar Edge TPU con una Raspberry Pi está desactualizada, 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 de TensorFlow Lite. Además de eso, Google parece haber abandonado por completo el proyecto Coral, y no ha habido actualizaciones entre 2021 y 2025. Esta guía te mostrará cómo hacer que Edge TPU funcione con las últimas versiones del tiempo de ejecución de TensorFlow Lite y un tiempo de ejecución actualizado de Coral Edge TPU en una computadora de placa única Raspberry Pi (SBC).
Prerrequisitos
- Raspberry Pi 4B (se recomiendan 2 GB o más) o Raspberry Pi 5 (Recomendado)
- Raspberry Pi OS Bullseye/Bookworm (64-bit) con escritorio (Recomendado)
- Acelerador USB Coral
- Una plataforma no basada en ARM para exportar un modelo de PyTorch de Ultralytics
Guía de instalación
Esta guía asume que ya tienes una instalación funcional de Raspberry Pi OS y que has instalado ultralytics
y todas las dependencias. Para obtener ultralytics
instalado, visite la guía de inicio rápido para configurarlo antes de continuar aquí.
Instalación del entorno de ejecución de Edge TPU
Primero, necesitamos instalar el entorno de ejecución de Edge TPU. Hay muchas versiones diferentes disponibles, por lo que debe elegir la versión correcta para su sistema operativo. La versión de alta frecuencia ejecuta el Edge TPU a una velocidad de reloj más alta, lo que mejora el rendimiento. Sin embargo, podría provocar la limitación térmica del Edge TPU, por lo que se recomienda tener algún tipo de mecanismo de refrigeración.
Raspberry Pi OS | Modo de alta frecuencia | Versión para descargar |
---|---|---|
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 |
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, debes conectar tu Coral Edge TPU a un puerto USB 3.0 en tu Raspberry Pi. Esto se debe a que, según la guía oficial, un nuevo udev
la regla debe entrar en vigor después de la instalación.
Importante
Si ya tiene instalado el runtime de Coral Edge TPU, desinstálelo 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
Exportar a Edge TPU
Para usar la Edge TPU, necesita convertir su modelo a un formato compatible. Se recomienda que ejecute la exportación en Google Colab, una máquina Linux x86_64, utilizando el contenedor oficial de Docker de Ultralytics, o usando Ultralytics HUB, ya que el compilador Edge TPU no está disponible en ARM. Consulte el Modo de Exportación para ver los argumentos disponibles.
Exportando 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 el <model_name>_saved_model/
carpeta con el nombre <model_name>_full_integer_quant_edgetpu.tflite
. Es importante que su modelo termine con el sufijo _edgetpu.tflite
, de lo contrario, Ultralytics no sabrá que estás utilizando un modelo Edge TPU.
Ejecutando el modelo
Antes de que pueda ejecutar realmente el modelo, deberá instalar las bibliotecas correctas.
Si tensorflow
está instalado, desinstale TensorFlow con el siguiente comando:
pip uninstall tensorflow tensorflow-aarch64
Luego instale/actualice tflite-runtime
:
pip install -U tflite-runtime
Ahora puede ejecutar la inferencia utilizando el siguiente código:
Ejecutando 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
Encuentre información completa en la página Predict para obtener detalles completos sobre el modo de predicción.
Inferencia con múltiples Edge TPUs
Si tiene múltiples Edge TPUs, puede utilizar el siguiente código para seleccionar una TPU específica.
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
Benchmarks
Benchmarks
Probado con Raspberry Pi Os Bookworm de 64 bits y un USB Coral Edge TPU.
Nota
Se muestra el tiempo de inferencia, no se incluye el pre/postprocesamiento.
Tamaño de la imagen | Modelo | Tiempo de inferencia estándar (ms) | Tiempo de inferencia de alta frecuencia (ms) |
---|---|---|---|
320 | YOLOv8n | 32.2 | 26.7 |
320 | YOLOv8s | 47.1 | 39.8 |
512 | YOLOv8n | 73.5 | 60.7 |
512 | YOLOv8s | 149.6 | 125.3 |
Tamaño de la imagen | Modelo | Tiempo de inferencia estándar (ms) | Tiempo de inferencia de alta frecuencia (ms) |
---|---|---|---|
320 | YOLOv8n | 22.2 | 16.7 |
320 | YOLOv8s | 40.1 | 32.2 |
512 | YOLOv8n | 53.5 | 41.6 |
512 | YOLOv8s | 132.0 | 103.3 |
En promedio:
- La Raspberry Pi 5 es un 22% más rápida con el modo estándar que la Raspberry Pi 4B.
- La Raspberry Pi 5 es un 30.2% más rápida con el modo de alta frecuencia que la Raspberry Pi 4B.
- El modo de alta frecuencia es un 28,4% más rápido que el modo estándar.
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 agregar un coprocesador Edge TPU a tu sistema. Este coprocesador permite una inferencia de aprendizaje automático de bajo consumo y alto rendimiento, particularmente optimizada para modelos TensorFlow Lite. Cuando se utiliza una Raspberry Pi, el Edge TPU acelera la inferencia del modelo ML, lo que aumenta significativamente el rendimiento, especialmente para los modelos Ultralytics YOLO11. Puedes leer más sobre el Coral Edge TPU en su página de inicio.
¿Cómo instalo el tiempo de ejecución de Coral Edge TPU en una Raspberry Pi?
Para instalar el runtime de Coral Edge TPU en su Raspberry Pi, descargue el .deb
paquete para su versión de Raspberry Pi OS desde este enlace. Una vez descargado, utilice el siguiente comando para instalarlo:
sudo dpkg -i path/to/package.deb
Asegúrese 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 Coral Edge TPU. Se recomienda realizar la exportación en Google Colab, una máquina Linux x86_64, o utilizando el contenedor Docker de Ultralytics. También puedes utilizar Ultralytics HUB para la exportación. Aquí te mostramos cómo puedes exportar tu modelo usando python y la CLI:
Exportando 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 de Exportación.
¿Qué debo hacer si TensorFlow ya está instalado en mi Raspberry Pi, pero quiero usar tflite-runtime en su lugar?
Si tiene TensorFlow instalado en su Raspberry Pi y necesita cambiar a tflite-runtime
, primero tendrás que desinstalar TensorFlow usando:
pip uninstall tensorflow tensorflow-aarch64
Luego, instale o actualice tflite-runtime
con el siguiente comando:
pip install -U tflite-runtime
Para obtener instrucciones detalladas, consulta la sección Ejecución del modelo.
¿Cómo ejecuto la inferencia con un modelo YOLO11 exportado en una Raspberry Pi usando Coral Edge TPU?
Después de exportar tu modelo YOLO11 a un formato compatible con Edge TPU, puedes ejecutar la inferencia usando los siguientes fragmentos de código:
Ejecutando 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
Se pueden encontrar detalles completos sobre las características del modo de predicción completa en la Página de predicción.