AI编舞

不再只是「生成一段跳舞视频」:浙大和宇树把音乐、语音、网上的舞全塞进一个 910M 的机器人动作模型,真机跳起来了

2026年11月2日0 次阅读
不再只是「生成一段跳舞视频」:浙大和宇树把音乐、语音、网上的舞全塞进一个 910M 的机器人动作模型,真机跳起来了
AI 编舞 · 动作生成

过去一年,「AI 编舞」这个词被两拨人各说各话。

一拨人做视频:上传一张照片,选个舞种,几秒钟出来一段跳得像模像样的视频。好看,但你拿不到动作本身——它是一堆像素,不是一个能驱动别的角色的骨架。

另一拨人做动作:用音乐喂模型,生成 SMPL 格式的 3D 骨骼舞蹈。动作是拿到了,但没人保证这段舞在物理世界里跳得出来:脚可能穿地,重心可能飘,膝盖可能反折。

10 月 30 日挂上 arXiv 的一篇 86 页技术报告,试图把这两条线接到第三条赛道上去:让 AI 生成的动作,直接能被一台真实的人形机器人执行。

这篇报告叫《Movens-Zero: Scaling Humanoid Motion Foundation Models with Large-Scale Human Videos》,作者来自浙江大学、宇树科技(Unitree)、微软亚洲研究院、新加坡国立大学等。它做了两件事:一个叫 Movens-5M 的数据集,一个叫 Movens-Zero 的模型。数据集把互联网上的普通人视频,变成 500 万段"机器人真能执行"的动作;模型则把文字、音乐、语音、视频四种指令,统一翻译成 Unitree G1 的全身动作,并且在真机上闭环跑起来。

对「AI 编舞」这个栏目来说,最值得记的一句是:音乐第一次成为一个动作基座模型的一等条件,而不是附属功能。

3分钟看懂

  • 是什么:Movens-Zero 是一个"理解—生成—执行"三段式的人形机器人动作模型。输入文字、音乐、语音或视频,输出 Unitree G1 的全身关节轨迹(36 维:根位置 + 根四元数 + 29 个关节角),再由一个 50Hz 的跟踪控制器在真机上执行。
  • 谁做的:浙江大学、宇树科技、微软亚洲研究院、新加坡国立大学、北京大学、华东师范大学、HiThink Research、Bit Oasis 等联合,共同一作 Wendong Bu、Tinghong Ye、Qizhou Wang。
  • 什么时候:arXiv 提交时间 2026 年 10 月 30 日 15:25 UTC(太平洋时间 10 月 30 日上午)。代码仓库 10 月 29 日更新,四个规模的权重 10 月 25 日就放上了 Hugging Face。
  • 要花钱吗:代码、权重、数据集、基准全部公开,但许可证还没定——README 里原话是 "Project-specific code and checkpoint license terms have not yet been specified"。想商用,先自己去确认授权。
  • 能干什么:说一句"Dance some hip-hop"它跳嘻哈,说"Perform a salsa dance"它跳萨尔萨;给一段音乐它按节拍编动作;给一段网上的舞蹈视频,它把人的动作重定向到机器人身上照着跳。
  • 最大的坑:只支持 Unitree G1 一个本体。换一台机器人,整套动作表示和控制器都得重做。

为什么这跟"编舞"有关,而不只是机器人新闻

先把三者的差别摆清楚:

视频派(照片跳舞、AI 舞蹈视频):输出是像素。你能发朋友圈,但没法拿它去驱动游戏角色、数字人或者机器人。动作信息藏在视频里,取不出来。

骨骼派(音乐到舞蹈的 3D 生成,比如 Bailando、LODGE、EDGE 这一路):输出是 SMPL 骨架序列。动作信息拿到了,但 SMPL 是个统计人体模型——它有平均人的比例、平均人的关节活动范围。SMPL 说"这个动作合法",不代表一台 1.3 米高、29 个自由度、膝盖只能弯这么多的铁家伙做得到。

执行派(Movens-Zero 想进的这一派):输出直接是目标机器人的关节指令,而且训练时就把"能不能执行"当成筛选条件。

这个差别在论文里有一个非常具体的体现:Movens-5M 的数据管线最后一步叫"物理精修"(physical refinement),做法是把重定向后的动作丢进仿真里,用真实的跟踪控制器跑一遍,跑不动的就修,修不好就丢。也就是说,这套数据里每一段动作,都是被一台虚拟 G1 验证过能跳完的。

这一步是整篇论文最贵的地方,也是它跟"又一个 dance demo"的分水岭。

