CV / ViTPose
ViTPose-Small
reComputer R Series (CM5 + Hailo-10H)
ViTPose-Small 单人二维姿态估计模型,在 reComputer R Series + Hailo-8 上输出 17 个 COCO 关键点。
105 次下载
大小
31 MB内存
4GB+精度
Hailo HEF / HailoRT 4.23.x (Hailo-8) / 5.1.1 (Hailo-10H)选择你正在使用的设备,设置指南和文档将相应更新。
快速开始
部署
sudo docker run --rm \
--name cm5-hailo10h-vit-pose-small \
--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/vit_pose_small:latest \
python web_detection.py --model_path model/vit_pose_small.hef --video_path video/test.mp4REST API
使用 REST API 进行推理。复制以下命令。
Curl
curl -X POST "http://<Board_IP>:8000/api/models/vit_pose_small/predict" \
-F "file=@test.jpg"Python
import requests
response = requests.post(
"http://<Board_IP>:8000/api/models/vit_pose_small/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(response.json())模型详情
reComputer R Series (CM5 + Hailo-10H)ViTPose-Small 在 reComputer R Series(CM5 + Hailo-10H)上运行
ViTPose-Small 用于单人 2D 姿态估计:HEF 输出 64x48x17 的热图,应用对每个通道取 argmax,把坐标缩放到 256x192 的网络输入后还原到原图,再绘制 17 个 COCO 关键点。
本页面向搭载 PCIe Hailo-10H 加速器的 reComputer R Series(CM5 + Hailo-10H)。
模型信息
| 属性 | 值 |
|---|---|
| 架构 | ViTPose-Small(Vision Transformer 骨干网络) |
| 任务 | 单人姿态估计(17 个 COCO 关键点) |
| 输入 | 256x192x3 RGB(letterbox,归一化已编译进 HEF) |
| 输出 | 热图 64x48x17(argmax 解码,无片上 NMS) |
| 参数量 | 24.29M |
| 运算量 | 17.17G |
| HEF | Hailo Model Zoo v5.4.0, Hailo-10H (24,653,824 bytes) |
硬件与主机设置
| 项目 | 值 |
|---|---|
| 开发板 | reComputer R Series 搭配 Raspberry Pi CM5 |
| 加速器 | Hailo-10H(PCIe 接口),以 /dev/hailo0 暴露 |
| 运行时 | HailoRT 5.1.1 |
| 容器内 Python | 3.13, aarch64 |
在主机上安装 Hailo-10H 软件包,并在启动容器前确认驱动与设备就绪:
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot
# 重启后
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0使用演示视频运行
bash
sudo docker run --rm \
--name cm5-hailo10h-vit-pose-small \
--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/vit_pose_small:latest \
python web_detection.py --model_path model/vit_pose_small.hef --video_path video/test.mp4打开 http://<Board_IP>:8000 查看预览:画面中的人物身上会叠加 COCO 骨架。
USB 摄像头模式
bash
sudo docker run --rm \
--name cm5-hailo10h-vit-pose-small \
--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/vit_pose_small:latest \
python web_detection.py --model_path model/vit_pose_small.hef --camera_id 0REST API
text
POST http://<Board_IP>:8000/api/models/vit_pose_small/predictbash
curl -X POST "http://<Board_IP>:8000/api/models/vit_pose_small/predict" \
-F "file=@test.jpg"| 接口 | 方法 | 用途 |
|---|---|---|
/ | GET | 网页预览界面 |
/api/models/vit_pose_small/predict | POST | 17 个 COCO 关键点(JSON) |
/api/video_feed | GET | MJPEG 预览流 |
/api/config | GET / POST | 读取或修改运行时阈值 |
/api/video/upload | POST | 上传源视频 |
/api/video/analyze | POST | 开始离线视频分析 |
/api/video/status | GET | 读取分析进度 |
/api/video/download/{filename} | GET | 下载标注结果 |
置信度低于阈值(0.30)的关键点不会出现在骨架叠加里。
实现说明
- 单人模型:网络期望人物位于裁剪中心,多人场景需要先用检测器裁剪每个人。
- 预处理 letterbox 到 256x192、黑色填充,BGR 转 RGB 后输入原始 uint8;ImageNet 归一化(RGB 均值
[123.675, 116.28, 103.53]、方差[58.395, 57.12, 57.375])已编译进 HEF。 - 后处理对每个热图通道取 argmax 得到 64x48 上的
(x, y),缩放到 256x192 输入后按 letterbox 参数还原到原图。没有片上 NMS,也没有 DARK 亚像素细化。 - 首次推理会打印一次原始输出 shape(
[ViTPose] raw output shape=...),便于实机核对布局。
开发说明
- 源码模块:
src/hailo10h_vit_pose_small/ - Dockerfile:
docker/hailo10h/vit_pose_small.dockerfile - 镜像:
ghcr.io/seeed-projects/recomputer-hailo10h-cv/vit_pose_small:latest - 模块使用 HailoRT 5.1.1 的 InferModel API 与面向 Hailo-10H 编译的 HEF。
- 单元测试无需设备即可运行:
python -m unittest discover -s tests -v。
输入与输出
输入:图像、视频或 USB 摄像头帧。输出:17 个 COCO 关键点(x、y、置信度)以及带骨架叠加的 MJPEG 预览。