Guía de inicio rápido: Raspberry Pi con Ultralytics YOLO26

Esta guía completa ofrece un recorrido detallado para implementar Ultralytics YOLO26 en dispositivos Raspberry Pi. Además, muestra pruebas de rendimiento para demostrar las capacidades de YOLO26 en estos dispositivos pequeños y potentes.



Watch: Raspberry Pi 5 updates and improvements.
Nota

Esta guía ha sido probada con Raspberry Pi 4 y Raspberry Pi 5 ejecutando el último Raspberry Pi OS Bookworm (Debian 12). Se espera que el uso de esta guía para dispositivos Raspberry Pi más antiguos, como la Raspberry Pi 3, funcione siempre que esté instalado el mismo Raspberry Pi OS Bookworm.

¿Qué es Raspberry Pi?

Raspberry Pi es un ordenador de placa única pequeño y asequible. Se ha vuelto popular para una amplia gama de proyectos y aplicaciones, desde la automatización del hogar para aficionados hasta usos industriales. Las placas Raspberry Pi son capaces de ejecutar una gran variedad de sistemas operativos y ofrecen pines GPIO (General Purpose Input/Output) que permiten una fácil integración con sensores, actuadores y otros componentes de hardware. Vienen en diferentes modelos con especificaciones variables, pero todos comparten la misma filosofía de diseño básico de ser de bajo coste, compactos y versátiles.

Comparativa de la serie Raspberry Pi

Raspberry Pi 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, SoC Cortex-A53 de 64 bitsBroadcom BCM2711, SoC Cortex-A72 de 64 bitsBroadcom BCM2712, SoC Cortex-A76 de 64 bits
Frecuencia máxima de CPU1.4GHz1.8GHz2.4GHz
GPUVideocore IVVideocore VIVideoCore VII
Frecuencia máxima de GPU400Mhz500Mhz800Mhz
Memoria1GB LPDDR2 SDRAM1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM4GB, 8GB LPDDR4X-4267 SDRAM
PCIeN/DN/DInterfaz 1xPCIe 2.0
Consumo máximo de energía2.5A@5V3A@5V5A@5V (PD habilitado)

¿Qué es Raspberry Pi OS?

Raspberry Pi OS (anteriormente conocido como Raspbian) es un sistema operativo tipo Unix basado en la distribución Debian GNU/Linux para la familia de ordenadores de placa única compactos Raspberry Pi, distribuidos por la Raspberry Pi Foundation. Raspberry Pi OS está altamente optimizado para Raspberry Pi con CPUs ARM y utiliza un entorno de escritorio LXDE modificado con el gestor de ventanas de apilamiento Openbox. Raspberry Pi OS está en desarrollo activo, con énfasis en mejorar la estabilidad y el rendimiento de tantos paquetes Debian como sea posible en Raspberry Pi.

Graba Raspberry Pi OS en Raspberry Pi

Lo primero que debes hacer tras conseguir una Raspberry Pi es grabar una tarjeta micro-SD con Raspberry Pi OS, insertarla en el dispositivo e iniciar el sistema operativo. Sigue la documentación de primeros pasos de Raspberry Pi para preparar tu dispositivo para el primer uso.

Configura Ultralytics

Existen dos formas de configurar el paquete Ultralytics en Raspberry Pi para construir tu próximo proyecto de Computer Vision. Puedes utilizar cualquiera de ellas.

Empezar con Docker

La forma más rápida de empezar con Ultralytics YOLO26 en Raspberry Pi es ejecutarlo con una imagen Docker preconstruida para Raspberry Pi.

Ejecuta el siguiente comando para descargar el contenedor Docker y ejecutarlo en Raspberry Pi. Se basa en la imagen de docker arm64v8/debian que contiene Debian 12 (Bookworm) en un entorno Python3.

t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $t

Una vez hecho esto, salta a la sección usar NCNN en Raspberry Pi.

Empezar sin Docker

Instalar el paquete Ultralytics

