
# 面向真实场景的以人为中心的3D手-物体姿态估计

Siddhant Bansal $^{1}$ Zhifan Zhu $^{1}$ Shashank Tripathi $^{2}$ Jiahe Zhao $^{1}$ Michael J. Black $^{2}$ Dima Damen $^{1}$

 $^{1}$ 英国布里斯托大学，布里斯托

 $^{2}$ 德国图宾根马克斯·普朗克智能系统研究所 <https://sid2697.github.io/epic-contact>

摘要：从真实场景中以人为中心的RGB图像中估计精确的3D手-物体姿态仍具挑战性，原因在于严重的遮挡和模糊的接触区域。现有的基于学习的方法往往难以泛化到真实场景，且受限于监督数据的稀缺性。我们针对这些问题提出了两项贡献：首先，我们推出了EPIC-Contact数据集，这是一个包含2300个视频片段（62300帧）的真实场景以人为中心的数据集，其中包含密集的、一一对应的3D手-物体接触对应关系以及带姿态的网格模型；其次，我们提出了HOPformer，一种端到端的Transformer模型，能够单次前向传播同时预测双手和物体的姿态。该模型采用交叉注意力解码器，利用手部先验来约束物体特征，从而实现鲁棒的姿态估计。我们在实验室3D数据集ARCTIC以及我们新推出的EPIC-Contact数据集上测试了HOPformer。HOPformer在ARCTIC上的成功率达到82.4%（比当前最先进方法高出6.2个百分点）；在EPIC-Contact数据集上，其成功率几乎翻倍，同时接触偏差降低了75%。EPIC-Contact数据集、HOPformer的代码和检查点已公开发布：<https://sid2697.github.io/epic-contact>。

## 1 引言

我们日常会运用双手与物理世界互动。诸如在水槽边洗碗、抓取瓶子，或在炉灶上移动炊具等日常活动，都需要双手与物体之间的精准配合，这凸显出人类手部惊人的灵巧性与适应性。为AR/VR、机器人技术、人机交互/协作以及辅助技术等以人为中心的应用建模此类互动至关重要。然而，现有大多数研究都依赖于受控的、脚本化的实验环境，无法捕捉现实使用的复杂性 [^1] [^6] [^16] [^25] [^47]。在本研究中，我们的目标是从单次前向传播中恢复双手和物体的3D姿态，包括来自非脚本化第一人称视频的图像（见图1）。

由于手-物体互动场景中常见的物体和手部姿态种类繁多，这项任务本身就极具挑战性。而强烈的相互遮挡和模糊的接触区域更是进一步增加了难度。现有方法主要聚焦于受控的（实验室）环境 [^2] [^8] [^16] [^35] [^41] [^60]，正如图1（右侧）所示，它们往往难以应对真实场景 [^6] [^25] [^47]。

---

![Image](images/1772590e8c8aaa312a9cc83572e7478ddc2feb248722e22b6914e2f710f8d49a.jpg)

<div style="text-align: center;">Fig. 1: (Left) We introduce EPIC-Contact, an in-the-wild egocentric dataset for 3D hand-object pose estimation. Unlike typical in-lab MoCap datasets that require specialised equipment and capture limited backgrounds/object instances, EPIC-Contact provides diverse, cluttered real-world interactions with posed 3D hand-object meshes derived from dense, bijective contact annotations. (Right) Existing learning-based approaches do not leverage strong hand priors and hence do not generalise to in-the-wild scenarios. In contrast, our proposed HOPformer network enriches object features with hand priors to achieve superior performance on in-the-wild data.</div>

一个核心瓶颈在于监督数据的可用性。要在真实场景的交互数据上进行训练（或评估），就需要图像与手部和物体的真实3D姿态信息相匹配的数据。如图1（左）所示，迄今为止，这类3D真实数据都是通过昂贵的动作捕捉（MoCap）技术获取的[^2] [^16] [^35] [^41] [^55] [^60]，该技术需要精细的校准过程，因此难以广泛应用。此类数据通常具有简单、无杂乱背景的特点，无法反映现实世界中以自我为中心的场景的复杂性[^2] [^16] [^35] [^41]。

为了克服这些限制，我们提出了一种获取图像中手-物体交互的3D标注的新方法，从而实现可扩展的监督学习。具体而言，我们推出了EPIC-Contact数据集，包含2.3K个以自我为中心的视频片段，涵盖了9类物体的手部抓取情况，我们为这些数据标注了接触点以及配对的3D手-物体网格（图1，左）。EPIC-Contact数据集涵盖了多样化的背景和杂乱环境，其中的物体可能体积小、透明，或被严重遮挡，且处于复杂的自然交互场景中。我们的核心思路是在手部和物体上标注双向对应的3D接触点，这一做法与以往关于全身接触的研究一致[^12] [^57]。一旦获得这些双向接触点，我们便利用优化流程将这些标注转化为带姿态的3D手-物体网格。通过这种方法，我们获得了62.3K个标注帧，这是用于训练和评估的独特数据集。

尽管基于学习的3D手部姿态估计技术已取得快速进展[3, 33, 34, 48–50, 53]，能够在多样且具挑战性的场景中表现优异，但手-物体联合姿态估计方法却未能达到同等水平[^1] [^16]。这类方法无法建模手部与物体姿态之间的交互关系，其性能也因此受到影响，如图1（右）所示。

我们的思路是利用鲁棒的数据驱动型3D手部重建方法[^48] [^49]来指导手-物体联合3D姿态估计。我们提出了HOPformer，这是一种用于从RGB图像中单次提取手-物体联合3D姿态的端到端学习框架（图1，右）。

---

具体而言，我们设计了一个交叉注意力框架，将结构化的手部先验信息注入物体特征中，从而生成强大的交互特征。HOPformer在实验室环境[^16]和真实场景图像上均表现出良好的泛化能力，并取得了业界领先的结果。EPIC-Contact数据集与HOPformer模型共同推动了可扩展且稳健的3D手-物体姿态估计技术的发展。总结来说，我们的贡献如下：

1. 我们在EPIC-Kitchens[^13] [^74]数据集的2.3K个视频片段上标注了3D手-物体接触点，并据此提出了EPIC-Contact数据集。这使得能够在具有挑战性的真实场景图像上对手-物体姿态估计方法进行训练和评估。

2. 我们提出了一种基于学习的Transformer模型$\underline{\text{Hand-Object Pose transformer}}$（HOPformer），该模型利用预训练的手部先验信息，可在单次前向传播中回归出两只手及物体的姿态。

3. HOPformer在ARCTIC[^16]和EPIC-Contact数据集上均取得了业界领先的结果，在大多数指标上的表现都大幅优于以往的研究。

## 2 相关工作

手部与物体姿态估计：近年来，联合估计手部与物体的三维姿态受到了广泛关注 [^1] [^8] [^16] [^19] [^24] [^25] [^29] [^35] [^56] [^61]。现有方法均假设物体模板是已知的——无论是刚体 [^1] [^19] [^24] [^25] [^61] [^74] 还是可变形物体 [^16]。虽然大多数现有方法基于优化算法 [^6] [^19] [^25] [^47] [^61] [^74]，但也有少数方法采用基于学习的方式 [^1] [^16] [^24] [^56]。与HOPformer最为接近的研究成果是ArcticNet-SF [^16] 和JointTransformer [^1]，我们将二者作为对比对象。与HOPformer类似，这两种方法均采用编码器-解码器架构，用于回归手部与物体的姿态。其中，ArcticNet-SF [^16] 采用ResNet-50 [^26] 作为骨干网络，而JointTransformer则使用DINOv2 [^46] 来取得更优的结果。与这两者不同的是，HOPformer利用手部先验信息来丰富特征并提升性能。

另一系列研究探讨了无需CAD模型的物体重建方法[10,15,21,27,50,58,59,65–67]。尽管有报道称这些方法在泛化能力方面表现良好，但我们发现实际效果并不尽如人意；具体定性比较请参见补充材料中的[^9] [^15] [^65] [^67]。基于学习的方法在无需CAD模型的姿态估计方面的应用仍有待进一步探索。

手部姿态估计：手部姿态估计这一课题已被研究了数十年[^5] [^18] [^20] [^28] [^35] [^37] [^38] [^40] [^44] [^45] [^51] [^54]。近年来，随着大型3D手部姿态数据集的出现[^2] [^8] [^16] [^30] [^43] [^75]以及更先进的网络架构[^39] [^48] [^49] [^64] [^70]，HaMeR [^48]和WiLoR [^49]通过扩大模型规模和训练数据量，实现了在多种场景下稳健的手部姿态估计。然而，与HOPformer不同，这些方法仅专注于手部姿态估计。我们的核心思路是利用这些强大的手部先验知识，来实现手部与物体的联合姿态估计。

手-物接触标注：大多数用于手-物重建的数据集都是在受控的实验室环境中收集的[^2] [^4] [^8] [^16] [^17] [^41] [^60] [^68]。MOW [^6]是唯一一个提供配对手-物网格的野外数据集。

---

![Image](images/e39dc60fd94fe152e099358db912262b4cd03aeae815c24348c669c441ba7f51.jpg)

<div style="text-align: center;">Fig. 2: EPIC-Contact annotation process. Given a hand–object interaction clip, annotators (i) paint contact vertices on a subdivided MANO hand mesh (Sec. 3.1); (ii) parametrise each contact region with a 2-DoF contact axis (blue sphere/red line) and transfer it to the object surface with two clicks per axis, yielding bijective hand–object correspondences (Sec. 3.2); and (iii) fit posed hand and object meshes with EC-fit (Sec. 3.3). The EC-fit column visualises the fitted meshes and the one-to-one vertex correspondences. We perform quantitative quality checks on annotations for each stage.</div>

不过，目前对MOW中真实物体姿态的验证较为粗略，而手部与物体之间的细微接触关系则被忽略了。另一方面，人体姿态估计领域已经探索了多种为自然图像获取接触标注的方法。例如，DECO [^57]采用“顶点绘画”方法来标记身体上的接触区域。PICO [^12]进一步将这种接触区域标注扩展到物体上。受此框架启发，我们提出了一种用于标注第一人称视角图像中手部与物体接触的流程。

## 3 EPIC-Contact数据集

手部与物体重建的训练和评估需要配有3D手部及物体姿态标签的图像。我们收集了新的标注数据，为自然场景下的第一人称视角图像提供带3D姿态的手部与物体网格，将其称为EPIC-Contact数据集。重要的是，我们的流程采用了一种新颖的方法，能够手动且高效地收集双向对应的3D接触对应关系。随后，我们利用这些对应关系在优化框架中估算手部与物体的姿态。本节我们将介绍我们的标注流程及数据集统计信息。

### 3.1 标注手部接触区域

我们选用EPIC-Grasps数据集 [^74] 中的视频，该数据集包含具有挑战性且多样的手部与物体交互场景，且配有9类物体的3D网格数据。重要的是，该数据集经过人工标注，标出了稳定的抓取时间片段，在这些片段中手部会与物体保持稳定的接触。这使得我们只需标注单帧图像，就能将相同的接触标注应用到整个视频中。

第一步是标注手部与物体接触的区域。参照以往的研究[^57] [^62] [^63]，我们会在3D网格上标记出接触区域。

---

我们使用“顶点绘画”工具来进行标注。之所以选择标注手部网格，是因为其拓扑结构具有一致性（MANO模型[^52]），这能简化标注工作，同时还能提供规范的表示方式；相比之下，对几何形状各异且不规则的物体进行标注则要困难得多。

我们创建了一个界面（详见补充材料），该界面会显示手部与物体接触的视频以及3D MANO网格[^52]。与以往仅以单张图像为输入的研究[^57]不同，视频片段能为标注者提供更丰富的上下文信息，尤其是因为视频能呈现抓取过程中接触部位的多个视角。我们要求标注者在MANO模板网格的$N_V = 3106$个顶点上“绘制”接触标签，共$\mathcal{H} \in \mathbb{R}^{3106 \times 3}$个。需要注意的是，我们将标准的拥有778个顶点的MANO网格均匀细分至$N_V = 3106$个顶点，从而能够高精度地捕捉细微的接触区域。如果双手都发生接触，我们会依次标注每只手，并为每次标注注明对应的手侧。此外，标注者需根据视频上下文和抓取动作，推断并标注所有接触区域，包括那些在自我中心视图中被遮挡的区域。如图2所示，对于右手拿着的瓶子，手部上的顶点被标为黑色。

我们通过标注者间一致性来验证标注的准确性。我们按照DECO中的方法计算Fleiss' Kappa分数（$\kappa_h$）[^57]。如图2所示，我们统计了由12名标注者对10个视频进行标注后得到的$\kappa_h = 0.61$数值（相比之下，[^57]中的数值为0.65）。关于$\kappa_h$的具体计算细节，以及展示$\kappa_h$最高值和最低值示例的图表，详见补充材料。

### 3.2 物体上的接触区域

双射接触传递：确定手部的接触顶点后，下一步就是找到物体上对应的接触顶点。为了通过优化得到姿态正确的手-物体网格模型，我们需要在物体的这些顶点与手部的接触顶点之间建立双射映射关系。

我们借鉴ContactEdit的方法[^36]，用接触“轴线”来表示第3.1节中定义的接触区域。通过这种方式，我们可以用一个具有2个自由度的轴线来参数化每个接触区域，从而将接触区域映射到物体表面的问题简化为两次点击操作：确定接触轴线的起点及其方向。利用这条轴线，我们就能在保持对应关系的前提下将接触区域传递到物体上。这一流程被集成到一个交互式的网页工具中。

一个关键的挑战在于确定手部哪些接触区域需要参数化以便进行传递。单独处理每个手部顶点既繁琐又耗费成本；而若为整个手部使用单一的接触轴，则不符合直觉且容易出错。为了在速度、便捷性和准确性之间取得平衡，我们将手部划分为三个区域：拇指、四根手指和手掌（见图2）。我们利用WiLoR的姿势参数来估算手指间的间距[^49]。因此，对于每个视频片段而言，最多有三个接触轴（取决于接触区域）需要传递；也就是说，只需最多六次点击操作，就能获得完整的3D手部与物体接触对应关系。关于界面的更多细节详见补充材料。

---

物体缩放：来自[^74]的物体网格具有标准尺度。不过，为了正确传递接触区域，网格的尺度必须与图像中物体的尺度相匹配。我们利用VLM（Gemini 2.5 [^11]）通过特定类别的提示词来估算尺度。我们让VLM估算多个用于非均匀缩放的尺度值，而非单一的各向同性缩放因子。例如，对于“平底锅”这类物体，我们会分别查询其直径和手柄长度。这样就能将模板物体网格的各个部分缩放至与视频中的实例更匹配的程度。

为了验证这些尺度预测结果，我们选取了涵盖全部9个类别的30个物体进行采样，并手动将其与物体的真实尺寸进行对比。我们挑选已知品牌的物体（例如特定品牌的油瓶），测量同一物理物体的尺寸。借此，我们能够评估视觉语言模型得出的尺度估计值与真实尺寸的吻合程度，最终得到的平均绝对误差为0.94厘米（相对误差为5.9%），其中82.5%的样本尺寸落在真实尺寸的$\pm10\%$范围内。关于所用提示词、尺度等级以及验证分析的更多细节，请参阅补充材料。

物体接触标注的验证：我们对4名标注员标注的10段视频计算标注者间一致性（$\kappa_o$），结果为0.62。这一结果证实标注员能够一致地将手部区域映射到物体表面，且即便存在单目视觉带来的歧义，他们也能准确判断接触情况。需要注意的是，关于物体上双射对应关系的$\kappa$数据并未在[^12]和[^57]中报告以便直接对比。更多细节及可视化内容同样可在补充材料中查看。

### 3.3 EC-fit流程：从接触信息到带姿态的手部-物体网格

最后，我们构建了EPIC-Contact Fitting（EC-fit）——一种基于优化的流程，能够从接触标注中推导出带姿态的3D手部-物体交互网格。EC-fit会将网格几何形状与接触约束对齐，从而可靠地建模视频中所捕捉到的交互行为。

手部姿态初始化：我们通过将WiLoR [^49] 应用于视频片段的中心帧I，来初始化3D手部姿态，从而生成具有姿态$\mathcal{H}$的MANO网格$\Theta_0$。在物体姿态初始化方面，我们摒弃了以往采用单一姿态初始化的方法[^12] [^22]，认为有必要使用多种初始化方式，包括随机姿态以及来自[^73]的类别感知姿态先验。

基于接触点的对齐：首先，我们利用接触信息来引导物体姿态与手部的对齐。这一过程被构建为一个优化问题。给定一组双射顶点对$\mathbb{C} := \{(h_i, o_i)\}$，其中$h_i \in \mathcal{H}$和$o_i \in \mathcal{O}$分别为发生接触的手部和物体顶点，我们通过最小化接触损失$r_o \in \mathbb{R}^6$来优化物体的旋转$t_o \in \mathbb{R}^3$和平移$\mathcal{L}_{con} = \frac{1}{|\mathcal{C}|} \sum_{i=1}^{|\mathcal{C}|} \|h_i - o_i\|_2$。

