CV / YOLO11
YOLO11-seg
reComputer R Series (CM5 + Hailo-8)
Modèles de segmentation YOLO11 (n/s/m/l/x-seg) pour reComputer série R avec Hailo-8.
Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.
Pour commencer
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.mp4Détails du modèle
YOLO11-seg sur reComputer R Series (CM5 + Hailo-8)
YOLO11n/s/m/l/x-seg s'exécutent sur Hailo-8 via HailoRT 4.23. Le HEF expose dix
têtes brutes ; l'hôte décode les boîtes DFL, les scores de classe et les
coefficients de masque, assemble les masques d'instance sigmoid(coeffs @ proto)
et les rend pour les 80 classes COCO.
Informations sur le modèle
| Variante | Entrée | HEF empaqueté | Image de conteneur |
|---|---|---|---|
| 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 |
Matériel et configuration de l'hôte
| Élément | Valeur |
|---|---|
| Carte | reComputer R Series avec Raspberry Pi CM5 |
| Accélérateur | Hailo-8 via PCIe, exposé comme /dev/hailo0 |
| Runtime | HailoRT 4.23.x (l'hôte et le conteneur doivent partager majeur.mineur) |
| Python dans le conteneur | 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 dockerExécuter avec la vidéo de démonstration
Sélectionnez la commande correspondant à la variante du modèle.
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.mp4Ouvrez http://<Board_IP>:8000 pour voir l'aperçu web (masques d'instances
superposés par classe + boîtes de détection).
Mode caméra 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 0REST API
Chaque variante possède son propre endpoint :
| Variante | Endpoint |
|---|---|
| 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"Notes d'implémentation
- Le HEF expose 10 vstreams bruts et aucun NMS sur puce : par stride (20×20, 40×40, 80×80), une tête de boîte DFL à 64 canaux, une tête de classe à 80 canaux et une tête de coefficients de masque à 32 canaux, plus un prototype 160×160×32.
- L'hôte exécute l'espérance softmax DFL (16 bins), la sigmoïde sur les têtes de
classe brutes, le NMS par classe (100 détections dans l'aperçu) et l'assemblage
des masques
sigmoid(coeffs @ proto)recadrés sur chaque boîte (seuil 0.5). - Le padding letterbox est de 114 ; la normalisation moyenne 0 / écart-type 255 est compilée dans le HEF. Les boîtes et les masques sont ramenés au cadre d'origine avant le dessin.
- La taille d'entrée du HEF est lue au démarrage (640×640). Le décodage CPU est le goulot d'étranglement de l'aperçu sur les variantes les plus grandes.
Notes de développement
- Sources :
src/rpi5_hailo8_yolov11{n,s,m,l,x}_seg/ - Dockerfiles :
docker/hailo8/yolov11{n,s,m,l,x}_seg.dockerfile - Conteneurs :
ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov11{n,s,m,l,x}_seg:latest - HEF : Hailo Model Zoo v2.20.0 (
hailo8), tailles et SHA256 consignés dans lemodel/README.mdde chaque module - Famille : YOLO11-seg (Ultralytics, AGPL-3.0)
Entrées et sorties
Entrée : image, vidéo ou flux caméra USB. Sortie : boîtes de classes COCO avec masques d’instance et aperçu MJPEG annoté.