CV / CenterPose

CenterPose RegNetX-800MF

Estimación de pose multi-persona con CenterPose RegNetX-800MF y 17 puntos clave COCO en reComputer R Series con Hailo-8 o Hailo-10H.

15 descargas
Tamaño
13.93 MB
Memoria
4GB+
Precisión
Hailo HEF / HailoRT

Elige el dispositivo que estás usando. La guía de configuración y la documentación se actualizarán en consecuencia.

Primeros pasos

Desplegar
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

Usa la API REST para ejecutar inferencia. Copia los comandos siguientes.

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())

Detalles del modelo

reComputer R Series (CM5 + Hailo-8)

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

CenterPose RegNetX-800MF realiza estimación de pose multi-persona de abajo hacia arriba en una sola pasada de red. La demo en Hailo-8 devuelve cajas de personas y 17 puntos clave corporales COCO, y ofrece vista previa MJPEG en vivo, inferencia de imágenes y análisis de vídeo offline mediante un servicio FastAPI.

Información del modelo

PropiedadValor
ArquitecturaCenterPose con backbone RegNetX-800MF
TareaEstimación de pose multi-persona
Entrada512×512×3 BGR
SalidaCajas de personas y 17 puntos clave COCO
Parámetros12.31M
Origen del HEFHailo Model Zoo v2.19.0, compilado para Hailo-8
RuntimeHailoRT 4.23.x

Configuración de hardware y del host

ElementoValor
PlacareComputer R Series con Raspberry Pi CM5
AceleradorHailo-8 por PCIe, expuesto como /dev/hailo0
SORaspberry Pi OS, aarch64
Runtime validadoHailoRT 4.23.x
bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot

# Verificar después de reiniciar
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0

El driver, el firmware del dispositivo, el libhailort.so del host y la rueda de Python del contenedor deben compartir la misma versión mayor/menor de HailoRT.

Ejecutar con el vídeo de demostración incluido

El vídeo se reutiliza de la aplicación yolov8_pose según lo solicitado.

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

Abre http://<Board_IP>:8000 para ver el flujo anotado y la interfaz de análisis de vídeo.

Modo cámara 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"

| Punto de acceso | Método | Propósito | |---|---| | / | GET | Interfaz de vista previa web | | /api/models/centerpose_regnetx_800mf/predict | POST | Inferencia de pose de un solo fotograma | | /api/video_feed | GET | Flujo MJPEG anotado | | /api/config | GET / POST | Leer o cambiar umbrales de confianza/NMS | | /api/video/upload | POST | Subir un vídeo de origen | | /api/video/analyze | POST | Iniciar análisis de vídeo offline | | /api/video/status | GET | Leer el progreso del análisis | | /api/video/download/{filename} | GET | Descargar el resultado anotado |

Detalles de implementación

  • Fuente: src/rpi5_hailo8_centerpose_regnetx_800mf/
  • Dockerfile: docker/hailo8/centerpose_regnetx_800mf.dockerfile
  • HEF: model/centerpose_regnetx_800mf.hef (14,609,405 bytes)
  • El decodificador procesa las cabezas de CenterPose hm, wh, hps, reg, hm_hp y hp_offset, y asigna las detecciones de vuelta mediante la transformación letterbox de entrada.
  • CenterPose usa el orden BGR original de OpenCV porque la normalización está integrada en este HEF.

Entradas y salidas

Entrada: imagen, vídeo o fotograma de cámara USB. Salida: cuadros delimitadores de personas, niveles de confianza, 17 puntos clave de COCO y vista previa MJPEG con anotaciones.