跳转至

Text-Driven 3D Hand Motion Generation from Sign Language Data

会议: CVPR 2026
论文: CVF Open Access
代码: 无(项目页 https://imagine.enpc.fr/~leore.bensabath/HandMDM,作者承诺开源模型与数据)
领域: 3D视觉 / 人体理解 / 扩散模型
关键词: 手部动作生成, 文本条件扩散, 手语数据, 数据规模化, SMPL-X

一句话总结

本文借助大规模手语视频 + 手语词典 + LLM,自动构建了 130 万条「文本-3D手部动作」配对数据集 BOBSL3DT,并在其上训练出能由自由文本描述(手型、位置、手指/手臂运动)驱动的手部动作扩散模型 HandMDM,且对未见手势、异种手语乃至非手语手部动作都有不错的泛化。

研究背景与动机

领域现状:文本驱动的人体动作生成(text-to-motion)这几年很火,从 HumanML3D、Motion-X 到 MDM/MotionDiffuse 等扩散模型层出不穷,但绝大多数工作生成的是身体骨架,手部要么被忽略、要么只有粗糙的腕部位置。

现有痛点:要让生成的人体动作真正「有表现力」,精细的手部运动是关键,但这一块卡在数据上——常用动捕数据集压根不含手指关节,对应的文本标注也从不描述手;Motion-X 虽然用规则脚本编码了手型,但只逐帧看手指位置、不含动作级别标注,且整体仍以身体为中心;BOTH57M 专门人工标了手,却因标注成本高昂只有约 1.8k 条样本,规模太小。

核心矛盾:手部动作生成需要大规模带文本描述的 3D 手部数据,而高质量人工标注(精确、低噪)与规模(百万级)之间存在根本的成本矛盾——你不可能让人手工标百万条手势文本。

本文目标:(1) 找到一种能把「文本-手部动作」配对规模化到百万级的自动化方法;(2) 验证在这种高规模、但不可避免带噪的数据上,能不能训出鲁棒的文本条件手部动作生成模型。

切入角度:手语视频天然蕴含丰富、精细的手型和手部运动,而且已有 BOBSL 这种 1400 小时、被密集伪标注过手势类别的超大规模 BSL(英国手语)数据;同时 SignBank 这类手语词典对每个手势词条都标注了手型、起止位置等音系学(phonology)属性。把「视频里的 3D 动作」和「词典里的属性描述」对接起来,就能批量生产配对。

核心 idea:拥抱「高规模 & 高噪声」路线——用单目 3D 重建从手语视频抽动作、用 LLM 把词典属性翻译成自由文本描述、再用检索模型把两者自动对齐,造出百万级数据,然后只对标准扩散模型做最小改动来训练,让规模本身扛起鲁棒性。

方法详解

整体框架

方法分两大块:自动数据构建(Sec 3.1,本文真正的贡献)和扩散模型训练(Sec 3.2,刻意做最小改动)。数据构建要解决的根本问题是:手语视频里有动作但没有「手部文本描述」,词典里有属性描述但没有连续 3D 动作,二者需要被自动配对成可训练的「文本→动作」监督信号。

整条管线是双路汇合:一路从 BOBSL 手语视频出发,用伪手势分类器打出帧级 pseudo-gloss,再用 HAMER(手)+ SMPLer-X(上身)做单目 3D 重建并缝合,得到「动作-手势」对;另一路从 SignBank 词典出发,取每个手势词条的音系属性、辅以本文的 HandMotionScript 检测出的动态线索,喂给 LLM 生成自由文本,得到「手势-文本」对。两路在「指派」环节汇合:因为一个 pseudo-gloss 词可能对应词典里多个手势变体,用 THMR 检索模型按动作相似度挑最匹配的变体,最终落成 130 万条「文本-3D动作」对(BOBSL3DT)。最后把这批数据喂给 HandMDM 扩散模型训练。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["BOBSL 手语视频<br/>1400 小时 BSL"] --> B["伪手势分类 + 3D重建<br/>HAMER 手 + SMPLer-X 上身缝合"]
    C["SignBank 词典<br/>音系属性"] --> D["2. HandMotionScript<br/>规则检测动态运动线索"]
    D --> E["LLM 文本生成<br/>属性→自由文本描述"]
    B --> F["3. THMR 变体指派<br/>按动作相似度选词典变体"]
    E --> F
    F --> G["1. BOBSL3DT 数据集<br/>1.3M 文本-动作对"]
    G --> H["4. HandMDM<br/>SMPL-X 文本条件扩散"]
    H --> I["文本驱动的 3D 手部动作"]

关键设计

1. BOBSL3DT 数据构建总管线:把手语视频「翻译」成百万级文本-动作监督

这是本文的命脉,针对的就是「手部文本数据规模上不去」这个痛点。作者把规模化拆成几个互补的零件串起来:① 视频源用 BOBSL 的 1400 小时 BSL 广播,配上已有工作训出的强手势分类器(VideoSwin,输入 16 帧、输出 8k 词表内的手势类别),密集滑窗打出帧级 pseudo-gloss;过滤低置信帧、保留至少 \(m=6\) 连续帧的片段并合并近邻片段,得到约 190 万「视频-手势」对。② 3D 估计对每段视频用 HAMER 估精确的 MANO 手部姿态(手型和腕部朝向准),再用 SMPLer-X 估上身(全局位置稳),把 HAMER 的手腕和手缝合到 SMPLer-X 身体上,并对手臂关节做轻量优化让手臂旋转更自然。③ 文本侧取 SignBank 的音系属性 + HandMotionScript 线索,交给 LLM(Gemini 2.5 Pro)做 in-context 生成自由文本。

为做文本增强,每个 gloss 让 LLM 生成 3 条描述,且分「带/不带 HMS」两种共 6 条/动作——不带 HMS 的更偏手型、带 HMS 的含更多动态信息。一个关键决策是绝不把 gloss 词本身喂给 LLM:作者发现 LLM 对大词表或非 ASL 手势几乎没有知识,直接问 gloss 会高置信度地胡编(比如把 BSL 手势说成 ASL 手势),所以一律只走「外部词典属性」这条路绕开幻觉。最终 190 万对在保留 SignBank 词表内手势后降到 180 万,再经变体指派过滤到 130 万,划掉测试集后用 120 万训练。

2. HandMotionScript(HMS):给静态词典属性补上「动起来」的描述

SignBank 属性虽准,却常常说不清运动——它标的是「平手型」之类的静态标签,但像 SKY 这种「双手向两侧分开」的动态过程在属性里根本没有体现。HMS 针对的就是这个缺口。它仿照 PoseScript 实现一套规则,逐帧检测手到相关身体部位的距离、以及手掌朝向,并用 SignBank 属性来决定该测哪些身体部位的距离。这些距离按阈值离散成 closespread 等标签(阈值专门为精细手部场景调过),于是一段序列 [close, spread] 就能被后续 LLM 解读成「双手相互张开」的运动。实践中距离和朝向沿三个轴分别提取。它的价值在于:把「起止位置」之外的连续运动线索显式化,让 LLM 生成的文本既有手型又有动态,实验中加 HMS 在异种手语迁移上能稳定涨点。

3. THMR 变体指派:消解「一词多手势」造成的对齐噪声

把词典描述指派回视频动作并不是简单查表:即便 pseudo-gloss 指向了正确的词,也不知道视频里具体做的是哪个手势变体,更不知道该变体在 SignBank 里有没有。作者训了一个文本→手部动作的检索模型 THMR(结构类似 TMR),用它的动作编码器输出当 embedding,对每个 BOBSL 动作,在该 gloss 的多个词典变体里挑动作相似度最高的那个;实践中还用 k-medoids 聚类把无法匹配到任何变体的动作剔掉。有意思的细节是:训这个用于指派的 THMR 时用的是随机变体指派,但因为只用动作编码器、丢掉文本编码器,动作间排序依然可靠。消融显示,相比随机指派,THMR 指派把 seen R@1 从 18.77 提到 21.68,确实压下了噪声。

4. HandMDM:基于 SMPL-X 的文本条件扩散,刻意做最小改动

为了把研究焦点放在「自动造数据」而非模型花活上,生成器对标准扩散模型只做最小改动。它沿用 MDM-SMPL(在 MDM 上加 SMPL 支持),并进一步换成 SMPL-X 表达式身体模型以支持手部和脸部关节,称为 HandMDM。动作用 6D 旋转表示上身,向量维度 \(\mathbb{R}^{274}\)(每只手 15 个 6D 关节旋转、上身 13 个 6D 旋转、脸部 16 个参数)。Transformer 编码器输入是 CLIP 文本 token + 扩散步 token + 两个 register token + 带噪动作,用 MSE 预测去噪后的动作。训练时从一个动作的多条文本里随机采一条;5% 概率丢弃条件以支持测试时的 classifier-free guidance,扩散步数 100。这一块「朴素」恰恰是论文想传达的点:数据规模够大时,标准扩散模型就能扛起鲁棒生成。

损失函数 / 训练策略

扩散模型用预测去噪动作的 MSE 损失训练;条件丢弃率 5% 以启用 classifier-free guidance;扩散步数 100。评测侧另训了一个 THMR 检索模型(用自动指派后的 BOBSL3DT 配对),与生成所用的同一表示,用于算检索分数和 FID。

实验关键数据

主实验(域内 + 跨域迁移)

域内评测在 BOBSL3DT 人工校验的测试集上做,分 seen(722 个)/unseen(87 个)手势,主指标是「动作→动作」检索 R@k 和 FID。

输入控制方式 Seen R@1 ↑ Seen R@3 ↑ Unseen R@1 ↑ Unseen R@3 ↑
Gloss(封闭词表) 21.71 37.53 n/a n/a
Phonology(原始属性) 17.14 28.78 20.98 34.48
LLM(Gloss) 1.00 2.29 5.17 10.06
LLM(Phonology) 19.95 33.14 22.99 37.07
LLM(Phonology+HMS) 21.68 34.18 17.53 36.20

LLM(Gloss) 几乎全崩(R@1≈1),实锤了「只给 gloss、LLM 不懂手语」的判断;而 Phonology+HMS 的自由文本模型在保持 seen 性能的同时还能处理未见手势和自由文本输入。

跨手语(BSL→ASL)零样本迁移:

训练数据 ASL-Text R@1 ↑ ASL-Text R@3 ↑ MS-ZSSLR-W R@1 ↑ MS-ZSSLR-W R@3 ↑
仅 ASL-Text(baseline) 5.98 16.21 6.43 16.85
仅 MS-ZSSLR-W(baseline) 6.47 16.31 5.01 13.08
BOBSL3DT (Phon.) 14.29 27.51 12.41 24.52
BOBSL3DT (Phon.+HMS) 17.09 35.43 15.39 31.50

在另一种手语 ASL 上零样本迁移,本文模型远超用对应小数据集从头训练的 baseline(R@3 几乎翻倍),说明大规模 BSL 数据迁移得动。

消融实验

配置 Seen R@1 ↑ Seen R@3 ↑ Unseen R@1 ↑ 说明
随机变体指派 18.77 32.27 16.09 不消歧手势变体
THMR 变体指派 21.68 34.18 17.53 按动作相似度选变体,降噪
训练数据 100% 最高 最高 R@1 随数据量单调上升
训练数据更少 更低 更低 截取部分训练数据,性能单调下降

关键发现

  • 变体指派是关键降噪步:THMR 指派相比随机指派把 seen R@1 提了约 3 个点,验证了「百万级数据里一词多手势的对齐噪声」确实值得专门处理。
  • 数据规模单调增益:R@1 随训练数据比例单调上升且没饱和,呼应「高规模高噪声」路线——scale 还能继续推。
  • HMS 不是万灵药:在 ASL 迁移上加 HMS 涨点,但在 BOTH57M(描述更偏手型、少手臂/全局位置)上 HMS 收益有限——⚠️ BOTH57M 上两个变体的强弱以原文论述为准(作者明确说该集缺动态描述时 HMS 帮助不大)。
  • LLM 幻觉的工程绕法:只喂词典属性、绝不喂 gloss 名,是把 LLM 用进手语场景的实操关键。

亮点与洞察

  • 把「词典 + 视频 + LLM」三件套拼成数据工厂:手语视频出动作、手语词典出语义属性、LLM 出自由文本,三者本来各自独立,作者用一条检索式指派把它们焊在一起,造出比现有手部数据集大两个数量级的 BOBSL3DT。这种「拿现成的大规模带噪资源、自动对齐造监督」的思路可迁移到任何「有动作但缺文本」的领域。
  • 绕开 LLM 幻觉的姿势很实用:明知 LLM 不懂大词表手语,干脆不给它 gloss、只给结构化属性,把它降级成「属性→自然语言」的翻译器,幻觉就基本消失——这是用 LLM 做领域数据标注时值得复用的安全模式。
  • 「用随机标签训检索器、却只取动作端」:训 THMR 做指派时文本对齐是随机的,但因为只用动作编码器算动作-动作相似度,照样可靠——一个反直觉但聪明的工程取巧。
  • 拥抱噪声换规模:明确选「高规模高噪声」而非「小而精」,并用实验证明 scale 能扛起鲁棒性,是数据工程层面的态度示范。

局限与展望

  • 作者承认:模型对接触/触碰类精细动作不够准(如手指没贴到下巴),fine-grained 手型或文本细节过多时也常跟不全。
  • 评测偏向性:THMR 在 BOBSL3DT 上训练,跨域迁移评测可能偏向其训练分布;作者只用相关特征子集(手臂+手旋转)来缓解,但偏置无法完全消除。⚠️ 跨数据集 R@k 数值因任务难度/动作长度差异不可直接横比。
  • 数据噪声叠加:pseudo-label 本身可能错、3D 重建可能不精、LLM 可能漏细节、变体指派可能错配——多源噪声共存,目前靠规模硬扛,未来可在去噪、主动校验上做文章。
  • 缺真实代码/数据放出时间表,复现门槛取决于 BOBSL、SignBank 等资源的可获取性。

相关工作与启发

  • vs Motion-X:Motion-X 用规则脚本逐帧从手指位置编码手型,但只到帧级、不含动作级标注,且整体以身体为中心;本文专攻手部、有动作级自由文本描述,且规模大一个量级以上。
  • vs BOTH57M:BOTH57M 人工精标手 + 身体,质量高但仅约 1.8k 条且其目标是「由身体运动生成手」;本文以文本为唯一控制信号,靠自动管线把规模做到 130 万。
  • vs 手语生成(SLP)类工作(Progressive Transformers、SignAvatars、NeuralSignActors 等):它们多由 gloss/句子翻译生成手语、或只有「翻译」文本而无手部描述;本文反过来用手语数据当原料、生成由手型/运动自由文本驱动的通用手部动作,并能迁移到非手语手部动作。
  • vs MDM / MDM-SMPL:本文在 MDM-SMPL 基础上换 SMPL-X 以支持手部,模型本身刻意最小改动,把创新点全压在数据侧。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次把「纯文本→3D手部动作」这一新任务做到百万级数据,数据构建管线设计巧妙。
  • 实验充分度: ⭐⭐⭐⭐ 域内 + 跨手语 + 非手语三档迁移 + 多项消融,较完整;但部分跨域结论受评测器偏置影响。
  • 写作质量: ⭐⭐⭐⭐ 动机和管线讲得清楚,噪声来源诚实交代;部分细节压进附录。
  • 价值: ⭐⭐⭐⭐⭐ 数据集与模型承诺开源,为「有表现力手部动作生成」这一新方向提供了关键的规模化基座。