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.
Elige el dispositivo que estás usando. La guía de configuración y la documentación se actualizarán en consecuencia.
Primeros pasos
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.mp4API REST
Usa la API REST para ejecutar inferencia. Copia los comandos siguientes.
curl -X POST "http://<Board_IP>:8000/api/models/centerpose_regnetx_800mf/predict" \
-F "file=@test.jpg"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
| Propiedad | Valor |
|---|---|
| Arquitectura | CenterPose con backbone RegNetX-800MF |
| Tarea | Estimación de pose multi-persona |
| Entrada | 512×512×3 BGR |
| Salida | Cajas de personas y 17 puntos clave COCO |
| Parámetros | 12.31M |
| Origen del HEF | Hailo Model Zoo v2.19.0, compilado para Hailo-8 |
| Runtime | HailoRT 4.23.x |
Configuración de hardware y del host
| Elemento | Valor |
|---|---|
| Placa | reComputer R Series con Raspberry Pi CM5 |
| Acelerador | Hailo-8 por PCIe, expuesto como /dev/hailo0 |
| SO | Raspberry Pi OS, aarch64 |
| Runtime validado | HailoRT 4.23.x |
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/hailo0El 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.
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.mp4Abre http://<Board_IP>:8000 para ver el flujo anotado y la interfaz de análisis de vídeo.
Modo cámara USB
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 0API REST
POST http://<Board_IP>:8000/api/models/centerpose_regnetx_800mf/predictcurl -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_hpyhp_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.