枢纽
数据集AMASS
输入模态proprioception

AMASS:把 15 个动捕数据集「统一成一张皮」

Naureen Mahmood, Nima Ghorbani, Nikolaus F. Troje, Gerard Pons-Moll, Michael J. Black(Meshcapade + MPI for Intelligent Systems + York + Saarland)。ICCV 2019;arXiv:1904.03278。 amass.is.tue.mpg.de · mocap datasetSMPLmotion prior 基础设施

🧠 一句话心智模型:CV 有 ImageNet,NLP 有 Common Crawl,但人体运动捕捉(mocap)一直没「ImageNet 时刻」——CMU 一套骨架、KIT 另一套、BioMotion 第三套,标记数量从 37 到 91 各不相同,根本没法拼起来训练。AMASS 干的事是:用 MoSh++ 把所有这些异构 marker 数据拟合到一个共同的 SMPL 网格参数化,输出统一格式(pose 90 维 + shape 16 维 + soft-tissue 8 维)。15 个数据集 → 42 小时 → 346 个受试者 → 11451 段动作,一个文件直接喂深度学习。

🎯 为什么重要:mocap 数据是物理角色 / motion prior 的「石油」

论文 §1 开宗明义:「Large datasets are the cornerstone of recent advances in computer vision using deep learning. In contrast, existing human motion capture (mocap) datasets are small and the motions limited」。具体瓶颈有三:

核心矛盾
规模小、种类窄:单一 lab 的数据集最多覆盖几百段动作,根本喂不饱深度模型。
参数化不统一:每个 mocap 数据集用不同的 marker set(37–91 个)和不同的骨架定义,「合并」就意味着要重定向(retarget),而 retarget 本质上会修改原始数据
丢了表面信息:传统 pipeline 把 marker 转成「关节角度」,把软组织抖动当噪声滤掉——但论文 §2 反驳:soft-tissue motion 让角色看起来「活着」,是动画真实感的关键。

AMASS 的回答是:绕开「骨架」这一层,直接把 marker 拟合到带皮肤、带软组织、带手指的 SMPL+DMPL+MANO 网格上。任何骨架表示都能从网格推导出来,反过来不行——所以这是「最大公约数」表示。

💡 核心思想:MoSh++ = MoSh 的四个升级

方法核心是改进 MoSh(Loper 2014),称为 MoSh++。论文 §3 列了四个升级点:

MoSh++ pipeline:从异构 marker 到统一 SMPL 网格 异构 marker 37~91 个 不同 layout 15 个数据集 Stage I 12 帧 → 估 shape β + latent marker 位置 Stage II 逐帧 → pose θ + soft-tissue φ SMPL + DMPL β (16) 形状 θ (90) 姿态 + 手 φ (8) 软组织 6890 vertices AMASS 15 datasets unified 42 hrs / 346 subj 11451 motions 统一 .pkl 格式
图 1:MoSh++ 两阶段拟合。Stage I 用 12 帧估形状 β 和 latent marker 位置(per-subject 一次);Stage II 逐帧估 pose θ 和软组织 φ。输出是 SMPL 网格参数,任何骨架都能从网格推导。

🛠️ MoSh++ 相对 MoSh 的四个升级(论文 §3)

升级MoSh(2014)MoSh++(本文)
① 身体模型SCAPE / BlendSCAPE(与主流图形软件不兼容)SMPL:6890 顶点 + UV map + 24 关节运动学树,主流引擎和图形包都支持
② 软组织动力学用 identity shape 变化「冒充」软组织(不真实)DMPL 8 维 φ 系数,从 DYNA 4D 扫描学到的真软组织空间
③ 手部不估计手SMPL-H / MANO:28 个手部关节,手部 pose 90 维参数投影到 24 维 MANO PCA 子空间(双手,论文 §3.2)
④ 超参 + 评估少量拟合,凭经验调新建 SSM 数据集(同步 4D 扫描 + 67 markers,3 受试者 × 30 动作)做线搜索 + cross-validation
🔮 关键工程细节(论文 §3.2)
marker 自适应权重:$b=46/n$ 自动按 marker 数缩放 data term,所以同一套 $\lambda$ 权重能跨 37/41/53/91 marker set 工作。
missing-marker 鲁棒:pose prior 权重 $q=(1+\frac{x}{|M|}\cdot 2.5)$,marker 丢得越多 prior 拉得越紧(最大 3.5×)。论文 Fig.4 展示脚部 marker 全丢时仍能维持合理姿态。
graduate optimization:4 个退火阶段,$\lambda_D$ 翻倍、正则项减半——避免局部最优。
📦 SMPL 参数维度速查(论文 §3.1):每帧输出 β(16) + φ(8) + θ(90),其中 θ 是含手部关节的完整 SMPL 姿态参数(论文原文:「the full SMPL pose parameters (90 dimensions), including hand articulations」)。需要的话还能直接 render 纹理网格(SMPL 自带 UV map)。