数据是怎么攒出来的:五段流水线

互联网视频的问题是:能拍到人跳舞,但拍不到"干净的、可还原的、机器人做得到的"动作。相机抖、遮挡、衣服宽松、镜头切换,任何一项都会让动作恢复出错。

论文的数据引擎分五段,每一段都在砍掉一批数据:

  1. 切片:从原始视频里切出动作连贯的片段
  2. 质量过滤:筛掉看不到人、时间上有断裂、动作模糊的片段
  3. 语义标注:给片段打上文字描述、场景、人物属性,并把语音、音乐对齐上去
  4. 动作恢复:从视频里还原人体动作(SMPL-X),再做物理修补(脚底接触、时间抖动、摔倒风险、穿模、脚滑)
  5. 物理精修:重定向到 G1,用跟踪策略在仿真里跑一遍,验证通过才留

最终的数字:

  • 1500 万段人类动作序列
  • 其中 500 万段通过执行验证,是"物理上可执行"的
  • 1 万小时以上的行为时长
  • 10.8 亿帧动作
  • 297 种细粒度动作类型,16 类场景
  • 4 种对齐的模态:文本、RGB 视频、语音、音乐

对照一下这张表里其他数据集:AMASS 是 40 小时,HumanML3D 是 28.6 小时,Motion-X++ 是 180.9 小时,MotionMillion 是 2000 小时以上但没有可执行性验证。Movens-5M 把"小时数"和"可执行"这两个指标同时拉到了另一个量级——这也是它敢叫"scaling"的原因。

有个细节值得单独说:项目页给出的样例里,第一段就是一段 5.06 秒的嘻哈舞。原始视频是室内舞蹈房、浅绿地板、白色墙面、荧光灯栅格、还有一根芭蕾把杆;标注里连"22 岁、160cm、55kg、女性、表情专注"都写了,还给了逐段的动作描述(手臂从头顶下落到深蹲、手接近地面、再起身侧移)。四联对比图并排放着:原视频 / SMPL 还原 / 重定向到 G1 / G1 真机跟踪。

这就是"编舞数据"在这个时代长什么样——不是一段 MIDI 配一串骨骼角度,而是一段带场景、带语义、带物理验证的多模态记录。

模型怎么搭的

架构上没玩太多花活,是三段:

第一段,理解。 一个冻结的全模态骨干(Qwen2.5-Omni-3B)把文字、视频、音频编码成统一的 token 序列。注意"冻结"两个字——它不参与训练,只负责把四种模态翻译到同一个语义空间里。这样做的直接好处是省算力,间接好处是四种模态天然共享一套"意图表示"。

第二段,生成。 一个基于 flow matching 的动作专家(action expert),输入是 context token + 机器人当前状态 + 时间进度,输出是一小段未来动作。这里的关键设计叫 MM-RTC(Multimodal Real-Time Chunking):每次预测 H 帧,只执行前 H_c 帧,剩下的 K = H − H_c 帧留作下一次预测的"前缀",重新用最新的机器人状态编码一遍。

打个比方:这就像人跳舞时的"边跳边看"。你不会先把整支舞在脑子里排完再动,而是跳两步、感受一下重心、再决定下一步。MM-RTC 就是把这个过程做成了工程实现——论文里执行/重叠的配置是 20 帧 / 10 帧,也就是 0.4 秒执行、0.2 秒重叠。

第三段,执行。 高频跟踪控制器把参考动作变成关节力矩,真机上跑。

训练上,一个动作专家同时学七种任务:文本→动作、音乐→动作(带/不带文字指令)、语音→动作(带/不带文字指令)、视频→动作(带/不带文字指令)。七个任务按数据量比例混合采样,共享同一个动作先验。这就是论文说的"task-mixed flow matching"。

规模上放了四档,只有动作专家在变,骨干不动:

档位动作专家参数层数 / 宽度
S64.2M3 / 768
M187.9M4 / 1,152
L500.1M6 / 1,536
XL910.5M7 / 1,920

音乐这一路,到底跳到什么水平

这是本栏目最该盯的部分。论文里音乐条件单独列了一张表,评的是 OMG 和 Movens-Intent 两个基准,指标里有一个直接相关的:BeatAlign(节拍对齐)。

OMG 基准上:

  • Movens-Zero 的 BeatAlign 是 0.60,最强基线 Bailando 是 0.59,LODGE 0.58,GENMO 0.54
  • FID-k(动作分布距离,越低越好)从最强基线的 80.46 降到 53.44
  • FID-g 从 2.66 降到 2.31
  • 摔倒率 0.00%
  • 12 项指标里 9 项最好或并列最好

