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.
Elige el dispositivo que estás usando. La guía de configuración y la documentación se actualizarán en consecuencia.
Primeros pasos
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.mp4Detalles 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
| Variante | Entrada | HEF empaquetado | Imagen de contenedor |
|---|---|---|---|
| YOLO11n-seg | 640×640×3 RGB | 7.9 MB | yolov11n_seg |
| YOLO11s-seg | 640×640×3 RGB | 19.7 MB | yolov11s_seg |
| YOLO11m-seg | 640×640×3 RGB | 39.6 MB | yolov11m_seg |
| YOLO11l-seg | 640×640×3 RGB | 40.6 MB | yolov11l_seg |
| YOLO11x-seg | 640×640×3 RGB | 68.0 MB | yolov11x_seg |
Configuración del hardware y del host
| Elemento | Valor |
|---|---|
| Placa | reComputer R Series con Raspberry Pi CM5 |
| Acelerador | Hailo-8 por PCIe, expuesto como /dev/hailo0 |
| Entorno de ejecución | HailoRT 4.23.x (el host y el contenedor deben compartir major.minor) |
| Python en el contenedor | 3.11, aarch64 |
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 dockerEjecutar con vídeo de demostración
Seleccione el comando correspondiente a la variante del modelo.
YOLO11n-seg
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.mp4YOLO11s-seg
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.mp4YOLO11m-seg
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.mp4YOLO11l-seg
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.mp4YOLO11x-seg
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.mp4Abra 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
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 0API REST
Cada variante tiene su propio punto de acceso:
| Variante | Punto de acceso |
|---|---|
| YOLO11n-seg | POST /api/models/yolov11n_seg/predict |
| YOLO11s-seg | POST /api/models/yolov11s_seg/predict |
| YOLO11m-seg | POST /api/models/yolov11m_seg/predict |
| YOLO11l-seg | POST /api/models/yolov11l_seg/predict |
| YOLO11x-seg | POST /api/models/yolov11x_seg/predict |
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 elmodel/README.mdde 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.