Aquí instalaremos el paquete Ultralytics en Raspberry Pi con dependencias opcionales para que podamos exportar los modelos de PyTorch a otros formatos diferentes.

  1. Actualiza la lista de paquetes, instala pip y actualiza a la última versión

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Instala el paquete ultralytics de pip con dependencias opcionales

    pip install ultralytics[export]
  3. Reinicia el dispositivo

    sudo reboot

Usar NCNN en Raspberry Pi

De todos los formatos de exportación de modelos compatibles con Ultralytics, NCNN ofrece el mejor rendimiento de inferencia al trabajar con dispositivos Raspberry Pi porque NCNN está altamente optimizado para plataformas móviles/integradas (como la arquitectura ARM).

Convertir modelo a NCNN y ejecutar inferencia

El modelo YOLO26n en formato PyTorch se convierte a NCNN para ejecutar la inferencia con el modelo exportado.

Ejemplo
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("yolo26n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
Consejo

Para más detalles sobre las opciones de exportación compatibles, visita la página de documentación de Ultralytics sobre opciones de despliegue.

Mejoras de rendimiento de YOLO26 sobre YOLO11

YOLO26 está diseñado específicamente para ejecutarse en dispositivos con limitaciones de hardware como la Raspberry Pi 5. Comparado con YOLO11n, YOLO26n logra un aumento de ~15% en FPS (6.79 → 7.79) mientras que también ofrece un mAP más alto (40.1 frente a 39.5) con un tamaño de entrada de 640 con modelos exportados a ONNX en la Raspberry Pi 5. La tabla y el gráfico siguientes muestran esta comparación.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.14
Rendimiento
ModelomAP50-95(B)Tiempo de inferencia (ms/im)
YOLO26n40.1128.42
YOLO26s47.8352.84
YOLO26m52.5993.78
YOLO26l54.41259.46
YOLO26x56.92636.26

Evaluado con Ultralytics 8.4.14.

Benchmarks de YOLO26 en Raspberry Pi 5

Los benchmarks de YOLO26 fueron ejecutados por el equipo de Ultralytics en diez formatos de modelo diferentes midiendo la velocidad y precisión: PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. Los benchmarks se ejecutaron en una Raspberry Pi 5 en precisión FP32 con un tamaño de imagen de entrada predeterminado de 640.

Gráfico comparativo

Solo hemos incluido los benchmarks para los modelos YOLO26n y YOLO26s porque otros tamaños de modelo son demasiado grandes para ejecutarse en las Raspberry Pi y no ofrecen un rendimiento decente.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.1

Tabla comparativa detallada

La siguiente tabla representa los resultados de los benchmarks para dos modelos diferentes (YOLO26n, YOLO26s) en diez formatos diferentes (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch), ejecutándose en una Raspberry Pi 5, dándonos el estado, tamaño, métrica mAP50-95(B) y tiempo de inferencia para cada combinación.

Rendimiento
FormatoEstadoTamaño en disco (MB)mAP50-95(B)Tiempo de inferencia (ms/im)
PyTorch5.30.4798302.15
TorchScript9.80.4764357.58
ONNX9.50.4764130.33
OpenVINO9.60.481870.74
TF SavedModel24.60.4764213.58
TF GraphDef9.50.4764213.5
TF Lite9.90.4764251.41
MNN9.40.478490.89
NCNN9.40.480567.69
ExecuTorch9.40.4764148.36

Evaluado con Ultralytics 8.4.1

Nota

El tiempo de inferencia no incluye el pre/post-procesamiento.

Reproduce nuestros resultados

Para reproducir los benchmarks de Ultralytics anteriores en todos los formatos de exportación, ejecuta este código:

Ejemplo
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Benchmark YOLO26n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)

Ten en cuenta que los resultados de los benchmarks pueden variar según la configuración exacta del hardware y del software del sistema, así como de la carga de trabajo actual del sistema en el momento en que se ejecutan los benchmarks. Para obtener los resultados más fiables, utiliza un conjunto de datos con un gran número de imágenes, por ejemplo, data='coco.yaml' (5000 imágenes de validación).

Utiliza Raspberry Pi Camera

