CV / YOLO11
YOLO11
reComputer R Series (CM5 + Hailo-10H)
Modelo ligero YOLO11 nano para despliegue rápido en el borde.
67 descargas
Tamaño
~5MBMemoria
1GB+Precisión
FP16Elige el dispositivo que estás usando. La guía de configuración y la documentación se actualizarán en consecuencia.
Vista previa
Primeros pasos
Desplegar
sudo docker run --rm \
--name cm5-hailo10h-yolo11n \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11n:latest \
python web_detection.py --model_path model/yolov11n.hef --video_path video/test.mp4Detalles del modelo
reComputer CM5 + Hailo-10HYOLOv11 en reComputer CM5 + Hailo-10H
YOLOv11 (variantes n/s/m/l/x) realiza detección de objetos COCO de 80 clases en el Hailo-10H mediante HailoRT 5.1.1. El NMS se ejecuta en el chip (HPP), por lo que la aplicación procesa directamente el tensor post-NMS de 80x5x100.
Información del modelo
| Variante | Entrada | Parámetros | Operaciones | HEF de Hailo-10H |
|---|---|---|---|---|
| YOLOv11n | 640x640x3 | 2.6M | 6.55G | 5.3 MB |
| YOLOv11s | 640x640x3 | 9.4M | 21.5G | 16.3 MB |
| YOLOv11m | 640x640x3 | 20.1M | 68.0G | 27.0 MB |
| YOLOv11l | 640x640x3 | 25.3M | 86.9G | 27.9 MB |
| YOLOv11x | 640x640x3 | 56.9M | 194G | 54.2 MB |
| Propiedad | Valor |
|---|---|
| Tarea | Detección de objetos |
| Salida | Tensor de NMS en chip 80x5x100 (filas: ymin,xmin,ymax,xmax,score, normalizado) |
| Clases | 80 (COCO, orden de índice del Model Zoo) |
| HEF | Hailo Model Zoo v5.4.0, Hailo-10H |
Configuración de hardware y host
| Elemento | Valor |
|---|---|
| Placa | reComputer R Series con Raspberry Pi CM5 |
| Acelerador | Hailo-10H por PCIe, expuesto como /dev/hailo0 |
| Controlador del host | paquete apt hailo-h10-all |
| Tiempo de ejecución | HailoRT 5.1.1 |
| Python en el contenedor | 3.13, aarch64 |
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot
# After reboot
hailortcli fw-control identify
ls /dev/hailo0Ejecutar con el vídeo de demostración
Paso A: Descargar las imágenes
bash
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11n:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11s:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11m:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11l:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11x:latestPaso B: Ejecutar el contenedor
Selecciona el comando que corresponda a la variante del modelo.
YOLOv11n
bash
sudo docker run --rm \
--name cm5-hailo10h-yolov11n \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11n:latest \
python web_detection.py --model_path model/yolov11n.hef --video_path video/test.mp4YOLOv11s
bash
sudo docker run --rm --name cm5-hailo10h-yolov11s --privileged --net=host -e PYTHONUNBUFFERED=1 --device /dev/hailo0:/dev/hailo0 -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11s:latest python web_detection.py --model_path model/yolov11s.hef --video_path video/test.mp4YOLOv11m
bash
sudo docker run --rm --name cm5-hailo10h-yolov11m --privileged --net=host -e PYTHONUNBUFFERED=1 --device /dev/hailo0:/dev/hailo0 -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11m:latest python web_detection.py --model_path model/yolov11m.hef --video_path video/test.mp4YOLOv11l
bash
sudo docker run --rm --name cm5-hailo10h-yolov11l --privileged --net=host -e PYTHONUNBUFFERED=1 --device /dev/hailo0:/dev/hailo0 -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11l:latest python web_detection.py --model_path model/yolov11l.hef --video_path video/test.mp4YOLOv11x
bash
sudo docker run --rm --name cm5-hailo10h-yolov11x --privileged --net=host -e PYTHONUNBUFFERED=1 --device /dev/hailo0:/dev/hailo0 -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11x:latest python web_detection.py --model_path model/yolov11x.hef --video_path video/test.mp4Abre http://<Board_IP>:8000 para ver la vista previa web.
API REST
Cada variante tiene su propio endpoint de predicción:
| Variante | Endpoint |
|---|---|
| YOLOv11n | POST /api/models/yolov11n/predict |
| YOLOv11s | POST /api/models/yolov11s/predict |
| YOLOv11m | POST /api/models/yolov11m/predict |
| YOLOv11l | POST /api/models/yolov11l/predict |
| YOLOv11x | POST /api/models/yolov11x/predict |
Ejemplo:
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov11n/predict" -F "file=@test.jpg"Notas de implementación
- NMS en chip (HPP,
meta_arch=yolov8heredado de la configuración de yolov11n); la aplicación procesa el tensor post-NMS de 80x5x100 — filas [ymin, xmin, ymax, xmax, score], normalizadas respecto a la entrada de 640x640. - Preprocesamiento: letterbox (gris 114) + RGB, uint8 sin procesar (normalización 0/255).
- El ejecutor es el wrapper de HailoRT 5.1.1 con salida múltiple FLOAT32; la primera inferencia imprime el rango de salida según la lista de verificación de aceptación del SOP.
Notas de desarrollo
- Módulos de origen:
src/hailo10h_yolov11{n,s,m,l,x}/ - Dockerfiles:
docker/hailo10h/yolov11{n,s,m,l,x}.dockerfile - Contenedores:
ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11{n,s,m,l,x}:latest - HEF: compilaciones hailo10h de Hailo Model Zoo v5.4.0.