CV / YOLO11

YOLO11

reComputer R Series (CM5 + Hailo-10H)

Leichtgewichtiges YOLO11 Nano-Modell für schnelle Edge-Bereitstellung.

433 Downloads
Größe
~5MB
Speicher
1GB+
Präzision
FP16

Wähle das Gerät, das du verwendest. Die Einrichtungsanleitung und Dokumentation werden entsprechend aktualisiert.

Vorschau

Erste Schritte

Bereitstellen
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

Modelldetails

reComputer CM5 + Hailo-10H

YOLOv11 auf reComputer CM5 + Hailo-10H

YOLOv11 (Varianten n/s/m/l/x) führt eine COCO-Objekterkennung mit 80 Klassen auf dem Hailo-10H über HailoRT 5.1.1 durch. Das NMS läuft on-chip (HPP), daher parst die Anwendung den NMS-Ausgabetensor 80x5x100 direkt.

Modellinformationen

VarianteEingabeParameterOperationenHailo-10H HEF
YOLOv11n640x640x32.6M6.55G5.3 MB
YOLOv11s640x640x39.4M21.5G16.3 MB
YOLOv11m640x640x320.1M68.0G27.0 MB
YOLOv11l640x640x325.3M86.9G27.9 MB
YOLOv11x640x640x356.9M194G54.2 MB
EigenschaftWert
AufgabeObjekterkennung
AusgabeOn-Chip-NMS-Tensor 80x5x100 (Zeilen: ymin,xmin,ymax,xmax,score, normalisiert)
Klassen80 (COCO, Indexreihenfolge des Model Zoo)
HEFHailo Model Zoo v5.4.0, Hailo-10H

Hardware- und Host-Setup

PunktWert
BoardreComputer R Series mit Raspberry Pi CM5
BeschleunigerHailo-10H über PCIe, als /dev/hailo0 verfügbar
Host-Treiberhailo-h10-all apt-Paket
LaufzeitHailoRT 5.1.1
Python im Container3.13, aarch64
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

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

Mit Demo-Video ausführen

Schritt A: Images laden

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

Schritt B: Container starten

Wähle den Befehl, der zur Modellvariante passt.

YOLOv11n

bash
sudo docker run --rm \n  --name cm5-hailo10h-yolov11n \n  --privileged \n  --net=host \n  -e PYTHONUNBUFFERED=1 \n  --device /dev/hailo0:/dev/hailo0 \n  -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \n  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \n  ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11n:latest \n  python web_detection.py --model_path model/yolov11n.hef --video_path video/test.mp4

YOLOv11s

bash
sudo docker run --rm \n  --name cm5-hailo10h-yolov11s \n  --privileged \n  --net=host \n  -e PYTHONUNBUFFERED=1 \n  --device /dev/hailo0:/dev/hailo0 \n  -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \n  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \n  ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11s:latest \n  python web_detection.py --model_path model/yolov11s.hef --video_path video/test.mp4

YOLOv11m

bash
sudo docker run --rm \n  --name cm5-hailo10h-yolov11m \n  --privileged \n  --net=host \n  -e PYTHONUNBUFFERED=1 \n  --device /dev/hailo0:/dev/hailo0 \n  -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \n  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \n  ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11m:latest \n  python web_detection.py --model_path model/yolov11m.hef --video_path video/test.mp4

YOLOv11l

bash
sudo docker run --rm \n  --name cm5-hailo10h-yolov11l \n  --privileged \n  --net=host \n  -e PYTHONUNBUFFERED=1 \n  --device /dev/hailo0:/dev/hailo0 \n  -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \n  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \n  ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11l:latest \n  python web_detection.py --model_path model/yolov11l.hef --video_path video/test.mp4

YOLOv11x

bash
sudo docker run --rm \n  --name cm5-hailo10h-yolov11x \n  --privileged \n  --net=host \n  -e PYTHONUNBUFFERED=1 \n  --device /dev/hailo0:/dev/hailo0 \n  -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \n  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \n  ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11x:latest \n  python web_detection.py --model_path model/yolov11x.hef --video_path video/test.mp4

Öffne http://<Board_IP>:8000 für die Web-Vorschau.

REST API

Jede Variante hat ihren eigenen Endpunkt:

VarianteEndpunkt
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

Beispiel:

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

Implementierungshinweise

  • On-Chip-NMS (HPP, meta_arch=yolov8 von der yolov11n-Konfiguration übernommen); die Anwendung parst den NMS-Tensor 80x5x100 — Zeilen [ymin, xmin, ymax, xmax, score], normalisiert auf den 640x640-Eingang.
  • Vorverarbeitung: Letterbox (Grau 114) + RGB, rohe uint8 (Normalisierung 0/255).
  • Der Executor ist der HailoRT-5.1.1-Wrapper mit FLOAT32-Multi-Output; die erste Inferenz gibt den Ausgabebereich gemäß SOP-Akzeptanzcheckliste aus.

Entwicklungshinweise

  • Quellmodule: src/hailo10h_yolov11{n,s,m,l,x}/
  • Dockerfiles: docker/hailo10h/yolov11{n,s,m,l,x}.dockerfile
  • Container: ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov11{n,s,m,l,x}:latest
  • HEFs: hailo10h-Builds aus dem Hailo Model Zoo v5.4.0.