📊 关键结果:精度反超 MoSh,规模 10× 于以往

MoSh++ 精度(论文 §4.3-4.4,SSM 测试集,scan-to-mesh 距离 mm)

任务marker 数MoShMoSh++提升
Shape 估计4612.1 mm7.4 mm-39%
Pose 估计(无软组织)4610.5 mm8.1 mm-23%
Pose 估计(含软组织)4610.24 mm7.3 mm-29%
参考:scan-to-scan 基准~0.5 mm(不同扫描配准本身的误差下限)

论文 §4.3:「MoSh++ with only 46 markers is nearly as good as MoSh with 67 markers」——精度提升同时还能用更少 marker。

AMASS 数据集组成(论文 Table 1,15 个来源数据集)

数据集markerssubjectsmotionsminutes
ACCAD822025827.22
BioMotionLab411113130541.82
CMU41972030559.18
KIT50554233662.04
MPI HDM05414219147.63
Eyes Japan3712795385.42
TCD Hand911628.05
其他 8 个
Total37–9134611,4512,488.01(≈ 42 小时)

运行时(论文附录 §2,2015 MacBook Pro i7)

阶段耗时
Stage I(per sequence)~25 分钟
Stage II 无软组织~0.5 秒/帧
Stage II 含软组织~2 秒/帧

🌐 在领域中的位置

CMU / KIT / HDM05(各 lab 独立 mocap,骨架各异) MoSh(Loper 2014,SCAPE 上的首版 surface fitting) AMASS + MoSh++(SMPL 统一格式)⭐ BABEL / HumanML3D / Motion-X(在 AMASS 上加文本/语义标注) ASE / CALM / AMP / PFIC(用 AMASS 训 motion prior)

AMASS 是物理角色动画 / motion prior 这条线的「ImageNet」:几乎所有 2020 年后的 motion prior 工作(AMP、ASE、CALM、PULSE、MotionGPT、HumanML3D、Motion-X)都以 AMASS 或其子集为训练数据。它的统一 SMPL 格式也是 SMPL-X / MANO / FLAME 生态扩展的起点。论文 §6 的 future work(FLAME 面部、实时运行)后续都被 AMASS 系列作品(SMPL-X、STAR、PIXIE)逐步实现。

❓ 常见误区

AMASS 是「新数据集」还是「老数据的统一」?

后者。AMASS 本身没采新动作(除了用于评估的 SSM 30 段),它的核心贡献是「把 15 个已有 mocap 数据集用 MoSh++ 拟合成统一 SMPL 格式」。规模来自聚合,精度来自 MoSh++

为什么不直接用关节角度?

论文 §1 + §2 给了三点:(1) 关节角度依赖骨架定义,不同数据集骨架不同,合并就要 retarget,retarget 改数据;(2) 关节丢了表面信息(无法 render、无法估软组织);(3) 关节角度无法恢复 marker,而 SMPL 网格可以正向生成任何 marker set

42 小时听起来不多?

对比 ImageNet 的百万级样本,42 小时 mocap 确实小。但 mocap 数据的「密度」高:每秒 30-120 帧的连续姿态流,每帧是高维 (90+ 维) 时序样本。论文 §1 也承认 mocap 数据规模仍是限制——这正是后续 AMASS 扩展、合成数据(如 SURREAL、HumanML4D)的动机。

MoSh++ 是实时的吗?

不是。论文附录 §2:Stage II 含软组织 ~2 秒/帧,远低于实时(60 fps 需 16ms/帧)。论文 §6 future work:「current runtime for MoSh++ is not real-time」,提到可以用 TensorFlow 并行化。实际使用中 MoSh++ 是离线跑一次、之后所有人只用拟合好的 SMPL 参数。

SMPL / SMPL-X / SMPL-H / MANO / FLAME 什么关系?

都是 MPI 同一系列的参数化人体部件模型:SMPL(身体)→ SMPL-H(+手)= AMASS 用的版本 → MANO(仅手)→ SMPL-X(身体+手+脸)→ FLAME(仅脸头部)。AMASS 选 SMPL-H 因为发布时 SMPL-X 还不完全,且 SMPL-H 的手部 marker 数据极少(只有 TCD 等少数数据集)。

为什么不用 IMU / 视频动捕?

AMASS 只处理光学 marker-based mocap。IMU 噪声大、视频动捕精度不够,都达不到 scan-to-mesh ~7mm 的精度。论文 §3.1 强调「work directly with the markers and not the skeleton」——这要求输入是可靠的三维 marker。