CV / YOLOv5

YOLOv5-seg

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

468 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 rk3588-yolov5n-seg \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  -e RKNN_LOG_LEVEL=0 \
  --device /dev/video0:/dev/video0 \
  --device /dev/dri/renderD128:/dev/dri/renderD128 \
  -v /proc/device-tree/compatible:/proc/device-tree/compatible \
  ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov5_seg:latest \
  python3 web_detection.py --model_path model/yolov5n_seg.rknn --video video/test.mp4

Modeldetails

reComputer R Series (CM5 + Hailo-8)

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

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-8) met een PCIe-Hailo-8-versneller.

Modelinformatie

VariantParametersHardware-mAPHEF-grootte
YOLOv5n-seg1.99M22.94.7 MB
YOLOv5s-seg7.61M30.78.7 MB
YOLOv5m-seg32.60M36.628.1 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 v2.19.0, Hailo-8

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

Hardware- en hostconfiguratie

bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot

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

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-hailo8-cv/yolov5n_seg:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5s_seg:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5m_seg:latest

Uitvoeren met demovideo

YOLOv5n-seg:

bash
sudo docker run --rm \
  --name cm5-hailo8-yolov5n-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/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 VStreams-API van HailoRT 4.23 en een Hailo-8-specifieke HEF.
  • Bronmodule: src/rpi5_hailo8_yolov5n_seg/ (ook ..._s_seg/, ..._m_seg/)
  • Dockerfile: docker/hailo8/yolov5n_seg.dockerfile