Al usar Raspberry Pi para proyectos de visión artificial, puede ser fundamental capturar transmisiones de vídeo en tiempo real para realizar inferencias. El conector MIPI CSI integrado en la Raspberry Pi te permite conectar módulos de cámara oficiales de Raspberry Pi. En esta guía, hemos utilizado un Raspberry Pi Camera Module 3 para capturar las transmisiones de vídeo y realizar la inferencia mediante modelos YOLO26.

Consejo
Nota

La Raspberry Pi 5 utiliza conectores CSI más pequeños que la Raspberry Pi 4 (15 pines frente a 22 pines), por lo que necesitarás un cable adaptador de 15 pines a 22 pines para conectarla a una cámara de Raspberry Pi.

Prueba la cámara

Ejecuta el siguiente comando después de conectar la cámara a la Raspberry Pi. Deberías ver una transmisión de vídeo en directo desde la cámara durante unos 5 segundos.

rpicam-hello
Consejo

Inferencia con cámara

Existen 2 métodos para usar la cámara de Raspberry Pi para ejecutar inferencias en modelos YOLO26.

Uso

Podemos usar picamera2, que viene preinstalado con Raspberry Pi OS, para acceder a la cámara y ejecutar inferencias en modelos YOLO26.

Ejemplo
import cv2
from picamera2 import Picamera2

from ultralytics import YOLO

# Initialize the Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

while True:
    # Capture frame-by-frame
    frame = picam2.capture_array()

    # Run YOLO26 inference on the frame
    results = model(frame)

    # Visualize the results on the frame
    annotated_frame = results[0].plot()

    # Display the resulting frame
    cv2.imshow("Camera", annotated_frame)

    # Break the loop if 'q' is pressed
    if cv2.waitKey(1) == ord("q"):
        break

# Release resources and close windows
cv2.destroyAllWindows()
Consejo

Consulta nuestro documento sobre Fuentes de inferencia si deseas cambiar el tipo de entrada de imagen o vídeo.

Mejores prácticas al usar Raspberry Pi

Existen un par de mejores prácticas que debes seguir para obtener el máximo rendimiento en Raspberry Pis que ejecutan YOLO26.

  1. Usa un SSD

    Al utilizar una Raspberry Pi para un uso continuo 24/7, se recomienda usar un SSD para el sistema, ya que una tarjeta SD no podrá soportar escrituras continuas y podría dañarse. Con el conector PCIe integrado en la Raspberry Pi 5, ahora puedes conectar SSDs mediante un adaptador como la NVMe Base para Raspberry Pi 5.

  2. Instala sin interfaz gráfica

    Al instalar Raspberry Pi OS, puedes optar por no instalar el entorno de escritorio (Raspberry Pi OS Lite), lo cual puede ahorrar un poco de memoria RAM en el dispositivo, dejando más espacio para el procesamiento de visión artificial.

  3. Haz overclock a la Raspberry Pi

    Si quieres un pequeño aumento en el rendimiento mientras ejecutas modelos Ultralytics YOLO26 en una Raspberry Pi 5, puedes hacer overclock a la CPU desde su frecuencia base de 2.4GHz a 2.9GHz y a la GPU desde 800MHz a 1GHz. Si el sistema se vuelve inestable o se bloquea, reduce los valores de overclock en incrementos de 100MHz. Asegúrate de que haya una refrigeración adecuada, ya que el overclocking aumenta la generación de calor y puede provocar estrangulamiento térmico.

    a. Actualiza el software

    sudo apt update && sudo apt dist-upgrade

    b. Abre el archivo de configuración para editarlo

    sudo nano /boot/firmware/config.txt

    c. Añade las siguientes líneas al final

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1

    d. Guarda y sal pulsando CTRL + X, luego Y, y pulsa ENTER

    e. Reinicia la Raspberry Pi

Siguientes pasos

Has configurado correctamente YOLO en tu Raspberry Pi. Para obtener más información y soporte, visita la Documentación de Ultralytics YOLO26 y Kashmir World Foundation.

Agradecimientos y citas

