CV / CenterPose

CenterPose RegNetX-800MF

reComputer R Series (CM5 + Hailo-10H)

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.

81 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 cm5-hailo10h-centerpose \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo10h-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-10H)

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

CenterPose RegNetX-800MF réalise une estimation de pose multi-personnes ascendante en une seule passe réseau. La démo sur Hailo-10H 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
AP matériel43.1 (référence Hailo Model Zoo)
Source HEFHailo Model Zoo v5.4.0, compilé pour Hailo-10H
RuntimeHailoRT 5.1.1

Configuration matérielle et de l'hôte

ÉlémentValeur
CartereComputer R Series avec Raspberry Pi CM5
AccélérateurHailo-10H sur PCIe, exposé en /dev/hailo0
OSRaspberry Pi OS, aarch64
Runtime validéHailoRT 5.1.1
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

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

Ne mélangez pas les pilotes, bibliothèques ou wheels Python HailoRT 4.23.x (Hailo-8) dans ce conteneur Hailo-10H.

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

bash
sudo docker run --rm \
  --name cm5-hailo10h-centerpose \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo10h-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.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo10h-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/hailo10h_centerpose_regnetx_800mf/
  • Dockerfile : docker/hailo10h/centerpose_regnetx_800mf.dockerfile
  • HEF : model/centerpose_regnetx_800mf.hef (14,581,760 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.
  • L'exécuteur utilise l'API create_infer_model de HailoRT 5.1.1 avec un modèle configuré persistant et des tampons de sortie FLOAT32 enregistrés.

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