github.com·2026/10/20·AmmarkoV
SAM3DBody-cpp 是 SAM-3D-Body 的零 Python 运行时依赖 C++ 推理引擎,用 ONNX Runtime + ggml 从 BGR 图像直接回归每人 519 个 MHR 姿态参数与相机平移,并可经 LBS 生成全身网格与关键点。流水线为 YOLO11m-pose 检测、DINOv3-ViT-H backbone、6 层 transformer decoder、CPU ggml FFN 头,预构建模型托管 HuggingFace,CUDA 版约 5.2 GB;CPU 需换 fp32 backbone/fp16 decoder,作者报告单帧 5–15 秒,不适合视频。scripts/setup.sh 一键拉取并构建,输出多人物 BVH(IoU 追踪保身份、骨骼长度重写)、MPEG ARF 和 CSV。离线五趟版加入场景检测、轨迹合并、间隙/抖动插值和零相位滤波;--refined-pose 经迭代手部 crop decode 与 wrist-IK splice 缩小与原版差异,但延迟略升。TensorRT FP16 端到端约 1.6 倍 加速,代价是 fp16 模型替换带来远距离人物关节偏差;Windows 仅 headless 构建。
为什么重要 要把单目 3D 人体接入 C++ 引擎或 DCC 管线时,运行时不需要 Python,就直接产出 BVH/ARF;但 BF16 主干只能运行在 CUDA 上适合 需要把单目 3D 人体/动捕接进 C++ 引擎、ROS 或 DCC 管线的工程人员
$ bash tools/fetch_model.sh shared cuda
$ ./scripts/video.sh --from clip.mp4 --bvh ./p.bvh --headless
$ ./scripts/offline_video.sh --from clip.mp4 --arf ./p.arfz
$ ./scripts/video.sh --from your_video.mp4 --cuda -1

EVIDENCE / METHODS
要点
运行时不需要 Python 依赖:ONNX Runtime 与 ggml 执行全部推理,Python 前端只用 ctypes 调用编译好的 .so