Movens-Intent(自己构造的、与训练数据源不重叠的基准)上:

  • BeatAlign 0.61,是所有方法里最高
  • FID-k 58.43(最好基线 LODGE 59.43)
  • MPJPE 35.95mm,比最强基线降 11.9%
  • 摔倒率 0.00%

但有一个指标很难看,必须写出来:J-Limit(关节限位违反率)15.32%,而 OMG 基准上最好的基线 GENMO 是 2.05%。也就是说,它踩点踩得最准,但动作里有相当比例的帧,关节角度超出了机械结构的允许范围。

论文自己也没回避这点,原文写的是 "with remaining limitations in joint-limit compliance"。翻译成人话:模型学会了"这段音乐该这么动",但还没完全学会"这台机器的膝盖不能这么弯"。对真实部署来说,这是个必须靠下层控制器兜底的问题。

论文还列了两个失败场景:高动态动作(快速旋转、腾空)和大相机运动(镜头剧烈移动时动作恢复会崩)。这两条基本划定了它现在的能力边界。

那个"堆数据就变强"的曲线

这篇论文真正的核心论点是 scaling,不是某个单项指标。它做了两组控制变量实验。

只加数据(固定 XL 动作专家):

数据比例唯一小时数文本 R@3视频 MPJPE音频 BeatAlign语音 R@3跟踪分
1%122h12.72%132.82mm0.2313.98%0.21
3%367h15.81%129.31mm0.2917.88%0.28
10%1,223h24.92%110.55mm0.3821.76%0.36
30%3,669h41.80%87.90mm0.4554.34%0.50
100%12,231h62.57%40.90mm0.6174.30%0.72

五个指标全部单调上升,没有平台期。文本 R@3 涨了 49.85 个百分点,语音 R@3 涨了 60.32 个百分点,视频重建误差降了 69.2%。

只加模型(固定全量数据):S→XL,文本 R@3 从 10.30% 到 62.57%,语音 25.37% 到 74.30%,跟踪分 0.18 到 0.72,验证损失降 67.4%。

最关键的第三个发现:数据和模型的收益是互相放大的。同样把数据从 10% 加到 100%,S 档的文本 R@3 只涨 62.5%(相对值),XL 档涨 151.1%;语音 R@3 的相对提升,S 是 96.5%,XL 是 241.5%。

这条曲线对做编舞的人意味着什么?意味着"数据不够"和"模型太小"这两个借口,在这个方向上正在同时失效。当你把 1.2 万小时执行验证过的动作喂进去,模型就真的开始会跟着音乐跳、跟着视频学、跟着语音改。

想自己跑一遍,怎么用

代码是能跑的,不是只放论文。基本流程:

conda create -n movens-zero python=3.10 -y
conda activate movens-zero
pip install -e .
conda install -c conda-forge ffmpeg   # 音乐/语音/视频模态需要
source scripts/download_models.sh     # 默认拉 XL

四种模态共用同一个入口:

# 文本
source inference.sh --mode text --prompt "A person walks forward calmly." --name walk_forward

# 音乐
source inference.sh --mode music --input-path /path/to/music.wav \
  --prompt "Generate a dance sequence that matches the music."

# 语音
source inference.sh --mode speech --input-path /path/to/speech.wav \
  --prompt "Listen to the instruction and perform it."

# 视频
source inference.sh --mode video --input-path /path/to/video.mp4 \
  --prompt "Copy the motion in the video."

几个默认值决定了你的实际产出:输出 300 帧 @ 50FPS,也就是 6 秒;flow 采样 10 步;CFG 1.5;--device 默认 cuda:0。

也就是说,开箱能拿到的是 6 秒的动作片段,不是一整支舞。想更长,得自己改 --num-output-frames 并处理重叠拼接——MM-RTC 那套机制在训练时是有的,但推理脚本给的是最简路径。

输出是一堆 CSV + motion.npy:关节位置、关节速度、刚体位置、刚体四元数、线速度、角速度。要可视化得自己接 MuJoCo(仓库里有 sim2sim),要上真机得走 sim2real(需要一台 G1 + 一块推理 GPU + 机载全身控制器)。

现实一点的预期:这套东西目前的服务对象是机器人研究者。想做 AI 编舞内容的人,短期更实际的做法是把它当一个"物理可行性检查器"——用它的数据管线和跟踪验证思路,去判断一段生成的舞到底能不能落地。

