CV / YOLOv8

YOLOv8-seg

reComputer R Series (CM5 + Hailo-10H)

YOLOv8n/s/m instantiesegmentatie op reComputer RK3588/RK3576 (RKNN) en op reComputer R Series met Hailo-8 of Hailo-10H via HailoRT.

575 downloads
Grootte
~7.2MB
Geheugen
1GB+
Precisie
INT8

Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.

Aan de slag

Implementeren
sudo docker run --rm \
  --name cm5-hailo10h-yolov8n-seg \
  --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/yolov8n_seg:latest \
  python web_detection.py --model_path model/yolov8n_seg.hef --video_path video/test.mp4

Modeldetails

reComputer R Series (CM5 + Hailo-10H)

YOLOv8-seg op reComputer CM5 + Hailo-10H

De modellen YOLOv8n/s/m-seg draaien op de Hailo-10H via HailoRT 5.1.1. Het HEF stelt ruwe heads beschikbaar (geen NMS op de chip): de host decodeert de boxheads (DFL- of gevouwen layout), past sigmoid + NMS per klasse toe en stelt de prototypemaskers samen (32 coëfficiënten × 160×160×32-prototype, bijgesneden op elke box) voor 80 COCO-klassen.

Modelinformatie

VariantInvoerVerpakt HEFContainer-image
YOLOv8n-seg640×640×3 RGB6.1 MByolov8n_seg
YOLOv8s-seg640×640×3 RGB18.6 MByolov8s_seg
YOLOv8m-seg640×640×3 RGB28.9 MByolov8m_seg

Hardware en hostinstallatie

ItemWaarde
BoardRaspberry Pi CM5
AcceleratorHailo-10H, /dev/hailo0
RuntimeHailoRT 5.1.1
OSRaspberry Pi OS Bookworm, aarch64
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

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

Uitvoeren met demovideo

Kies de opdracht die bij de modelvariant hoort.

YOLOv8n-seg

bash
sudo docker run --rm --privileged --net=host \
  --name cm5-hailo10h-yolov8n-seg \
  -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/yolov8n_seg:latest \
  python web_detection.py --model_path model/yolov8n_seg.hef --video_path video/test.mp4

YOLOv8s-seg

bash
sudo docker run --rm --privileged --net=host \
  --name cm5-hailo10h-yolov8s-seg \
  -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/yolov8s_seg:latest \
  python web_detection.py --model_path model/yolov8s_seg.hef --video_path video/test.mp4

YOLOv8m-seg

bash
sudo docker run --rm --privileged --net=host \
  --name cm5-hailo10h-yolov8m-seg \
  -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/yolov8m_seg:latest \
  python web_detection.py --model_path model/yolov8m_seg.hef --video_path video/test.mp4

Open http://<Board_IP>:8000 voor de webpreview. Gebruik /api/video_feed voor de MJPEG-stream met overlaid instantiemaskers en boxen.

REST API

Elke variant heeft een eigen endpoint:

VariantEndpoint
YOLOv8n-segPOST /api/models/yolov8n_seg/predict
YOLOv8s-segPOST /api/models/yolov8s_seg/predict
YOLOv8m-segPOST /api/models/yolov8m_seg/predict

Voorbeeld:

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

De respons bevat predictions-items met de velden class, confidence en box (box is x1/y1/x2/y2 in pixels van het originele frame).

Verwacht resultaat en veelvoorkomende fouten

Bij de eerste inferentie print de module de geladen vstream-lijst plus één layoutregel per inferentietype: de 10 uitvoertensors, hun waardebereiken en of een sigmoid is toegepast. Verwacht: drie boxheads, drie 80-kanaals scoreheads, drie 32-kanaals maskercoëfficiëntheads en één 160×160×32-prototype; een preview waarin de maskers aan de instanties blijven plakken.

SymptoomWaarschijnlijke oorzaakOplossing
unexpected output layout in het logAndere HEF-compilatieControleer de geprinte vormen tegen de lijst hierboven; gok de layout niet
HailoRT-versiefout bij het startenHostbibliotheek is niet 5.1.1Installeer hailo-h10-all op de host en houd de containermount op libhailort.so.5.1.1
docker: container name already in useEen vorige container is niet verwijderddocker rm -f cm5-hailo10h-yolov8n-seg, of wijzig --name
Geen /dev/hailo0 in de containerOntbrekende --device /dev/hailo0:/dev/hailo0Voeg de device-mapping en --privileged --net=host toe

Ontwikkeling

VariantBronDockerfile
YOLOv8n-segsrc/hailo10h_yolov8n_seg/docker/hailo10h/yolov8n_seg.dockerfile
YOLOv8s-segsrc/hailo10h_yolov8s_seg/docker/hailo10h/yolov8s_seg.dockerfile
YOLOv8m-segsrc/hailo10h_yolov8m_seg/docker/hailo10h/yolov8m_seg.dockerfile
  • Executor: HailoRT 5.1.1 InferModel-wrapper (Python 3.13 + de meegeleverde cp313-wheel); regressietests staan in de tests/ van elke module.
  • HEFs: Hailo Model Zoo v5.4.0 Hailo-10H-builds.
  • Letterbox-padding is 114 (Model Zoo base/yolo.yaml); de normalisatie is in het HEF gecompileerd. De genoemde mAP-waarden zijn full-precision cijfers van het Model Zoo, niet gemeten op dit board.