Esta guía fue creada inicialmente por Daan Eeltink para Kashmir World Foundation, una organización dedicada al uso de YOLO para la conservación de especies en peligro de extinción. Reconocemos su trabajo pionero y enfoque educativo en el ámbito de las tecnologías de detección de objetos.

Para más información sobre las actividades de Kashmir World Foundation, puedes visitar su sitio web.

Preguntas frecuentes

¿Cómo configuro Ultralytics YOLO26 en una Raspberry Pi sin usar Docker?

Para configurar Ultralytics YOLO26 en una Raspberry Pi sin Docker, sigue estos pasos:

  1. Actualiza la lista de paquetes e instala pip:
    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Instala el paquete Ultralytics con dependencias opcionales:
    pip install ultralytics[export]
  3. Reinicia el dispositivo para aplicar los cambios:
    sudo reboot

Para obtener instrucciones detalladas, consulta la sección Inicio sin Docker.

¿Por qué debería usar el formato NCNN de Ultralytics YOLO26 en Raspberry Pi para tareas de IA?

El formato NCNN de Ultralytics YOLO26 está altamente optimizado para plataformas móviles y embebidas, lo que lo hace ideal para ejecutar tareas de IA en dispositivos Raspberry Pi. NCNN maximiza el rendimiento de la inferencia aprovechando la arquitectura ARM, proporcionando un procesamiento más rápido y eficiente en comparación con otros formatos. Para más detalles sobre las opciones de exportación compatibles, visita la página de documentación de Ultralytics sobre opciones de despliegue.

¿Cómo puedo convertir un modelo YOLO26 al formato NCNN para usarlo en Raspberry Pi?

Puedes convertir un modelo PyTorch YOLO26 al formato NCNN usando Python o comandos de la CLI:

Ejemplo
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("yolo26n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")

Para más detalles, consulta la sección Uso de NCNN en Raspberry Pi.

¿Cuáles son las diferencias de hardware entre Raspberry Pi 4 y Raspberry Pi 5 relevantes para ejecutar YOLO26?

Las diferencias clave incluyen:

  • CPU: Raspberry Pi 4 usa Broadcom BCM2711, SoC Cortex-A72 de 64 bits, mientras que Raspberry Pi 5 usa Broadcom BCM2712, SoC Cortex-A76 de 64 bits.
  • Frecuencia máxima de CPU: Raspberry Pi 4 tiene una frecuencia máxima de 1.8GHz, mientras que Raspberry Pi 5 alcanza los 2.4GHz.
  • Memoria: Raspberry Pi 4 ofrece hasta 8GB de SDRAM LPDDR4-3200, mientras que Raspberry Pi 5 cuenta con SDRAM LPDDR4X-4267, disponible en variantes de 4GB y 8GB.

Estas mejoras contribuyen a obtener mejores benchmarks de rendimiento para los modelos YOLO26 en Raspberry Pi 5 en comparación con Raspberry Pi 4. Consulta la tabla Comparación de series de Raspberry Pi para más detalles.

¿Cómo puedo configurar un módulo de cámara de Raspberry Pi para que funcione con Ultralytics YOLO26?

Existen dos métodos para configurar una cámara de Raspberry Pi para inferencia YOLO26:

  1. Usando picamera2:

    import cv2
    from picamera2 import Picamera2
    
    from ultralytics import YOLO
    
    picam2 = Picamera2()
    picam2.preview_configuration.main.size = (1280, 720)
    picam2.preview_configuration.main.format = "RGB888"
    picam2.preview_configuration.align()
    picam2.configure("preview")
    picam2.start()
    
    model = YOLO("yolo26n.pt")
    
    while True:
        frame = picam2.capture_array()
        results = model(frame)
        annotated_frame = results[0].plot()
        cv2.imshow("Camera", annotated_frame)
    
        if cv2.waitKey(1) == ord("q"):
            break
    
    cv2.destroyAllWindows()
  2. Usando una transmisión TCP:

    rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model("tcp://127.0.0.1:8888")

Para obtener instrucciones de configuración detalladas, visita la sección Inferencia con cámara.

Comentarios