CV / Tiny Yolo

Tiny-YOLOv4

reComputer R Series (CM5 + Hailo-8)

Detección de objetos de 80 clases COCO con Tiny-YOLOv4 (decodificación YOLOv3 en CPU) en reComputer R Series con Hailo-8.

17 descargas
Tamaño
7.3 MB
Memoria
4GB+
Precisión
Hailo HEF / HailoRT 4.23.x

Elige el dispositivo que estás usando. La guía de configuración y la documentación se actualizarán en consecuencia.

Primeros pasos

Desplegar
sudo docker run --rm \
  --name cm5-hailo8-tiny-yolov4 \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/tiny_yolov4:latest \
  python web_detection.py --model_path model/tiny_yolov4.hef --video_path video/test.mp4

API REST

Usa la API REST para ejecutar inferencia. Copia los comandos siguientes.

Curl
curl -X POST "http://<Board_IP>:8000/api/models/tiny_yolov4/predict" \
  -F "file=@test.jpg"
Python
import requests

response = requests.post(
    "http://<Board_IP>:8000/api/models/tiny_yolov4/predict",
    files={"file": open("test.jpg", "rb")},
    timeout=30,
)
print(response.json())

Detalles del modelo

Tiny-YOLOv4 en reComputer R Series (CM5 + Hailo-8)

Tiny-YOLOv4 detecta las 80 clases COCO en Hailo-8. Tiene las mismas entradas/salidas que Tiny-YOLOv3, pero con red troncal YOLOv4-tiny (más ligera y precisa). No hay NMS en chip: las cabezas YOLOv3 sin procesar se decodifican en CPU.

Esta página está dirigida a reComputer R Series (CM5 + Hailo-8) con un acelerador Hailo-8 PCIe.

Información del modelo

PropiedadValor
ArquitecturaYOLOv4-tiny (base/yolo.yaml)
TareaDetección de objetos
Entrada416x416x3 RGB (normalize_in_net std=255)
Salida2 cabezas sin procesar: 13x13x255 (paso 32) + 26x26x255 (paso 16)
Clases80 (COCO, índices desde 0)
Parámetros6.05M
Operaciones6.92G
PosprocesamientoDecodificación YOLOv3 en CPU (SIN NMS en chip)
HEFHailo Model Zoo v2.19.0, Hailo-8

Configuración del hardware y del host

bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0

Ejecutar con vídeo de demostración

bash
sudo docker run --rm \
  --name cm5-hailo8-tiny-yolov4 \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/tiny_yolov4:latest \
  python web_detection.py --model_path model/tiny_yolov4.hef --video_path video/test.mp4

Abra http://<Board_IP>:8000 para ver la vista previa web.

Modo de cámara USB

bash
sudo docker run --rm \
  --name cm5-hailo8-tiny-yolov4 \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  --device /dev/video0:/dev/video0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/tiny_yolov4:latest \
  python web_detection.py --model_path model/tiny_yolov4.hef --camera_id 0

API REST

text
POST http://<Board_IP>:8000/api/models/tiny_yolov4/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/tiny_yolov4/predict" \
  -F "file=@test.jpg"
Punto de accesoMétodoFinalidad
/GETInterfaz de vista previa web
/api/models/tiny_yolov4/predictPOSTDetecciones (JSON)
/api/video_feedGETFlujo de vista previa MJPEG

Notas de implementación

  • Mismas entradas/salidas y posprocesamiento que Tiny-YOLOv3 (misma base/yolo.yaml, anclas y decodificación YOLOv3 en CPU); solo cambia la red troncal (YOLOv4-tiny).
  • Sin NMS en chip: cabezas YOLOv3 sin procesar, decodificación en CPU (sigmoid + anclas + NMS).
  • normalize_in_net std=255 (÷255) + padding_color=114 (gris). Proporciona RGB uint8 sin procesar tras el letterbox.

Notas de desarrollo

  • Módulo fuente: src/rpi5_hailo8_tiny_yolov4/
  • Dockerfile: docker/hailo8/tiny_yolov4.dockerfile
  • Contenedor: ghcr.io/seeed-projects/recomputer-hailo8-cv/tiny_yolov4:latest
  • Familia: yolo (variantes tiny_yolov3 / tiny_yolov4); esta es la compilación v4.

Entradas y salidas

Input: image, video, or USB camera frame. Output: COCO 80-class detection boxes with confidences, plus an annotated MJPEG preview.