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.
Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.
Pour commencer
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.mp4Dé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
| Variante | Paramètres | mAP matériel | Taille HEF |
|---|---|---|---|
| YOLOv5n-seg | 1.99M | 22.9 | 4.7 MB |
| YOLOv5s-seg | 7.61M | 30.7 | 8.7 MB |
| YOLOv5m-seg | 32.60M | 36.6 | 28.1 MB |
Propriétés communes :
| Propriété | Valeur |
|---|---|
| Architecture | YOLOv5-seg (3 anchors, strides 8/16/32) |
| Entrée | 640x640x3 RGB (normalize_in_net, mean 0 / std 255) |
| Sortie | proto (160x160x32) + 3 têtes de détection (351 canaux chacune) |
| Remplissage letterbox | 114 (gris, convention YOLO) |
| HEF | Hailo 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
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0Récupérer l'image
L'image est publiée sur GHCR. Récupérez-la avant de démarrer le conteneur :
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:latestExécuter avec la vidéo de démonstration
YOLOv5n-seg :
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.mp4YOLOv5s-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
curl -X POST "http://<Board_IP>:8000/api/models/yolov5n_seg/predict" \
-F "file=@test.jpg"| Point de terminaison | Méthode | Objectif |
|---|---|---|
/api/models/yolov5n_seg/predict | POST | Boîtes + masques d'instance (JSON) |
/api/video_feed | GET | Flux d'aperçu MJPEG |
Détails d'implémentation
- Le décodage suit le post-traitement
yolov5_segde 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