图像引导的精细化处理：我们利用视频片段的中心帧（I）以及考虑遮挡情况的掩码损失，来精细化手部和物体的姿态。传统方法[^12] [^23]会将预测的物体网格渲染为2D掩码$\tilde{M}_o$，然后将其直接与图像帧中的物体掩码$M_o$ [^14]对齐。然而，当物体被遮挡时，掩码是不完整的，这种情况在我们的数据集中十分常见（例如装有食物的盘子）。为此，我们确定了遮挡掩码$M_{occ}$，该掩码

---

![Image](images/dc055fa45e4a75d56dc50a444acbb0ce508d881d6f6cd33bf2a7b605f713d885.jpg)

<div style="text-align: center;">Fig. 3: EPIC-Contact dataset. For each object category (\# of annotated clips). Middle: contact-frequency heatmaps on the canonical MANO hand mesh and object template mesh. Bottom: example frames with EC-fit posed hand and object meshes.</div>

既包含手与物体之间的遮挡，也包含物体间的相互遮挡。我们的遮挡感知掩码损失通过排除$M_{occ} \colon \mathcal{L}_m^o = 1 - IoU([\hat{M}_o \setminus M_{occ}], [M_o \setminus M_{occ}])$，仅对齐未被遮挡的物体区域。此外，为了确保物理上的真实性，我们还加入了穿透损失$\mathcal{L}_p$，以防止手与物体相互穿透。

接下来，我们更新手部姿态，利用渲染出的手部掩码 $\mathcal{L}_m^h$ 来最小化手部掩码损失 $\hat{M}_h$，同时更新MANO姿态 $\Theta$。正则化损失 $\mathcal{L}_{reg} = \|\Theta - \Theta_0\|_2$ 可防止优化后的姿态与初始姿态预测值产生较大偏差。我们还会保留穿透损失 $\mathcal{L}_p$ 和接触损失 $\mathcal{L}_{con}$。我们会手动校验生成的姿态网格，并由人工标注员手动修正发现的错误。关于手动修正的详情请参阅补充材料。

片段级标注：目前我们的处理粒度停留在帧级别。EPIC-Grasps [^74] 提供了具有稳定抓握状态的视频片段，而EC-fit算法能计算出稳定抓握中心帧中物体相对于手部的姿态，这使我们能够自动将物体与手部的相对姿态信息扩展到整个片段。我们利用来自 [^49] 的手部姿态数据来获取片段级的物体-相机姿态。若存在时间上的抖动现象，相关帧会被标记为置信度较低的数据。

总而言之，EPIC-Contact数据集包含了具有双向手部-物体接触对应关系的第一人称交互数据以及经过姿态估计的3D手部-物体网格，这些数据是通过手部接触绘画、接触迁移和EC-fit技术采集并经过质量检验的。图3展示了各类物体的样本数量、手部与物体上的综合接触热图，体现了抓握方式的多样性，同时还展示了经过姿态估计的手部和物体网格样本。在后续章节中，我们将介绍如何利用这些标注数据进行训练和评估。

## 4 HOPformer：$\underline{\text{Hand-Object P}}$姿态转换 $\underline{\text{former}}$

在本节中，我们介绍了HOPformer——一种用于估计手部和物体姿态的基于学习的网络。图4提供了其概述。HOPformer可以利用3D真实数据或从自然场景数据集中获取的带姿态的手部-物体网格进行训练（见第3节）。

---

![Image](images/a12541a0b1ba157a98e9bc1c7fd2bb805aae70f1691f954444f8c2dbd1be286a.jpg)

<div style="text-align: center;">Fig. 4: Overview of HOPformer for learning-based hand-object pose estimation. Given an image with hand-object interaction, HOPformer conditions object features on features from hand pose encoder using an L-layer transformer decoder ( $D_{\theta}$). The learned features after the aggregation module  $\mathcal{A}$ are used to estimate the pose of both hands and interacting object, through dedicated output heads. The object head estimates rotation and translation relative to a canonical object pose. Furthermore, we predict the object's class  c and retrieve the object mesh  $\mathcal{O}_c$ from a model pool  $\mathcal{M}$. The estimated pose is applied to the retrieved object mesh.</div>

### 4.1 概述与符号说明

问题表述：给定一张包含某一已知类别物体的图像，该物体可能由一只手或两只手操控，也可能处于静止状态（例如放置在表面上），我们要估计每个可见手部及物体的姿态。HOPformer能够学习预测多种操控模式下的手部和物体姿态，包括存在可活动部件的物体。

符号说明：我们将$i^{th}$视频中的$k^{th}$帧记为$f_k^i$。我们用r、l、o分别表示右手、左手和物体。对于手部，我们使用参数化的MANO模型[^52]通过$\Theta = \{\theta, \beta\}$来表示手部的姿态和形状。MANO模型将$\Theta$映射为具有特定姿态和形状的3D网格$\mathcal{H}(\Theta) \in \mathbb{R}^{778 \times 3}$，其中$\theta \in \mathbb{R}^{48}$包含了手部的全局朝向，以及$\beta \in \mathbb{R}^{10}$。对于每个物体，我们预测其姿态$\omega$，该姿态包含旋转$\mathbf{R}_o \in \mathbb{R}^6$ [^72]、平移$\mathbf{T}_o \in \mathbb{R}^3$，以及针对可活动物体的弧度为单位的一维旋转参数。给定该姿态$\omega$后，我们会输出对应的3D姿态网格$\mathcal{O}_c(\omega) \in \mathbb{R}^{|V_c| \times 3}$，其中$|V_c|$表示物体c的顶点数量。

### 4.2 基于学习的姿态估计

我们的目标是开发一种基于学习的手部和物体联合姿态估计模型，其中对其中一个物体的估计结果可以为另一个物体的估计提供参考。在交互过程中，这种上下文信息在物体被遮挡的情况下尤为有用。

We first extract a generic sequence of object tokens $z_o$ (via $\varPhi_o$) and a specialised sequence of hand pose tokens $z_h$ (via $\varPhi_h$). These are linearly projected into a query sequence $(X_o = W_o z_o)$ and memory sequence $(X_h = W_h z_h)$, and passed into an L-layer Transformer Decoder $\mathcal{D}_\theta$. We use a full decoder stack (rather than a single cross-attention layer) to iteratively refine the object features. As shown in Fig. 4, in each of the L layers, the object representations:

1. communicate via self-attention, 2. attend to hand context $X_h$ via cross-att

---

tention, and 3. pass through a position-wise feed-forward network. This yields a refined object sequence $X_o^{(L)} = \mathcal{D}_\theta(X_o, X_h)$.

To obtain the final, aggregated interaction features $z_i$, this output is passed through a residual connection, followed by a learnable linear aggregation module $\mathcal{A}$ and layer normalisation as: $z_i = \text{LayerNorm}(\mathcal{A}(X_o^{(L)} + X_o))$. The resulting $z_i$ is not merely ‘fused’, but is a representation where object features have been progressively modulated by the hand pose. The core cross-attention mechanism within any layer $\ell$ of our decoder $\mathcal{D}_\theta$ is defined as

 $$ \mathrm{C A}(X_{o}^{(\ell-1)},X_{h})=\delta\left(\frac{(X_{o}^{(\ell-1)}W_{Q}^{\ell})(X_{h}W_{K}^{\ell})^{\top}}{\sqrt{d_{k}}}\right)(X_{h}W_{V}^{\ell}) $$

where $X_o^{(\ell-1)}$ is the object query sequence input to that layer (with $X_o^{(0)} = X_o$), $\delta$ is the Softmax operation, and $W_Q^l$, $W_K^l$, and $W_V^l$ are the learnable projection matrices for the query. key. and value. respectively.

最后，如图4所示，特征序列$z_i$会被路由到一组专用的预测头中，这些预测头由小型且独立的MLP实现。按照[^7]中的设计，序列$z_i$中的不同标记被解耦，用于预测手部和物体姿态的不同组成部分。前16个标记用于回归$\theta_r$（包含全局方向），$17^{th}$标记对应根部，而$18^{th}$标记则用于获取$\beta_r$。接下来的18个标记用于回归左手的姿态、方向（$\theta_l$）、根部以及形状（$\beta_l$）。剩余的三个标记用于回归可动物体的姿态$\omega$。

### 4.3 物体网格检索

主解码器利用交互特征来回归物体的姿态$\omega$，无需针对特定物体的3D几何结构进行硬编码。不过，为了渲染3D手-物重建结果，需要特定的网格几何结构$O_c$。我们学会了从预定义的模型库$O_c$中检索正确的网格$\mathcal{M}$。我们利用来自$z_o$的物体特征$\varPhi_o$中所编码的丰富语义信息，并添加一个分类头来预测物体的类别c。

该分类器与姿态估计器一同训练。在推理阶段，预测的类别c用于从$\mathcal{O}_c$中检索3D网格$\mathcal{M}$。随后，通过将回归得到的姿态$\omega$应用到检索到的网格上，即可生成带姿态的网格。这种设计能够高效复用特征，同时清晰地将姿态回归与物体类别识别分离开来。

### 4.4 训练信号

为了训练HOPformer，我们使用了多种帧级损失函数。对于手部，我们采用以下损失函数：$\mathcal{L}_h = \lambda_2^h \mathcal{L}_{2D}^h + \lambda_3^h \mathcal{L}_{3D}^h + \lambda_\theta^h \mathcal{L}_\theta^h + \lambda_\beta^h \mathcal{L}_\beta^h + \lambda_T^h \mathcal{L}_T^h$，其中$h = \{r, l\}$表示手性，$\mathcal{L}_{3D}$是对3D关节的监督损失（减去根部后计算），$\mathcal{L}_\theta^h$和$\mathcal{L}_\beta^h$分别是对MANO姿态和形状参数的损失，$\mathcal{L}_{2D}^h$是对图像中投影的3D点的2D损失，而$\mathcal{L}_T^h$则是对……的损失。

---

弱透视相机参数。最后，$\lambda^{h}$是在优化手部姿态时各损失项的权重系数。

类似地，对于物体而言，有针对3D关键点的损失$\mathcal{L}_{3D}^{o}$、3D关键点的2D投影损失$\mathcal{L}_{2D}^{o}$、弱透视相机参数损失$\mathcal{L}_{T}^{o}$、分类损失$\mathcal{L}_{c}^{o}$以及物体姿态损失$\mathcal{L}_{\omega}^{o}$：$\mathcal{L}_{o} = \lambda_{3D}^{o} \mathcal{L}_{3D}^{o} + \lambda_{2D}^{o} \mathcal{L}_{2D}^{o} + \lambda_{T}^{o} \mathcal{L}_{T}^{o} + \lambda_{c}^{o} \mathcal{L}_{c}^{o} + \lambda_{\omega}^{o} \mathcal{L}_{\omega}^{o}$。

当手部与物体接触时，我们会加入基于CDev的交互损失（详见第5.3节）：$\mathcal{L}_{int} = \lambda_{ro}^{int} \mathcal{L}_{ro}^{int} + \lambda_{lo}^{int} \mathcal{L}_{lo}^{int}$。最终用于训练HOPformer的损失项为：$\mathcal{L} = \mathcal{L}_r + \mathcal{L}_l + \mathcal{L}_o + \mathcal{L}_{int}$。上述损失函数均采用均方误差，唯有$\mathbf{R}_o$中的$\mathcal{L}_\omega^o$采用的是测地损失。

## 5 实验与结果

### 5.1 数据集

ARCTIC [^16]：这个实验室数据集是在受限环境下采集的，其中记录受试者操作单个物体的过程。该数据集包含来自9个摄像头的210万个RGB帧，共有10名参与者用双手操作11个物体。在互动过程中，参与者要么“使用”物体，要么“抓取”物体。手部与物体的姿态是通过动作捕捉系统获取的。ARCTIC提供了8个用于预训练的外向视角，以及1个用于微调与评估的内向视角。我们沿用原始的训练与验证划分方式 [^16]。由于该数据集采用动作捕捉得到的真实数据，我们将其用于消融实验。

EPIC-Contact：在EPIC-Contact中（我们根据第3节的细节进行采集），共有2,272个视频，包含涉及9个物体的62,300帧画面。需要注意的是，同一个视频片段内的所有帧都使用相同的手-物体网格模型进行训练，因为这些片段在时间上被标注为连续的稳定抓取状态 [^74]。我们用237个视频作为测试集，2,035个视频作为训练集，并确保两组数据中手部侧别与物体类别的分布保持一致。

### 5.2 实现细节

For all experiments, we use DINOv2 [^46] with ViT-G backbone [^69] as our object feature extractor ( $\Phi_o$) and WiLoR [^49] as $\Phi_h$ for hand features. The decoder depth L is set to 12. The hyper-parameters $\lambda_s$ in the loss terms are all set to 1 except for $\lambda_2^h = 5.0$, $\lambda_3^r = \lambda_3^o = 5.0$, $\lambda_\theta^h = \lambda_{3D}^l = 10.0$ and $\lambda_\beta^h = \lambda_c^o = 0.001$.

我们采用AdamW [^42]优化器进行训练。依照[^16]的描述，HOPformer的训练分为两个阶段：第一阶段在外部视角数据上训练，随后在ARCTIC数据集的以自我为中心的视角数据上进行微调。在外部视角数据训练期间，学习率会经历线性预热过程，在前5%的训练步数中从1e-7逐步提升至5e-5，剩余步数则采用余弦衰减策略，从5e-5降至1e-7。训练时，我们在4块NVIDIA GH200 GPU上以256的批量大小运行，共训练25个轮次。对于以自我为中心的视角训练，学习率设为3e-5，同样采用从1e-7开始的余弦衰减策略，批量大小为128，在4块GPU上训练30个轮次，并启用早停机制。在EPIC-Contact数据集上训练时，我们也使用相同的超参数，训练125个轮次并采用早停机制。我们进行平移运算时采用弱透视相机模型[^3] [^16] [^31] [^32] [^71]，旋转运算则采用6D表示方法[^72]。

---

<div style="text-align: center;">Table 1: ARCTIC (Egocentric; in-lab). HOPformer outperforms baselines by a clear margin on all metrics (except AAE). Bold numbers are best performance.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Method</td><td colspan="3">Contact and Relative Positions</td><td colspan="2">Motion</td><td colspan="2">Hand</td><td style='text-align: center; word-wrap: break-word;'>Object</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>CDev [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MRRPE $_{rl/ro}$ [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MDEv [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>ACC $_{h/o}$ [m/s $^{2}$] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MPJPE [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>AAE [°] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>SR@0.05 [%] $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>Cls [%] $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ArcticNet-SF [^16]</td><td style='text-align: center; word-wrap: break-word;'>44.1</td><td style='text-align: center; word-wrap: break-word;'>33.9 / 36.8</td><td style='text-align: center; word-wrap: break-word;'>11.8</td><td style='text-align: center; word-wrap: break-word;'>6.3 / 11.3</td><td style='text-align: center; word-wrap: break-word;'>22.9</td><td style='text-align: center; word-wrap: break-word;'>8.0</td><td style='text-align: center; word-wrap: break-word;'>59.0</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>JointTransformer [^1]</td><td style='text-align: center; word-wrap: break-word;'>35.0</td><td style='text-align: center; word-wrap: break-word;'>34.0 / 29.9</td><td style='text-align: center; word-wrap: break-word;'>10.4</td><td style='text-align: center; word-wrap: break-word;'>6.9 / 10.1</td><td style='text-align: center; word-wrap: break-word;'>20.0</td><td style='text-align: center; word-wrap: break-word;'>4.9</td><td style='text-align: center; word-wrap: break-word;'>76.2</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPformer (ours)</td><td style='text-align: center; word-wrap: break-word;'>31.9</td><td style='text-align: center; word-wrap: break-word;'>31.1 / 29.4</td><td style='text-align: center; word-wrap: break-word;'>7.3</td><td style='text-align: center; word-wrap: break-word;'>4.8 / 6.2</td><td style='text-align: center; word-wrap: break-word;'>16.1</td><td style='text-align: center; word-wrap: break-word;'>5.0</td><td style='text-align: center; word-wrap: break-word;'>82.4</td><td style='text-align: center; word-wrap: break-word;'>99.5</td></tr></table>

### 5.3 定量指标

我们遵循[^16]的指导，报告能够反映接触/相对姿态、运动情况、手部精度以及物体姿态估计的指标。1. 接触偏差（CDev，单位：毫米）：对应的手-物体接触顶点对之间的平均距离；2. 平均相对根部位置误差（MRRPE $_{rl/ro}$，单位：毫米）：手-手以及手-物体之间的相对根部平移误差；3. 运动偏差（MDev，单位：毫米）：用于衡量连续帧中处于稳定接触状态的顶点在运动上的差异；4. 加速度误差（ACC $_{h/o}$，单位：m/s² $^2$）：通过手/物体顶点的加速度差异来衡量运动的平滑度；5. 平均关节位置误差（MPJPE，单位：毫米）：21个手部关键点的平均三维误差；6. 平均关节活动误差（AAE，单位：度）：可活动物体的关节活动误差；7. 成功率（SR@0.05/SR@0.1，单位：百分比）：物体顶点位于物体直径5%/10%范围内的比例；8. 物体分类准确率（Cls）：物体分类头的分类准确性。在EPIC-Contact数据集中，由于使用了对称物体（如瓶子、罐子），CDev、MDev、ACC以及成功率指标均经过调整以适配对称性特征。详细内容见补充材料。

### 5.4 基准方法

我们采用了与HOPformer最为接近的基于学习方法的基线模型。1. ArcticNet-SF [^16]：采用编码器-解码器架构，以ResNet-50 [^26]作为骨干网络。2. JointTransformer [^1]：在ArcticNet-SF的基础上，将基于CNN的骨干网络替换为DINOv2 [^46]。由于它使用的特征骨干网络与我们相同，因此也可作为直接比较的最佳基线。相对于该基线的改进成果，正是我们提出的HOPformer设计所带来的结果。值得注意的是，JointTransformer目前仍是ARCTIC数据集重建排行榜上的最先进方法。为了公平比较，我们按照与我们相同的划分方式和评估协议，在ARCTIC和EPIC-Contact数据集上重新训练这两种方法。

### 5.5 实验结果

### 实验室环境下的ARCTIC实验结果：如表1所示，HOPformer在ARCTIC的以自我为中心的划分上取得了最佳性能，在接触一致性、运动以及物体姿态估计方面均优于以往基于学习的方法。与JointTransformer [^1]相比，我们将CDev从$35.0 \rightarrow 31.9$毫米降低至7.3毫米，同时将MDev从

---

<div style="text-align: center;">Table 2: EPIC-Contact (Egocentric; in-the-wild). HOPformer improves interaction and object pose estimation over all baselines. Bold numbers are best performance. MRRPE $_{rl}$ is invalid for EPIC-Contact due to one hand per sequence.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Method</td><td colspan="2">Contact and Relative Positions</td><td colspan="2">Motion</td><td style='text-align: center; word-wrap: break-word;'>Hand</td><td colspan="3">Object</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$CDev [mm] \downarrow$</td><td style='text-align: center; word-wrap: break-word;'>$MRRPE_{{ro}} [mm] \downarrow$</td><td style='text-align: center; word-wrap: break-word;'>$MDev [mm] \downarrow$</td><td style='text-align: center; word-wrap: break-word;'>$ACC_{{h/a}} [m/s^{{2}}] \downarrow$</td><td style='text-align: center; word-wrap: break-word;'>$MPJPE [mm] \downarrow$</td><td style='text-align: center; word-wrap: break-word;'>$SR@0.05 [%] \uparrow$</td><td style='text-align: center; word-wrap: break-word;'>$SR@0.1 [%] \uparrow$</td><td style='text-align: center; word-wrap: break-word;'>$Cls [%] \uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ArcticNet-SF [^16]</td><td style='text-align: center; word-wrap: break-word;'>94.2</td><td style='text-align: center; word-wrap: break-word;'>166.7</td><td style='text-align: center; word-wrap: break-word;'>70.1</td><td style='text-align: center; word-wrap: break-word;'>3.9 / 5.3</td><td style='text-align: center; word-wrap: break-word;'>44.8</td><td style='text-align: center; word-wrap: break-word;'>16.5</td><td style='text-align: center; word-wrap: break-word;'>55.9</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>JointTransformer [^1]</td><td style='text-align: center; word-wrap: break-word;'>30.1</td><td style='text-align: center; word-wrap: break-word;'>78.6</td><td style='text-align: center; word-wrap: break-word;'>20.0</td><td style='text-align: center; word-wrap: break-word;'>3.1 / 9.5</td><td style='text-align: center; word-wrap: break-word;'>22.9</td><td style='text-align: center; word-wrap: break-word;'>17.6</td><td style='text-align: center; word-wrap: break-word;'>56.9</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPformer (ours)</td><td style='text-align: center; word-wrap: break-word;'>20.7</td><td style='text-align: center; word-wrap: break-word;'>65.8</td><td style='text-align: center; word-wrap: break-word;'>11.4</td><td style='text-align: center; word-wrap: break-word;'>2.5 / 4.1</td><td style='text-align: center; word-wrap: break-word;'>19.9</td><td style='text-align: center; word-wrap: break-word;'>29.8</td><td style='text-align: center; word-wrap: break-word;'>69.7</td><td style='text-align: center; word-wrap: break-word;'>52.9</td></tr></table>

10.4毫米降至7.3毫米；SR@0.05指标也从76.2提升至82.4；手部估计精度也有显著提升（MPJPE从20.0毫米降至16.1毫米），且关节误差保持相当水平（AAE从4.9变为5.0）。我们还在补充材料中展示了以外为中心划分下的实验结果，在此类划分中HOPformer在大多数指标上的表现也优于JointTransformer，且优势更为明显。这些成果证明HOPformer在这一成熟基准测试中成为了新的最先进方法，同时也印证了我们核心设计思路的正确性——即利用可靠的手部先验来约束物体特征，从而实现鲁棒的手部-物体姿态估计。

真实场景下的EPIC-Contact实验结果：表2显示，HOPformer在EPIC-Contact数据集上提升了姿态估计与交互一致性表现，即便在存在遮挡和杂乱物体的真实场景下，其性能也优于基于学习的基准模型。与JointTransformer [^1]相比，HOPformer将CDev从30.1毫米降低至20.7毫米，MDev从20.0毫米降低至11.4毫米，同时SR@0.05指标也从17.6提升至29.8；手部估计精度同样有所改善（MPJPE从22.9毫米降至19.9毫米）。我们还额外预测物体类别以实现完全自动化的推理；不过为了与那些假设使用理想物体网格的先前研究保持一致，我们报告的是基于理想网格的姿态估计结果，而完全自动化的结果则收录于补充材料中。

这些结果也印证了预期：与现有基准数据集相比，EPIC-Contact带来了额外的挑战。例如，JointTransformer在ARCTIC（Ego）数据集上的SR@0.05指标为76.2%，而在EPIC-Contact上则降至17.6%。这并不意外，因为ARCTIC的训练集和验证集共享相同的物体实例，而EPIC-Contact中则出现了已知物体类别的新实例，且这些物体往往具有透明、被遮挡或在杂乱场景中的特点。

定性结果：我们在图5中展示了各模型在EPIC-Contact数据集上的预测结果对比。HOPformer能够在严重遮挡情况下，针对复杂场景中的各类物体估算出合理的手部和物体姿态。以往的研究在大多数情况下都未能成功实现手部与物体的接触。底部的失败案例受到训练数据中强先验的影响——模型默认盘子应是平坦的。更多结果详见补充材料。

## 5.6 消融实验

所有消融实验均在包含3D MoCap真实数据的ARCTIC数据集上进行（ egocentric split）。

损失函数消融实验：在表3中，我们逐一移除各项训练项，发现性能均出现一致性下降，其中物体监督项和交互约束项的影响最为显著。移除物体损失项（ $\mathcal{L}_o$ ）后，SR@0.05指标从

---

<div style="text-align: center;">Table 3: Architectural and loss ablations on ARCTIC (egocentric). We ablate HOPformer components and training objectives. Results show that hand-conditioned cross-attention decoding and the interaction/object supervision terms are key to performance across pose-estimation, contact, and motion metrics.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Setting</td><td colspan="2">Contact and Relative Positions</td><td colspan="2">Motion</td><td colspan="2">Hand</td><td colspan="2">Object</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>CDev [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MRRPE $_{e}r/r_e$ [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MDev [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>$\Delta$CC $h/o$ [ $[m/s^2]$ $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MPJPE [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>AAE [°] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>SR@0.05 [%] $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td colspan="9">Loss ablations</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o Interaction Loss ( $\mathcal{L}_{int}$)</td><td style='text-align: center; word-wrap: break-word;'>40.7</td><td style='text-align: center; word-wrap: break-word;'>33.3 / 36.5</td><td style='text-align: center; word-wrap: break-word;'>10.8</td><td style='text-align: center; word-wrap: break-word;'>6.2 / 8.4</td><td style='text-align: center; word-wrap: break-word;'>18.3</td><td style='text-align: center; word-wrap: break-word;'>7.7</td><td style='text-align: center; word-wrap: break-word;'>79.2</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o 3D keypoints ( $\mathcal{L}_{3D}^{h}$)</td><td style='text-align: center; word-wrap: break-word;'>36.8</td><td style='text-align: center; word-wrap: break-word;'>33.7 / 33.8</td><td style='text-align: center; word-wrap: break-word;'>10.0</td><td style='text-align: center; word-wrap: break-word;'>6.1 / 8.7</td><td style='text-align: center; word-wrap: break-word;'>18.7</td><td style='text-align: center; word-wrap: break-word;'>7.8</td><td style='text-align: center; word-wrap: break-word;'>78.5</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o 2D keypoints ( $\mathcal{L}_{2D}^{h}$)</td><td style='text-align: center; word-wrap: break-word;'>35.6</td><td style='text-align: center; word-wrap: break-word;'>35.9 / 33.0</td><td style='text-align: center; word-wrap: break-word;'>9.5</td><td style='text-align: center; word-wrap: break-word;'>5.9 / 8.1</td><td style='text-align: center; word-wrap: break-word;'>18.3</td><td style='text-align: center; word-wrap: break-word;'>7.4</td><td style='text-align: center; word-wrap: break-word;'>79.5</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o Beta ( $\mathcal{L}_B^h$)</td><td style='text-align: center; word-wrap: break-word;'>35.4</td><td style='text-align: center; word-wrap: break-word;'>33.2 / 32.6</td><td style='text-align: center; word-wrap: break-word;'>9.6</td><td style='text-align: center; word-wrap: break-word;'>5.8 / 8.4</td><td style='text-align: center; word-wrap: break-word;'>18.1</td><td style='text-align: center; word-wrap: break-word;'>7.2</td><td style='text-align: center; word-wrap: break-word;'>79.3</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o Translation ( $\mathcal{L}_{T}^{u,h}$)</td><td style='text-align: center; word-wrap: break-word;'>35.0</td><td style='text-align: center; word-wrap: break-word;'>32.8 / 31.5</td><td style='text-align: center; word-wrap: break-word;'>9.6</td><td style='text-align: center; word-wrap: break-word;'>5.9 / 8.3</td><td style='text-align: center; word-wrap: break-word;'>18.0</td><td style='text-align: center; word-wrap: break-word;'>7.2</td><td style='text-align: center; word-wrap: break-word;'>79.6</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o Object Pose ( $\mathcal{L}_P^u$)</td><td style='text-align: center; word-wrap: break-word;'>34.5</td><td style='text-align: center; word-wrap: break-word;'>31.7 / 31.0</td><td style='text-align: center; word-wrap: break-word;'>9.8</td><td style='text-align: center; word-wrap: break-word;'>5.7 / 9.5</td><td style='text-align: center; word-wrap: break-word;'>17.3</td><td style='text-align: center; word-wrap: break-word;'>7.4</td><td style='text-align: center; word-wrap: break-word;'>72.5</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o Object Losses ( $\mathcal{L}_o$)</td><td style='text-align: center; word-wrap: break-word;'>33.8</td><td style='text-align: center; word-wrap: break-word;'>31.3 / 31.4</td><td style='text-align: center; word-wrap: break-word;'>9.5</td><td style='text-align: center; word-wrap: break-word;'>5.6 / 9.4</td><td style='text-align: center; word-wrap: break-word;'>17.3</td><td style='text-align: center; word-wrap: break-word;'>8.6</td><td style='text-align: center; word-wrap: break-word;'>66.8</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td colspan="9">Architecture ablations</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Concat + MLP</td><td style='text-align: center; word-wrap: break-word;'>74.4</td><td style='text-align: center; word-wrap: break-word;'>48.1 / 66.5</td><td style='text-align: center; word-wrap: break-word;'>32.0</td><td style='text-align: center; word-wrap: break-word;'>6.6 / 25.5</td><td style='text-align: center; word-wrap: break-word;'>19.6</td><td style='text-align: center; word-wrap: break-word;'>18.7</td><td style='text-align: center; word-wrap: break-word;'>29.4</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DINOv2 as hand features</td><td style='text-align: center; word-wrap: break-word;'>44.2</td><td style='text-align: center; word-wrap: break-word;'>36.8 / 37.1</td><td style='text-align: center; word-wrap: break-word;'>16.2</td><td style='text-align: center; word-wrap: break-word;'>7.4 / 13.0</td><td style='text-align: center; word-wrap: break-word;'>20.6</td><td style='text-align: center; word-wrap: break-word;'>6.3</td><td style='text-align: center; word-wrap: break-word;'>70.0</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>No SA</td><td style='text-align: center; word-wrap: break-word;'>61.3</td><td style='text-align: center; word-wrap: break-word;'>74.0 / 60.4</td><td style='text-align: center; word-wrap: break-word;'>17.9</td><td style='text-align: center; word-wrap: break-word;'>7.3 / 14.4</td><td style='text-align: center; word-wrap: break-word;'>22.9</td><td style='text-align: center; word-wrap: break-word;'>10.9</td><td style='text-align: center; word-wrap: break-word;'>55.8</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>No Aggr. Module ( $\mathcal{A}$)</td><td style='text-align: center; word-wrap: break-word;'>40.4</td><td style='text-align: center; word-wrap: break-word;'>35.9 / 36.6</td><td style='text-align: center; word-wrap: break-word;'>14.0</td><td style='text-align: center; word-wrap: break-word;'>6.0 / 11.4</td><td style='text-align: center; word-wrap: break-word;'>16.8</td><td style='text-align: center; word-wrap: break-word;'>6.3</td><td style='text-align: center; word-wrap: break-word;'>74.0</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\mathcal{L} = 1$</td><td style='text-align: center; word-wrap: break-word;'>101.6</td><td style='text-align: center; word-wrap: break-word;'>93.5 / 90.8</td><td style='text-align: center; word-wrap: break-word;'>34.9</td><td style='text-align: center; word-wrap: break-word;'>15.0 / 25.4</td><td style='text-align: center; word-wrap: break-word;'>46.7</td><td style='text-align: center; word-wrap: break-word;'>23.4</td><td style='text-align: center; word-wrap: break-word;'>21.9</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\mathcal{L} = 6$</td><td style='text-align: center; word-wrap: break-word;'>59.2</td><td style='text-align: center; word-wrap: break-word;'>54.0 / 49.4</td><td style='text-align: center; word-wrap: break-word;'>19.5</td><td style='text-align: center; word-wrap: break-word;'>9.8 / 15.2</td><td style='text-align: center; word-wrap: break-word;'>24.0</td><td style='text-align: center; word-wrap: break-word;'>8.2</td><td style='text-align: center; word-wrap: break-word;'>58.6</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\mathcal{L} = 9$</td><td style='text-align: center; word-wrap: break-word;'>50.0</td><td style='text-align: center; word-wrap: break-word;'>47.1 / 42.8</td><td style='text-align: center; word-wrap: break-word;'>15.7</td><td style='text-align: center; word-wrap: break-word;'>6.8 / 11.5</td><td style='text-align: center; word-wrap: break-word;'>21.5</td><td style='text-align: center; word-wrap: break-word;'>7.9</td><td style='text-align: center; word-wrap: break-word;'>69.0</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td colspan="9">Main result</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPformer (ours)</td><td style='text-align: center; word-wrap: break-word;'>31.9</td><td style='text-align: center; word-wrap: break-word;'>31.1 / 29.4</td><td style='text-align: center; word-wrap: break-word;'>7.3</td><td style='text-align: center; word-wrap: break-word;'>4.8 / 6.2</td><td style='text-align: center; word-wrap: break-word;'>16.1</td><td style='text-align: center; word-wrap: break-word;'>5.0</td><td style='text-align: center; word-wrap: break-word;'>82.4</td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

82.4降至66.8，AAE指标则从5.0升至8.6；移除物体姿态项 $(\mathcal{L}_o^w)$ 也会显著降低SR指标（82.4→72.5）。移除基于CDev的交互损失项 $(\mathcal{L}_{int})$ 主要会影响物理一致性，导致CDev从31.9升至40.7，MDev从7.3升至10.8。对于手部精度而言，关键点监督最为关键：移除 $\mathcal{L}_{o,h}^{3D}$ 会导致MPJPE值大幅上升（16.1→18.7），$\mathcal{L}_{o,h}^{2D}$ 和 $\mathcal{L}_{int}$ 带来的性能下降程度相近（ $\rightarrow$ 18.3）；而 $\mathcal{L}_{\beta}^h$ 和 $\mathcal{L}_{o,h}^T$ 虽带来的提升较小，但效果稳定。

架构消融实验：同样在表3中，我们对HOPformer的架构设计进行了消融分析。 Concat + MLP。尽管使用了相同的强大骨干网络，但用简单融合方式替换交叉注意力解码器会导致性能急剧下降（SR从82.4降至29.4，CDev从31.9升至74.4）。这证实了HOPformer的性能提升源于特征的条件化机制，而非骨干网络本身。使用DINOv2作为手部特征。用通用的DINOv2令牌替代WiLoR时，手部先验信息会被削弱（MPJPE从16.1升至20.6），进而影响到物体的生成质量（SR从82.4降至70.0）。这表明针对姿态专门优化的手部特征是实现高效手部条件物体精细化处理的关键。禁用自注意力机制。自注意力机制能够丰富物体特征，一旦禁用它，标记间的通信就会受到负面影响，从而导致性能大幅下滑（SR从82.4降至55.8，MRRPE从31.1/29.4升至74.0/60.4）。这说明标记间的相互作用对于准确的物体估计至关重要。移除聚合模块。若去掉可学习的聚合模块，改为为每个输出头使用固定的令牌子集，性能便会持续受损（SR从82.4降至74.0，CDev从31.9升至40.4）。这表明HOPformer得益于通过学习将特征聚合成紧凑的交互表示。改变解码器深度。减小解码器深度会显著拉低性能（当L=1时，SR仅为21.9）；而增加深度则能稳步提升性能。

---

![Image](images/85823590152bfbbce4c08d8392252d1ec06f17362ca8b6de94626da855d3ae6a.jpg)

<div style="text-align: center;">Fig. 5: Qualitative comparison with baselines. Original image (thumbnail), image with projected hand-object mesh, and three views of the posed meshes. HOPformer has visibly superior estimations of pose compared to the baselines.</div>

深度会稳步提升性能，直至达到$L = 12$（SR为82.4）。这一结果支持了我们的设计决策：采用L层解码器来在手部引导下迭代细化物体标记。

总体而言，这些消融实验证实：HOPformer的性能提升源于迭代式的、手部条件的物体细化过程。

物体类别数量扩展实验：

为了评估HOPformer在物体数量增加时的性能，我们在ARCTIC数据集的$N \in \{3,6,9,11\}$个物体类别上训练了HOPformer。图6展示了随着物体数量增加，MDev(ho)得分的变化趋势。随着更多物体类别被加入，HOPformer的性能始终得到提升，这凸显了其出色的泛化能力，即便任务难度有所增加。其他指标也显示出类似的提升效果，详见补充材料。

![Image](images/2ed5d75b626aea8fa66393c591f95d107b400fccc12448804c76721bf2a12748.jpg)

<div style="text-align: center;">Fig. 6: MDev(ho) improves as the number of objects increases.</div>

从零开始训练HOPformer用于EPIC-Contact任务：表4显示，用ARCTIC数据集上的权重初始化HOPformer后，在EPIC数据集上能取得稳定的性能提升。

---

<div style="text-align: center;">Table 4: Cross-dataset transfer (ARCTIC  $\rightarrow$ EPIC-Contact). Training HOP-former from scratch on EPIC vs. ARCTIC-initialised fine-tuning.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Method</td><td colspan="2">Contact and Relative Positions</td><td colspan="2">Motion</td><td colspan="2">Hand</td><td colspan="2">Object</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$CDev [mm]  ↓$</td><td style='text-align: center; word-wrap: break-word;'>$MRRPE _{ra} [mm]  ↓$</td><td style='text-align: center; word-wrap: break-word;'>$MDev [mm]  ↓$</td><td style='text-align: center; word-wrap: break-word;'>$ACC _{h/σ} [m/s ^{2} ]  ↓$</td><td style='text-align: center; word-wrap: break-word;'>$MPJPE [mm]  ↓$</td><td style='text-align: center; word-wrap: break-word;'>$SR@0.05 [%]  ↑$</td><td style='text-align: center; word-wrap: break-word;'>$SR@0.01 [%]  ↑$</td><td style='text-align: center; word-wrap: break-word;'>$MRP _{e} [mm]  ↑$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPformer (scratch)</td><td style='text-align: center; word-wrap: break-word;'>24.4</td><td style='text-align: center; word-wrap: break-word;'>99.5</td><td style='text-align: center; word-wrap: break-word;'>19.5</td><td style='text-align: center; word-wrap: break-word;'>3.5 / 7.1</td><td style='text-align: center; word-wrap: break-word;'>54.8</td><td style='text-align: center; word-wrap: break-word;'>3.9</td><td style='text-align: center; word-wrap: break-word;'>24.2</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPformer (ARCTIC init; ours)</td><td style='text-align: center; word-wrap: break-word;'>20.7</td><td style='text-align: center; word-wrap: break-word;'>65.8</td><td style='text-align: center; word-wrap: break-word;'>11.4</td><td style='text-align: center; word-wrap: break-word;'>2.5 / 4.1</td><td style='text-align: center; word-wrap: break-word;'>19.9</td><td style='text-align: center; word-wrap: break-word;'>29.8</td><td style='text-align: center; word-wrap: break-word;'>69.7</td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

在接触类任务中，尤其是相对姿态和运动方面（MRRPE$_{ro}$从99.5降至65.8，MDev从19.5降至11.4），HOPformer能从预训练阶段的额外数据中获益。计算与运行时间方面：在一台NVIDIA GH200上，在线评估时批量大小设为1，HOPformer处理每帧的中位时间为106.63毫秒，即每秒可处理9.12帧；更多的计算与性能分析细节可在补充材料中查看。

## 6 结论

本文从两个方面为野外场景下的第一人称图像三维手-物体姿态估计研究做出了贡献。

首先，我们通过标注并发布EPIC-Contact数据集，实现了野外场景下的训练与评估。我们为EPIC-Contact视频片段标注了手部接触区域以及双向接触信息，这些片段共包含2.3K个涉及9种物体类别的功能性交互场景。EPIC-Contact数据集经过质量校验，具有多样性，是极具挑战性的基准测试集，可为后续研究提供指导。

其次，我们提出了HOPformer——一种基于学习的方法，仅需输入RGB图像，就能单次前向传播预测出手部和物体的姿态。HOPformer利用手部先验来丰富特征表示，在手、物体类别及物体姿态的联合估计上取得了优异结果。我们在已有的ARCTIC基准测试中超越了现有最先进方法，同时也为EPIC-Contact数据集上的评估提供了可靠的起点。

## 致谢

本研究得到了EPSRC项目资助Visual AI（EP/T028572/1）和EPSRC奖学金UMPIRE（EP/T004991/1）的支持。S Bansal的研究得到了Meta公司向伯明翰大学捐赠的慈善款项支持。Z Zhu和J Zhao的研究得到了伯明翰大学-国家留学基金委奖学金的支持。虽然MJB受雇于Epic Games，但本研究完全在马克斯·普朗克学会开展，经费也由该学会全额资助。我们感谢AIRR Innovator项目“基于野外视频的5D手-物体交互建模”（2026年3月-2026年9月）、AIRR Gateway项目“基于第一人称数据的HOI基础模型”（2025年12月-2026年3月）以及Sovereign AI Unit立项项目“自我感知世界中的生成模型”（2025年8月-2025年11月）提供的GPU使用时长支持。

作者感谢Jacob Chalk、Tomoya Yoshida、Kranti Kumar Parida、Omar Emara和Balamurugan Thambiraja对本文稿提出的宝贵意见。我们感谢Elancer公司的Rajan、Saikiran、Durga Prasad及其团队在EPIC-Contact数据集标注工作中给予的帮助。

---

## 参考文献

1. Abou Zeid, K.: JointTransformer：HANDS'2023 ARCTIC挑战赛ICCV赛区冠军（2023年），<https://github.com/kabouzeid/JointTransformer> 1, 2, 3, 11, 12, 26

[^2]: Banerjee, P., Shkodrani, S., Moulon, P., Hampali, S., Han, S., Zhang, F., Zhang, L., Fountain, J., Miller, E., Basol, S., Newcombe, R., Wang, R., Engel, J.J., Hodan, T.: HOT3D: Hand and object tracking in 3D from egocentric multi-view videos. In: CVPR (2025) 1, 2, 3

[^3]: Boukhayma, A., Bem, R.d., Torr, P.H.: 3d hand shape and pose from images in the wild. In: CVPR (2019) 2, 10

[^4]: Brahmbhatt, S., Tang, C., Twigg, C.D., Kemp, C.C., Hays, J.: ContactPose: A dataset of grasps with object contact and hand pose. In: ECCV (2020) 3, 35

[^5]: Cai, Y., Ge, L., Cai, J., Yuan, J.: Weakly-supervised 3D hand pose estimation from monocular RGB images. In: ECCV (2018) 3

[^6]: Cao, Z., Radosavovic, I., Kanazawa, A., Malik, J.: Reconstructing hand-object interactions in the wild. In: ICCV (2021) 1, 3

[^7]: Carion, N., Massa, F., Synnaeve, G., Usunier, N., Kirillov, A., Zagoruyko, S.: End-to-End Object Detection with Transformers. In: ECCV (2020) 9

[^8]: Chao, Y.W., Yang, W., Xiang, Y., Molchanov, P., Handa, A., Tremblay, J., Narang, Y.S., Van Wyk, K., Iqbal, U., Birchfield, S., Kautz, J., Fox, D.: DexYCB: A benchmark for capturing hand grasping of objects. In: CVPR (2021) 1, 3

[^9]: Chen, X., CHU, F.J., Gleize, P., Liang, K.J., Sax, A., Tang, H., Wang, W., Guo, M., Hardin, T., Li, X., Lin, A., Liu, J.W., Ma, Z., Sagar, A., Song, B., Wang, X., Yang, J., Zhang, B., Dollár, P., Gkioxari, G., Feiszli, M., Malik, J.: SAM 3D: 3Dfy Anything in Images. In: CVPR (2026) 3, 25

[^10]: Chen, Z., Potamias, R.A., Chen, S., Schmid, C.: HORT: Monocular hand-held objects reconstruction with transformers. In: ICCV (2025) 3

[^11]: Comanici, G., Bieber, E., Schaekermann, M., Sachdeva, N., et al.: Gemini 2.5: Pushing the Frontier with Advanced Reasoning, Multimodality, Long Context, and Next Generation Agentic Capabilities. arXiv preprint arXiv:2507.06261 (2025) 6, 27

[^12]: Cseke, A., Tripathi, S., Dwivedi, S.K., Lakshmipathy, A., Chatterjee, A., Black, M.J., Tzionas, D.: PICO: Reconstructing 3D people in contact with objects. In: CVPR (2025) 2, 4, 6, 32

[^13]: Damen, D., Doughty, H., Farinella, G.M., Furnari, A., Ma, J., Kazakos, E., Moltanti, D., Munro, J., Perrett, T., Price, W., Wray, M.: Rescaling Egocentric Vision: Collection, Pipeline and Challenges for EPIC-KITCHENS-100. In: IJCV (2022) 3

[^14]: Darkhalil, A., Shan, D., Zhu, B., Ma, J., Kar, A., Higgins, R., Fidler, S., Fouhey, D., Damen, D.: EPIC-KITCHENS VISOR Benchmark: Video Segmentations and Object Relations. In: NeurIPS (2022) 6, 26

[^15]: Fan, Z., Parelli, M., Kadoglou, M.E., Chen, X., Kocabas, M., Black, M.J., Hilliges, O.: Hold: Category-agnostic 3d reconstruction of interacting hands and objects from video. In: CVPR (2024) 3, 24

[^16]: Fan, Z., Taheri, O., Tzionas, D., Kocabas, M., Kaufmann, M., Black, M.J., Hilliges, O.: ARCTIC: A dataset for dexterous bimanual hand-object manipulation. In: CVPR (2023) 1, 2, 3, 10, 11, 12, 20, 21, 22, 26

## [^17]: Garcia-Hernando, G., Yuan, S., Baek, S., Kim, T.K.: First-person hand action benchmark with rgb-d videos and 3d hand pose annotations. In: CVPR (2018) 3, 35

---

[^18]: Ge, L., Ren, Z., Li, Y., Xue, Z., Wang, Y., Cai, J., Yuan, J.: 3D hand shape and pose estimation from a single rgb image. In: CVPR (2019) 3

[^19]: Grady, P., Tang, C., Twigg, C., Vo, M., Brahmbhatt, S., Kemp, C.: ContactOpt: Optimizing contact to improve grasps. In: CVPR (2021) 3

[^20]: Guo, Z., Zhou, W., Wang, M., Li, L., Li, H.: HandNeRF: Neural radiance fields for animatable interacting hands. In: CVPR (2023) 3

[^21]: Hampali, S., Hodan, T., Tran, L., Ma, L., Keskin, C., Lepetit, V.: In-hand 3d object scanning from an rgb sequence. In: CVPR (2023) 3

[^22]: Hampali, S., Rad, M., Oberweger, M., Lepetit, V.: Honnotate: A method for 3d annotation of hand and object poses. In: CVPR (2020) 6, 35

[^23]: Han, G., Zhai, W., Yang, Y., Cao, Y., Zha, Z.J.: Touch: Text-guided controllable generation of free-form hand-object interactions. In: arXiv preprint arXiv:2510.14874 (2025) 6

[^24]: Hasson, Y., Tekin, B., Bogo, F., Laptev, I., Pollefeys, M., Schmid, C.: Leveraging Photometric Consistency Over Time for Sparsely Supervised Hand-Object Reconstruction. In: CVPR (2020) 3

[^25]: Hasson, Y., Varol, G., Schmid, C., Laptev, I.: Towards unconstrained joint hand-object reconstruction from RGB videos. In: 3DV (2021) 1, 3, 20

[^26]: He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR (2016) 3, 11

[^27]: Huang, D., Ji, X., He, X., Sun, J., He, T., Shuai, Q., Ouyang, W., Zhou, X.: Reconstructing hand-held objects from monocular video. In: SIGGRAPH Asia (2022) 3

[^28]: Iqbal, U., Molchanov, P., Gall, T., Kautz, J.: Hand pose estimation via latent 2.5D heatmap regression. In: ECCV (2018) 3

[^29]: Jiang, H., Liu, S., Wang, J., Wang, X.: Hand-object contact consistency reasoning for human grasps generation. In: ICCV (2021) 3, 33, 35

[^30]: Jin, S., Xu, L., Xu, J., Wang, C., Liu, W., Qian, C., Ouyang, W., Luo, P.: Whole-body human pose estimation in the wild. In: ECCV (2020) 3

[^31]: Kanazawa, A., Black, M.J., Jacobs, D.W., Malik, J.: End-to-end Recovery of Human Shape and Pose. In: CVPR (2018) 10

[^32]: Kocabas, M., Huang, C.H.P., Hilliges, O., Black, M.J.: PARE: Part attention regressor for 3D human body estimation. In: ICCV (2021) 10

[^33]: Kulon, D., Guler, R.A., Kokkinos, I., Bronstein, M.M., Zafeiriou, S.: Weakly-supervised mesh-convolutional hand reconstruction in the wild. In: CVPR (2020) 2

[^34]: Kulon, D., Wang, H., Güler, R.A., Bronstein, M.M., Zafeiriou, S.: Single Image 3D Hand Reconstruction with Mesh Convolutions. In: BMVC (2019) 2

[^35]: Kwon, T., Tekin, B., Stühmer, J., Bogo, F., Pollefeys, M.: H2O: Two Hands Manipulating Objects for First Person Interaction Recognition. In: ICCV (2021) 1, 2, 3

[^36]: Lakshmipathy, A.S., Feng, N., Lee, Y.X., Mahler, M., Pollard, N.: Contact Edit: Artist Tools for Intuitive Modeling of Hand-Object Interactions. In: ACM Transactions on Graphics (2023) 5

[^37]: Lee, J., Sung, M., Choi, H., Kim, T.: Im2hands: Learning attentive implicit representation of interacting two-hand shapes. In: CVPR (2023) 3

[^38]: Li, M., An, L., Zhang, H., Wu, L., Chen, F., Yu, T., Liu, Y.: Interacting attention graph for single image two-hand reconstruction. In: CVPR (2022) 3

### [^39]: Lin, K., Wang, L., Liu, Z.: End-to-end human pose and mesh reconstruction with transformers. In: CVPR (2021) 3

---

[^40]: Liu, R., Ohkawa, T., Zhang, M., Sato, Y.: Single-to-dual-view adaptation for egocentric 3d hand pose estimation. In: CVPR (2024) 3

[^41]: Liu, Y., Liu, Y., Jiang, C., Lyu, K., Wan, W., Shen, H., Liang, B., Fu, Z., Wang, H., Yi, L.: HOI4D: A 4D Egocentric Dataset for Category-Level Human-Object Interaction. In: CVPR (2022) 1, 2, 3

[^42]: Loshchilov, I., Hutter, F.: Decoupled weight decay regularization. In: ICLR (2019) 10

[^43]: Moon, G., Yu, S.I., Wen, H., Shiratori, T., Lee, K.M.: InterHand2.6M: A Dataset and Baseline for 3D Interacting Hand Pose Estimation from a Single RGB Image. In: ECCV (2020) 3

[^44]: Mueller, F., Bernard, F., Sotnychenko, O., Mehta, D., Sridhar, S., Casas, D., Theobalt, C.: GANerated hands for real-time 3D hand tracking from monocular RGB. In: CVPR (2018) 3

[^45]: Ohkawa, T., Furuta, R., Sato, Y.: Efficient annotation and learning for 3d hand pose estimation: A survey. In: IJCV (2023) 3

[^46]: Oquab, M., Darcet, T., Moutakanni, T., Vo, H.V., Szafraniec, M., Khalidov, V., Fernandez, P., HAZIZA, D., Massa, F., El-Nouby, A., Assran, M., Ballas, N., Galuba, W., Howes, R., Huang, P.Y., Li, S.W., Misra, I., Rabbat, M., Sharma, V., Synnaeve, G., Xu, H., Jegou, H., Mairal, J., Labatut, P., Joulin, A., Bojanowski, P.: DINOv2: Learning Robust Visual Features without Supervision. TMLR (2024) 3, 10, 11, 21

[^47]: Patel, A., Wang, A., Radosavovic, I., Malik, J.: Learning to imitate object interactions from internet videos. In: arXiv preprint arXiv:2211.13225 (2022) 1, 3

[^48]: Pavlakos, G., Shan, D., Radosavovic, I., Kanazawa, A., Fouhey, D., Malik, J.: Reconstructing Hands in 3D with Transformers. In: CVPR (2024) 2, 3

[^49]: Potamias, R.A., Zhang, J., Deng, J., Zafeiriou, S.: Wilor: End-to-end 3d hand localization and reconstruction in-the-wild. In: CVPR (2025) 2, 3, 5, 6, 7, 10, 21, 26, 32, 35

[^50]: Prakash, A., Chang, M., Jin, M., Tu, R., Gupta, S.: 3d reconstruction of objects in hands without real world 3d supervision. In: ECCV (2024) 2, 3

[^51]: Rogez, G., Supancic, J.S., Ramanan, D.: Understanding everyday hands in action from rgb-d images. In: ICCV (2015) 3, 35

[^52]: Romero, J., Tzionas, D., Black, M.J.: Embodied Hands: Modeling and Capturing Hands and Bodies Together. In: ACM Transactions on Graphics (2017) 5, 8, 28

[^53]: Rong, Y., Shiratori, T., Joo, H.: Frankmocap: A monocular 3d whole-body pose estimation system via regression and integration. In: ICCVW (2021) 2

[^54]: Simon, T., Joo, H., Matthews, I., Sheikh, Y.: Hand keypoint detection in single images using multiview bootstrapping. In: CVPR (2017) 3

[^55]: Taheri, O., Ghorbani, N., Black, M.J., Tzionas, D.: GRAB: A dataset of whole-body human grasping of objects. In: ECCV (2020) 2

[^56]: Tekin, B., Bogo, F., Pollefeys, M.: H+O: Unified egocentric recognition of 3D hand-object poses and interactions. In: CVPR (2019) 3

[^57]: Tripathi, S., Chatterjee, A., Passy, J.C., Yi, H., Tzionas, D., Black, M.J.: DECO: Dense estimation of 3D human-scene contact in the wild. In: ICCV (2023) 2, 4, 5, 6, 30, 32

[^58]: Tse, T., Kim, K., Leonardis, A., Chang, H.: Collaborative learning for hand and object reconstruction with attention-guided graph convolution. In: CVPR (2022) 3

### [^59]: Yang, L., Li, K., Zhan, X., Lv, J., Xu, W., Li, J., Lu, C.: Artiboost: Boosting articulated 3d hand-object pose estimation via online exploration and synthesis. In: CVPR (2022) 3

---

[^60]: Yang, L., Li, K., Zhan, X., Wu, F., Xu, A., Liu, L., Lu, C.: Oakink: A large-scale knowledge repository for understanding hand-object interaction. In: CVPR (2022) 1, 2, 3

[^61]: Yang, L., Zhan, X., Li, K., Xu, W., Li, J., Lu, C.: CPF: Learning a contact potential field to model the hand-object interaction. In: ICCV (2021) 3

[^62]: Yang, Y., Zhai, W., Luo, H., Cao, Y., Zha, Z.J.: LEMON: Learning 3D Human-Object Interaction Relation from 2D Images. In: CVPR (2024) 4

[^63]: Yang, Y., Zhai, W., Wang, C., Yu, C., Cao, Y., Zha, Z.J.: EgoChoir: Capturing 3D Human-Object Interaction Regions from Egocentric Views. In: NeurIPS (2024) 4

[^64]: Ye, Y., Feng, Y., Taheri, O., Feng, H., Tulsiani, S., Black, M.J.: Predicting 4d hand trajectory from monocular videos. arXiv preprint arXiv:2501.08329 (2025) 3

[^65]: Ye, Y., Gupta, A., Kitani, K., Tulsiani, S.: G-hop: Generative hand-object prior for interaction reconstruction and grasp synthesis. In: CVPR (2024) 3, 24, 35

[^66]: Ye, Y., Gupta, A., Tulsiani, S.: What's in your hands? 3d reconstruction of generic objects in hands. In: CVPR (2022) 3

[^67]: Ye, Y., Hebbar, P., Gupta, A., Tulsiani, S.: Diffusion-guided reconstruction of everyday hand-object interaction clips. In: ICCV (2023) 3

[^68]: Yu, Z., Xu, W., Xie, P., Li, Y., Anthony, B.W., Zhang, Z., Lu, C.: Dynamic reconstruction of hand-object interaction with distributed force-aware contact representation. In: ICCV (2025) 3

[^69]: Zhai, X., Kolesnikov, A., Housby, N., Beyer, L.: Scaling vision transformers. In: CVPR (2022) 10

[^70]: Zhang, J., Deng, J., Ma, C., Potamias, R.A.: Hawor: World-space hand motion reconstruction from egocentric videos. In: CVPR (2025) 3

[^71]: Zhang, X., Li, Q., Mo, H., Zhang, W., Zheng, W.: End-to-end hand mesh recovery from a monocular rgb image. In: ICCV (2019) 10

[^72]: Zhou, Y., Barnes, C., Lu, J., Yang, J., Li, H.: On the Continuity of Rotation Representations in Neural Networks. In: CVPR (2019) 8, 10

[^73]: Zhu, Z., Bansal, S., Tripathi, S., Damen, D.: Reconstructing Objects along Hand Interaction Timelines in Egocentric Video. In: CVPRW (2026) 6

[^74]: Zhu, Z., Damen, D.: Get a grip: Reconstructing hand-object stable grasps in egocentric videos. In: arXiv (2024) 3, 4, 6, 7, 10, 20, 26

### [^75]: Zimmermann, C., Ceylan, D., Yang, J., Russell, B., Argus, M., Brox, T.: Freihand: A dataset for markerless capture of hand pose and shape from single rgb images. In: ECCV (2019) 3

---

### 附录

本附录为论文主体提供补充信息。第7节详细介绍了HOPformer的相关内容，包括计算开销、评估指标、实现细节、定性结果、可扩展性、与无CAD方法对比的情况，以及在ARCTIC数据集上的外中心视角结果。第8节提供了关于EPIC-Contact数据集的补充信息。第9节讨论了其他相关研究。第10节探讨了该方法的局限性及未来发展方向。第11节列出了用于获取物体尺度的提示词。

### 7 HOPformer的补充说明

### 7.1 计算时间分析

所有实验结果均在单张NVIDIA GH200 120 GB GPU上获得。我们采用端到端的墙钟计时器并配合显式的CUDA同步机制，来统计单次样本前向传播的时间统计数据。为排除数据加载器的开销影响，输入样本事先已被加载至GPU中。实验过程中先执行30次预热迭代，随后进行300次计时迭代；延迟情况通过P50（中位数）和P95来衡量。表5汇总了相关结果，单次样本处理的中位时间为106.63毫秒。与基于优化的方法所需的超过10秒的时间相比[^25] [^74]，HOPformer采用前馈推理方式，因此速度要快得多（以毫秒计）。HOPformer每次前向传播会消耗$1.157 \times 10^{12}$次浮点运算（相当于$\approx 1157$十亿次浮点运算）。

<div style="text-align: center;">Table 5: Compute and runtime for a single-sample forward pass. Timings are end-to-end wall-clock with explicit CUDA synchronisation; 30 warmup + 300 timed iterations; input batch preloaded to exclude dataloader overhead.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Hardware</td><td style='text-align: center; word-wrap: break-word;'>Params</td><td style='text-align: center; word-wrap: break-word;'>FLOPs / sample</td><td style='text-align: center; word-wrap: break-word;'>Peak mem (alloc)</td><td style='text-align: center; word-wrap: break-word;'>Latency P50</td><td style='text-align: center; word-wrap: break-word;'>Latency P95</td><td style='text-align: center; word-wrap: break-word;'>Throughput</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>GH200 120 GB</td><td style='text-align: center; word-wrap: break-word;'>1.83B</td><td style='text-align: center; word-wrap: break-word;'>1.157 TFLOPs</td><td style='text-align: center; word-wrap: break-word;'>7.01 GiB</td><td style='text-align: center; word-wrap: break-word;'>106.63 ms</td><td style='text-align: center; word-wrap: break-word;'>165.89 ms</td><td style='text-align: center; word-wrap: break-word;'>9.12 samp/s</td></tr></table>

### 7.2 对称感知指标的详细说明

在第5.3节中，我们定义了用于评估的定量指标（最初定义于[^16]），并指出由于EPIC-Contact数据集中存在对称物体，因此CDev、MDev、ACC和成功率这些指标被更新为具备对称感知能力。此处我们将提供这些对称感知版评估指标的额外细节。

我们的目标是在保留原有评估协议的同时，避免对符合对称性要求的正确预测予以惩罚。这对于EPIC-Contact数据集中那些对称的物体类别（如瓶子）而言至关重要。需要注意的是，将CDev和SR调整为对称感知模式后，它们便对沿物体表面的滑动不敏感，因为这类对称感知版指标不仅对物体的旋转对称性具有不变性……

---

……物体的旋转对称性而言。相比之下，MRRPE和MDev即便在对称感知模式下仍会对滑动现象予以惩罚。

接触偏差（CDev，单位：毫米）：按照标准定义，CDev衡量的是对应的手-物体接触顶点对之间的平均距离。但对于对称物体而言，预测结果可能会将接触点置于等效的物体位置上，却无法与标注的物体顶点完全匹配。因此，我们利用真实接触距离来定位接触手顶点，再针对这些顶点测量其与预测物体网格上最近顶点之间的距离。

运动偏差（MDev，单位：毫米）：我们沿用从真实接触标注中确定的稳定接触窗口，但不要求预测的运动在整个窗口内严格遵循标注的物体顶点轨迹。相反，物体运动是通过窗口起始时刻与接触手顶点相关联的固定预测物体区域来测量的，MDev则通过计算连续帧中手与物体运动的不一致性来得到。这一设定使得该指标在物体位置因对称性而等效时仍能保持稳健性，同时能在物体发生滑动（即接触顶点随时间发生变化）时予以惩罚。

加速度误差（$ACC_{h/o}$，单位：m/s²）：我们不对$ACC_h$做任何修改。为了让算法能识别对称物体，我们更新了$ACC_o$。在移除物体根节点后，我们会计算物体顶点的加速度差异，并将每个物体顶点与三维空间中最接近的等效顶点匹配后，再对比预测值与真实值。随后会对$ACC_o$在两个方向上取平均值，这样该指标就能继续衡量运动平滑度，同时不会因对称物体上等效顶点的对应问题而给出负面评价。

成功率（SR@0.05/SR@0.1，单位：%）：我们并非采用固定的顶点对应关系来评估物体顶点，而是在移除物体根节点后，将每个预测的物体顶点与最接近的真实物体顶点进行比较。成功率定义为直径在物体直径5%/10%范围内的物体顶点所占的比例。这种方法既保留了论文中使用的基于直径归一化的评判标准，又不会因预测结果在对称性方面符合要求却未被正确判定而给出负面评价。

### 7.3 其他实现细节

物体编码器输出的特征维度，即DINOv2 [^46]（$\Phi_o$）的特征维度为1536，手部编码器WiLoR [^49]（$\Phi_h$）的特征维度为1280。我们使用一个多层感知机将$\Phi_h$的特征映射到物体的嵌入空间。L层解码器 $X_o^{(L)}$ 的输出会与物体特征（$X_o$）相加，然后再传入聚合模块（$\mathcal{A}$）。聚合模块是一个多层感知机层，其作用是将令牌数量从256个减少到回归物体和手部姿态所需的39个（详见第4.2节描述）。

在ARCTIC数据集上训练时，会对图像进行数据增强处理，包括缩放（$\pm25\%$）、颜色抖动（$\pm40\%$）和旋转（$\pm30\%$）。按照[^16]中的做法，对于预测的弱透视相机，我们为其设定固定的焦距1000.0。

---

ARCTIC数据集使用1000.0的焦距，EPIC-Contact数据集则使用5000.0的焦距。这些固定焦距用于确定场景中手部和物体的平移量。

## 7.4 定性结果

图7展示了在ARCTIC数据集上的定性结果 [^16]。HOPformer仅需一次前向传播就能估算出手部和物体的姿态。此外，HOPformer在物体被遮挡、发生形变以及属于关节类物体时也能正常工作。尤其是在只有部分手部可见的情况下（例如笔记本对应的(2, 3)位置和盒子对应的(3, 1)位置），HOPformer仍能估算出合理的手部姿态。另一个值得注意的有趣案例是手机和剪刀这类物体（位于图7中的(1, 5)、(2, 2)、(3, 3)和(3, 4)位置），即便物体可见程度极低且存在严重遮挡，HOPformer仍能估算出正确的姿态。

### 7.5 HOPformer的可扩展性

图6展示了在ARCTIC数据集上类别数量增加时HOPformer的可扩展性情况。我们在表6中提供了该图表中的所有指标和具体数值。我们既报告了增加测试类别后的测试结果，也报告了在纳入更多训练类别后，仅针对3个类别的固定测试集所得到的测试结果。

随着类别数量的增加，HOPformer能够从多种物体类别中泛化知识并提升预测精度，尽管预测更多类别物体的姿态难度增大，但类别多样性的增加仍为其带来了益处。

<div style="text-align: center;">Table 6: Effect of training set size under two evaluation protocols. We vary the number of object classes and report results under two settings: testing on the same-sized subset, and testing on three object classes. Overall, increasing the amount of training data improves most metrics, showing the generalisability and learning capability of HOPformer. Note this experiment is done on the ARCTIC dataset.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Protocol</td><td rowspan="2">Num. Classes</td><td colspan="3">Contact and Relative Positions</td><td colspan="2">Motion</td><td colspan="2">Hand</td><td colspan="2">Object</td></tr><tr><td colspan="2">$CDev [mm]  ↓$ MRRPE $_{t/r\alpha}$ [mm]</td><td style='text-align: center; word-wrap: break-word;'>$↓$ MDev [mm]</td><td style='text-align: center; word-wrap: break-word;'>$↓$ ACC $_{h/r}$ [m/s $^{2}$]</td><td style='text-align: center; word-wrap: break-word;'>$↓$ MPJPE [mm]</td><td style='text-align: center; word-wrap: break-word;'>$↓$ AAE [°]</td><td style='text-align: center; word-wrap: break-word;'>$↓$ Success Rate [°]</td><td colspan="2">$↑$</td></tr><tr><td rowspan="2">Test on</td><td style='text-align: center; word-wrap: break-word;'>3 classes</td><td style='text-align: center; word-wrap: break-word;'>51.6</td><td style='text-align: center; word-wrap: break-word;'>41.9 / 41.4</td><td style='text-align: center; word-wrap: break-word;'>18.2</td><td style='text-align: center; word-wrap: break-word;'>10.3 / 12.8</td><td style='text-align: center; word-wrap: break-word;'>27.2</td><td style='text-align: center; word-wrap: break-word;'>8.2</td><td style='text-align: center; word-wrap: break-word;'>73.1</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>6 classes</td><td style='text-align: center; word-wrap: break-word;'>46.4</td><td style='text-align: center; word-wrap: break-word;'>37.4 / 37.1</td><td style='text-align: center; word-wrap: break-word;'>14.4</td><td style='text-align: center; word-wrap: break-word;'>8.4 / 10.8</td><td style='text-align: center; word-wrap: break-word;'>23.5</td><td style='text-align: center; word-wrap: break-word;'>5.5</td><td style='text-align: center; word-wrap: break-word;'>82.1</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td rowspan="2">Num. classes</td><td style='text-align: center; word-wrap: break-word;'>9 classes</td><td style='text-align: center; word-wrap: break-word;'>33.6</td><td style='text-align: center; word-wrap: break-word;'>30.0 / 30.1</td><td style='text-align: center; word-wrap: break-word;'>8.2</td><td style='text-align: center; word-wrap: break-word;'>5.1 / 6.4</td><td style='text-align: center; word-wrap: break-word;'>17.7</td><td style='text-align: center; word-wrap: break-word;'>5.2</td><td style='text-align: center; word-wrap: break-word;'>87.4</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPformer (11 classes)</td><td style='text-align: center; word-wrap: break-word;'>31.9</td><td style='text-align: center; word-wrap: break-word;'>31.1 / 29.4</td><td style='text-align: center; word-wrap: break-word;'>7.3</td><td style='text-align: center; word-wrap: break-word;'>4.8 / 6.2</td><td style='text-align: center; word-wrap: break-word;'>16.1</td><td style='text-align: center; word-wrap: break-word;'>5.0</td><td style='text-align: center; word-wrap: break-word;'>82.4</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td rowspan="2">Test on 3</td><td style='text-align: center; word-wrap: break-word;'>3 classes</td><td style='text-align: center; word-wrap: break-word;'>51.6</td><td style='text-align: center; word-wrap: break-word;'>41.9 / 41.4</td><td style='text-align: center; word-wrap: break-word;'>18.2</td><td style='text-align: center; word-wrap: break-word;'>10.3 / 12.8</td><td style='text-align: center; word-wrap: break-word;'>27.2</td><td style='text-align: center; word-wrap: break-word;'>8.2</td><td style='text-align: center; word-wrap: break-word;'>73.1</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>6 classes</td><td style='text-align: center; word-wrap: break-word;'>46.6</td><td style='text-align: center; word-wrap: break-word;'>36.9 / 37.6</td><td style='text-align: center; word-wrap: break-word;'>14.7</td><td style='text-align: center; word-wrap: break-word;'>8.4 / 11.3</td><td style='text-align: center; word-wrap: break-word;'>23.3</td><td style='text-align: center; word-wrap: break-word;'>7.4</td><td style='text-align: center; word-wrap: break-word;'>78.6</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td rowspan="2">object classes</td><td style='text-align: center; word-wrap: break-word;'>9 classes</td><td style='text-align: center; word-wrap: break-word;'>37.4</td><td style='text-align: center; word-wrap: break-word;'>31.7 / 31.8</td><td style='text-align: center; word-wrap: break-word;'>8.5</td><td style='text-align: center; word-wrap: break-word;'>5.1 / 7.5</td><td style='text-align: center; word-wrap: break-word;'>18.2</td><td style='text-align: center; word-wrap: break-word;'>8.0</td><td style='text-align: center; word-wrap: break-word;'>85.1</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPformer (11 classes)</td><td style='text-align: center; word-wrap: break-word;'>34.5</td><td style='text-align: center; word-wrap: break-word;'>32.8 / 30.6</td><td style='text-align: center; word-wrap: break-word;'>7.75</td><td style='text-align: center; word-wrap: break-word;'>4.8 / 6.7</td><td style='text-align: center; word-wrap: break-word;'>16.1</td><td style='text-align: center; word-wrap: break-word;'>6.5</td><td style='text-align: center; word-wrap: break-word;'>86.1</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

### 7.6 在EPIC-Contact数据集上使用预测类别

在表2中，我们发现HOPformer的分类准确率达到了52.9%。我们的主要结果是基于预知类别信息得出的。在表7（子集）中，我们展示了物体分类器能够正确分类的测试样本上的结果。

---

![Image](images/f86bc371a6cb6f796e5313ee71a7e636af2902b87635f7b441d3ea4f860ef168.jpg)

<div style="text-align: center;">Fig. 7: ARCTIC Qualitative Results. HOPformer performs well for cases with both hands or with one hand. For small objects like scissors and phone, the method works equally well. Furthermore, for cases when the hand is highly occluded, HOPformer is able to predict a reasonable pose for it (e.g. hand occluded by box and notebook). Top row in each example shows the input RGB image, second row shows the predicted posed hands and object projected on the RGB image, and the last row shows the meshes from a different view.</div>

---

<div style="text-align: center;">Table 7: Fully Automatic Results on EPIC-Contact. Results for correct predictions from the object classification layer (subset). Compared to results on complete dataset, when we evaluate on the correctly classified subset, HOPformer performs comparably.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Method</td><td colspan="2">Contact and Relative Positions</td><td colspan="2">Motion</td><td colspan="2">Hand</td><td colspan="2">Object</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$CDev [mm]  ↓$</td><td style='text-align: center; word-wrap: break-word;'>$MRRPE _{ro} [mm]  ↓$</td><td style='text-align: center; word-wrap: break-word;'>$MDev [mm]  ↓$</td><td style='text-align: center; word-wrap: break-word;'>$ACC _{h/o} [m/s^{2}]  ↓$</td><td style='text-align: center; word-wrap: break-word;'>$MPJPE [mm]  ↓$</td><td style='text-align: center; word-wrap: break-word;'>$SR@0.05 [%]  ↑$</td><td style='text-align: center; word-wrap: break-word;'>$SR@0.10 [%]  ↑$</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPformer (complete data)</td><td style='text-align: center; word-wrap: break-word;'>20.7</td><td style='text-align: center; word-wrap: break-word;'>65.8</td><td style='text-align: center; word-wrap: break-word;'>11.4</td><td style='text-align: center; word-wrap: break-word;'>2.5/4.1</td><td style='text-align: center; word-wrap: break-word;'>19.9</td><td style='text-align: center; word-wrap: break-word;'>29.8</td><td style='text-align: center; word-wrap: break-word;'>69.7</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPformer (subset)</td><td style='text-align: center; word-wrap: break-word;'>20.2</td><td style='text-align: center; word-wrap: break-word;'>64.5</td><td style='text-align: center; word-wrap: break-word;'>11.4</td><td style='text-align: center; word-wrap: break-word;'>2.2/3.6</td><td style='text-align: center; word-wrap: break-word;'>18.4</td><td style='text-align: center; word-wrap: break-word;'>30.4</td><td style='text-align: center; word-wrap: break-word;'>68.4</td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

![Image](images/a54c8d04cbefe7b9de96e5ffb2a7c33e562d74049af5e66cf6648c570792dca0.jpg)

<div style="text-align: center;">Fig. 8: Qualitative examples of CAD-free methods: HOLD-Net [^15] and G-HOP [^65]. Note that these are video-based methods and hence not directly comparable with HOP-former.</div>

HOPformer在该子集上取得了相近的分数，且使用的是全自动处理流程。需要注意的是，这些结果无法直接比较，因为它们是基于分类正确的测试图像子集得出的。

需要特别指出的是，对于分类错误的样本，无法计算评估指标，因为不同物体的拓扑结构存在差异，而且为另一种CAD模型计算物体姿态是没有意义的——这需要进行顶点级别的形状匹配，而这是无法实现的。

### 7.7 HOPformer与无CAD方法的对比

在图8中，我们探讨了无CAD方法并展示了定性结果。我们选取了两种具有代表性的方法：i) HOLD-Net [^15]，一种不依赖学习先验、仅利用照片几何线索的形状重建方法；ii) G-HOP [^65]，一种利用学习到的形状先验的形状重建方法。如图8所示，HOLD-Net和G-HOP生成的形状或手-物交互效果与实际情况存在偏差。需要注意的是，无CAD方法的任务设定与HOPformer截然不同，它们并不会估计物体相对于其标准CAD/形状的姿态。

---

![Image](images/30db204c5b753d321f779e1e6a8a496137c484fb7f6934ceedb035069451294c.jpg)

<div style="text-align: center;">Fig. 9: SAM3D [^9] Failure Cases. SAM3D fails under heavy occlusion and transparent objects. Whereas the proposed pipeline for curating the EPIC-Contact dataset, despite the challenges, not only provides an accurate object pose, but also a hand pose. Notable examples are in rows one, three, and four where SAM3D generates a small container with handle instead of bottle, a bottle instead of can, and a black handled container instead of an espresso cup.</div>

虽然与HOPformer的机制截然不同，但它们并未估算物体相对于其标准CAD模型/形状的姿态。

此外，我们评估了最新的SAM 3D [^9]模型在EPIC-Contact数据集中生成物体3D CAD模型的能力。如图9所示，尽管该模型经过了大量数据的训练且采用了更强大的骨干网络，但由于存在严重遮挡和透明物体等挑战，SAM 3D仍无法为EPIC-Contact中的物体生成精确的CAD模型。例如，在第一个示例中，瓶子被预测为水壶；在第二个示例中，透明的玻璃杯被误判为碗。有时，物体甚至会被识别为不合逻辑的形状，比如第四行中的咖啡杯。而HOPformer模型借助预先定义好的已知CAD模型库，能够预测出姿态准确的手部与物体网格。

### 7.8 HOPformer在ARCTIC数据集的外中心视角划分上的表现

---

### 8 EPIC-Contact数据集

在表1中，我们报告了HOPformer在ARCTIC数据集的 Egocentric划分上的结果。同时，我们也给出了在外中心视角测试集上的结果。与Egocentric划分的结果一致，外中心视角划分的各项指标均有所提升。如表8所示，物体的相关指标，如MDev和$MRRPE_{rl}$分别改善了2.6毫米和3.7毫米；手部重建的MPJPE指标也提升了5.1毫米。这一结果不仅体现了HOPformer的泛化能力，也证明了所提出模型在利用手部先验知识进行学习方面的实用性。

### 8.1 视频筛选

在本节中，我们将提供关于所提出的EPIC-Contact数据集的补充信息。

## 8.1 视频选择

EPIC-Contact中的视频源自EPIC-Grasps数据集[^74]，因为这些视频包含了具有挑战性且多样的手部与物体交互场景。此外，该数据集为9类物体（杯子、平底锅、玻璃杯、水壶、炖锅、瓶子、盘子、碗和罐头）提供了对应的3D网格模型，因此非常适合用于生成手部与物体的姿态网格。另外，EPIC-Grasps数据集中的视频展示了手部与物体之间的“稳定抓取”状态，即当使用者操作物体时，同一组物体顶点和手部顶点会保持接触。这使我们只需为每段视频标注一帧，再利用WiLoR[^49]获取的手部姿态信息将标注扩展到其余帧。

对于手部与物体的掩码，我们从VISOR数据集$^{[14]}$中获取真实的掩码数据。

## 8.2 VLM尺度估计与尺度验证

从[^74]获取的这九类物体的网格模型具有固定的尺度。这一尺度可能与视频中出现的物体实例并不完全匹配。如果我们

<div style="text-align: center;">Table 8: ARCTIC Exocentric Split. Similar to observation on egocentric split, HOPformer outperforms baselines on majority metrics. Especially, CDev and MPJPE show the largest reductions, by 4.6 and 5.1, respectively. This shows that HOPformer can generalise to exocentric view as well. Bold numbers denote the best performance and numbers in () show the difference of HOPformer's performance from state-of-the-art.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Method</td><td colspan="3">Contact and Relative Positions</td><td colspan="2">Motion</td><td colspan="2">Hand</td><td colspan="2">Object</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>CDev [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MRRPE $_{ri/ro}$ [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MDev [mm] $\downarrow$</td><td colspan="2">ACC $_{h/o}$ [m/s $^{2}$] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MPJPE [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>AAE [°] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>SR@0.05 [%] $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>Cls [%] $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ArcticNet-SF [^16]</td><td style='text-align: center; word-wrap: break-word;'>41.4</td><td style='text-align: center; word-wrap: break-word;'>50.1 / 37.6</td><td style='text-align: center; word-wrap: break-word;'>10.4</td><td colspan="2">6.6 / 8.8</td><td style='text-align: center; word-wrap: break-word;'>23.0</td><td style='text-align: center; word-wrap: break-word;'>5.9</td><td style='text-align: center; word-wrap: break-word;'>71.8</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>JointTransformer [^1]</td><td style='text-align: center; word-wrap: break-word;'>29.1</td><td style='text-align: center; word-wrap: break-word;'>32.9 / 27.0</td><td style='text-align: center; word-wrap: break-word;'>8.0</td><td colspan="2">6.0 / 6.8</td><td style='text-align: center; word-wrap: break-word;'>17.8</td><td style='text-align: center; word-wrap: break-word;'>4.1</td><td style='text-align: center; word-wrap: break-word;'>86.8</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPformer (ours)</td><td style='text-align: center; word-wrap: break-word;'>24.5 (-4.6)</td><td style='text-align: center; word-wrap: break-word;'>29.2 (-3.7) / 23.6 (-3.4)</td><td style='text-align: center; word-wrap: break-word;'>5.4 (-2.6)</td><td style='text-align: center; word-wrap: break-word;'>4.9 (-1.1)</td><td style='text-align: center; word-wrap: break-word;'>/ 4.3 (-2.5)</td><td style='text-align: center; word-wrap: break-word;'>12.7 (-5.1)</td><td style='text-align: center; word-wrap: break-word;'>4.8 (+0.7)</td><td style='text-align: center; word-wrap: break-word;'>90.3 (+3.5)</td><td style='text-align: center; word-wrap: break-word;'>99.7</td></tr></table>

---

![Image](images/583f0afd24c3f547e92dbdeebed4dc4750958a313fd3b8c312736bd95f2dee1a.jpg)

<div style="text-align: center;">Fig. 10: Updating Object's Scale. Here we show how the object's scale is updated using VLM's [^11] output to match object's scale in the input image. We elaborate the process in the first row where we show the input image, VLM's output, and updated object's (glass in this case) mesh. Notice, how the height of the glass changes along with the diameter of base and top to match the glass in input image. We show two more examples (excluding VLM and object's zoom for brevity) where height of the cup and diameter of the pan along with its handle length changes.</div>

在标注流程中使用这些未经正确缩放的网格模型，所得到的双向接触关系将会不准确。为解决这一问题，我们利用VLM（Gemini 2.5 [^11]）来推断物体的尺度。我们选取视频片段中的中心帧，并提示Gemini提供该物体的尺度信息。

为了获得精确的3D物体网格，我们采用不同等级的缩放参数来实现物体的非均匀缩放。例如，对于平底锅，我们会让Gemini提供平底锅的直径（不含手柄）以及长度（含手柄）。这样就能针对同一网格模型在两个维度上进行缩放，从而适配不同尺寸的平底锅及不同的手柄长度。图10展示了根据VLM提供的尺度更新网格后的变化效果。

最后，为确保每个物体都能被准确缩放，我们为每种物体定制了专属的提示词。第11节列出了所使用的提示词。

为了验证VLM给出的尺度预测结果，我们选取了涵盖全部9个类别的30个物体，并手动将其与真实物体尺寸进行比较。在可能的情况下，

---

![Image](images/dfaddd4944a74ac43f4d6e18b69d77488a4ada2da6a41536198d7d3c4ac8fbbd.jpg)

![Image](images/d6b1304123bada355b93155cae1f2bb8dee9143aaaa15784a54aced75efbd080.jpg)

<div style="text-align: center;">Fig. 11: VLM scale estimation verification. We show 4 representative examples from 30 objects covering all 9 classes used to verify these scale predictions. For each example, we show the object in the EPIC-Contact video, the real-life object measured (or an exact size match as in the can example), the VLM predicted dimensions, the measured dimensions, and the error in predicted dimensions. This allows us to evaluate the VLM scale estimates against ground truth dimensions. In real measurements, we keep a keyboard in the background for scaling. We also show measured vs. VLM-predicted dimensions for all measured dimensions in the 30-object verification set. The solid line denotes exact agreement and the dashed lines denote  $\pm10\%$ error.</div>

我们会挑选已知品牌的物体（如图11中所示的特定品牌油瓶），并测量该实物物体的尺寸。对于具有多个缩放维度的物体，我们会对比VLM给出的相应尺寸。图11展示了此次验证分析中的典型示例，包括EPIC-Contact视频中的物体、现实中测量的同一实物、VLM预测的尺寸、实际测量尺寸以及预测误差。借此我们可以评估VLM尺度估计结果与真实尺寸的吻合程度，最终得到0.94厘米的MAE（相对误差为5.9%），且82.5%的样本误差范围在$\pm10\%$之内。

## 8.3 标注手部接触区域

图12展示了用于采集手部接触区域的界面。左侧显示的是一段包含物体稳定抓取状态的视频片段，同时标明了需要关注的手部侧别和物体类别（例如示例中为右侧手部和瓶子）。

在界面右侧，我们展示了经过放大处理的MANO网格[^52]，供标注员在上面进行“绘制”操作。界面上有多种控件，大致可分为两类：网格操作和绘制操作。在网格操作方面，我们可以拖动、旋转、移动和缩放手部网格。此外，还有两个按钮：“清除全部”用于删除所有标注，“重置视图”则可将网格恢复到初始位置。在绘制操作方面，我们提供了多种笔刷尺寸，以便在手部接触区域进行更精细的绘制。我们还有“绘制”和“擦除”两种模式，标注员可以选择其中一种模式。

---

![Image](images/04c73538ae97c43e87511ff326f189eca6eafa9a2dc60ab77cffc4bb69a8060b.jpg)

<div style="text-align: center;">Fig.12: Interface to get Hand Contact Regions. The interface is divided into two parts, in the left we show the video to the annotator along with the hand side and object to focus on. On the right, we show the MANO mesh along with various controls like zoom, pan, rotate and the paint brush with variable brush size to paint on the mesh. For this example, the annotator paints the region on the right hand where the bottle is touching the hand. The output is shown in the rightmost column.</div>

![Image](images/887c02fbe0c04202a47ef6e8c9e853803d0fdc87320fd8726012c23799baacd7.jpg)

<div style="text-align: center;">Fig.13: Annotator agreement indicated by  $\kappa_{h}$. The figure shows the vertices annotated on the hand (the same hand is shown from the front and the back). We show annotations for all 12 workers. For the bowl example, we get a  $\kappa_{h}$ score of 0.66 across 12 workers. Most of the annotators agree to the general portion of the hand. For the plate example, we get  $\kappa_{h}$ of 0.59.</div>

---

选择任意一种模式后，点击网格并在想要绘制或擦除的区域上移动光标即可。只需单击一次就能在网格上进行绘制或擦除操作，这既提高了标注效率，又能保证标注质量。最后，图12右侧展示了本示例中绘制好的MANO网格（黑色）。

标注验证：我们按照DECO $\kappa_h$中的方法，计算了12名标注员对10个样本标注后的标注者间一致性([^57])，结果为0.61（相比之下，[^57]中的结果则为0.65）。如图13所示，碗状样本的一致性$\kappa_h$最高，达到0.66；而盘子样本的一致性$\kappa_h$最低，为0.59。

## 8.4 标注物体上的接触区域

图14展示了一个用于将标注好的手部区域转移到物体上的基于网页的界面。该图分为两部分：蓝色背景部分显示的是标注员看到的界面，黄色背景部分则显示了界面的其他元素以及输出结果。该界面包含展示手与物体交互的视频、手部区域以及需要关注的物体。

界面右上角会显示标注好的手部区域（绿色），以及“接触轴”（蓝色圆球和红线）。标注人员可以旋转、平移或缩放这个MANO网格，以便更清楚地了解该区域和接触轴的方向。共有三个这样的区域（如主论文中所述）：手指、手掌和拇指。界面一次只显示一个区域，但为完整起见，图中展示了全部三个区域（右侧的黄色部分为手掌和拇指）。

界面右下角，标注人员可以看到待粘贴手部区域的物体网格（如图14中的瓶子）。标注人员需对每个区域进行两次点击：第一次点击用于放置作为轴线起点的蓝色圆球，第二次点击则用于确定与红线对齐的方向。完成这两次点击后，相应的接触区域就会被转移到物体上，从而建立手部与物体之间接触点的双射映射关系。与操作手部网格类似，标注人员也可以旋转、平移或缩放物体网格，以便更精准地定位手部接触区域。图14展示了转移到瓶子上的接触区域，这也是标注人员在确定最终标注结果前用于验证的内容。平均而言，包括质量验证时间在内，标注人员处理每个视频大约需要3-4分钟。

手指间距问题：将四个手指归为一个区域来进行物体转移会带来独特的挑战。我们做出这一决定是为了确保转移过程的一致性。然而，若使用默认的MANO扁平手模型（如图12所示）来转移接触区域，就无法调整手指间的间距。我们在保持标注流程高效的同时，以一种创新的方式解决了这一难题。

我们从数据集中识别出手部姿态估计中手指间距离的41种常见配置，图15展示了左手的情况。这些姿态代表了各种手指组合（例如张开、并拢）。我们会自动选出与手部姿态估计最匹配的配置。

---

![Image](images/fc9531262bfe49440529b6b38d97a469bb6543621de094beef475d17e20b2034.jpg)

<div style="text-align: center;">Fig. 14: Interface to transfer Contact Regions from Hand to Object. Region with blue background shows the interface that annotators see for transferring the hand contact regions to object. On the left, we show the video containing the hand-object interaction. On the right (top), we show the hand contact region (in green) obtained from the previous exercise along with the calculated “contact axis” (blue ball and red line). We show the other two contact patches (Palm and Thumb) to the right. On the right (bottom), the annotator would transfer the contact axis and eventually the hand contact patch to the object (bottle in this case). The interface also contains the option to jump between various contact patches to get more accurate annotations. The output is shown in the bottom right of the figure.</div>

---

![Image](images/8e8f97db636bdb1eb8cb2ef9f7c375706e1f2563b1e0a9581afd72ce16944e6b.jpg)

<div style="text-align: center;">Fig. 15: 41 Flat Hand Poses' Pool. Set of flat hand poses (left hand in this case) to enable realistic finger distancing when transferring contact patches for four fingers using one contact axis.</div>

WiLoR [^49]。我们获取MANO手部位姿向量（$\theta$），并利用它来通过测地距离找到最接近的姿势配置。具有最小测地距离的平展手姿会被用来将接触区域转移到物体上，从而确保手指间距保持真实自然。计算该距离时，我们仅使用会影响手指张开的$\theta \in \mathbb{R}^{48}$部分，且仅针对这些维度计算测地距离，以此精准还原平展的手部网格。

标注验证：我们对4名标注员标注的10个样本计算标注者间一致性$\left(\kappa_{o}\right)$，结果为0.62。如图16所示，托盘样本的$\kappa_{o}$最高，达到0.84；而杯子样本的$\kappa_{o}$较低，为0.59。需要注意的是，关于物体上双射对应关系的$\kappa$并未在[^12]和[^57]中报告。

## 8.5 EC-fit流程的细节与评估

Penetration Loss: A penetration loss $\mathcal{L}_p$ is utilised to prevent hand-object penetration. At the stage of refining object pose, we build a Signed Distance Field (SDF) $\Psi_{\mathcal{H}}(\cdot)$ of the hand mesh $\mathcal{H}$, with positive value for a 3D point inside $\mathcal{H}$ and negative value outside $\mathcal{H}$. Since we aim to penalise object points for being inside the hand mesh, we define the penetration loss as: $\mathcal{L}_p^o = \frac{1}{|\mathcal{O}|} \sum_{i=1}^{|\mathcal{O}|} \max(\Psi_{\mathcal{H}}(o_i), 0)$, where $o_i \in \mathcal{O}$ are the object vertices. At the stage of refining hand pose, we instead build the SDF of the object mesh $\mathcal{O}$, and penalise the hand points for being inside the object mesh: $\mathcal{L}_p^h = \frac{1}{|\mathcal{H}|} \sum_{i=1}^{|\mathcal{H}|} \max(\Psi_{\mathcal{O}}(h_i), 0)$, where $h_i \in \mathcal{H}$ are hand vertices.

手部与物体网格的姿态质量：如第3.3节所述，我们利用接触区域来获取用于EPIC-Contact的手部与物体姿态网格。在此，我们借助可提供真实3D动作捕捉姿态数据的ARCTIC数据集，来评估这种姿态估计的误差。考虑到优化的成本，我们从ARCTIC训练集中随机选取20%的样本（共37,051帧）进行计算。

---

![Image](images/2e8d58dca6079ced8de3affbf1f30833d26f4acf89315733f3a475b2c71fb5ed.jpg)

<div style="text-align: center;">Fig. 16: Annotator agreement indicated by  $\kappa_{o}$. For the pan example, all annotators mark almost similar regions for fingers (in red), palm (in green), and thumb (in blue).</div>

<div style="text-align: center;">Table 9: Quality of Posed Hand-Object Meshes comparing 'Contact-based Alignment' (the first part of the pipeline) to the full pipeline.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Method</td><td colspan="3">Pose L2 Error [mm] $\downarrow$ MRRPE [mm] $\downarrow$ CDev [mm] $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EC-fit (contact-alignment only)</td><td style='text-align: center; word-wrap: break-word;'>5.0</td><td style='text-align: center; word-wrap: break-word;'>9.6</td><td style='text-align: center; word-wrap: break-word;'>7.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EC-fit (full)</td><td style='text-align: center; word-wrap: break-word;'>1.9</td><td style='text-align: center; word-wrap: break-word;'>8.0</td><td style='text-align: center; word-wrap: break-word;'>12.2</td></tr></table>

手部接触顶点以及对应的物体接触顶点。我们将此视为唯一的标注信息，舍弃真实的3D物体姿态数据，转而采用我们在第3.3节中介绍的EC-fit流程来估算手部与物体的姿态网格。

表9展示了采用我们的拟合方法得到的手部与物体姿态网格相对于3D真实数据的误差情况。所生成的姿态网格的Pose L2误差（预测顶点的平均L2误差）为1.9毫米，MRRPE值为8.0毫米，与真实数据相差极小。此外，我们的完整流程在改善物体姿态误差方面表现优于接触对齐阶段的结果（仅CDev指标有所上升）。

评估我们所构建的手部网格的另一种方式是，比较手部与物体网格之间的穿透程度，以及它们与3D真实姿态的差异。表10将MoCap数据集ARCTIC与我们通过EPIC-Contact生成的手部网格进行了对比。虽然这些来自不同的视频片段，但平均穿透程度可视为手部网格质量的一个指标。穿透程度的计算方式遵循[^29]。EPIC-Contact产生的穿透深度为0.79厘米。

---

<div style="text-align: center;">Table 10: Hand-object penetration values.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Dataset</td><td style='text-align: center; word-wrap: break-word;'>Penetration Volume [ $cm^{3}$]</td><td style='text-align: center; word-wrap: break-word;'>\downarrow Max Penetration Depth [cm]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ARCTIC</td><td style='text-align: center; word-wrap: break-word;'>7.24</td><td style='text-align: center; word-wrap: break-word;'>0.80</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EPIC-Contact</td><td style='text-align: center; word-wrap: break-word;'>20.9</td><td style='text-align: center; word-wrap: break-word;'>0.79</td></tr></table>

<div style="text-align: center;">Table 11: Robustness to EC-fit pose Noise. On a subset of egocentric split from ARCTIC, we show the effect of using posed hand-object meshes from our EC-fit pipeline. HOPformer when trained using estimated hand-object posed mesh works equally well compared to when training with the ground truth. Therefore, HOPformer is robust to any noise or penetration errors during training.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Pose Source</td><td colspan="2">Contact and Relative Positions</td><td colspan="2">Motion</td><td style='text-align: center; word-wrap: break-word;'>Hand</td><td colspan="2">Object</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>CDev [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MRRPE $_{rl/ro}$ [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MDev [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>ACC $_{h/o}$ [m/s $^{2}$] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MPJPE [mm] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>AAE [°] $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>SR@0.05 [%] $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ground Truth</td><td style='text-align: center; word-wrap: break-word;'>40.9</td><td style='text-align: center; word-wrap: break-word;'>35.6 / 37.3</td><td style='text-align: center; word-wrap: break-word;'>11.6</td><td style='text-align: center; word-wrap: break-word;'>6.6 / 10.8</td><td style='text-align: center; word-wrap: break-word;'>20.1</td><td style='text-align: center; word-wrap: break-word;'>7.2</td><td style='text-align: center; word-wrap: break-word;'>71.9</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EC-fit poses</td><td style='text-align: center; word-wrap: break-word;'>41.1</td><td style='text-align: center; word-wrap: break-word;'>35.7 / 37.0</td><td style='text-align: center; word-wrap: break-word;'>11.7</td><td style='text-align: center; word-wrap: break-word;'>6.7 / 10.7</td><td style='text-align: center; word-wrap: break-word;'>20.2</td><td style='text-align: center; word-wrap: break-word;'>7.0</td><td style='text-align: center; word-wrap: break-word;'>71.8</td></tr></table>

而穿透体积则为20.9立方厘米，这一数值与通过MoCap设备采集的ARCTIC网格相当。显然，在穿透深度方面我们的结果与MoCap数据相近，且穿透体积更大。我们注意到，3D MoCap数据平均也会产生较大的穿透体积。这进一步体现了EPIC-Contact中手部-物体网格的高质量。

HOPformer对手部-物体网格的鲁棒性：接下来，对于HOPformer而言至关重要的一点是，我们评估其对估计出的手部网格误差的鲁棒性。我们运行了两个模型，一个使用真实姿态，另一个则使用通过我们的流程从接触区域得到的估计手部网格。我们在同一验证集上以真实姿态为基准进行评估，结果见表11。即便如表10所示穿透体积有所增加，各项指标仍保持相对稳定，这表明与使用真实MoCap数据相比，HOPformer对于利用接触区域得到的物体姿态中的微小误差具有较强的鲁棒性。这进一步验证了EPIC-Contact标注数据在训练3D手部-物体姿态估计模型方面的适用性。

## 8.6 EPIC-Contact上的训练-测试划分

We select 10% of the unique videos in EPIC-Contact as the test set. This leaves us with 2,035 videos to train on and 237 videos to evaluate on out of 2,272 total videos. We randomly select the 237 videos while making sure the same videos are not across the train and test split.

## 9 Additional Relevant Works

In the main paper, we reviewed the most closely related works. As 3D hand-object interaction understanding is a diverse topic, this section discusses additional relevant works in a broader context.

---

Early work on egocentric hand–object interaction and contact reasoning includes Rogez et al. [^51], which introduces an egocentric dataset of everyday grasps and focuses on grasp taxonomy and synthetic 3D hand pose generation. ContactPose [^4] is an in-lab dataset that captures 3D hand–object contact regions using thermal sensors. As thermal sensors do not provide point-wise contact correspondences, ContactPose still relies on markers to estimate the object pose.

Another category of relevant work explores hand grasp generation. The task of hand grasp generation is to produce plausible hand–object interactions, with or without image input as a condition. These methods either do not estimate the pose of the CAD model of interest [^65] or do not attempt to reconstruct the interaction observed in the images [^29].

Regarding datasets, we additionally note two early in-lab 3D hand-object datasets: HO3D [^22] and FPHA [^17]. While these two datasets pioneered 3D hand-object annotation, EPIC-Contact takes a further step in addressing in-the-wild challenges.

## 10 Limitations and Future Directions

For our two proposed contributions: EPIC-Contact and HOPformer, there are some clear limitations, that can be explored in future works.

For EPIC-Contact, the annotation pipeline, while robust (as we show in our results), is still time consuming (around 3-4 minutes per annotated centre frame). We hypothesise that a better initialisation for contact can be estimated from trained methods to allow annotators to start from a best estimate. Additionally, we propagate manually-verified ground-truth from a single frame to a clip. Propagation can be noisy due to errors in hand pose estimates from WiLoR [^49] (hand-side errors or camera placement jumps). Note that our reported metrics are relative/root-aligned and hence unaffected. To assist future users, we release per-frame confidence scores by measuring temporal smoothness over the short clip. This allows dataset users to filter confidently labelled propagated frames.

HOPformer currently estimates poses for a handful of object categories (e.g. 9 for EPIC-Contact). Scaling HOPformer to more object classes is reserved for future work. Additionally, while we explore articulated objects in the ARCTIC dataset, we do not explore object articulation in-the-wild which we also leave for future work.

## 11 Object Scale Prompts

Prompt for Pan (two degrees-of-scale):

You are an expert AI assistant specialising in visual analysis and real-world object dimension estimation. Analyse the provided image. Your goal is to estimate two key dimensions of the pan being held by the {left/right} hand. First dimension is the length of the pan (or the length of the longest side of

---

the pan INCLUDING the handle) and second dimension is the diameter of the pan (EXCLUDING the handle).

背景信息：1. 人类手掌完全展开时宽度约为0.2米。2. 以手掌大小为参照来估算平底锅的尺寸。3. 需考虑图像的透视效果以及可能存在的遮挡情况。4. 摄像头由人佩戴在头部（这能帮你大致判断摄像头与手之间的距离）。5. 由于摄像头戴在头上，俯视视角可能会使物体看起来更小，因此你可能需要对此进行修正。6. 照片中的人是成年人。7. 平底锅可能被手部分遮挡（尤其是手柄部分），所以你可能需要根据可见部分以及关于平底锅尺寸的常识来估算其大小。

输出约束：1. 输出必须是一个JSON对象。2. 该JSON对象必须包含“diameter”和“longest_side”两个键。3. 每个键对应的值必须是单个浮点数。4. 所有数值的单位均为米。5. 示例格式：{"diameter": 0.28, "longest_side": 0.25}。6. 最终答案中不得包含其他文字、单位或解释说明。

推理过程（请在内部遵循此步骤以得出答案）：1. 确定平底锅的位置（它位于手中）。2. 利用上下文线索判断尺寸：主要的尺寸参考是那双握住平底锅的成人手。3. 估算边界框：在脑海中为平底锅勾勒出最紧凑的3D矩形盒，并根据视觉信息和对该物体的常识来估算其三个维度（如长度、宽度、高度）。4. 确定最长边：找出这三个估算出的边界框维度中最大的一个，务必包含平底锅的把手部分。该数值即为“longest_side”。5. 估算平底锅顶部的直径。根据常见平底锅的尺寸知识来进行估算，注意不要将把手纳入考量。6. 综合并定稿：结合视觉信息与关于典型平底锅尺寸的常识，得出两个所需维度的最合理最终估算值。7. 转换并格式化：确保两个最终估算值均以米为单位，并将其整理成指定的JSON结构。

## 关于瓶子（两种尺度）的提示词

你是一位专门从事视觉分析和现实物体尺寸估算的专家级AI助手。请分析所提供的图像，目标是估算被{左/右}手拿着的瓶子的两个关键尺寸。第一个维度是瓶子的高度（或瓶子最长边的长度），第二个维度是瓶子底部的直径。

背景信息：1. 人类手掌完全伸展时宽度约为0.2米。2. 以手掌的大小作为参照点来…

---

estimate the size of the object. 3. Consider the perspective and any potential occlusions in the image. 4. The camera is worn on the head by the human (this will give you a rough estimate of the distance of the camera from the hand; this could also make the object look small due to top-down perspective so keep that in mind). 5. Person in the photo is an adult. 6. The bottle could be partially occluded by the hand, so you may need to estimate the size based on the visible portion and common knowledge of bottle sizes. 7. To compensate for the top-down perspective, first estimate the more reliable diameter, then infer the true height by considering that a bottle could be typically 3 to 4 times taller than it is wide.

Output Constraints: 1. The output must be a single JSON object. 2. The JSON object must contain two keys: “diameter” and “longest_side”. 3. The value for each key must be a single floating-point number. 4. The unit for all values must be metres. 5. Example Format: “diameter”: 0.28, “longest_side”: 0.25 6. Do not include any other text, units, or explanations in your final answer.

Reasoning Process (follow this internally to arrive at your answer): 1. Identify the bottle (it is in the hands). 2. Use contextual clues for scale: The primary scale reference is the pair of adult hands holding the bottle. 3. Estimate Bounding Box: Mentally fit the tightest possible 3D rectangular box around the object. Estimate its three dimensions (e.g., length, width, height) based on visual evidence and common knowledge of the object. 4. Determine Longest Edge: Identify the largest of the three estimated bounding box dimensions. This value is your “longest_side”. 5. Estimate Diameter of the bottle. You could use the curling of the fingers around the bottle for cues. 6. Synthesise and Finalise: Combine the visual information with common knowledge about typical bottle sizes to produce the most plausible final estimates for both required dimensions. 7. Convert and Format: Ensure both final estimates are in metres and format them into the specified JSON structure.

## Prompt for Bowl (two degrees-of-scale)

You are an expert AI assistant specialising in visual analysis and real-world object dimension estimation. Analyse the provided image. Your goal is to estimate two key dimensions of the bowl being held by the {left/right} hand. First dimension is the depth of the bowl (imagine there is a lid on the top; what would be the distance from the lid to the bottom of the bowl) and second dimension is the diameter of the top of the bowl (the opening part). Contextual Information: 1. The human hand is approximately 0.2 metres wide when fully extended. 2. Use the size of the hand as a reference point to estimate the size of the bowl. 3. Consider the perspective and any potential occlusions in the image. 4. The camera is worn on the head by the human (this will give you a rough estimate of the distance of the camera from the

---

手；由于俯视视角，这也可能使物体看起来较小，请务必注意这一点）。5. 照片中的人是一名成年人。6. 碗可能会被手部分遮挡，因此你可能需要根据可见部分以及关于碗尺寸的常见认知来估算其大小。7. 由于相机佩戴在头上，同样可能因俯视视角使物体看起来较小，所以你可能需要对此进行修正。

输出约束：1. 输出必须是一个JSON对象。2. 该JSON对象必须包含“diameter”和“longest_side”两个键。3. 每个键的值必须是单个浮点数。4. 所有值的单位必须是米。5. 示例格式：“diameter”: 0.28, “longest_side”: 0.25。6. 最终答案中不得包含任何其他文本、单位或解释。

推理过程（请在内部遵循此步骤以得出答案）：1. 确定碗的位置（它在手中）。2. 利用上下文线索判断比例：主要的比例参考是握着碗的那双成年人的手。3. 估算边界框：在脑海中为碗勾勒出最紧凑的3D矩形框，根据视觉信息和关于该物体的常见认知来估算其三个维度（如长度、宽度、高度）。4. 确定深度：从估算出的边界框维度中找出碗的深度，该数值即为“longest_side”。5. 估算碗的直径。可以借助手指环绕碗的形状作为参考。6. 综合并定稿：结合视觉信息与关于常见碗尺寸的认知，得出两个所需维度的最合理估算值。7. 转换并格式化：确保最终估算值以米为单位，并将其整理成指定的JSON结构。

## 关于Can的提示词（两种比例尺度）

您是一位专门从事视觉分析和现实物体尺寸估算的专业AI助手。请分析所提供的图像，目标是估算被{左/右手}握住的罐子的两个关键尺寸：第一个是罐子的高度（或罐子最长边的长度），第二个是罐子顶部/底部的直径。

背景信息：1. 人类手掌完全伸展时宽度约为0.2米。2. 以手掌大小为参照来估算罐子的尺寸。3. 需考虑图像中的透视效果以及可能存在的遮挡情况。4. 摄像头由人佩戴在头部（这能帮助您大致判断摄像头与手的距离；不过俯视视角也可能导致物体看起来更小，这一点需留意）。5. 照片中的人物为成年人。6. 罐子可能被手掌部分遮挡，因此可能需要根据可见部分以及常见的罐子尺寸来估算其大小。7. 由于

---

摄像头佩戴在头部，俯视视角可能导致物体看起来更小，因此您可能需要对此进行修正。

输出约束：1. 输出必须是一个JSON对象。2. 该JSON对象必须包含“diameter”和“longest_side”两个键。3. 每个键对应的值必须是单个浮点数。4. 所有数值的单位均为米。5. 示例格式：“diameter”: 0.28, “longest_side”: 0.25。6. 最终答案中不得包含其他文本、单位或解释说明。

推理过程（请在内部遵循此步骤以得出答案）：1. 确定罐子的位置（它就在手中）。2. 利用上下文线索判断尺寸：主要的尺寸参照物是那双握住罐子的成人手。3. 估算边界框：在脑海中为罐子勾勒出最紧凑的3D矩形盒，根据视觉信息和对该物体的常识来估算其三个维度（如长度、宽度、高度）。4. 确定最长边：找出这三个估算出的边界框维度中数值最大的那个，该值即为“最长边”。5. 估算罐子的直径：可以借助手指环绕罐子的情形作为参考。6. 综合并定稿：将视觉信息与关于常见罐子尺寸的常识相结合，从而得出这两个所需维度的最合理最终估算值。7. 转换并格式化：确保两个最终估算值均以米为单位，并将其整理成指定的JSON结构。

## 杯子提示词（两种尺度等级）

你是一位专门从事视觉分析和现实物体尺寸估算的专家级AI助手。请分析所提供的图像，目标是估算被{左/右}手握住的杯子的两个关键尺寸：第一个维度是杯子的高度（或杯子最长边的长度），第二个维度是杯子顶部的直径。

背景信息：1. 人类手掌完全伸展时宽度约为0.2米。2. 以手掌大小作为参照来估算杯子的尺寸。3. 需考虑图像的视角以及可能存在的遮挡情况。4. 相机由人佩戴在头部（这能帮你大致判断相机与手之间的距离；由于俯视视角，物体可能会显得较小，这一点需留意）。5. 照片中的人物为成年人。6. 杯子可能被手掌部分遮挡，因此需根据可见部分及常见的杯子尺寸来估算其大小。7. 由于相机戴在头上，受俯视视角影响物体可能显得较小，你可能需要对此进行修正。8. 忽略杯子的把手（如果有的话）。

输出要求：1. 输出必须是一个JSON对象。2. 该JSON对象需包含两个键：“diameter”和“longest_side”。3. 每个键对应的值必须是单个浮点数。4. 所有数值的单位均为米。

---

5. 示例格式：“diameter”: 0.28, “longest_side”: 0.25。6. 最终答案中不得包含其他文字、单位或解释说明。

推理过程（在内部遵循此步骤以得出答案）：1. 确定杯子的位置（它位于手中）。2. 利用上下文线索判断尺寸：主要的尺寸参照物是握着杯子的那双成人的手。3. 估算边界框：在脑海中为杯子勾勒出最紧凑的3D矩形盒，根据视觉信息和对该物体的常识来估算其三个维度（如长度、宽度、高度）。4. 确定最长边：找出这三个估算出的边界框维度中最大的那个值，该值即为“longest_side”。5. 估算杯子顶部的直径：可以借助手指环绕杯子的情形作为参考。6. 综合并定稿：将视觉信息与关于常见杯子尺寸的常识相结合，从而得出这两个所需维度的最合理估算值。7. 转换并格式化：确保两个最终估算值均以米为单位，并将其整理成指定的JSON结构。

## 关于玻璃杯的提示词（三种尺度等级）

你是一位专精于视觉分析和现实物体尺寸估算的专家级AI助手。请分析所提供的图像，目标是估算被{left/right}手所握玻璃杯的三个关键维度。第一个维度是玻璃杯的高度（或玻璃杯最长边的长度），第二个维度是玻璃杯顶部的直径，第三个维度是玻璃杯底部的直径。

背景信息：1. 人类手掌完全伸展时宽度约为0.2米。2. 以手掌大小为参照来估算玻璃的尺寸。3. 需考虑图像的视角以及可能存在的遮挡情况。4. 摄像头由人佩戴在头部（由此可大致判断摄像头与手之间的距离；由于俯视视角的影响，物体可能会显得较小，这一点需留意）。5. 照片中的人物为成年人。6. 玻璃可能被手掌部分遮挡，因此需根据可见部分以及关于玻璃尺寸的常识来估算其大小。7. 由于摄像头佩戴在头部，同样会因俯视视角导致物体看起来较小，因此可能需要对此进行修正。

输出要求：1. 输出结果必须为单个JSON对象。2. 该JSON对象需包含三个键：“diameter_top”、“diameter_bottom”和“longest_side”。3. 每个键对应的值都必须是单个浮点数。4. 所有数值的单位均为米。5. 示例格式：“diameter_top”: 0.28, “diameter_bottom”: 0.26, “longest_side”: 0.25。6. 最终答案中不得包含其他文本、单位或解释说明。

---

推理过程（请在内心遵循此步骤以得出答案）：1. 确定杯子的位置（它就在手中）。2. 利用上下文线索判断尺寸：主要的尺寸参照物是握着杯子的那双成人的手。3. 估算边界框：在脑海中为杯子勾勒出最紧凑的3D矩形盒，并根据视觉信息和对该类物品的常识来估算其三个维度（如长度、宽度、高度）。4. 确定最长边：找出这三个估算出的边界框维度中最大的一个，该值即为“longest_side”。5. 估算杯子顶部的直径：可以借助手指环绕杯子的形态作为参考。6. 综合并定稿：将视觉信息与关于普通杯子尺寸的常识相结合，从而得出两个所需维度的最合理的最终估算值。7. 转换并格式化：确保两个最终估算值均以米为单位，并将其整理成指定的JSON结构。

## 马克杯相关提示词（两种尺度）

你是一位专门从事视觉分析和现实物体尺寸估算的专家级AI助手。请分析所提供的图像，目标是估算被{左/右}手拿着的马克杯的两个关键尺寸。第一个维度是马克杯的高度（或马克杯最长边的长度），第二个维度是马克杯顶部的直径。

背景信息：1. 人手完全伸展时宽度约为0.2米。2. 以手的大小作为参照来估算马克杯的尺寸。3. 需考虑图像的透视效果以及可能存在的遮挡情况。4. 摄像头由人佩戴在头部（这能帮你粗略估算摄像头与手之间的距离）。5. 由于摄像头戴在头上，可能会因俯视视角使物体看起来更小，因此你可能需要对此进行修正。6. 照片中的人是成年人。7. 马克杯可能被手部分遮挡，因此你可能需要根据可见部分以及关于马克杯尺寸的常识来估算其大小。8. 忽略马克杯的把手（如果存在的话）。

输出约束：1. 输出必须是一个单独的JSON对象。2. 该JSON对象必须包含“diameter”和“longest_side”这两个键。3. 每个键对应的值必须是单个浮点数。4. 所有值的单位必须是米。5. 示例格式：“diameter”: 0.28, “longest_side”: 0.25。6. 最终答案中不得包含其他文本、单位或解释说明。

推理过程（请在内心遵循此步骤以得出答案）：1. 确定马克杯的位置（它就在手中）。2. 利用上下文线索判断尺寸：主要的尺寸参照物是握着马克杯的那双成人的手。3. 估算边界框：在脑海中为马克杯勾勒出最紧凑的3D矩形盒，并根据视觉信息和对该类物品的常识来估算其三个维度（如长度、宽度、高度）。

---

基于视觉信息和对该类物品的常识。4. 确定最长边：找出这三个估算出的边界框维度中最大的一个，该值即为“longest_side”。5. 估算马克杯顶部的直径：可以借助手指环绕马克杯的形态作为参考。6. 综合并定稿：将视觉信息与关于普通马克杯尺寸的常识相结合，从而得出两个所需维度的最合理的最终估算值。7. 转换并格式化：确保两个最终估算值均以米为单位，并将其整理成指定的JSON结构。

## 平底锅相关提示词（两种尺度）

您是一位专门从事视觉分析和现实物体尺寸估算的专家级AI助手。请分析所提供的图像，目标是估算由{左/右}手持有的平底锅的两个关键尺寸。第一个尺寸是平底锅的长度（或包含手柄在内的平底锅最长边的长度），第二个尺寸是平底锅的直径（不包括手柄）。

背景信息：1. 人类手掌完全伸展时宽度约为0.2米。2. 以手掌大小作为参考来估算平底锅的尺寸。3. 需考虑图像的透视效果及可能的遮挡情况。4. 摄像头由人佩戴在头部（这可帮助粗略估计摄像头与手的距离）。5. 由于摄像头戴在头上，俯视视角可能导致物体看起来较小，因此可能需要对此进行补偿。6. 照片中的人是成年人。7. 平底锅可能被手部分遮挡（尤其是手柄），因此可能需要根据可见部分及常见的平底锅尺寸知识来估算其大小。

输出要求：1. 输出必须是一个JSON对象。2. 该JSON对象需包含两个键：“diameter”和“longest_side”。3. 每个键对应的值必须是单个浮点数。4. 所有数值的单位均为米。5. 示例格式：“diameter”: 0.28, “longest_side”: 0.25。6. 最终答案中不得包含其他文本、单位或解释。

推理过程（请按此步骤内部推导答案）：1. 识别出平底锅（它位于手中）。2. 利用背景线索确定比例：主要的比例参考是握住平底锅的成人双手。3. 估算边界框：在脑海中为平底锅勾勒出最紧凑的3D矩形框，根据视觉线索及对该物体的常识认知估算其三个维度（如长度、宽度、高度）。4. 确定最长边：找出三个估算出的边界框维度中最大的一个，确保该值包含平底锅的手柄；此值即为“longest_side”。5. 估算平底锅顶部的直径。

---

利用对标准平底锅尺寸的了解来进行估算，估算时请勿将手柄纳入考虑。6. 综合整理并定稿：结合视觉信息与关于常见平底锅尺寸的知识，得出两个所需维度最合理的最终估算值。7. 转换并格式化：确保两个最终估算值均以米为单位，并将其整理成指定的JSON结构。

## 关于盘子的提示词（比例尺相关）

您是一位专门从事视觉分析和现实物体尺寸估算的专家级AI助手。请分析所提供的图像，目标是估算由{左/右}手持有的盘子的直径。

背景信息：1. 人类手掌完全伸展时宽度约为0.2米。2. 以手掌大小作为参考来估算盘子的尺寸。3. 需考虑图像的透视效果及可能的遮挡情况。4. 摄像头由人佩戴在头部（这可帮助粗略估计摄像头与手的距离）。5. 由于摄像头戴在头上，俯视视角可能导致物体看起来较小，因此可能需要对此进行补偿。6. 照片中的人是成年人。7. 盘子可能被手部分遮挡，因此可能需要根据可见部分及常见的盘子尺寸知识来估算其直径。

输出约束：1. 输出必须是一个JSON对象。2. JSON对象中必须包含一个键：“diameter”。3. 该键对应的值必须是一个浮点数。4. 该值的单位必须是米。5. 示例格式：“diameter”: 0.28。6. 最终答案中不得包含其他文本、单位或解释说明。

推理过程（请按照此步骤内部推导得出答案）：1. 确定盘子的位置（它位于手中）。2. 利用上下文线索判断尺寸：主要的尺寸参照物是握着盘子的那双成人的手。3. 估算边界框：在脑海中为盘子勾勒出最紧凑的3D矩形盒，根据视觉信息和对该物体的常识来估算其三个维度（如长度、宽度、高度）。4. 估算盘子的直径。可以借助手指环绕盘子的情况作为参考。6. 综合整理并定稿：将视觉信息与关于常见盘子尺寸的知识相结合，得出所需维度的最合理估算值。7. 转换并格式化：确保最终的估算值以米为单位，并将其整理成指定的JSON结构。
