CV / ViTPose
ViTPose-Small
Estimation de pose 2D d’une personne avec 17 points COCO via ViTPose-Small sur reComputer R Series avec Hailo-8.
53 téléchargements
Taille
31 MBMémoire
4GB+Précision
Hailo HEF / HailoRT 4.23.x (Hailo-8) / 5.1.1 (Hailo-10H)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 cm5-hailo8-vitpose-small \
--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/vit_pose_small:latest \
python web_detection.py --model_path model/vit_pose_small.hef --video_path video/test.mp4API REST
Utilisez l'API REST pour exécuter l'inférence. Copiez les commandes ci-dessous.
Curl
curl -X POST "http://<Board_IP>:8000/api/models/vit_pose_small/predict" \
-F "file=@test.jpg"Python
import requests
response = requests.post(
"http://<Board_IP>:8000/api/models/vit_pose_small/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(response.json())Détails du modèle
reComputer R Series (CM5 + Hailo-8)ViTPose-Small sur reComputer R Series (CM5 + Hailo-8)
ViTPose-Small estime la pose 2D d’une personne et produit 17 points corporels COCO. Le HEF fournit une heatmap 64x48x17 ; l’application prend le maximum par canal, remet les coordonnées à l’échelle et dessine le squelette.
Ouvrez http://<Board_IP>:8000 pour afficher l’aperçu Web.
Informations sur le modèle
| Propriété | Valeur |
|---|---|
| Architecture | ViT-Small (ViTPose) |
| Tâche | Single-person pose estimation |
| Entrée | 256x192x3 RGB (normalize_in_net ImageNet RGB) |
| Sortie | Heatmap 64x48x17 (17 COCO keypoints) |
| Paramètres | 24.29M |
| Opérations | 17.17G |
| HEF | Hailo Model Zoo v2.19.0, Hailo-8 |
Configuration du matériel 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/hailo0Exécution avec la vidéo de démonstration
bash
sudo docker run --rm \
--name cm5-hailo8-vitpose-small \
--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/vit_pose_small:latest \
python web_detection.py --model_path model/vit_pose_small.hef --video_path video/test.mp4Mode caméra USB
bash
sudo docker run --rm \
--name cm5-hailo8-vitpose-small \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
--device /dev/video0:/dev/video0 \
-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/vit_pose_small:latest \
python web_detection.py --model_path model/vit_pose_small.hef --camera_id 0API REST
text
POST http://<Board_IP>:8000/api/models/vit_pose_small/predictbash
curl -X POST "http://<Board_IP>:8000/api/models/vit_pose_small/predict" \
-F "file=@test.jpg"| Point d’accès | Méthode | Usage |
|---|---|---|
/ | GET | Interface d’aperçu Web |
/api/models/vit_pose_small/predict | POST | 17 points (JSON) |
/api/video_feed | GET | Aperçu MJPEG avec squelette |
Notes d’implémentation
- Une personne : le modèle suppose que la personne est centrée dans le recadrage. Pour plusieurs personnes, un détecteur (YOLO) doit d’abord recadrer chacune d’elles.
- Post-traitement : argmax par canal → coordonnées 64×48 → mise à l’échelle vers l’entrée 256×192 → suppression du letterbox vers l’image d’origine. Pas de raffinement sous-pixel DARK.
normalize_in_netutilise la moyenne et l’écart-type RGB ImageNet ; sans input_conversion, le RGB uint8 est fourni après letterbox.
Notes de développement
- Module source:
src/rpi5_hailo8_vit_pose_small/ - Dockerfile:
docker/hailo8/vit_pose_small.dockerfile - Conteneur:
ghcr.io/seeed-projects/recomputer-hailo8-cv/vit_pose_small:latest - Famille: vit_pose (vit_pose_small / vit_pose_small_bn)
Entrées et sorties
Entrée : image, vidéo ou image de caméra USB. Sortie : 17 points COCO (x, y, score) et aperçu MJPEG avec squelette.