Saltar al contenido

Gu铆a de inicio r谩pido: Raspberry Pi y C谩mara Pi con YOLOv5 y YOLOv8

Esta completa gu铆a pretende agilizar tu viaje con YOLO modelos de detecci贸n de objetos en una Raspberry Pi utilizando una C谩mara Pi. Tanto si eres estudiante, aficionado o profesional, esta gu铆a est谩 dise帽ada para que te pongas manos a la obra en menos de 30 minutos. Las instrucciones aqu铆 contenidas est谩n rigurosamente probadas para minimizar los problemas de configuraci贸n, permiti茅ndote centrarte en la utilizaci贸n de YOLO para tus proyectos espec铆ficos.



Observa: Actualizaciones y mejoras de la Raspberry Pi 5.

Requisitos previos

  • Raspberry Pi 3, 4 贸 5
  • C谩mara Pi
  • Sistema operativo Raspberry Pi de 64 bits

Conecta la C谩mara Pi a tu Raspberry Pi mediante un cable CSI e instala el Sistema Operativo Raspberry Pi de 64 bits. Verifica tu c谩mara con el siguiente comando:

libcamera-hello

Deber铆as ver un v铆deo de tu c谩mara.

Elige tu versi贸n de YOLO : YOLOv5 o YOLOv8

Esta gu铆a te ofrece la flexibilidad de empezar con cualquiera de los dos YOLOv5 o YOLOv8. Ambas versiones tienen sus ventajas y casos de uso 煤nicos. La elecci贸n es tuya, pero recuerda que el objetivo de la gu铆a no es s贸lo una configuraci贸n r谩pida, sino tambi茅n una base s贸lida para tu futuro trabajo en la detecci贸n de objetos.

Especificaciones del hardware: De un vistazo

Para ayudarte a tomar una decisi贸n informada sobre el hardware, hemos resumido en la siguiente tabla las principales caracter铆sticas de hardware de las Raspberry Pi 3, 4 y 5:

Funci贸n Raspberry Pi 3 Raspberry Pi 4 Raspberry Pi 5
CPU ARM Cortex-A53 de cuatro n煤cleos a 1,2 GHz ARM Cortex-A72 de 64 bits y cuatro n煤cleos a 1,5 GHz Arm Cortex-A76 de 64 bits y cuatro n煤cleos a 2,4 GHz
RAM 1 GB LPDDR2 2 GB, 4 GB u 8 GB LPDDR4 Detalles a煤n no disponibles
Puertos USB 4 x USB 2.0 2 x USB 2.0, 2 x USB 3.0 2 x USB 3.0, 2 x USB 2.0
Red Ethernet y Wi-Fi 802.11n Gigabit Ethernet y Wi-Fi 802.11ac Gigabit Ethernet con soporte PoE+, Wi-Fi庐 802.11ac de doble banda
Rendimiento M谩s lento, puede requerir modelos m谩s ligeros YOLO M谩s r谩pido, puede ejecutar modelos complejos YOLO Detalles a煤n no disponibles
Requisitos de potencia Fuente de alimentaci贸n de 2,5 A Fuente de alimentaci贸n USB-C de 3,0 A Detalles a煤n no disponibles
Documentaci贸n oficial Enlace Enlace Enlace

Aseg煤rate de seguir las instrucciones espec铆ficas de tu modelo de Raspberry Pi para garantizar un proceso de configuraci贸n sin problemas.

Inicio r谩pido con YOLOv5

Esta secci贸n describe c贸mo configurar YOLOv5 en una Raspberry Pi con una c谩mara Pi. Estos pasos est谩n dise帽ados para ser compatibles con la pila de c谩maras libcamera introducida en Raspberry Pi OS Bullseye.

Instala los paquetes necesarios

  1. Actualiza la Raspberry Pi:

    sudo apt-get update
    sudo apt-get upgrade -y
    sudo apt-get autoremove -y
    
  2. Clona el repositorio YOLOv5 :

    cd ~
    git clone https://github.com/Ultralytics/yolov5.git
    
  3. Instala las dependencias necesarias:

    cd ~/yolov5
    pip3 install -r requirements.txt
    
  4. Para Raspberry Pi 3, instala versiones compatibles de PyTorch y Torchvision (omite para Raspberry Pi 4):

    pip3 uninstall torch torchvision
    pip3 install torch==1.11.0 torchvision==0.12.0
    

Modifica detect.py

Para habilitar los flujos TCP a trav茅s de SSH o de CLI, se necesitan peque帽as modificaciones en detect.py.

  1. Abre detect.py:

    sudo nano ~/yolov5/detect.py
    
  2. Busca y modifica el is_url para aceptar flujos TCP:

    is_url = source.lower().startswith(('rtsp://', 'rtmp://', 'http://', 'https://', 'tcp://'))
    
  3. Comenta view_img l铆nea:

    # view_img = check_imshow(warn=True)
    
  4. Guarda y sal:

    CTRL + O -> ENTER -> CTRL + X
    

Iniciar flujo TCP con Libcamera

  1. Inicia el flujo TCP:

    libcamera-vid -n -t 0 --width 1280 --height 960 --framerate 1 --inline --listen -o tcp://127.0.0.1:8888
    

Mant茅n esta sesi贸n de terminal en funcionamiento para los siguientes pasos.

Realiza YOLOv5 Inferencia

  1. Ejecuta la detecci贸n YOLOv5 :

    cd ~/yolov5
    python3 detect.py --source=tcp://127.0.0.1:8888
    

Inicio r谩pido con YOLOv8

Sigue esta secci贸n si est谩s interesado en configurar YOLOv8 en su lugar. Los pasos son bastante similares, pero est谩n adaptados a las necesidades espec铆ficas de YOLOv8.

Instala los paquetes necesarios

  1. Actualiza la Raspberry Pi:

    sudo apt-get update
    sudo apt-get upgrade -y
    sudo apt-get autoremove -y
    
  2. Instala el ultralytics Python paquete:

    pip3 install ultralytics
    
  3. Reinicia:

    sudo reboot
    

Iniciar flujo TCP con Libcamera

  1. Inicia el flujo TCP:

    libcamera-vid -n -t 0 --width 1280 --height 960 --framerate 1 --inline --listen -o tcp://127.0.0.1:8888
    

Realiza YOLOv8 Inferencia

Para realizar la inferencia con YOLOv8, puedes utilizar el siguiente fragmento de c贸digo Python :

from ultralytics import YOLO

model = YOLO('yolov8n.pt')
results = model('tcp://127.0.0.1:8888', stream=True)

while True:
    for result in results:
        boxes = result.boxes
        probs = result.probs

Pr贸ximos pasos

隆Enhorabuena por haber configurado con 茅xito YOLO en tu Raspberry Pi! Para m谩s informaci贸n y ayuda, visita Ultralytics y la Fundaci贸n Mundial Cachemira.

Agradecimientos y citas

Esta gu铆a fue creada inicialmente por Daan Eeltink para la Fundaci贸n Mundial Cachemira, una organizaci贸n dedicada al uso de YOLO para la conservaci贸n de especies en peligro de extinci贸n. Reconocemos su labor pionera y su enfoque educativo en el 谩mbito de las tecnolog铆as de detecci贸n de objetos.

Para m谩s informaci贸n sobre las actividades de la Fundaci贸n Mundial Cachemira, puedes visitar su sitio web.



Creado 2023-11-12, Actualizado 2024-02-03
Autores: glenn-jocher (2)

Comentarios