← 返回主页

春晚舞蹈机器人

把一段春晚群舞视频,变成 9 台 Unitree G1 人形机器人同步起舞。复刻 Datawhale every-embodied 教程,全链路跑通:视频 → 人体姿态 → 动作重定向 → 机器人 3D 演示。

9 位舞者 → 9 台机器人 PromptHMR · SMPL-X GMR 重定向 Unitree G1 · 29 DoF Kaggle GPU 推理 + Mac 本地演示 🕺 物理版续作:supermimic-dance →

演示

左:输入的人类群舞原片(前 24s)。右:重定向后 9 台 Unitree G1 的 3D 动作(viser 逐帧渲染,含原视频相机锥)。两侧均为 720 帧 @30fps,逐帧对齐。

输入 人类群舞原片
图 1 · 人类群舞原片(输入)—— dance_1.mp4 · 1280×720 · 检出 9 位舞者
输出 9 台 Unitree G1 机器人
图 2 · 9 台 G1 机器人重定向结果(输出)—— viser 3D 场景 · 720 帧 @30fps · SMPL-X → GMR → G1 29 DoF

人体动作 ──重定向──▶ 机器人关节轨迹

机器人侧由 viser 3D 演示逐帧定格截取后合成(非实时录屏,静态页无法承载 3D 引擎), 因此播放完全流畅,且与左侧原片逐帧对齐。完整交互版(可旋转视角、逐帧、切换轨迹)见仓库 README「跑法」。

主要结果

测试数据:本项目为复刻项目、无公开基准——输入为春晚群舞视频 dance_1.mp4(1280×720,1180 帧 @30fps ≈ 39s,detectron2 检出 9 位舞者;演示与重定向结果取前 24s = 720 帧),评测为复刻保真度的定性对照(原片与机器人重定向结果逐帧并排,见图 1、图 2)。

全链路复刻跑通:春晚群舞视频 → 9 位舞者姿态 → 9 台 Unitree G1 机器人动作 → 交互式 3D 演示。关键数字如下(复现步骤、踩坑与诚实边界详见仓库 README)。

关键数字

舞者 / 机器人
9 → 9
视频帧数
1180 帧 @ 30fps(≈39s)
机器人自由度
Unitree G1 · 29 DoF · 38 连杆
推理算力
Kaggle P100(CPU 无 NVIDIA 时的绕行)
全流程耗时
约 90–100 分钟
演示算力
Mac CPU(torch CPU + viser 0.2.23)

核心方法

Kaggle P100 · 全流程约 90–100 分钟 Mac CPU 01 输入视频 dance_1.mp4 · 1180 帧 detectron2 检出 9 位舞者 02 PromptHMR 单目 → SMPL-X 姿态 --static-camera 03 GMR 重定向 SMPL-X → G1 29 DoF 关节轨迹 04 机器人动作 9 条轨迹 38 连杆 · 30fps 05 viser 3D 演示 浏览器交互 旋转/逐帧/多轨迹
输入数据 模型推理 动作产物 硬件部署 输出演示

图 3 · 五阶段管线:输入视频 → PromptHMR(SMPL-X)→ GMR 重定向(G1 29 DoF)→ 机器人动作 → viser 3D 演示

输入一段单目群舞视频(dance_1.mp4,1280×720,无深度/多视角);输出 9 台 Unitree G1 的 29-DoF 关节轨迹(逐帧 38 连杆位姿,30fps)与 viser 3D 交互演示。五阶段,重推理在 Kaggle GPU(P100,全流程约 90–100 分钟),3D 演示在 Mac CPU。

阶段细节:PromptHMR 从单目视频重建 SMPL-X 人体网格与姿态序列(--static-camera 绕开缺失的 SLAM 权重);GMR 重定向输出 root_pos / root_rot / dof_pos;机器人动作为 9 条 robot_motion_track;viser 在 Mac 本地 CPU 实时渲染。