适用场景

  • 人形机器人团队:想要一个能听懂多种指令、还能实时闭环的动作基座,这套是目前公开资料里数据规模最大的之一
  • 做具身智能研究:Movens-5M 的 500 万段可执行动作 + Movens-Intent 的四轨基准(8192 对条件-动作样本),是可以直接拿来对比的公共资产
  • AI 编舞/数字人从业者:想知道"音乐到动作"这条路上,工业级的数据管线和评估指标长什么样,论文的附录比正文更值得读
  • 做舞蹈游戏、体感交互:需要"动作是否物理合理"的判断依据时,这里的脚底接触、时间抖动、摔倒风险、穿模、脚滑五项检查可以直接借鉴

不适用场景

  • 想给别的机器人用:只支持 Unitree G1,29 个关节、36 维表示是写死的
  • 想要一支完整的舞:默认输出 6 秒,长时生成要靠自己拼
  • 想商用:许可证未定,权重仓库连 model card 都没有
  • 想用它做视频内容:它输出的是关节数据,不是渲染好的画面,中间还差一整套渲染管线
  • 要求零关节超限:音乐条件下 15.32% 的帧会超关节限位

避坑

  1. 别把 --num-output-frames 直接调大就以为能出长舞。MM-RTC 的重叠机制在训练里存在,但推理脚本给的是单次前向,直接拉长会出现动作漂移。
  2. 音乐输入必须是 16kHz 单声道。论文的训练配置里音频是 16kHz、0.6 秒局部窗口,采样率不对会直接毁掉节拍对齐。
  3. --initial-pose 别乱改。默认给的是 36 维 G1 初始姿态,换成别的机器人的姿态,跟踪控制器会立刻发散。
  4. 显存要留够。XL 是 910.5M 的动作专家,加上冻结的 Qwen2.5-Omni-3B 骨干,别拿 8G 卡试。
  5. 别信"能跳"就等于"跳得好"。论文自己的失败案例写得很清楚:高动态动作和快速镜头运动会崩。

成本与时间

  • 跑一次推理:单张 CUDA 卡,XL 档,6 秒动作,10 步采样。具体秒数论文没给,但从"910M 动作专家 + 3B 骨干"的体量看,消费级卡上是分钟级,不是秒级。
  • 自己训练:论文用的是 8 卡 DDP、bfloat16、全局 batch 512、100 万步。这个量级不是个人能复现的。
  • 微调:仓库给了训练脚本,支持单卡/多卡和断点续训。用 --max-steps 30000 这种量级做领域适配是现实的,前提是你有数据。
  • 数据成本:Movens-5M 是从原始互联网视频跑五段管线做出来的。想自建类似数据集,最贵的不是存储,是那一步"仿真执行验证"——每一段动作都要真的跑一遍跟踪。

行动建议

  1. 先看项目页的那段 5 分钟真机片子(movens-zero.github.io),它比论文更快告诉你这套东西现在能做到什么程度:文本指令、音乐、语音、网上视频四种输入,全部是真机,不是渲染。
  2. 如果你是做编舞生成的,直接翻论文附录 E 的评估协议和附录 A.2 的动作质量检查项——脚底接触、时间抖动、摔倒风险、穿模、脚滑这五项,是目前公开资料里少见的、成体系的"动作能不能用"的判据。
  3. 如果你在做人形机器人,把 Movens-5M 当 baseline。它的 297 种动作类型、16 类场景、4 种模态对齐,是目前少有的同时标注了"可执行性"的公开数据集。
  4. 商用前先发邮件问授权。README 明确写了许可证未定,这不是可以含糊过去的事。
  5. 别急着把它当成"AI 编舞的终点"。它解决的是"动作能不能被机器执行",没有解决"这段舞好不好看、有没有风格、有没有叙事"。编舞的艺术判断,还在人这边。

参考来源

  • arXiv 论文(一手,2026-10-30):https://arxiv.org/abs/2610.41877
  • 项目主页(一手,含真机演示与数据样例):https://movens-zero.github.io
  • GitHub 代码仓库(一手):https://github.com/wendell0218/Movens-Zero
  • Hugging Face 权重(一手):https://huggingface.co/wendell0218/Movens-Zero-XL
  • Hugging Face 数据集(一手):https://huggingface.co/datasets/wendell0218/Movens-5M
  • Hugging Face 基准(一手):https://huggingface.co/datasets/wendell0218/Movens-Intent

评论

0 条已公开
登录或注册后可以参与评论。

正在加载评论...