
独舞开始, 由于对更沉浸式和互动体验需求的增长, 焦点转向了多人编舞. 三大挑战: 多舞者碰撞, 单人舞者脚步滑动, 长群舞生成. 为此提出了自己的方法.
给定一个输入音乐序列 M={mi}i=1L, 其中 i={1,...,L} 表示音乐帧的索引, 群舞编排旨在生成一个相应的群舞动作序列 x={x(i)}i=1L. 在这里, x(i)={x(i),c}c=1C, 其中 x(i),c 是第 c 个舞者在第 i 帧生成的姿态, xc={x(i),c}i=1L 代表第 c 个舞者的动作序列. 为了简便起见, 我们使用 xt 来表示在 t 步时的 {xt(i),c}.
使用SMPL而不是SMPLX, 也就是说没有手部的建模, 包含脚跟和脚趾的二进制接触指示器, 还有根节点的3D位置, 音频特征使用Librosa提取特征集.
直接预测动作而不是预测噪声
这个是为了生成长视频, 原论文的介绍我没有看懂, 让gemini用废物大学生也能理解的方式解释, 大致就是为了读完一整本书的内容, transformer是全局索引, RNN是一页一页往下读, 因此有了SSM的状态更新公式, mamba的改进在于跳读(粗读, 细读)和并行处理.
舞者位置嵌入. 作者发现舞者在集体舞蹈中通常表现出明确的空间关系. 在特征中显式保持这种相对位置信息, 能够有效缓解舞者身份的模糊性, 从而减少碰撞. 实现方式是根据起始x的位置对动作序列排序, 并加入位置编码.
融合投影. 该模块的设计基于一个高维几何原则: 在高维特征空间中, 数据往往更容易被区分. 实现方式是输入特征张量维度为 x∈RC×L×d(其中 C 为通道数/舞者数, L 为帧数, d 为隐藏维度), 首先将张量重塑为更高维度的 x′∈RL×(C×d), 然后通过一个三层MLP进行整体映射, 生成潜在空间特征, 最后再重新排列还原为各个舞者的独立特征. 与传统的"对每个舞者特征单独进行简单投影"不同, 这种方法能够让模型在更高维的空间中同时捕捉整个群体级别的差异.
序列解码器. 负责从长序列数据中进行高效的特征提取, 实现方式是动作特征首先通过自注意力机制进行局部的细粒度特征建模, 紧接着利用 Mamba 层进行全局的特征选择. 条件注入有两条分支, 一是cross attn, 二是与时间步, 交换模式S的拼接通过FiLM注入. 其中交换模式S记录了位置先验(舞者在生成序列的最后一帧, 从左到右的最终位置排列顺序), 减少频繁换位带来的空间不确定性.
这篇工作的上一个工作设计了两步工作流, 先预测轨迹再预测动作, 这篇变成了端到端, 无法提前获得干净的轨迹坐标, 因此初步生成粗糙的动作, 从中提取轨迹进行二次修正.
具体方法是第一步从粗糙动作序列中提取舞者的位置坐标, 在计算逐帧的移动速度, 第二步预测适配的动作, 第三步上下半身拼接.
多训练损失算基本操作了. 基础重建损失, 关节速度损失, 物理足部接触损失, 正向运动学损失, 距离一致性损失(这个EDGE中没有, 群舞任务独有的)
长视频生成的一个trick, 传统方案使用重叠的方法, 前半段是干净的, 它的方案是前半段是加噪的, 与后半段一起去噪, 是有记忆的噪声.
超参数就不看了, 数据集是AIOZ-GDance提供的16.7小时数据, 指标比较了 1)群体运动真实性; 2)群体运动相关性; 3)轨迹交叉频率; 4)FID; 5)多样性; 6)运动-音乐一致性; 7)物理足部接触.
思考
这篇工作明显是在edge上改的, 它的核心trick是通过先生成轨迹避免碰撞, 前面是GDD, 后面接了一个FA(Foot Adaptor), 严格上不能叫做端到端, 写作很八股, 工作量不大, 每部分内容有点空.
它对任务进行了降维, 但限制了多样性, 假设起始位置在左边的人, 位置一直在左边, 用相对位置和排序去约束碰撞.
长视频+mamba这个点, 想起来师兄之前说过: mamba别用, 观察用了这玩意的论文, 后续都没有follow的工作.
这篇工作没有手部的接触, 甚至特意规避了人物的接触, 对我用处不大, 可以起到启蒙的作用.