CV / YOLOv5

YOLOv5-seg

reComputer R Series (CM5 + Hailo-10H)

YOLOv5-seg instantiesegmentatiemodellen voor reComputer RK3588/RK3576 (RKNN) en reComputer R Series met Hailo-8 of Hailo-10H.

440 downloads
Grootte
~5.4MB
Geheugen
1GB+
Precisie
INT8 / Hailo HEF

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

Aan de slag

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

Modeldetails

reComputer R Series (CM5 + Hailo-10H)

YOLOv5-seg op reComputer R Series (CM5 + Hailo-10H)

YOLOv5-seg (op anchors gebaseerde instantiesegmentatie) detecteert 80 COCO-klassen en maakt per instantie een pixelmasker. De HEF levert drie ruwe detectiekoppen plus een maskerprototype-tensor; de app decodeert de anchors op de CPU, voert NMS per klasse uit en stelt de maskers samen uit de prototype-tensor.

Deze pagina is gericht op de reComputer R Series (CM5 + Hailo-10H) met een PCIe-Hailo-10H-versneller.

Modelinformatie

VariantParametersHardware-mAPHEF-grootte
YOLOv5n-seg1.99M23.13.4 MB
YOLOv5s-seg7.61M30.811.6 MB
YOLOv5m-seg32.60M36.718.5 MB

Gemeenschappelijke eigenschappen:

EigenschapWaarde
ArchitectuurYOLOv5-seg (3 anchors, strides 8/16/32)
Invoer640x640x3 RGB (normalize_in_net, mean 0 / std 255)
Uitvoerproto (160x160x32) + 3 detectiekoppen (elk 351 kanalen)
Letterbox-opvulkleur114 (grijs, YOLO-conventie)
HEFHailo Model Zoo v5.4.0, Hailo-10H

De nauwkeurigheidswaarden zijn referenties van Hailo Model Zoo, geen metingen op CM5.

Hardware- en hostconfiguratie

bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0

Meng geen HailoRT 4.23.x (Hailo-8) drivers, bibliotheken of Python-wheels in deze Hailo-10H-container.

Image ophalen

De image is gepubliceerd op GHCR. Haal deze op voordat u de container start:

bash
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov5n_seg:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov5s_seg:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov5m_seg:latest

Uitvoeren met demovideo

YOLOv5n-seg:

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

YOLOv5s-seg / YOLOv5m-seg gebruiken hetzelfde commando; vervang yolov5n_seg door yolov5s_seg of yolov5m_seg.

Open http://<Board_IP>:8000 voor de webpreview met instantiemaskers.

USB-cameramodus

Voeg --device /dev/video0:/dev/video0 toe en vervang --video_path video/test.mp4 door --camera_id 0.

REST-API

bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov5n_seg/predict" \
  -F "file=@test.jpg"
EindpuntMethodeDoel
/api/models/yolov5n_seg/predictPOSTBoxen + instantiemaskers (JSON)
/api/video_feedGETMJPEG-previewstream

Implementatiedetails

  • De decodering volgt de yolov5_seg-nabewerking van Hailo Model Zoo: anchor-decodering (xy = (sigmoid(xy) * 2 + grid - 0.5) * stride, wh = (sigmoid(wh) * 2) ** 2 * anchor_grid) → objectness × klassenscore → NMS per klasse → sigmoid(coeffs @ proto) geschaald naar de invoer en bijgesneden op elke box.
  • De drie detectiekoppen worden herkend aan hun 351 kanalen en gesorteerd op ruimtelijke grootte (stride 32 → 16 → 8); de proto-kop is de 160x160x32-tensor. De eerste inferentie print naam en vorm van elke vstream, zodat de toewijzing op de hardware kan worden geverifieerd.
  • De executor gebruikt de create_infer_model-API van HailoRT 5.1.1 met een persistent geconfigureerd model en geregistreerde FLOAT32-uitvoerbuffers.
  • Bronmodule: src/hailo10h_yolov5n_seg/ (ook ..._s_seg/, ..._m_seg/)
  • Dockerfile: docker/hailo10h/yolov5n_seg.dockerfile