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 MB
Mé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.mp4

API 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
ArchitectureViT-Small (ViTPose)
TâcheSingle-person pose estimation
Entrée256x192x3 RGB (normalize_in_net ImageNet RGB)
SortieHeatmap 64x48x17 (17 COCO keypoints)
Paramètres24.29M
Opérations17.17G
HEFHailo 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/hailo0

Exé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.mp4

Mode 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 0

API REST

text
POST http://<Board_IP>:8000/api/models/vit_pose_small/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/vit_pose_small/predict" \
  -F "file=@test.jpg"
Point d’accèsMéthodeUsage
/GETInterface d’aperçu Web
/api/models/vit_pose_small/predictPOST17 points (JSON)
/api/video_feedGETAperç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_net utilise 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.