DirtyMoCap: Robust Motion Capture from Unconstrained Markers
Long Wang, Shuting Zhao, Shen Yan, Siyuan Yu, Xiaoben Li, Zeyu Cai, Yumeng Hou, Yuliang Xiu
cs.CV
2026-09-17
DirtyMoCap 用 113 个固定锚点接住乱序、有噪声、布局未知的标记,再用一个模型拟合 SMPL-H。遮挡加离群时,求解器关节误差 8.8 毫米,首帧初始化为 16.2 毫米。
Vicon、Qualisys、OptiTrack 的光学动捕精度高,但默认标记布局已知、编号稳定、轨迹干净。现场常常四件事叠在一起:布局没记录或中途更换,遮挡丢点,点重新出现后被换成新编号,噪声和跟错再带来离群点。论文称这类输入为 unconstrained markers,无约束标记。
SOMA 给无序点打标签,LocalMoCap、RoMo、OpenMoCap 靠标记到关节的图或链,仍绑死布局。DAMO 能换布局,但直接回归参数,精度有限。已知布局也要大量人工清洗。
DirtyMoCap 把无序点云映到身份固定的 proxy anchors(代理锚点),共 113 个:参数化人体 SMPL-H 的 52 个关节,加 61 个钉在网格顶点上的表面点。锚点与标记处在同一坐标系,距离能直接比;锚点在身上的位置预先定死,拟合时不用标注,也不用知道布局。
关节盖不住扭转。绕骨轴转动时,关节坐标几乎不变。四肢和躯干外侧的表面点拉住这个自由度,并给形状参数提供粗细比例。
三段式训练:先初始化,再在 24 帧上加轨迹,加长到 56 帧后端到端接入求解器。动作取 CMU 身体和 GRAB 手,2068 条序列。每批一套布局,标记数 38 到 175,并做洗牌、丢点、离群等增强。真实布局来自 SOMA 的 75 套配置。
合成测试在 SMPL-H 顶点上采样无序标记,身体用 CMU,手用 GRAB,2068 条序列里后 20% 做测试,平均 1687 帧。SOMA、LocalMoCap、OpenMoCap 只在各自布局上评,后两个要有序输入。同一个模型打全部布局。实验小节写明:关节误差低于 SOMA,在另两个方法自己的布局上持平或更好,顶点误差也低于 SOMA。
布局 2 且同时有遮挡和离群时,52 个关节的关节平均位置误差(MPJPE):初始化 16.2 mm,跟踪 7.6 mm,求解器 8.8 mm。比跟踪高,是平滑和先验拉回去的。耗时 3.08、12.22、23.03 ms/帧,合计 38.33 ms/帧。
SSM 用 67 个标记对齐同步扫描。MoSh++ 已知点与身体的对应,并把潜在标记约束在体表外平均 9.5 mm。DirtyMoCap 不用这些先验。
| 方法 | 指标 | 结果 |
| MoSh++(有对应) | 对称 Chamfer | 11.3 mm |
| DirtyMoCap | 对称 Chamfer | 15.3 mm |
| MoSh++ | 有效标记到网格 | 10.0 mm |
| DirtyMoCap | 有效标记到网格 | 7.5 mm |
| 均匀权重 LM | 稀疏离群 MPJPE | 31.0 mm |
| 只学置信度 | 稀疏离群 MPJPE | 1.5 mm |
| LM,10 步 | 遮挡加离群 MPJPE | 38.63 mm |
| 可学习求解器,10 步 | 遮挡加离群 MPJPE | 8.76 mm |
| LM,80 步 | 遮挡加离群 MPJPE | 7.64 mm |
对称 Chamfer(表面与扫描的双向最近距离)比 MoSh++ 高 4.0 mm,有效标记到网格从 10.0 mm 降到 7.5 mm。有效标记指离扫描 1 cm 以内、占总数 97% 的点。SSM 没有手指标记,手退回平均姿态。
稀疏离群把 10% 的锚点挪开 0.86 到 1.68 m,均匀权重 31.0 mm,只学置信度降到 1.5 mm。若再有 25% 的帧随机损坏一个部位,三项权重全开是 1.9 mm,只用置信度是 11.5 mm。同一批预测锚点上,10 步求解器的 MPJPE 为 8.76 mm,顶点平均位置误差(MPVPE)为 10.12 mm,好于 LM 的 30 步(8.91 mm),接近其 40 步(8.34 mm)。LM 跑 10 步则是 38.63 mm。
没见过的 config.d 直接测得 MPJPE 12.93 mm,手部 14.70 mm;精确布局微调到 7.57 mm。代理布局投票后整体 10.28 mm,手仍有 12.14 mm。同一模型跑通无布局记录的武术动捕,得到 HKMALA-Motion:134 条序列、平均约 8500 帧、约 180 分钟、22 个拳种,参数未经人工核对。
动捕的隐性成本在清洗,不在相机。一个模型覆盖训练见过的布局,标记数从 38 到 175,换配置不用另训一版。
稀疏离群从 31.0 mm 降到 1.5 mm,靠的是可学习置信度。扫描误差比 MoSh++ 多 4 mm,省掉的是标记对应关系。
布局已知、对应可靠时,MoSh++ 更贴扫描。这篇把专用布局模型收成一个模型先顶上,没有抬高光学动捕的精度上限。
论文承认三处短板:陌生布局上精度下降;手部顶点太密,代理布局投票不稳,有时得手工选顶点;换成别的参数化人体就要重做锚点、残差和雅可比并重新训练,初始化和轨迹模块可以留用。
合成对照并不对称。基线只在自己的布局上测,LocalMoCap 和 OpenMoCap 要有序输入。单模型跨布局这一点成立。摘要里的 consistently outperforms,到实验小节变成低于 SOMA、对其余持平或更好。求解器的 8.8 mm 高于跟踪的 7.6 mm。武术数据没人工核对,先验有没有抹平动作,论文没有量化。约 100 倍只指 CUDA 内核相对 PyTorch,端到端是 38.33 ms/帧。