CV / YOLOv5

YOLOv5-seg

Modelos de segmentación de instancias YOLOv5-seg para reComputer RK3588/RK3576 (RKNN) y reComputer R Series con Hailo-8 o Hailo-10H.

468 descargas
Tamaño
~5.4MB
Memoria
1GB+
Precisión
INT8 / Hailo HEF

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 rk3588-yolov5n-seg \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  -e RKNN_LOG_LEVEL=0 \
  --device /dev/video0:/dev/video0 \
  --device /dev/dri/renderD128:/dev/dri/renderD128 \
  -v /proc/device-tree/compatible:/proc/device-tree/compatible \
  ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov5_seg:latest \
  python3 web_detection.py --model_path model/yolov5n_seg.rknn --video video/test.mp4

Detalles del modelo

reComputer R Series (CM5 + Hailo-8)

YOLOv5-seg en reComputer R Series (CM5 + Hailo-8)

YOLOv5-seg (segmentación de instancias basada en anchors) detecta 80 clases COCO y genera una máscara de píxeles por instancia. El HEF expone tres cabezas de detección sin procesar más un tensor de prototipos de máscara; la aplicación decodifica los anchors en la CPU, aplica NMS por clase y ensambla las máscaras a partir del tensor de prototipos.

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

Información del modelo

VarianteParámetrosmAP de hardwareTamaño HEF
YOLOv5n-seg1.99M22.94.7 MB
YOLOv5s-seg7.61M30.78.7 MB
YOLOv5m-seg32.60M36.628.1 MB

Propiedades comunes:

PropiedadValor
ArquitecturaYOLOv5-seg (3 anchors, strides 8/16/32)
Entrada640x640x3 RGB (normalize_in_net, mean 0 / std 255)
Salidaproto (160x160x32) + 3 cabezas de detección (351 canales cada una)
Relleno letterbox114 (gris, convención YOLO)
HEFHailo Model Zoo v2.19.0, Hailo-8

Los valores de precisión son referencias de Hailo Model Zoo, no mediciones realizadas en CM5.

Configuración de 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

Descargar la imagen

La imagen está publicada en GHCR. Descárgala antes de iniciar el contenedor:

bash
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5n_seg:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5s_seg:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5m_seg:latest

Ejecutar con el vídeo de demostración

YOLOv5n-seg:

bash
sudo docker run --rm \
  --name cm5-hailo8-yolov5n-seg \
  --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/yolov5n_seg:latest \
  python web_detection.py --model_path model/yolov5n_seg.hef --video_path video/test.mp4

YOLOv5s-seg / YOLOv5m-seg usan el mismo comando; sustituye yolov5n_seg por yolov5s_seg o yolov5m_seg.

Abre http://<Board_IP>:8000 para ver la vista previa web con máscaras de instancia.

Modo cámara USB

Añade --device /dev/video0:/dev/video0 y sustituye --video_path video/test.mp4 por --camera_id 0.

API REST

bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov5n_seg/predict" \
  -F "file=@test.jpg"
Punto de accesoMétodoPropósito
/api/models/yolov5n_seg/predictPOSTCajas + máscaras de instancia (JSON)
/api/video_feedGETFlujo de vista previa MJPEG

Detalles de implementación

  • La decodificación sigue el posprocesado yolov5_seg de Hailo Model Zoo: decodificación de anchors (xy = (sigmoid(xy) * 2 + grid - 0.5) * stride, wh = (sigmoid(wh) * 2) ** 2 * anchor_grid) → objectness × puntuación de clase → NMS por clase → sigmoid(coeffs @ proto) escalado a la entrada y recortado a cada caja.
  • Las tres cabezas de detección se identifican por sus 351 canales y se ordenan por tamaño espacial (stride 32 → 16 → 8); la cabeza proto es el tensor 160x160x32. La primera inferencia imprime el nombre y la forma de cada vstream para poder verificar la asignación en el hardware.
  • El ejecutor usa la API VStreams de HailoRT 4.23 y un HEF específico para Hailo-8.
  • Módulo fuente: src/rpi5_hailo8_yolov5n_seg/ (también ..._s_seg/, ..._m_seg/)
  • Dockerfile: docker/hailo8/yolov5n_seg.dockerfile