CV / YOLO11

YOLO11-seg

reComputer R Series (CM5 + Hailo-8)

Modelos de segmentación YOLO11 (n/s/m/l/x-seg) para reComputer R Series con Hailo-8.

10 descargas
Tamaño
7.9 MB
Memoria
4GB+
Precisión
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 pi5-hailo8-yolov11n-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/yolov11n_seg:latest \
  python web_detection.py --model_path model/yolov11n_seg.hef --video_path video/test.mp4

Detalles del modelo

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

YOLO11n/s/m/l/x-seg se ejecutan en Hailo-8 mediante HailoRT 4.23. El HEF expone diez cabezas sin procesar; el host decodifica las cajas DFL, las puntuaciones de clase y los coeficientes de máscara, ensambla las máscaras de instancia sigmoid(coeffs @ proto) y las dibuja para las 80 clases COCO.

Información del modelo

VarianteEntradaHEF empaquetadoImagen de contenedor
YOLO11n-seg640×640×3 RGB7.9 MByolov11n_seg
YOLO11s-seg640×640×3 RGB19.7 MByolov11s_seg
YOLO11m-seg640×640×3 RGB39.6 MByolov11m_seg
YOLO11l-seg640×640×3 RGB40.6 MByolov11l_seg
YOLO11x-seg640×640×3 RGB68.0 MByolov11x_seg

Configuración del hardware y del host

ElementoValor
PlacareComputer R Series con Raspberry Pi CM5
AceleradorHailo-8 por PCIe, expuesto como /dev/hailo0
Entorno de ejecuciónHailoRT 4.23.x (el host y el contenedor deben compartir major.minor)
Python en el contenedor3.11, aarch64
bash
sudo apt update
sudo apt install hailo-all -y
sudo reboot

# After reboot
hailortcli fw-control identify
ls /dev/hailo0

# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
sudo systemctl enable docker
sudo systemctl start docker

Ejecutar con vídeo de demostración

Seleccione el comando correspondiente a la variante del modelo.

YOLO11n-seg

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

YOLO11s-seg

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

YOLO11m-seg

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

YOLO11l-seg

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

YOLO11x-seg

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

Abra http://<Board_IP>:8000 para ver la vista previa web (máscaras de instancia superpuestas por clase, además de las cajas de detección).

Modo cámara USB

bash
sudo docker run --rm \
  --name pi5-hailo8-yolov11n-seg \
  --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/yolov11n_seg:latest \
  python web_detection.py --model_path model/yolov11n_seg.hef --camera_id 0

API REST

Cada variante tiene su propio punto de acceso:

VariantePunto de acceso
YOLO11n-segPOST /api/models/yolov11n_seg/predict
YOLO11s-segPOST /api/models/yolov11s_seg/predict
YOLO11m-segPOST /api/models/yolov11m_seg/predict
YOLO11l-segPOST /api/models/yolov11l_seg/predict
YOLO11x-segPOST /api/models/yolov11x_seg/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov11n_seg/predict" \
  -F "file=@test.jpg"

Notas de implementación

  • El HEF expone 10 vstreams sin procesar y no dispone de NMS en el chip: por cada stride (20×20, 40×40, 80×80) hay una cabeza DFL de cajas de 64 canales, una cabeza de clases de 80 canales y una cabeza de coeficientes de máscara de 32 canales, además de un prototipo de 160×160×32.
  • El host ejecuta la expectativa softmax del DFL (16 bins), sigmoid sobre las cabezas de clase sin procesar, NMS por clase (100 detecciones en la vista previa) y el ensamblado de máscaras sigmoid(coeffs @ proto) recortado a cada caja (umbral 0.5).
  • El relleno letterbox es 114; la normalización media 0 / std 255 está compilada en el HEF. Las cajas y las máscaras se reasignan al fotograma antes de dibujarlas.
  • El tamaño de entrada del HEF se lee al inicio (640×640). La decodificación en CPU es el cuello de botella de la vista previa en las variantes más grandes.

Notas de desarrollo

  • Fuentes: src/rpi5_hailo8_yolov11{n,s,m,l,x}_seg/
  • Dockerfiles: docker/hailo8/yolov11{n,s,m,l,x}_seg.dockerfile
  • Contenedores: ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov11{n,s,m,l,x}_seg:latest
  • HEFs: Hailo Model Zoo v2.20.0 (hailo8); los tamaños y el SHA256 se registran en el model/README.md de cada módulo
  • Familia: YOLO11-seg (Ultralytics, AGPL-3.0)

Entradas y salidas

Entrada: imagen, vídeo o fotograma de cámara USB. Salida: cajas de clases COCO con máscaras de instancia y vista previa MJPEG anotada.