FreeMoCap 开源动作捕捉完整指南:几个普通摄像头就能跑通 3D 骨骼重建
【免费下载链接】freemocapFree Motion Capture for Everyone 💀✨项目地址: https://gitcode.com/GitHub_Trending/fr/freemocap
做动画、搞运动分析,最贵的从来不是软件,而是那套十几万的动捕服。FreeMoCap 是一个开源的无标记动作捕捉系统:不用反光点,几个普通 USB 摄像头对着人录段视频,就能重建出可直接进 Blender 的 3D 骨骼数据。
项目定位:免费无标记动作捕捉,凭什么还研究级 💀
- 开源免费— AGPLv3 许可,代码全公开、可审计
- 无标记捕捉— 不需要动捕服和反光点,日常衣服就能录
- 硬件无关— 从几十块的 USB 摄像头,到 HDMI 采集卡接单反相机都行
- 离线可用— 模型下载一次之后,断网、内网环境照样跑
- 多相机几何求解— 不是单目"猜"姿势,是多视角三角测量出的真实空间坐标
说白了,它把以前只有动捕工作室才有的"多机位同步 + 相机标定 + 三维重建"整套流程,压缩成了一个桌面软件:连上摄像头、挥两下标定板、开始录制,剩下的交给软件。
它是怎么跑起来的:从视频到 3D 动作捕捉数据
输入:几个摄像头 + 一张 ChArUco 标定板
这一步解决"相机知道自己拍的是什么、自己在哪里"的问题。ChArUco 板是棋盘格加 ArUco 二维码的混合标定板,对着摄像头挥一圈,软件就能解出每台相机的内参(镜头畸变)和外参(位置朝向),并顺手定好世界坐标系原点和你脚下的地面(Z=0 平面)。多路摄像头靠软件对齐帧时间戳来同步,不需要硬件同步线。
处理:2D 关键点 → 多相机三角测量 → 3D 骨架
每个摄像头先跑姿态检测(可选 MediaPipe 或 RTMPose,由 追踪器工厂 统一调度),得到每帧 2D 关键点;接着 三角测量模块 把多路 2D 点在三维空间交汇求解,并靠重投影误差剔除离群值;最后 后期动捕流水线 做滤波和骨架后处理,输出平滑稳定的 3D 轨迹。
输出:.npy 数据文件 + 一键 Blender 场景
结果保存在录像目录的output_data/里,包括身体、手部、脸部关键点.npy文件,以及.csv、.parquet格式。想要可视化?Blender 导出模块 能一键生成.blend文件:骨架网格、手部网格、相机视锥、地面平面、三点布光全都建好(目前仅支持 MediaPipe 结果)。
谁适合用它?
做生物力学 / 运动研究的 📊
- 用 2-3 台摄像头搭一个低成本运动实验室,量化动作效率、对比训练前后变化
- 踩坑提示:相机位置动过一次,标定就作废,必须先重新标定再用数据
- 最佳实践:曝光、对焦、白平衡全部手动锁定,自动曝光会在录制中造成标定漂移
做游戏与动画的 🎮
- 录一段动作,处理后直接导进 Blender 驱动角色,省去手工 K 帧
- 相机数量参考:2 台起步,3-4 台通用,5-6 台能抗遮挡,7 台以上适合多目标高精度场景
- 快速动作建议 60 FPS 录制,30 FPS 是下限
做教学与演示的
- 课堂现场录一段走跑跳,学生能直观看到"2D 视频 → 3D 骨架"的全过程
- 标定板图样在仓库 shared/charuco/ 里可直接打印,硬件成本基本就是几个摄像头的钱
从零到跑通
1. 准备环境
Python 3.11 环境里,按显卡情况二选一:
pip install freemocap[cuda] # Windows/Linux + NVIDIA GPU pip install freemocap[cpu] # macOS 或没有支持的显卡安装完没有报错、正常退出,就说明依赖装好了。想跑最新源码版,clone 仓库后按 README 顶部说明用uv安装依赖:
git clone https://gitcode.com/GitHub_Trending/fr/freemocap2. 首次运行
freemocap弹出一个桌面窗口就说明启动成功了。然后按向导走:插上 2 台以上 USB 摄像头 → 打印 ChArUco 标定板并在界面里完成标定 → 开始录制做一组动作 → 在 Mocap 设置里选检测器,点 "Process Mocap"。
3. 看懂输出结果
处理完成后,录像目录里会长出这样的结构:
recording_folder/ ├── synchronized_videos/ # 同步后的多机位视频 ├── annotated_videos/ # 画了 2D 关键点的视频 ├── output_data/ # 3D 结果:*.npy / *.csv / *.parquet ├── tracker_schema.json # 关键点结构描述 └── camera_calibration.toml看到output_data/里有.npy文件、Playback 界面里能回放 3D 骨架,就算完整跑通了。
4. 常见问题
- 提示视频帧数不匹配:
synchronized_videos/里混进了无关文件,只留同一次录制的视频,且帧数要一致 - 相机掉帧、断连:把相机分散插到不同 USB 控制器上,优先 USB 3.0
- 相机挪过位置:旧标定作废,重新挥板标定后再处理
进阶资源与社区入口
- 操作指南— freemocap-docs/docs/guides/:相机架设、后期动捕、Blender 导出、GPU 设置四篇上手文档
- 架构文档— freemocap-docs/docs/architecture/:前端、API 边界、流水线设计详解
- 贡献指南— CONTRIBUTING.md:怎么提交代码、怎么跑测试
- 测试说明— TESTING.md:测试入口与覆盖范围
- 论文引用— CITATION.cff:写论文时的规范引用信息
- 社区— 项目 README 中附有 Discord 入口,卡住了先去那边问
回到开头那个痛点:动捕服太贵。现在几台普通摄像头加一张打印的标定板,就能在你书桌上跑出一套研究级的无标记动作捕捉流程。下一步很简单——运行freemocap,插上摄像头,从挥第一下标定板开始。
【免费下载链接】freemocapFree Motion Capture for Everyone 💀✨项目地址: https://gitcode.com/GitHub_Trending/fr/freemocap
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考