Learning Dense Hand Contact Estimation from Imbalanced Data¶
会议: NeurIPS 2025
arXiv: 2505.11152
代码: 有
领域: 人体理解
关键词: 手部接触估计, 数据不平衡, 类别平衡损失, 大规模训练, ViT
一句话总结¶
提出 HACO 框架,通过平衡接触采样(BCS)解决类别不平衡和顶点级类别平衡损失(VCB Loss)解决空间不平衡,首次在 14 个数据集(65.5 万图像)上训练稠密手部接触估计模型,在多种交互场景下达到 SOTA。
研究背景与动机¶
手部接触估计对理解人手交互至关重要,近年来手部交互数据集覆盖了物体、另一只手、场景和人体等多种交互类型。然而,从这些数据集中有效学习稠密手部接触估计面临两个核心挑战:
- 类别不平衡:手部接触数据集中大部分区域不在接触状态。DexYCB 的非接触:接触比为 2.7:1,InterHand2.6M 高达 19.5:1,Decaf 为 21.7:1
- 空间不平衡:手部接触高度集中在指尖区域(因为运动捕捉数据集中的动作多涉及指尖的精确控制),导致模型难以泛化到手掌、手背等其他区域的接触
作者的核心洞察:这两种不平衡需要不同策略分别处理——类别不平衡需要采样策略,空间不平衡需要损失函数设计。
方法详解¶
整体框架¶
HACO 基于 ViT 骨干(HaMeR 预训练权重):
- 图像编码:RGB 图像 → Patch Embedding → ViT → 图像特征 \(\mathbf{F} \in \mathbb{R}^{1280 \times 16 \times 12}\)
- 接触解码:Contact Token 作为查询,通过自注意力 + 交叉注意力 Transformer 与图像特征交互
- 输出:线性层 + Contact Initialization(可学习嵌入,类似残差连接)+ Sigmoid → 778 个 MANO 顶点的接触概率
- 多尺度监督:通过回归矩阵将 778 维映射到 336、84、21 维的粗粒度表示
关键设计¶
1. 平衡接触采样(BCS)¶
目标:缓解接触/非接触类别不平衡。
接触平衡分数定义:
其中 \(\bar{\mathbf{c}} = \frac{1}{N}\sum_{i=1}^N \mathbf{c}_i\) 是数据集级别的平均接触概率。高分值表示接触模式偏离数据集均值更大。
非线性分箱:使用对数间隔将样本分为 \(K\) 个 bin(曲率参数 \(\beta = 5\)),对高接触分数区域提供更细的分辨率:
最后对各 bin 进行分层重采样,确保每个 bin 包含相同数量的样本。
2. 顶点级类别平衡损失(VCB Loss)¶
动机:标准 CB Loss 对整个手只有两个权重(接触/非接触),无法区分指尖(接触频繁)和手背(接触稀少)的差异。
核心改进:为每个顶点 \(v\) 计算独立的权重:
其中 \(n_{y_v}\) 是顶点 \(v\) 在数据集中出现类别 \(y\) 的次数。
最终 VCB Loss:
渐进式加权策略:训练初期仅使用全局 CB Loss,VCB 分量权重随 epoch 线性增加,在最后一个 epoch 达到最大值,实现从全局到顶点自适应监督的平滑过渡。
3. 辅助损失¶
- 正则化损失:预测接触与数据集均值的 L1 距离,防止过度偏离
- 平滑损失:鼓励预测少量大接触区域而非多个碎片化区域
损失函数 / 训练策略¶
总损失 = VCB Loss (权重 1.0) + 正则化损失 (权重 0.1) + 平滑损失 (权重 1.0)
训练配置: - 骨干:HaMeR 预训练 ViT - 优化器:AdamW,lr = \(10^{-5}\),batch size 24 - 学习率衰减:第 5 和第 10 epoch 乘 0.9 - 训练 10 epochs,单卡 NVIDIA A6000 - 数据增强:随机缩放、裁剪、旋转 + 低分辨率、噪声、模糊增强
实验关键数据¶
主实验(MOW 数据集,手-物体接触)¶
| 方法 | Precision ↑ | Recall ↑ | F1-Score ↑ |
|---|---|---|---|
| POSA | 0.134 | 0.128 | 0.101 |
| BSTRO | 0.204 | 0.126 | 0.112 |
| DECO | 0.246 | 0.235 | 0.197 |
| HACO | 0.525 | 0.607 | 0.522 |
HACO 的 F1 分数是 DECO 的 2.65 倍。
下游任务验证¶
| 接触方法 | 任务 | 关键指标 |
|---|---|---|
| DeepContact (3D输入) | 抓取优化 | F1=0.612, MPJPE=37.155 |
| HACO (图像输入) | 抓取优化 | F1=0.666, MPJPE=36.520 |
| EasyHOI 原始 | 手物重建 | MPVPE=21.254 |
| EasyHOI + HACO | 手物重建 | MPVPE=21.093 |
消融实验¶
| 策略 | Precision ↑ | Recall ↑ | F1-Score ↑ |
|---|---|---|---|
| w/o BCS | 0.520 | 0.542 | 0.481 |
| w/ BCS | 0.525 | 0.607 | 0.522 |
| 损失函数 | Precision ↑ | Recall ↑ | F1-Score ↑ |
|---|---|---|---|
| CE Loss | 0.530 | 0.294 | 0.348 |
| Focal Loss | 0.518 | 0.387 | 0.409 |
| CB Loss | 0.484 | 0.534 | 0.465 |
| VCB Loss | 0.525 | 0.607 | 0.522 |
关键发现¶
- BCS 主要提升 Recall:+12.0%(0.542→0.607),说明采样策略成功让模型学到更多接触样本
- VCB Loss 全面优于其他不平衡处理方法:包括 Focal Loss、CB Loss、Asymmetric Loss 等 8 种方法,F1 从最佳 0.465(CB)提升到 0.522
- 数据多样性至关重要:每种交互类型(HO/HH/HS/HB)都有独特贡献,只有完整组合才能在所有测试集上达到最佳
- 仅图像输入超越 3D 输入:HACO 仅用 RGB 图像就在 3D 抓取优化中超越了使用完整 3D 网格的 DeepContact
亮点与洞察¶
- 首个大规模手部接触估计模型:整合 14 个数据集,覆盖手-物体/手-手/手-场景/手-人体 4 类交互
- 将 CB Loss 从类别级推广到顶点级:VCB Loss 是一个简单但有效的创新,思路可迁移到其他空间不平衡问题
- 渐进式训练策略:从全局平衡到局部平衡的过渡设计简洁有效
- Contact Initialization:可学习的接触初始化嵌入类似残差连接,稳定训练
局限性 / 可改进方向¶
- 仅预测右手接触,未处理左/右手对称问题
- 评估时跳过完全无接触的手(Recall/F1 对纯非接触样本未定义),可能高估性能
- 14 个数据集的接触标注方式可能不完全一致,可能引入噪声
- 未探索时序信息(视频中的接触时序一致性)
- 多尺度监督的 4 个分辨率级别是固定的,未自适应选择
相关工作与启发¶
- DECO:通过众包标注扩展接触数据,但未处理不平衡问题
- BSTRO:基于 Transformer 直接从视觉输入预测人体-场景接触,但数据规模有限
- ContactOpt:用接触优化手物体姿态,但接触来自 3D 几何而非视觉
- 启发:VCB Loss 的顶点级加权思想可推广到其他密集预测任务的空间不平衡问题(如语义分割中的边缘/小物体)
评分¶
- 新颖性: ⭐⭐⭐ — BCS 和 VCB Loss 是对已有方法的合理扩展,创新程度适中
- 实验充分度: ⭐⭐⭐⭐⭐ — 14 数据集大规模训练 + 多场景测试 + 下游任务验证 + 全面消融
- 写作质量: ⭐⭐⭐⭐ — 问题定义清晰,数据分析详实
- 价值: ⭐⭐⭐⭐ — 提供了首个通用手部接触估计模型和实用的不平衡处理方案