CV / YOLO11

YOLO11

reComputer R Series (CM5 + Hailo-10H)

Modèle YOLO11 nano léger pour un déploiement rapide sur l'edge.

67 téléchargements
Taille
~5MB
Mémoire
1GB+
Précision
FP16

Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.

Aperçu

Pour commencer

Déployer
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.mp4

Détails du modèle

reComputer CM5 + Hailo-10H

YOLOv11 sur reComputer CM5 + Hailo-10H

YOLOv11 (variantes n/s/m/l/x) effectue la détection d'objets COCO à 80 classes sur le Hailo-10H via HailoRT 5.1.1. Le NMS s'exécute sur puce (HPP), l'application analyse donc directement le tenseur post-NMS 80x5x100.

Informations sur le modèle

VarianteEntréeParamètresOpérationsHEF Hailo-10H
YOLOv11n640x640x32.6M6.55G5.3 MB
YOLOv11s640x640x39.4M21.5G16.3 MB
YOLOv11m640x640x320.1M68.0G27.0 MB
YOLOv11l640x640x325.3M86.9G27.9 MB
YOLOv11x640x640x356.9M194G54.2 MB
PropriétéValeur
TâcheDétection d'objets
SortieTenseur NMS sur puce 80x5x100 (lignes : ymin,xmin,ymax,xmax,score, normalisé)
Classes80 (COCO, ordre d'index du Model Zoo)
HEFHailo Model Zoo v5.4.0, Hailo-10H

Configuration matérielle et hôte

ÉlémentValeur
CartereComputer série R avec Raspberry Pi CM5
AccélérateurHailo-10H via PCIe, exposé comme /dev/hailo0
Pilote hôtepaquet apt hailo-h10-all
ExécutionHailoRT 5.1.1
Python dans le conteneur3.13, aarch64
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

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

Exécuter avec la vidéo de démonstration

Étape A : Récupérer les images

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:latest

Étape B : Lancer le conteneur

Sélectionnez la commande correspondant à la variante du modèle.

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.mp4

YOLOv11s

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.mp4

YOLOv11m

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.mp4

YOLOv11l

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.mp4

YOLOv11x

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.mp4

Ouvrez http://<Board_IP>:8000 pour voir l'aperçu web.

API REST

bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov11n/predict"   -F "file=@test.jpg"

Notes d'implémentation

  • NMS sur puce (HPP, meta_arch=yolov8 hérité de la configuration yolov11n) ; l'application analyse le tenseur post-NMS 80x5x100 — lignes [ymin, xmin, ymax, xmax, score], normalisées par rapport à l'entrée 640x640.
  • Prétraitement : letterbox (gris 114) + RGB, uint8 brut (normalisation 0/255).
  • L'exécuteur est le wrapper HailoRT 5.1.1 multi-sorties FLOAT32 ; la première inférence affiche la plage de sortie conformément à la liste de contrôle d'acceptation du SOP.

Notes de développement

  • Modules sources : src/hailo10h_yolov11{n,s,m,l,x}/
  • Dockerfiles : docker/hailo10h/yolov11{n,s,m,l,x}.dockerfile
  • Conteneurs : ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11{n,s,m,l,x}:latest
  • HEF : versions hailo10h du Hailo Model Zoo v5.4.0. Chaque variante possède son propre endpoint de prédiction :
VarianteEndpoint
YOLOv11nPOST /api/models/yolov11n/predict
YOLOv11sPOST /api/models/yolov11s/predict
YOLOv11mPOST /api/models/yolov11m/predict
YOLOv11lPOST /api/models/yolov11l/predict
YOLOv11xPOST /api/models/yolov11x/predict

Exemple :