CV / MSPN 姿态估计

MSPN RegNetX-800MF

MSPN 单人姿态估计,支持 17 个 COCO 关键点,基于 reComputer R Series + Hailo-8 或 Hailo-10H 部署。

51 次下载
大小
5.8 MB
内存
4GB+
精度
Hailo HEF / HailoRT

选择你正在使用的设备,设置指南和文档将相应更新。

快速开始

部署
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.mp4

REST API

使用 REST API 进行推理。复制以下命令。

Curl
curl -X POST "http://<Board_IP>:8000/api/models/mspn_regnetx_800mf/predict" \
  -F "file=@test.jpg"
Python
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())

模型详情

reComputer R Series

MSPN RegNetX-800MF 在 reComputer R Series(CM5 + Hailo-8)上运行

MSPN(Multi-Stage Pose Network)搭配 RegNetX-800MF 骨干网络,实现单人姿态估计,输出 17 个 COCO 关键点。HEF 输出 64x48x17 热力图;应用逐通道取 argmax、缩放到输入空间并绘制 COCO 骨架。

本页面向搭载 PCIe Hailo-8 加速器的 reComputer R Series(CM5 + Hailo-8)。

模型信息

属性值
架构MSPN + RegNetX-800MF
任务单人姿态估计
输入256x192x3 RGB(normalize_in_net ImageNet RGB)
输出热力图 64x48x17(17 个 COCO 关键点)
参数量7.17M
运算量2.94G
硬件 AP70.3%
FPS2126
HEFHailo Model Zoo v2.19.0,Hailo-8

硬件与主机设置

Hailo-8 驱动、固件、主机 libhailort.so 与镜像内的 Python wheel 必须使用匹配的 HailoRT 主/次版本(4.23.x)。

bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot

hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0

使用演示视频运行

bash
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.mp4

打开 http://<Board_IP>:8000 查看带关键点骨架叠加的 Web 预览。

USB 摄像头模式

bash
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 0

REST API

bash
curl -X POST "http://<Board_IP>:8000/api/models/mspn_regnetx_800mf/predict" \
  -F "file=@test.jpg"
接口方法用途
/api/models/mspn_regnetx_800mf/predictPOST17 个 COCO 关键点(JSON)
/api/video_feedGETMJPEG 预览流

实现细节

  • 源码模块:src/rpi5_hailo8_mspn_regnetx_800mf/
  • Dockerfile:docker/hailo8/mspn_regnetx_800mf.dockerfile
  • normalize_in_net 含 ImageNet RGB 均值/标准差;无 input_conversion —— letterbox 后直接输入原始 uint8 RGB。
  • 解码:逐通道 argmax → 64x48 空间坐标 (x, y) → 缩放到 256x192 → 逆 letterbox 还原到原图。首次推理会打印一次原始 vstream 布局。
  • 单人模型:假定画面中只有一位居中的人物。多人场景请先运行检测器并逐人裁剪。
  • Model Zoo 参考实现额外做 5x5 高斯模糊和四分之一像素偏移;本演示未启用。

故障排查

  • HEF 加载失败:确认 HailoRT 为 4.23.x,且挂载的 libhailort.so 与主机驱动匹配。
  • 没有 /dev/hailo0:检查 lsmod | grep hailo 并重装 hailort-pcie-driver。
  • 未绘制骨架:降低关键点置信度滑块(默认 0.30)。
  • 关键点位置不对:确认打印的输入/输出 shape 与 256x192 输入和 64x48x17 热力图一致。

输入与输出

输入:图像(256x192 RGB)。输出:17 个关键点,包含 x、y 和置信度(COCO 格式)。