CV / CenterPose

CenterPose RegNetX-800MF

Estimation de pose multi-personnes avec CenterPose RegNetX-800MF et 17 points clés COCO sur reComputer R Series avec Hailo-8 ou Hailo-10H.

15 téléchargements
Taille
13.93 MB
Mémoire
4GB+
Précision
Hailo HEF / HailoRT

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 pi5-hailo8-centerpose \
  --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/centerpose_regnetx_800mf:latest \
  python web_detection.py --model_path model/centerpose_regnetx_800mf.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/centerpose_regnetx_800mf/predict" \
  -F "file=@test.jpg"
Python
import requests

response = requests.post(
    "http://<Board_IP>:8000/api/models/centerpose_regnetx_800mf/predict",
    files={"file": open("test.jpg", "rb")},
    timeout=30,
)
print(response.json())

Détails du modèle

reComputer R Series (CM5 + Hailo-8)

CenterPose RegNetX-800MF sur reComputer R Series (CM5 + Hailo-8)

CenterPose RegNetX-800MF réalise une estimation de pose multi-personnes ascendante en une seule passe réseau. La démo sur Hailo-8 renvoie des boîtes de personnes et 17 points clés corporels COCO, et fournit un aperçu MJPEG en direct, l'inférence d'images et l'analyse vidéo hors ligne via un service FastAPI.

Informations sur le modèle

PropriétéValeur
ArchitectureCenterPose avec squelette RegNetX-800MF
TâcheEstimation de pose multi-personnes
Entrée512×512×3 BGR
SortieBoîtes de personnes et 17 points clés COCO
Paramètres12.31M
Source HEFHailo Model Zoo v2.19.0, compilé pour Hailo-8
RuntimeHailoRT 4.23.x

Configuration matérielle et de l'hôte

ÉlémentValeur
CartereComputer R Series avec Raspberry Pi CM5
AccélérateurHailo-8 sur PCIe, exposé en /dev/hailo0
OSRaspberry Pi OS, aarch64
Runtime validéHailoRT 4.23.x
bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot

# Vérifier après redémarrage
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0

Le pilote, le firmware de l'appareil, le libhailort.so de l'hôte et la roue Python du conteneur doivent partager la même version majeure/mineure de HailoRT.

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

La vidéo est réutilisée depuis l'application yolov8_pose comme demandé.

bash
sudo docker run --rm \
  --name pi5-hailo8-centerpose \
  --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/centerpose_regnetx_800mf:latest \
  python web_detection.py \
    --model_path model/centerpose_regnetx_800mf.hef \
    --video_path video/test.mp4

Ouvrez http://<Board_IP>:8000 pour voir le flux annoté et l'interface d'analyse vidéo.

Mode caméra USB

bash
sudo docker run --rm --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/centerpose_regnetx_800mf:latest \
  python web_detection.py \
    --model_path model/centerpose_regnetx_800mf.hef \
    --camera_id 0

API REST

text
POST http://<Board_IP>:8000/api/models/centerpose_regnetx_800mf/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/centerpose_regnetx_800mf/predict" \
  -F "file=@test.jpg"

| Point de terminaison | Méthode | Objectif | |---|---| | / | GET | Interface d'aperçu web | | /api/models/centerpose_regnetx_800mf/predict | POST | Inférence de pose sur une seule image | | /api/video_feed | GET | Flux MJPEG annoté | | /api/config | GET / POST | Lire ou modifier les seuils de confiance/NMS | | /api/video/upload | POST | Téléverser une vidéo source | | /api/video/analyze | POST | Démarrer l'analyse vidéo hors ligne | | /api/video/status | GET | Lire la progression de l'analyse | | /api/video/download/{filename} | GET | Télécharger le résultat annoté |

Détails d'implémentation

  • Source : src/rpi5_hailo8_centerpose_regnetx_800mf/
  • Dockerfile : docker/hailo8/centerpose_regnetx_800mf.dockerfile
  • HEF : model/centerpose_regnetx_800mf.hef (14,609,405 octets)
  • Le décodeur traite les têtes CenterPose hm, wh, hps, reg, hm_hp et hp_offset, puis remet les détections dans l'image via la transformation letterbox d'entrée.
  • CenterPose utilise l'ordre BGR OpenCV d'origine car la normalisation est intégrée à ce HEF.

Entrées et sorties

Entrée : image, vidéo ou image provenant d’une caméra USB. Sortie : boîtes englobantes des personnes, scores de confiance, 17 points clés COCO et aperçu MJPEG annoté.