CV / YOLOv5

YOLOv5-seg

Modèles de segmentation d'instance YOLOv5-seg pour reComputer RK3588/RK3576 (RKNN) et reComputer R Series avec Hailo-8 ou Hailo-10H.

468 téléchargements
Taille
~5.4MB
Mémoire
1GB+
Précision
INT8 / Hailo HEF

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

Pour commencer

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

Détails du modèle

reComputer R Series (CM5 + Hailo-8)

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

YOLOv5-seg (segmentation d'instances basée sur des anchors) détecte 80 classes COCO et produit un masque pixel par instance. Le HEF expose trois têtes de détection brutes plus un tenseur de prototypes de masque ; l'application décode les anchors sur le CPU, applique un NMS par classe et assemble les masques à partir des prototypes.

Cette page cible la reComputer R Series (CM5 + Hailo-8) avec un accélérateur Hailo-8 PCIe.

Informations sur le modèle

VarianteParamètresmAP matérielTaille HEF
YOLOv5n-seg1.99M22.94.7 MB
YOLOv5s-seg7.61M30.78.7 MB
YOLOv5m-seg32.60M36.628.1 MB

Propriétés communes :

PropriétéValeur
ArchitectureYOLOv5-seg (3 anchors, strides 8/16/32)
Entrée640x640x3 RGB (normalize_in_net, mean 0 / std 255)
Sortieproto (160x160x32) + 3 têtes de détection (351 canaux chacune)
Remplissage letterbox114 (gris, convention YOLO)
HEFHailo Model Zoo v2.19.0, Hailo-8

Les valeurs de précision sont des références Hailo Model Zoo, pas des mesures effectuées sur CM5.

Configuration matérielle et de l'hôte

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

Récupérer l'image

L'image est publiée sur GHCR. Récupérez-la avant de démarrer le conteneur :

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

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

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 utilisent la même commande ; remplacez yolov5n_seg par yolov5s_seg ou yolov5m_seg.

Ouvrez http://<Board_IP>:8000 pour voir l'aperçu web avec les masques d'instance.

Mode caméra USB

Ajoutez --device /dev/video0:/dev/video0 et remplacez --video_path video/test.mp4 par --camera_id 0.

API REST

bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov5n_seg/predict" \
  -F "file=@test.jpg"
Point de terminaisonMéthodeObjectif
/api/models/yolov5n_seg/predictPOSTBoîtes + masques d'instance (JSON)
/api/video_feedGETFlux d'aperçu MJPEG

Détails d'implémentation

  • Le décodage suit le post-traitement yolov5_seg de Hailo Model Zoo : décodage des anchors (xy = (sigmoid(xy) * 2 + grid - 0.5) * stride, wh = (sigmoid(wh) * 2) ** 2 * anchor_grid) → objectness × score de classe → NMS par classe → sigmoid(coeffs @ proto) redimensionné à l'entrée et recadré sur chaque boîte.
  • Les trois têtes de détection sont identifiées par leurs 351 canaux et triées par taille spatiale (stride 32 → 16 → 8) ; la tête proto est le tenseur 160x160x32. La première inférence affiche le nom et la forme de chaque vstream pour vérifier la correspondance sur le matériel.
  • L'exécuteur utilise l'API VStreams de HailoRT 4.23 et un HEF spécifique Hailo-8.
  • Module source : src/rpi5_hailo8_yolov5n_seg/ (également ..._s_seg/, ..._m_seg/)
  • Dockerfile : docker/hailo8/yolov5n_seg.dockerfile