CV / Pose MSPN
MSPN RegNetX-800MF
Estimación de pose de una sola persona MSPN con 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 cm5-hailo8-mspn-regnetx-800mf \
--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/mspn_regnetx_800mf:latest \
python web_detection.py --model_path model/mspn_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/mspn_regnetx_800mf/predict" \
-F "file=@test.jpg"import requests
resp = requests.post(
"http://<Board_IP>:8000/api/models/mspn_regnetx_800mf/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(resp.json())Detalles del modelo
reComputer R SeriesMSPN RegNetX-800MF en reComputer R Series (CM5 + Hailo-8)
MSPN (Multi-Stage Pose Network) con backbone RegNetX-800MF realiza estimación de pose de una sola persona con 17 puntos clave COCO. El HEF genera un mapa de calor de 64x48x17; la aplicación toma el argmax por canal, escala al espacio de entrada y dibuja el esqueleto COCO.
Esta página está dirigida a la reComputer R Series (CM5 + Hailo-8) con un acelerador Hailo-8 PCIe.
Información del modelo
| Propiedad | Valor |
|---|---|
| Arquitectura | MSPN + RegNetX-800MF |
| Tarea | Estimación de pose de una sola persona |
| Entrada | 256x192x3 RGB (normalize_in_net ImageNet RGB) |
| Salida | Mapa de calor 64x48x17 (17 puntos clave COCO) |
| Parámetros | 7.17M |
| Operaciones | 2.94G |
| AP de hardware | 70.3% |
| FPS | 2126 |
| HEF | Hailo Model Zoo v2.19.0, Hailo-8 |
Configuración de hardware y del host
El driver Hailo-8, el firmware, el libhailort.so del host y la rueda de Python dentro de la imagen deben usar versiones mayor/menor de HailoRT coincidentes (4.23.x).
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0Ejecutar con el vídeo de demostración
sudo docker run --rm \
--name cm5-hailo8-mspn-regnetx-800mf \
--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/mspn_regnetx_800mf:latest \
python web_detection.py --model_path model/mspn_regnetx_800mf.hef --video_path video/test.mp4Abre http://<Board_IP>:8000 para ver la vista previa web con el esqueleto de puntos clave superpuesto.
Modo cámara USB
sudo docker run --rm \
--name cm5-hailo8-mspn-regnetx-800mf \
--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/mspn_regnetx_800mf:latest \
python web_detection.py --model_path model/mspn_regnetx_800mf.hef --camera_id 0API REST
curl -X POST "http://<Board_IP>:8000/api/models/mspn_regnetx_800mf/predict" \
-F "file=@test.jpg"| Punto de acceso | Método | Propósito |
|---|---|---|
/api/models/mspn_regnetx_800mf/predict | POST | 17 puntos clave COCO (JSON) |
/api/video_feed | GET | Flujo de vista previa MJPEG |
Detalles de implementación
- Módulo fuente:
src/rpi5_hailo8_mspn_regnetx_800mf/ - Dockerfile:
docker/hailo8/mspn_regnetx_800mf.dockerfile normalize_in_netcon media/desviación estándar RGB de ImageNet; sininput_conversion— se alimenta RGB uint8 sin procesar tras el letterbox.- Decodificación: argmax por canal del mapa de calor → (x, y) en el espacio 64x48 → escala a 256x192 → deshacer el letterbox hasta el fotograma original. La disposición original del vstream se imprime una vez en la primera inferencia.
- Modelo de una sola persona: asume una persona centrada. Para varias personas, ejecuta primero un detector y recorta cada persona.
- La implementación de referencia de Model Zoo añade un desenfoque gaussiano de 5x5 y un desplazamiento de un cuarto de píxel; esta demo omite ambos.
Solución de problemas
- El
HEFno se carga: confirma que HailoRT es 4.23.x y que ellibhailort.somontado coincide con el driver del host. - No existe
/dev/hailo0: compruebalsmod | grep hailoy reinstalahailort-pcie-driver. - No se dibuja el esqueleto: baja el control de confianza de puntos clave (por defecto 0.30).
- Posiciones de puntos clave incorrectas: confirma que las formas de entrada/salida impresas coinciden con la entrada 256x192 y el mapa de calor 64x48x17.
Entradas y salidas
Entrada: imagen (256x192 RGB). Salida: 17 puntos clave con x, y y nivel de confianza (formato COCO).