On the Utility of 3D Hand Poses for Action Recognition¶
会议: ECCV2024
arXiv: 2403.09805
代码: https://github.com/s-shamil/HandFormer
领域: 视频理解
关键词: 3D hand pose, action recognition, multimodal transformer, skeleton-based, egocentric
一句话总结¶
提出 HandFormer,一种轻量级多模态 Transformer,将密集采样的 3D 手部姿态(捕捉细粒度动作)与稀疏采样的 RGB 帧(提供场景语义)结合,通过 micro-action 时序分解和 trajectory 编码高效建模手-物交互,在 Assembly101 和 H2O 上达到 SOTA,且纯 pose 模型以 5× 更少 FLOPs 超越已有骨架方法。
研究背景与动机¶
领域现状:AR/VR 头显的普及推动了第一人称手-物交互识别的研究。当前 SOTA 方法(如 SlowFast、Video Transformer)主要依赖多视角或单视角 RGB 流,计算开销大,不适合资源受限的 AR/VR 场景。同时,骨架动作识别领域(MS-G3D、ISTA-Net)主要面向全身骨架,对手部姿态的适配不足。
现有痛点: - 全身骨架方法不适用于手部:全身动作中存在静态参考关节(如头部),运动关节相对参考关节的变化是核心线索。但手部关节高度耦合(Pearson 相关系数 0.93 vs 全身 0.33),所有关节一起运动,缺乏静态参考点,因此远程时空依赖建模效果有限。 - 纯 RGB 方法计算代价高:密集采样 RGB 帧代价大,但降低时序分辨率又会丢失细粒度动作区分(如"拧紧"vs"拧松")。 - 纯 pose 无法识别物体:手部姿态擅长识别动词(verb),但无法编码交互物体信息。
核心矛盾:手部动作识别需要高时序分辨率理解细微运动,又需要视觉语义识别物体,但二者兼顾的计算成本很高。
本文目标 如何设计一个轻量级架构,既能以高时序分辨率捕捉手部细粒度运动,又能引入足够的视觉语义理解场景和物体?
切入角度:作者从手部骨架与全身骨架的统计差异出发——手部关节高度耦合、全骨架运动占主导、缺乏静态参考——因此提出时序分解(micro-action)+ 轨迹编码替代传统的远程时空注意力。同时,稀疏 RGB 帧足以提供物体语义。
核心 idea:用密集手部 pose + 稀疏 RGB 帧构成 micro-action 序列,通过 trajectory 编码实现时空因子化,以极低 FLOPs 达到多模态 SOTA。
方法详解¶
整体框架¶
输入:一个动作片段的密集 3D 手部 pose 序列(\(\mathcal{T}\) 帧,每帧双手各 \(J\) 个关键点)+ 稀疏采样的 RGB 帧。整个序列被分割为 \(K\) 个 micro-action 块,每块包含 \(N\) 帧密集 pose 和 1 帧 RGB。各 micro-action 经 Trajectory Encoder(编码 pose)和 Frame Encoder(编码 RGB)提取特征,通过 Multimodal Tokenizer 交互融合后,输入 Temporal Transformer 做时序聚合,最终输出动作类别。
关键设计¶
-
Micro-action 时序分解:
- 功能:将长序列切分为 \(K\) 个固定长度 \(N\) 的短窗口,每个窗口称为一个 micro-action,类似于"词"构成"句子"
- 核心思路:pose 序列通过线性插值调整到 \(\mathcal{T}'=(K-1)\times R + N\) 帧(默认 \(\mathcal{T}'=120\), \(N=15\), \(K=8\)),用滑动窗口(步长 \(R\))切出 \(K\) 个 micro-action。每个 micro-action \(M_k = [I_{h(k)}, \{P'_{g(k)+i}\}_{i=0}^{N-1}]\),即一帧 RGB + \(N\) 帧 pose
- 设计动机:手部关节高度耦合,远程时空注意力(如 CTR-GCN、ISTA-Net)效果有限甚至造成冗余。分解为短窗口后,只在局部建模时空依赖,参数共享效率高。消融显示 \(N=15\) 最优,比极端的逐帧(\(N=1\))或全序列(\(N=120\))好 4-5%。
-
Trajectory Encoder:
- 功能:将 micro-action 内的密集 pose 序列编码为一个特征向量
- 核心思路:采用 Lagrangian 视角——不是按帧处理所有关节,而是将每个关节的 \(N\) 帧 3D 坐标看作一条轨迹(\(3\times N\) 维向量)。所有关节共享参数的 Single-Joint TCN 将轨迹编码为 \(2J\) 个 Local Trajectory Token。另有一个独立的 Wrist-TCN 处理整个动作序列的手腕 6D pose(位置+朝向),生成一个 Global Wrist Token 作为全局运动参考。然后对这些 token 做 self-attention + 时空平均池化
- 设计动机:手部动作中全骨架运动占主导,关节间关系变化小。轨迹编码自然捕捉每个关节的短期运动模式,而 Global Wrist Token 弥补了手部缺乏静态参考关节的问题(消融显示加入后 verb 准确率从 64.17% 提升到 64.90%)
-
Multimodal Tokenizer:
- 功能:融合 RGB 特征和 pose 特征,生成增强的多模态 token
- 核心思路:将 frame feature \(f_k^{\text{RGB}}\) 和 trajectory encoding \(f_k^{\text{Pose}}\) 拼接后通过 MLP 投影到共享空间,得到 PoseRGB 特征,然后 split 为两部分分别加回原始 RGB 和 pose 特征。这种残差式交互让两种模态互相增强
- Frame Encoder 使用冻结的 DINOv2 ViT(或预训练 ResNet50)处理单帧 RGB,生成手部 1.25× 扩展裁剪和全局场景两种特征
-
Temporal Transformer:
- 功能:聚合 \(K\) 个 micro-action 的多模态 token 进行时序建模
- 核心思路:\(2K\) 个 token(每 micro-action 一个 RGB token + 一个 pose token)加上正弦位置编码和可学习的模态嵌入,送入标准 Transformer(HandFormer-B: \(d=256\), 2 层;HandFormer-L: \(d=512\), 4 层),[CLS] token 输出用于分类
损失函数 / 训练策略¶
总损失 \(\mathcal{L} = \mathcal{L}_{cls} + \lambda_1 \mathcal{L}_{verb} + \lambda_2 \mathcal{L}_{obj} + \lambda_3 \mathcal{L}_{ant}\),其中:
- \(\mathcal{L}_{cls}\):动作分类交叉熵损失
- \(\mathcal{L}_{verb}\), \(\mathcal{L}_{obj}\):分别对 verb 和 object 的辅助监督。verb class token 只注意 pose 编码,object class token 只注意 RGB 特征,强制模态解耦
- \(\mathcal{L}_{ant}\)(Feature Anticipation Loss):给定第 \(k\) 个 micro-action 的 PoseRGB 特征,预测第 \(k+1\) 个 micro-action 的 RGB 特征(L1 距离),鼓励模型理解"手部运动导致的视觉状态变化"
- 超参数:\(\lambda_1=1.0\), \(\lambda_2=1.0\), \(\lambda_3=2.0\);SGD,lr=0.025,50 epochs,step decay
实验关键数据¶
主实验¶
在 Assembly101(大规模多视角手部组装数据集,1380 个细粒度动作)和 H2O(36 种手-物交互动作)上评估:
| 方法 | 模态 | GFLOPs | Assembly101 Action | Assembly101 Verb | H2O Action |
|---|---|---|---|---|---|
| MS-G3D | Pose | 21.2 | 28.78 | 63.46 | 50.83 |
| ISTA-Net | Pose | 35.2 | 28.14 | 62.70 | 89.09* |
| TSM | RGB | 33.0 | 35.27 | 58.27 | - |
| RGBPoseConv3D | Pose+RGB | 68.9 | 33.61 | 61.99 | 83.47 |
| MS-G3D + TSM (late fusion) | Pose+RGB | 66.2 | 39.74 | 65.12 | - |
| HandFormer-B/21×8 (Pose) | Pose | 4.2 | 28.80 | 65.33 | 57.44 |
| HandFormer-B/21×8 (Pose+RGB) | Pose+RGB | 47.6 | 41.06 | 69.23 | 93.39 |
*ISTA-Net 在 H2O 上额外使用了 6D 物体 pose,不直接可比。
关键结论: - 纯 pose 模型以 5× 更少 FLOPs 超越 MS-G3D/ISTA-Net 的 verb 识别 - 多模态模型超越 MS-G3D+TSM late fusion(强 baseline),且超越 RGBPoseConv3D 约 7.5% action accuracy - H2O 上 action 准确率 93.39%,比之前最好的 H2OTR (90.90%) 高 2.5%
消融实验¶
| 配置 | Verb Accuracy | 说明 |
|---|---|---|
| Full model (21 joints + Global Wrist) | 64.90% | 完整 pose-only 模型 |
| w/o Global Wrist Token | 64.17% | -0.73%,说明全局运动参考有用 |
| 11 joints | 64.77% | 仅去掉次要关节影响很小 |
| 6 joints (指尖+手腕) | 63.70% | 极高效但准确率可接受 |
| Micro-action 长度 \(N\) | 1 | 15 | 30 | 60 | 120 |
|---|---|---|---|---|---|
| Verb Accuracy | 59.12% | 63.70% | 63.68% | 63.51% | 62.29% |
| 模块组合 | Assembly101 Action | H2O Action |
|---|---|---|
| 基础 (无 tokenizer, 无辅助损失) | 38.98% | 85.95% |
| + Multimodal Tokenizer | 40.19% | 88.84% |
| + Feature Anticipation Loss | 40.24% | 89.26% |
| + Verb & Object Loss | 41.06% | 93.39% |
关键发现¶
- Micro-action 长度 15 最优:太短(逐帧)丢失轨迹信息,太长(全序列)丢失局部精细运动,15 帧在两者间取得最佳平衡
- 仅 1 帧 RGB 即可超越纯视频 TSM:说明 pose 作为运动编码足够高效,RGB 只需提供物体语义
- 3D pose vs 2D pose:3D 输入比 2D 输入高约 5%(63.70% vs 58.92%),因手部自遮挡严重,2D 投影丢失深度信息
- 单视角 + Pose 媲美多视角:单视角 RGB + 3D pose 的 verb 识别(69.23%)接近 8 个 RGB 视角融合(70.99%),但 FLOPs 低 5×+
- 跨视角泛化:在 view 4 训练、view 1 测试时仍优于直接在 view 1 训练的 TSM,3D pose 提供了天然的视角无关性
亮点与洞察¶
- 手部骨架 vs 全身骨架的深入统计分析:通过 Pearson 相关系数(0.93 vs 0.33)定量证明手部关节高度耦合,为 micro-action 时序分解提供了坚实的动机。这种"先分析数据特性、再设计架构"的思路值得学习
- Lagrangian 轨迹编码:将每个关节视为独立追踪实体,用其时间轨迹而非空间快照来表征,巧妙地利用了手部关节耦合运动的特点,同时天然实现了时空因子化
- 密集 pose + 稀疏 RGB 的互补设计:这个"廉价模态提供时序分辨率,昂贵模态提供语义"的范式可以迁移到其他多模态场景(如 IMU + 稀疏视频、音频 + 稀疏帧)
- Feature Anticipation Loss:利用"初始视觉状态 + 手部运动 → 预测结果状态"的因果直觉设计自监督信号,在 H2O 上贡献了约 4% 提升
局限与展望¶
- 依赖手部 pose 估计质量:在遮挡或手部出视野场景下 pose 噪声大。作者承认了这个问题但未提出解决方案。可考虑设计 noise-robust 的 trajectory 编码或引入 pose 置信度加权
- RGB 帧均匀采样:当前假设所有 micro-action 的 RGB 帧同等重要,但实际上关键帧(如抓取瞬间)比过渡帧信息量更大。自适应帧采样策略可能进一步提升效率和精度
- Frame Encoder 依赖大模型:默认使用 DINOv2 ViT-g/14(冻结),虽然提出了 ResNet50 替代,但后者需要额外的 TSM 预训练。端到端轻量化 frame encoder 有提升空间
- 仅在两个数据集验证:Assembly101 和 H2O 都是受控环境下的手部交互,缺少 in-the-wild 场景验证(如 Ego4D、Epic-Kitchens)
相关工作与启发¶
- vs MS-G3D / ISTA-Net(骨架方法):它们通过大感受野的图卷积或全序列 attention 建模远程时空依赖,适合全身骨架但对手部冗余。HandFormer 通过 micro-action 分解避免了远程依赖,在手部场景更高效更准确
- vs RGBPoseConv3D(多模态骨架+RGB):直接将全身骨架方法迁移到手部效果差(Assembly101 action 33.61%),HandFormer 通过专门的手部 trajectory 编码 + 稀疏 RGB 融合做到 41.06%,说明手部动作需要专门设计
- vs TSM / SlowFast(视频方法):纯视频方法在动作识别中表现不俗但计算昂贵,HandFormer 用极低成本的 pose 流承担了运动建模,RGB 只需稀疏采样提供物体语义
- 这篇论文的 micro-action 概念与 NLP 中的 tokenization 有异曲同工之妙——将连续的运动序列离散化为语义单元再做序列建模
评分¶
- 新颖性: ⭐⭐⭐⭐ 手部骨架与全身骨架的差异分析切入点好,micro-action + trajectory 编码设计新颖,但各模块本身(TCN、Transformer、多模态融合)都是已有组件的组合
- 实验充分度: ⭐⭐⭐⭐⭐ 消融非常全面(关节数、micro-action 长度、损失组件、2D vs 3D、跨视角、多视角替代、帧数消融),在两个数据集上均有 SOTA
- 写作质量: ⭐⭐⭐⭐⭐ 动机推导清晰,从统计分析引出设计决策的逻辑链非常流畅,图表信息量大
- 价值: ⭐⭐⭐⭐ 对 AR/VR 场景的手部交互识别有实际意义,密集 pose + 稀疏 RGB 的框架范式值得借鉴