
# AssemblyHands：通过3D手部姿态估计实现以自我为中心的日常活动理解

大川武彦 $^{1,2*}$ 何坤 $^{1}$ 法迪梅·塞纳尔 $^{1}$ 托马斯·霍丹 $^{1}$ 卢安·特兰 $^{1}$ 杰姆·凯斯金 $^{1}$

 $^{1}$Meta Reality Labs $^{2}$东京大学

<https://assemblyhands.github.io>

## 摘要

我们推出了AssemblyHands，这是一个包含精准3D手部姿态标注的大规模基准数据集，旨在助力研究具有复杂手物交互的以自我为中心的活动。该数据集包含了从最新的Assembly101数据集中采集的同步的以自我为中心和以外部视角拍摄的图像，这些图像记录了参与者组装和拆卸可拆卸玩具的过程。为了获取高质量的以自我为中心图像的3D手部姿态标注，我们开发了一套高效的流程：首先利用少量人工标注数据训练模型，再由模型自动为更大规模的数据集进行标注。我们的标注模型采用了多视图特征融合与迭代优化机制，其平均关键点误差仅为4.20毫米，这一数值比Assembly101中原始标注的误差降低了85%。AssemblyHands共包含300万张标注图像，其中49万张为以自我为中心的图像，是现有规模最大的以自我为中心3D手部姿态估计基准数据集。利用这些数据，我们构建了基于单视图的以自我为中心图像3D手部姿态估计强基线模型。此外，我们还设计了全新的动作分类任务来评估预测的3D手部姿态。研究表明，更高质量的手部姿态能够直接提升动作识别能力。

### 1. 引言

识别人类活动是计算机视觉领域一个存在了数十年的难题[^17]。随着用户辅助增强现实和虚拟现实（AR/VR）系统的最新进展，从以自我为中心的视角（第一人称视角）识别动作的需求日益增加。微软HoloLens、Magic Leap和Meta Quest等主流AR/VR头戴设备通常都配备了以自我为中心的摄像头，用于捕捉用户与现实或虚拟世界的交互情况。在这些场景中，用户用手操控物体是一种非常重要的交互方式。

![Image](images/1167c14baeb13e87a31bfd8365ba007fd25a86cdcc089a6df1b6319d385316f4.jpg)

<div style="text-align: center;">Figure 1. High-quality 3D hand poses as an effective representation for egocentric activity understanding. AssemblyHands provides high-quality 3D hand pose annotations computed from multi-view exocentric images sampled from Assembly101 [^28], which originally comes with inaccurate annotations computed from egocentric images (see the incorrect left-hand pose prediction). As we experimentally demonstrate on an action classification task, models trained on high-quality annotations achieve significantly higher accuracy.</div>

手部姿态（例如3D关节位置）在理解和实现手与物体的交互方面发挥着核心作用[^3] [^18]；基于姿态的动作识别[^7] [^20] [^28]，以及交互式界面[^10] [^11]也是如此。

近期，人们提出了多个用于理解以自我为中心活动的大规模数据集，例如EPICKITCHENS[^5]、Ego4D[^8]和Assembly101[^28]。其中，Assembly101凸显了3D手部姿态在识别组装玩具等流程性活动中的重要性。3D手部姿态是一种紧凑的表征方式，能够高度反映动作甚至所交互的物体——例如，“拧螺丝”这一手部动作就是如此。

---

![Image](images/ad5cb94f6e08b7390d488e7372cd92dec7f3a469149751e7fbdfab5a5545b26f.jpg)

<div style="text-align: center;">Figure 2. Construction of AssemblyHands dataset and a benchmark task for egocentric 3D hand pose estimation. We first use manual annotations and an automatic annotation network (MVExoNet) to generate accurate 3D hand poses for multi-view images sampled from the Assembly101 dataset [^28]. These annotations are used to train a single-view 3D hand pose estimation network (SVEgoNet) from egocentric images. Finally, the predicted hand poses are evaluated by the action classification task.</div>

这是存在螺丝刀的一个强烈信号。值得注意的是，《Assembly101》的研究人员发现，在分类装配动作时，基于3D手部姿态的学习比仅使用视频特征更为有效。不过，这项研究的一个缺陷在于：Assembly101中的3D手部姿态标注并不总是准确的，因为这些标注是通过现成的第一人称手部追踪器生成的[^11]。我们观察到，所提供的姿态往往不够精确（见图1），尤其是当手部被物体从第一人称视角遮挡时。因此，先前的研究给我们留下了一个未解决的问题：3D手部姿态的质量究竟会对动作识别性能产生何种影响？

为了系统地回答这个问题，我们提出了名为AssemblyHands的新基准数据集。该数据集包含从Assembly101中采样的共计300万张图像，并配有高质量的3D手部姿态标注。我们不仅获取了人工标注数据，还利用这些数据训练了一个精确的自动标注模型；该模型采用来自第三人称视角图像的多视图特征融合技术——具体示意图请参见图2。与人工标注相比，我们的模型平均关键点误差仅为4.20毫米，这一数值比Assembly101中原有的标注误差降低了85%。这种自动化流程使我们能够高效地将标注规模扩展到来自34名受试者的49万张第一人称图像，无论从规模还是受试者多样性来看，AssemblyHands都是迄今为止最大的第一人称手部姿态数据集。与近期发布的手-物交互数据集（如DexYCB [^3]和H2O [^18]）相比，我们的AssemblyHands包含了更多的手-物组合类型，因为每种多部件玩具都可以随意拆卸和组装。

基于这个标注数据集，我们首先开发了一个用于第一人称3D手部姿态估计的强基线模型，该模型采用了2.5D热图优化与手部身份分类技术。接着，为了评估预测出的手部姿态的有效性，我们提出了一种全新的评估方案：基于手部姿态的动作分类。与以往的第一人称手部姿态估计基准测试[^7] [^18] [^24]不同，我们详细分析了3D手部姿态标注的质量、其对第一人称姿态估计器性能的影响，以及预测出的姿态在动作分类中的实用性。

我们的贡献总结如下：

- 我们提供了一个大规模基准数据集，命名为AssemblyHands，其中包含从Assembly101数据集中采样的300万张图像的3D手部姿态标注，其中含49万张第一人称图像。

- 我们提出了一种采用多视图特征融合与迭代优化的自动标注流程，使手部姿态标注的误差降低了85%。

- 我们定义了第一人称3D手部姿态估计的基准任务，并通过动作分类来进行评估。我们提供了一个强大的单视图基线模型，该模型可优化2.5D关键点热图并进行手部身份分类。我们的研究结果证实：高质量的3D手部姿态确实能显著提升第一人称动作识别的性能。

### 2. 相关工作

基于姿态的动作识别。动作识别的一般框架包括从传感器观测中提取低层次状态（如图像特征或身体/手部运动），随后将这些状态的时间序列输入到识别模型中。长期以来，全身姿态一直被用作状态表示……

---

<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;'>Modality</td><td style='text-align: center; word-wrap: break-word;'>#img</td><td style='text-align: center; word-wrap: break-word;'>#ego_img</td><td style='text-align: center; word-wrap: break-word;'>#views</td><td style='text-align: center; word-wrap: break-word;'>#subj</td><td style='text-align: center; word-wrap: break-word;'>Annotation approach</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EgoDexter [^24]</td><td style='text-align: center; word-wrap: break-word;'>RGB-D</td><td style='text-align: center; word-wrap: break-word;'>3K</td><td style='text-align: center; word-wrap: break-word;'>3K</td><td style='text-align: center; word-wrap: break-word;'>1 (ego)</td><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>Manual</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Panoptic Studio [^30]</td><td style='text-align: center; word-wrap: break-word;'>RGB</td><td style='text-align: center; word-wrap: break-word;'>15K</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>31</td><td style='text-align: center; word-wrap: break-word;'>N/A</td><td style='text-align: center; word-wrap: break-word;'>2D + triangulation</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FPHA [^7]</td><td style='text-align: center; word-wrap: break-word;'>RGB-D</td><td style='text-align: center; word-wrap: break-word;'>105K</td><td style='text-align: center; word-wrap: break-word;'>105K</td><td style='text-align: center; word-wrap: break-word;'>1 (ego)</td><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>Magnetic sensor</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FreiHAND [^37]</td><td style='text-align: center; word-wrap: break-word;'>RGB</td><td style='text-align: center; word-wrap: break-word;'>37K</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>32</td><td style='text-align: center; word-wrap: break-word;'>Manual + 3D volume + template fitting</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HO3D [^9]</td><td style='text-align: center; word-wrap: break-word;'>RGB-D</td><td style='text-align: center; word-wrap: break-word;'>103K</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>2D + template fitting</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>InterHand2.6M [^23]</td><td style='text-align: center; word-wrap: break-word;'>RGB</td><td style='text-align: center; word-wrap: break-word;'>2.59M</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>80-140</td><td style='text-align: center; word-wrap: break-word;'>27</td><td style='text-align: center; word-wrap: break-word;'>Manual + 2D + triangulation</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DexYCB [^3]</td><td style='text-align: center; word-wrap: break-word;'>RGB-D</td><td style='text-align: center; word-wrap: break-word;'>508K</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>Manual + template fitting</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>H2O [^18]</td><td style='text-align: center; word-wrap: break-word;'>RGB-D</td><td style='text-align: center; word-wrap: break-word;'>571K</td><td style='text-align: center; word-wrap: break-word;'>114K</td><td style='text-align: center; word-wrap: break-word;'>4 + 1 (ego)</td><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>2D + template fitting + smoothing</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>AssemblyHands (M)</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>227K</td><td style='text-align: center; word-wrap: break-word;'>22K</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>AssemblyHands (A)</td><td style='text-align: center; word-wrap: break-word;'>RGB/Mono</td><td style='text-align: center; word-wrap: break-word;'>2.81M</td><td style='text-align: center; word-wrap: break-word;'>468K</td><td style='text-align: center; word-wrap: break-word;'>8 + 4 (ego)</td><td style='text-align: center; word-wrap: break-word;'>20</td><td style='text-align: center; word-wrap: break-word;'>Manual + 3D volume + refinement</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>AssemblyHands (M + A)</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>3.03M</td><td style='text-align: center; word-wrap: break-word;'>490K</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>34</td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

<div style="text-align: center;">Table 1. Comparison of AssemblyHands with existing 3D hand pose datasets.* “M” and “A” stand for manual and automatic annotation, respectively. AssemblyHands is the largest existing benchmark for egocentric 3D hand pose estimation.</div>

由于姿态是包含动作判别信息的紧凑表示形式，因此能够用于识别动作 [^4] [^14] [^29] [^33] [^34]。此外，在增强现实/虚拟现实场景下，姿态信息的获取受隐私问题的影响较小，这一点优于图像/视频数据。在建模方面，将关节视为节点、骨骼视为边的图卷积网络，已被广泛应用于基于骨架的动作识别任务中 [^20] [^35]。

与外中心场景相比，基于手部姿态的动作识别研究较少，且相关实验大多仅在规模较小的数据集上进行 [^18]。相反，在自我中心场景下，手部姿态的相关研究更具价值。近期，为探究基于3D手部姿态的动作识别方法，研究人员提出了Assembly101这一大规模数据集 [^28]。研究发现，3D手部姿态是动作预测的强有力指标；具体而言，使用手部姿态进行动作分类的准确率，要高于使用基于视频的特征 [^19]。

3D手部姿态估计数据集。表1展示了现有基于RGB的3D手部姿态数据集以及我们的AssemblyHands数据集的相关统计信息。以往关于自我中心手部姿态估计的研究，要么是在深度图像上标注2D关键点 [^24]，要么是使用附着在手部的磁性标记物 [^7]。但由于这些传感器存在噪声，加之标注成本较高，这类基准数据集的标注精度和样本量均不足。因此，大多数3D手部姿态估计研究都侧重于利用来自静态外中心摄像头的输入数据 [^3] [^9] [^12] [^23] [^30] [^31] [^36] [^37]，或利用此类外中心数据集来提升自我中心手部姿态的预测精度 [^26]。

采用多台静态摄像头的技术方案具有多项优势，在相关研究中已被广泛应用 [^25]。首先，可用图像的总数量会随着摄像头数量的增加而成比例上升。例如，InterHand2.6M数据集 [^23] 包含了80个以上的摄像头视角，由此成为目前规模最大的非自我中心手部姿态估计数据集，且包含数量可观的独特帧。其次，通过三角测量法 [^23] [^30] 或手部模板拟合技术 [^3] [^9] [^18] [^37]（如MANO模型 [^27]），即可根据多个2D关键点可靠地标注出3D关键点坐标。

近期，一些自我中心活动数据集同时配备了同步的自我中心摄像头和外中心摄像头，例如Assembly101 [^28] 和H2O数据集 [^18]。外中心图像的可用性可大幅减少自我中心图像所需的标注工作量。与H2O数据集相比，AssemblyHands数据集提供的自我中心图像数量超过其四倍，且标注准确度高；受试者数量更是达到其八倍。凭借30 Hz的更高采样率，AssemblyHands数据集中的自我中心及外中心图像总数达到了300万张，超过了InterHands2.6M数据集的规模。由于装配动作具有明确的目标导向性，我们数据集中的手部姿态均为自然且无脚本约束的，这一点在现有研究中较少被关注。

为了实现自动标注，我们采用了一种与Zimmermann等人所使用的类似的体积卷积网络[^37]。我们还通过迭代优化方案来进一步提升该模型的精度，且无需额外训练。

### 3. Assembly Hands数据集的生成

我们提出的基准测试所用的输入数据来自近期发布的Assembly101数据集[^28]，这是一套大规模多视角视频数据集，旨在帮助理解程序性活动，尤其是可拆卸玩具的组装与拆卸过程。该数据集是通过由8台RGB相机以及4台单色相机组成的固定装置进行录制的，这些相机安装在受试者佩戴的同步头戴设备上。

Assembly101的初始手部姿态标注是利用专为单色 Egocentric 图像设计的现成手部追踪器生成的[^11]。虽然它能够以较高的精度估计三维手部姿态，但

---

仍存在诸多局限性。例如，由于 Egocentric 相机的立体视觉范围相对较窄，当手部远离图像中心时，深度估计就会变得不准确。此外，仅依赖 Egocentric 相机的追踪方式在手部与物体相互作用产生严重遮挡时极易出现严重误差。这些因素促使我们开发出利用外置 RGB 相机的多视角标注方法。

尽管现有的一些数据集会使用现成的基于RGB的模型（如OpenPose [^2]）来标注手部姿态，但我们发现它们在Assembly101上的标注精度并不理想（详情见补充材料）。由于OpenPose是在手部与物体遮挡较少的图像上训练的[^30]，因此当面对Assembly101中全新的真实物体（可拆卸玩具）以及更严重的遮挡情况时，其预测结果往往存在较大噪声。所以，针对我们的新场景开发专门的标注方法是十分必要的。

#### 3.1. 自动标注流程

我们提出了基于多视角外置RGB图像的自动标注流程。首先，我们对从Assembly101子集中以1Hz频率采样的帧进行人工标注。由于获取人工标注耗时费力，我们将其用于训练标注网络，以便能够自动生成较为准确的三维手部姿态标注。接下来我们详细介绍该标注网络：(1) 采用体积特征融合技术的标注网络（MVExoNet）；(2) 网络推理过程中的迭代优化机制。与人工标注相比，这种自动标注方案使我们能够在Assembly101的另一个以30Hz频率采样的子集中标注出多21倍的标签。

人工标注。首先，我们获取双手上21个关节在世界坐标系中的三维位置的人工标注结果。我们采用了与[^6]、[^23]类似的方法，即从多个视角标注二维关键点，再将其三角测量为三维坐标。总共我们对Assembly101中的62个视频序列进行了标注，采样率为1Hz，最终得到包含22K帧的标注集，每帧对应8个RGB视角。随后我们将其划分为54个训练序列和8个测试序列。

体积标注网络。接下来，我们设计了一种用于3D关键点标注的神经网络模型。在多摄像头配置下，常用的方法是对2D关键点检测结果进行三角测量；我们将这种方法称为“2D + 三角测量”基准方法。例如，在InterHand2.6M数据集上[^23]，由于摄像头数量较多（80到140个），该方法能达到2.78毫米的精度。然而，对于Assembly101数据集而言，由于仅有8个RGB摄像头，2D + 三角测量方法的精度仅为7.97毫米（见表2）。另一方面，端到端的“可学习三角测量”方法[^1] [^16] 在此类场景下的人体姿态估计任务中，表现优于传统三角测量方法。因此，我们采用了这种原理来设

![Image](images/be1c9fa9130caa353f2c7ae9a9d29af137130909df870b560121093d5ae52f76.jpg)

<div style="text-align: center;">Figure 3. Architecture of the hand pose annotation model. We use an EfficientNet encoder [^32] to extract 2D features from multiview images, then aggregate them into a 3D feature volume, and apply volumetric convolution with V2V-Posenet [^22]. We apply soft-argmax to extract hand joint locations from 3D heatmaps.</div>

计一个基于多视角手部姿态估计的体积特征聚合网络。

我们将该体积网络命名为MVExoNet，其设计如图3所示。首先，特征编码器会提取每个视角的2D关键点特征。随后，我们利用[^16]中提出基于softmax的加权平均方法，将这些特征投影到一个单一的3D体积中。之后，基于3D卷积的编解码器网络会对体积特征进行细化，并输出3D热图。通过对热图执行软argmax操作，我们便能得到3D关节坐标。

在架构方面，为了节省GPU内存，我们采用EfficientNet[^32]作为编码器，在体积聚合前提取紧凑的2D特征。我们使用V2V-PoseNet[^22]作为3D卷积网络。训练期间，我们通过略微扩大手动标注的2D关键点所在区域来生成2D手部裁剪图像。3D体积的边长均为300毫米，以中指底部（即第三个掌指关节）为中心。我们还通过向各轴添加随机噪声来调整体积的根位置，以防止模型总是将体积原点预测为第三个掌指关节。测试时，我们根据手部检测器的输出裁剪手部区域，并将“2D + 三角测量”基准方法预测的第三个掌指关节坐标用作体积根位置。

迭代优化。在MVExoNet的推理过程中，我们提出了一种简单的迭代优化启发式方法，可在多轮迭代中改进模型的输入。如上所述，MVExoNet需要手部边界框来裁剪输入图像，还需要根位置来构建3D体积。测试时，边界框和体积根位置分别来自手部检测器和初始2D关键点预测的三角测量结果，这些数据可能存在误差。我们发现，当输入为手动标注的裁剪区域和根位置时，MVExoNet的性能会比理论上的上限还要差。

我们的迭代优化思路正是源于这一观察——

---

![Image](images/1fffba1715396803f7ddd26ac8f822181b3213048a1837043021af8aa347b118.jpg)

<div style="text-align: center;">Figure 4. Example visualization of iterative refinement on AssemblyHands and Desktop Activities [^21]. Over the refinement iterations, the cropped image progressively becomes better centered on the hand, and the predicted hand pose becomes more accurate.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Annotation method</td><td style='text-align: center; word-wrap: break-word;'>MPJPE</td><td style='text-align: center; word-wrap: break-word;'>PCK-AUC</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Egocentric-only [^28]</td><td style='text-align: center; word-wrap: break-word;'>27.55</td><td style='text-align: center; word-wrap: break-word;'>29.4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2D + Triangulation</td><td style='text-align: center; word-wrap: break-word;'>7.97</td><td style='text-align: center; word-wrap: break-word;'>63.8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MVExoNet-R1 (Ours)</td><td style='text-align: center; word-wrap: break-word;'>5.42</td><td style='text-align: center; word-wrap: break-word;'>79.2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MVExoNet-R2 (Ours)</td><td style='text-align: center; word-wrap: break-word;'>4.30</td><td style='text-align: center; word-wrap: break-word;'>83.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MVExoNet-R3 (Ours)</td><td style='text-align: center; word-wrap: break-word;'>4.20</td><td style='text-align: center; word-wrap: break-word;'>83.4</td></tr></table>

<div style="text-align: center;">Table 2. Evaluation of hand pose annotation on manually annotated subset of AssemblyHands. We use MPJPE (mm) and PCK-AUC (%) as the evaluation metrics.</div>

由于MVExoNet已经能生成较为合理的预测结果，我们可以利用其输出来重新初始化手部裁剪区域和体积根位置。这样每轮迭代都能为网络提供更优的输入。我们将原始模型称为MVExoNet-R1（第一轮推理），后续轮次则依次命名为MVExoNet-R2等。在每一轮额外迭代中，我们根据上一轮MVExoNet生成的投影2D关键点来定义输入的手部裁剪区域，并以预测的根位置为中心确定3D体积。需要注意的是，在迭代优化推理期间我们会冻结MVExoNet，仅更新输入（即边界框和体积根位置）给模型。

#### 3.2. 标注3D手部姿态的评估

现在，我们将所提出的标注方法的准确性与几种基线方法进行比较，其中包括原始Assembly101数据集中使用的以自我为中心的手部追踪器[^11]。首先，为了评估其在同分布下的泛化能力，我们使用了Assembly101中手动标注的测试集，该测试集包含从8个序列中以1 Hz频率采样的帧。我们还考虑了其对未见过的多摄像头场景的泛化能力；为此，我们采用了最近发布的Aria Pilot数据集中的Desktop Activities子集[^21]；关于摄像头设置的具体示意图可参见我们的补充材料。

与以自我为中心的手部姿态标注方法对比。我们在表2中比较了各标注方法在手动标注的评估集上的准确性。Assembly101中的原始手部标注[^28]是由以自我为中心的手部姿态估计器UmeTrack[^11]利用以自我为中心的摄像头的单色图像计算得出的。这种以自我为中心的标注方法（仅限以自我为中心的方式）产生的误差为27.55毫米，这一数值明显高于使用外置摄像头的方法，即2D + 三角测量法以及我们所提出的方法。我们发现，当手持物体遮挡用户视野时，以自我为中心的摄像头所得到的标注结果会变得不准确。在这类情况下，多个外置摄像头提供的关键点预测有助于定位被遮挡的关键点。通过融合多视角外置图像的体积特征，我们的MVExoNet的表现明显优于标准的2D + 三角测量基线方法。

MVExoNet的消融研究。如表2所示，我们的初始推理结果（MVExoNet-R1）就取得了不错的性能，误差仅为5.42毫米。经过迭代优化后，标注误差进一步从5.42毫米降低至4.20毫米（降幅达22.5%）。

在图4中，我们展示了在Assembly101和Desktop Activities数据集上，经过多轮迭代后手部裁剪区域及MVExoNet预测结果的演变过程。起初，第一轮中的手部裁剪对于这两个数据集而言并非最优。例如，在Assembly101中（左侧），模型无法区分需要标注的是哪只手，因为两只手都位于图像中心；此外，手部在图像中位置偏高（右上）且显得很小（右下）。由于这些不佳的手部裁剪结果，预测结果会出现噪声，比如关键点预测会偏离手部位置而落到另一只手上。不过，在后续轮次中，手部裁剪逐渐聚焦于目标手部（如左上图中的左手），从而改善了关键点的定位效果。

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Annotation method</td><td style='text-align: center; word-wrap: break-word;'>MPJPE</td><td style='text-align: center; word-wrap: break-word;'>PCK-AUC</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2D + Triangulation</td><td style='text-align: center; word-wrap: break-word;'>49.21</td><td style='text-align: center; word-wrap: break-word;'>23.9</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MVExoNet-R1 (Ours)</td><td style='text-align: center; word-wrap: break-word;'>21.20</td><td style='text-align: center; word-wrap: break-word;'>51.3</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MVExoNet-R2 (Ours)</td><td style='text-align: center; word-wrap: break-word;'>14.57</td><td style='text-align: center; word-wrap: break-word;'>67.2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MVExoNet-R3 (Ours)</td><td style='text-align: center; word-wrap: break-word;'>13.38</td><td style='text-align: center; word-wrap: break-word;'>70.4</td></tr></table>

<div style="text-align: center;">Table 3. Evaluation of multi-view annotation on the Desktop Activities dataset [^21]. We use MPJPE (mm) and PCK-AUC (%) as the evaluation metrics.</div>

对新颖摄像头配置的泛化能力。为了评估我们标注方法的跨数据集泛化能力，我们采用了Desktop Activities数据集，该数据集同样包含了多摄像头场景下的手-物交互情况。其录制所使用的多视角摄像头装置与Assembly101类似，但配备了12个外置RGB摄像头且摄像头布局不同。数据集中的物体来自YCB基准测试集[^3]，这些物体在Assembly101中并未出现。据我们所知，目前尚无针对Desktop Activities的手部姿态标注数据。我们采用相同的手动标注方法来构建评估集，其中包含来自三个不同序列的1105帧标注图像。

如表3所示，由于新的摄像头配置以及新物体的存在，所有方法产生的误差都比在Assembly101环境中更大。尤其是基线标注方法2D + 三角测量法在应用于Desktop Activities时，其MPJPE误差竟高达近50毫米。相比之下，我们的MVExoNet对新环境具有较强的适应性，初始MPJPE误差为21.20毫米，经过两轮迭代优化后误差降至13.38毫米（误差降幅达36.9%）。

### 4. 以自我为中心的3D手部姿态估计

为了构建针对以自我为中心视角下的手部姿态估计模型，我们基于第3节生成的关键点标注数据，在以自我为中心的图像上训练模型。之所以要在以自我为中心的图像上训练，是因为现有的以外为中心的数据集无法完全捕捉到以自我为中心场景特有的偏差：包括视角、相机特性（以自我为中心的相机通常为鱼眼相机）以及头部运动产生的模糊现象。因此，以外为中心训练的模型向以自我为中心数据的泛化能力往往有限：例如，在[^26]中，基于DexYCB [^3]（以外为中心数据集）训练的模型在FPHA [^7]（以自我为中心数据集）上的PCK值仅为14%，而经过FPHA微调后该数值可提升至63%。

问题设定。我们对基于以自我为中心图像训练的3D手部姿态估计模型进行评估。给定一张以自我为中心的图像，模型的目标是预测手腕相对空间中21个关节的3D坐标。我们将人工标注和自动标注的数据集（分别记为M和A）划分为训练集和评估集。人工标注的训练集和评估集分别包含1.92万张和0.3万张图像，采样频率为1Hz。

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Subsets</td><td style='text-align: center; word-wrap: break-word;'>Eval-M</td><td style='text-align: center; word-wrap: break-word;'>Eval-A</td><td style='text-align: center; word-wrap: break-word;'>Eval-M+A</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Train-M</td><td style='text-align: center; word-wrap: break-word;'>24.38</td><td style='text-align: center; word-wrap: break-word;'>28.58</td><td style='text-align: center; word-wrap: break-word;'>28.35</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Train-A</td><td style='text-align: center; word-wrap: break-word;'>25.18</td><td style='text-align: center; word-wrap: break-word;'>22.29</td><td style='text-align: center; word-wrap: break-word;'>22.45</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Train-M+A</td><td style='text-align: center; word-wrap: break-word;'>23.46</td><td style='text-align: center; word-wrap: break-word;'>21.84</td><td style='text-align: center; word-wrap: break-word;'>21.92</td></tr></table>

<div style="text-align: center;">Table 4. Effect of automatic annotation for the training of SVEgoNet. We use egocentric image sets with manual (M), automatic (A), and manual and automatic (M + A) annotation for training and evaluation. We report MPJPE (mm) as the evaluation metric (lower is better).</div>

这些数据来自包含14名受试者的62个视频序列。自动标注的数据集则分别包含40.5万张和6.3万张图像，采样频率为30Hz，来源于另外20名受试者的20个独立视频序列。

单视图基线。遵循传统的基于热图的手部姿态估计方法[^15] [^23]，我们构建了一个基于单色以自我为中心图像训练的单视图网络（SVEgoNet）。该模型包含2.5D热图优化和手部身份分类两个模块。2.5D热图分别表示x-y轴上的2D关键点热图，以及z轴上相对于相机的手腕距离。我们采用ResNet-50 [^13]作为骨干网络。通过对2.5D热图执行argmax操作即可计算出3D关节坐标。

此外，我们发现学习手部姿态与手部身份之间的相关性在我们的任务中十分有效。例如，在“拧螺丝”动作中，Assembly101数据集中的右利手参与者更有可能用左手握住玩具，同时用右手转动螺丝刀。另一个例子是，在处理小零件时，两只手往往会靠得更近，且会出现在同一手部裁剪区域内。为了捕捉这类相关性，我们借鉴[^23]的思路，为SVEgoNet添加了手部身份分类分支。该分支用于判断给定的手部裁剪区域中是出现左手、右手还是双手。

评估。我们将模型与UmeTrack [^11]的预测结果，与以手腕为原点的真实坐标进行对比。我们使用两项标准指标：平均关节位置误差（MPJPE），单位为毫米；正确关键点百分比曲线下面积（PCK-AUC）。

#### 4.1. 实验结果

自动标注的影响。在表4中，我们分别比较了基于人工标注（M）、自动标注（A）以及人工+自动混合标注（M+A）的数据集训练的SVEgoNet的性能。我们将Eval-M的结果作为基准参考，其他结果则来自所有评估集。我们发现，仅使用规模是Train-M 21倍的Train-A时，Eval-M上的误差会相对增加3%。另一方面，基于混合标注训练的Train-M+A模型始终能取得最低的误差，这验证了我们在扩大标注规模方面的努力是有效的。

---

![Image](images/5feebe228f3088a8bd9ebdd00ec50868016354bff50097b571a8fe7e982006ac.jpg)

<div style="text-align: center;">Figure 5. Qualitative examples of 3D hand poses given by our automatic annotation, SVEgoNet, and UmeTrack [^11]. We visualize the 2D projection of 3D poses in one egocentric image and another synchronized exocentric image. We use colored borders to indicate the source images from which hand poses are computed: exocentric (red, additional views omitted) or egocentric (green). The egocentric-based UmeTrack exhibits multiple failure modes, such as inaccurate relative depth prediction of keypoints (left) and entire hand (middle), and completely losing track during occlusion (right). Our multi-view automatic annotation overcomes these failures, resulting in a more robust SVEgoNet when trained on such annotations.</div>

本研究还表明，结合人工与自动标注是一种提升模型性能的实用解决方案。

定性结果。图5展示了由UmeTrack [^11]、我们的自动标注流程以及训练好的以自我为中心的基线模型SVEgoNet生成的3D手部姿态的定性示例。我们从不同视角可视化每个模型的预测结果。以自我为中心的基线模型UmeTrack在从自我中心视角观察时，能够较好地估计手部姿态；然而，在外中心视角下的可视化结果显示，它在z轴上容易出现误差。尤其是在存在自遮挡（左侧示例）或手-物体遮挡（中间和右侧示例）的困难样本中，预测精度会显著下降。相比之下，我们的多视角自动标注方法利用多张外中心图像的信息克服了这些缺陷。正因如此，基于该标注数据训练的SVEgoNet在这些遮挡情况下能取得更稳健的结果。

### 5. 基于3D手部姿态的动作分类

最后，我们重新审视最初提出的问题：3D手部姿态的质量会对动作识别性能产生何种影响？我们通过一种新颖的评估方案来回答这个问题：即以手部姿态为输入的动词分类。在Assembly101 [^28]中，动作被细化为描述运动的单个动词与交互物体的组合，例如“拿起螺丝刀”。我们使用六个动词标签来评估预测的手部姿态，包括“拿起”“放置”“拧螺丝”“放下”“移除”和“拧开”（见图6左侧）。这是因为这些动词在数据集中出现频率较高，且高度依赖用户的手部运动，而这正是手部姿态估计旨在捕捉的内容。

为了对动词进行分类，我们利用以自我为中心的手部姿态估计器的输出，训练了图卷积网络MS-G3D [^20]。我们注意到，“拧螺丝”和“拧开”这类动词属于周期性动作，通常耗时较长但实例数量相对较少（见图6）。为解决这一问题，我们对这些动词类别的训练数据进行了增强。参照Assembly101的实验设置，对于每个片段，我们输入包含42个关键点的序列（双手各21个）。我们采用与自动标注数据集AssemblyHands-A相同的训练/评估划分方式，采样频率为30 Hz（原始频率为60 Hz）。该模型会根据3D手部姿态构建时间序列图，并将每个姿态片段归类为某个动词。

#### 5.1. 结果

表5报告了基于以自我为中心摄像头估计的3D手部姿态的动词分类准确率。首先，我们利用自动标注的手部姿态，确定了AssemblyHands-A中动词分类准确率的经验上限。基于我们的自动标注数据训练的动词分类器，平均动词分类准确率达到60%。

我们将单视角模型SVEgoNet与现成的以自我为中心的手部姿态估计器UmeTrack [^11]进行比较，该估计器

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Method</td><td style='text-align: center; word-wrap: break-word;'>MPJPE</td><td style='text-align: center; word-wrap: break-word;'>pick up</td><td style='text-align: center; word-wrap: break-word;'>put down</td><td style='text-align: center; word-wrap: break-word;'>position</td><td style='text-align: center; word-wrap: break-word;'>remove</td><td style='text-align: center; word-wrap: break-word;'>screw</td><td style='text-align: center; word-wrap: break-word;'>unscrew</td><td style='text-align: center; word-wrap: break-word;'>Avg. Verb Acc.</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>UmeTrack [^11]</td><td style='text-align: center; word-wrap: break-word;'>32.91</td><td style='text-align: center; word-wrap: break-word;'>66.0</td><td style='text-align: center; word-wrap: break-word;'>41.5</td><td style='text-align: center; word-wrap: break-word;'>51.2</td><td style='text-align: center; word-wrap: break-word;'>29.2</td><td style='text-align: center; word-wrap: break-word;'>42.5</td><td style='text-align: center; word-wrap: break-word;'>59.6</td><td style='text-align: center; word-wrap: break-word;'>50.3 (83.8%)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>SVEgoNet (Ours)</td><td style='text-align: center; word-wrap: break-word;'>21.92</td><td style='text-align: center; word-wrap: break-word;'>68.1</td><td style='text-align: center; word-wrap: break-word;'>47.7</td><td style='text-align: center; word-wrap: break-word;'>64.3</td><td style='text-align: center; word-wrap: break-word;'>27.4</td><td style='text-align: center; word-wrap: break-word;'>44.3</td><td style='text-align: center; word-wrap: break-word;'>63.7</td><td style='text-align: center; word-wrap: break-word;'>54.7 (91.1%)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>AssemblyHands-A</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>70.0</td><td style='text-align: center; word-wrap: break-word;'>57.4</td><td style='text-align: center; word-wrap: break-word;'>67.5</td><td style='text-align: center; word-wrap: break-word;'>36.4</td><td style='text-align: center; word-wrap: break-word;'>49.8</td><td style='text-align: center; word-wrap: break-word;'>64.1</td><td style='text-align: center; word-wrap: break-word;'>60.0 (100%)</td></tr></table>

<div style="text-align: center;">Table 5. Evaluation of action classification from hand poses. We train and evaluate a MS-G3D [^20] action classification model using hand pose sequences as input, and report Verb Accuracy (%). AssemblyHands-A represents the empirical upper bound where automatically annotated hand poses are used as input. Our SVEgoNet predicts more accurate 3D hand poses, which leads to better classification accuracy.</div>

![Image](images/287fb6dda8dcb2bf77b3ca176d5891386cf5fd65acc061c4e0426f3e8cbe6a3c.jpg)

![Image](images/cbd31392832c7c80afbb9366c25544698921e9ae1717ab9fcd43b145e403cd55.jpg)

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

<div style="text-align: center;">Figure 6. Verb label distribution and confusion matrices of verb classification. We show the distribution of the six verb labels (left) used in our experiments and confusion matrices of UmeTrack [^11] (middle) and our SVEgoNet (right).</div>

曾被用于为Assembly101提供原始标注数据，它采用了来自多张以自我为中心图像的特征融合模块。首先，在姿态估计指标方面，SVEgoNet的MPJPE值为21.92毫米，比UmeTrack低33%。接下来，在动词分类准确率方面，使用SVEgoNet预测的手部姿态所取得的成绩也大幅优于UmeTrack（54.7%对比50.3%）。以60.0%这一上限性能为参考，使用SVEgoNet姿态能达到91.1%的相对性能，这一数值明显优于使用UmeTrack所能达到的83.8%。

此外，我们在图6中展示了UmeTrack和SVEgoNet的分类混淆矩阵。使用SVEgoNet的预测结果能显著减少对角线以外的混淆情况。若按动词分别衡量性能，与UmeTrack相比，SVEgoNet在“拾取”、“放置”、“定位”、“拧紧”和“拧松”这些动词上的准确率分别提升了2.1%、6.2%、13.1%、1.8%和4.1%；不过在“移除”这一动词上的准确率却下降了1.8%。

我们取得的性能相对上限超过了90%，这一结果十分令人鼓舞。因为SVEgoNet仅以单张以自我为中心的图像作为输入，无需利用多视角非自我中心图像进行复杂的推理。这再次证明了利用轻量化的以自我为中心的设备（如头戴式单色摄像头）来识别活动具有巨大潜力。

### 6. 结论

我们提出了AssemblyHands，这是一个用于研究存在强烈手-物体交互情况下的以自我为中心活动的新型基准数据集。我们利用基于多视角特征聚合的自动标注方法，提供了大规模的高精度3D手部姿态标注数据，其效果远优于原始Assembly101中基于以自我为中心的标注方式。这些精确的标注使我们能够深入分析手部姿态估计对动作识别的影响。我们为单视角以自我为中心的手部姿态估计提供了基线模型，并提出了一种基于动词分类的新型评估方案。研究结果证实，3D手部姿态的质量会显著影响动词识别的性能。我们希望AssemblyHands能为从以自我为中心的视角理解人类活动的新方法和新见解提供启发。

局限性与未来工作。本研究主要聚焦于手部姿态标注以及基于手部姿态的动作分类。虽然物体线索（如物体姿态）会对任务有进一步帮助，但由于装配任务中存在许多小型物体部件，对其进行标注难度更大。在未来的工作中，我们首先计划以更高的采样率将手部姿态标注扩展到整个Assembly101数据集。我们还计划获取物体级别的标注，例如物体边界框。最后，我们有兴趣通过多任务学习来探索手部、物体与动作之间的相互作用。

## 致谢

作者们感谢Kevin Harris在数据收集方面的帮助，也感谢Lingni Ma、Svetoslav Kolev、Bugra Tekin、Edoardo Remelli、Shangchen Han和Robert Wang的有益讨论。

---

## 参考文献

[^1]: K. Bartol, D. Bojanić, T. Petković, and T. Pribanić. Generalizable human pose triangulation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2022. 4

[^2]: Z. Cao, G. Hidalgo Martinez, T. Simon, S. Wei, and Y. A. Sheikh. Openpose: Realtime multi-person 2d pose estimation using part affinity fields. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019. 4, 11

[^3]: Y.-W. Chao, W. Yang, Y. Xiang, P. Molchanov, A. Handa, J. Tremblay, Y. S. Narang, K. Van Wyk, U. Iqbal, S. Birchfield, J. Kautz, and D. Fox. DexYCB: A benchmark for capturing hand grasping of objects. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 9044–9053, 2021. 1, 2, 3, 6

[^4]: G. Chéron, I. Laptev, and C. Schmid. P-cnn: Pose-based cnn features for action recognition. In Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), pages 3218–3226, 2015. 3

[^5]: D. Damen, H. Doughty, G. M. Farinella, A. Furnari, J. Ma, E. Kazakos, D. Moltisanti, J. Munro, T. Perrett, W. Price, and M. Wray. Rescaling egocentric vision. International Journal of Computer Vision (IJCV), early access, 2021. 1

[^6]: Q. Feng, K. He, H. Wen, C. Keskin, and Y. Ye. Active learning with pseudo-labels for multi-view 3d pose estimation. CoRR, abs/2112.13709, 2021. 4

[^7]: G. Garcia-Hernando, S. Yuan, S. Baek, and T.-K. Kim. First-person hand action benchmark with RGB-D videos and 3D hand pose annotations. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 409–419, 2018. 1, 2, 3, 6

[^8]: K. Grauman, A. Westbury, E. Byrne, Z. Chavis, A. Furnari, R. Girdhar, J. Hamburger, H. Jiang, M. Liu, X. Liu, M. Martin, T. Nagarajan, I. Radosavovic, S. K. Ramakrishnan, F. Ryan, J. Sharma, M. Wray, M.g Xu, E. Zhongcong Xu, C. Zhao, S. Bansal, D. Batra, V. Cartillier, S. Crane, T. Do, M. Doulaty, A. Erapalli, C. Feichtenhofer, A. Fragomeni, Q. Fu, C. Fuegen, A. Gebreselasie, C. Gonzalez, J. Hillis, X. Huang, Y. Huang, W. Jia, W. Khoo, J. Kolar, S. Kottur, A. Kumar, F. Landini, C. Li, Y. Li, Z. Li, K. Mangalam, R. Modhugu, J. Munro, T. Murrell, T. Nishiyasu, W. Price, P. R. Puentes, M. Ramazanova, L. Sari, K. Somasundaram, A. Southerland, Y. Sugano, R. Tao, M. Vo, Y. Wang, X. Wu, T. Yagi, Y. Zhu, P. Arbelaez, D. Crandall, D. Damen, G. M. Farinella, B. Ghanem, V. K. Ithapu, C. V. Jawahar, H. Joo, K. Kitani, H. Li, R. Newcombe, A. Oliva, H. Soo Park, J. M. Rehg, Y. Sato, J. Shi, M. Z. Shou, A. Torralba, Lo Torresani, M. Li Yan, and J. Malik. Ego4D: Around the world in 3,000 hours of egocentric video. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 18973–18990, 2022. 1

[^9]: S. Hampali, M. Rad, M. Oberweger, and V. Lepetit. Honnotate: A method for 3D annotation of hand and object poses. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 3196–3206, 2020. 3

[^10]: S. Han, B. Liu, R. Cabezas, C. Twigg, P. Zhang, J. Petkau, T.-H. Yu, C.-J. Tai, M. Akbay, Z. Wang, A. Nitzan, G. Dong, Y. Ye, L. Tao, C. Wan, and R. Wang. MEgATrack: monochrome egocentric articulated hand-tracking for virtual reality. ACM Transactions on Graphics (ToG), 39(4):87–1, 2020. 1

[^11]: S. Han, P.-C. Wu, Y. Zhang, B. Liu, L. Zhang, Z. Wang, W. Si, P. Zhang, Y. Cai, T. Hodan, R. Cabezas, L. Tran, M. Akbay, T.-H. Yu, C. Keskin, and R. Wang. UmeTrack: Unified multi-view end-to-end hand tracking for VR. In Proceedings of the ACM SIGGRAPH Asia Conference, pages 50:1–50:9, 2022. 1, 2, 3, 5, 6, 7, 8, 12

[^12]: Y. Hasson, G. Varol, D. Tzionas, I. Kalevatykh, M. J. Black, I. Laptev, and C. Schmid. Learning joint reconstruction of hands and manipulated objects. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 11807–11816, 2019. 3

[^13]: K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 770–778, 2016. 6

[^14]: U. Iqbal, M. Garbade, and J. Gall. Pose for action - action for pose. In Proceedings of the IEEE International Conference on Automatic Face & Gesture Recognition, FG, pages 438–445, 2017. 3

[^15]: U. Iqbal, P. Molchanov, T. M. Breuel, J. Gall, and J. Kautz. Hand pose estimation via latent 2.5D heatmap regression. In Proceedings of the European Conference on Computer Vision (ECCV), pages 125–143, 2018. 6

[^16]: K. Iskakov, E. Burkov, V. Lempitsky, and Y. Malkov. Learnable triangulation of human pose. In Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), pages 7718–7727, 2019. 4

[^17]: Y. Kong and Y. Fu. Human action recognition and prediction: A survey. International Journal of Computer Vision, 130(5):1366–1401, 2022. 1

[^18]: T. Kwon, B. Tekin, J. Stühmer, F. Bogo, and M. Pollefeys. H2O: two hands manipulating objects for first person interaction recognition. In Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), pages 10118–10128, 2021. 1, 2, 3

[^19]: J. Lin, C. Gan, and S. Han. TSM: Temporal shift module for efficient video understanding. In Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), pages 7083–7093, 2019. 3

[^20]: Z. Liu, H. Zhang, Z. Chen, Z. Wang, and W. Ouyang. Disentangling and unifying graph convolutions for skeleton-based action recognition. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 143–152, 2020. 1, 3, 7, 8

## [^21]: Z. Lv, E. Miller, J. Meissner, L. Pesqueira, C. Sweeney, J. Dong, L. Ma, P. Patel, P. Moulon, K. Somasundaram, O. Parkhi, Y. Zou, N. Raina, S. Saarinen, Y. M. Mansour, P.-K. Huang, Z. Wang, A. Troynikov, R. M. Artal, D. DeTone, D. Barnes, E. Argall, A. Lobanovskiy, D. J. Kim, P. Bouttefroy, J. Straub, J. J. Engel, P. Gupta, M. Yan, R. D. Nardi, and R. Newcombe. Aria pilot dataset

---

<https://about.facebook.com/realitylabs/projectaria/datasets,2022.5,6,10>

[^22]: G. Moon, J. Y. Chang, and K. M. Lee. V2V-PoseNet: Voxel-to-voxel prediction network for accurate 3D hand and human pose estimation from a single depth map. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 5079–5088, 2018. 4

[^23]: G. Moon, S.-I. Yu, H. Wen, T. Shiratori, and K. M. Lee. InterHand2.6M: A dataset and baseline for 3D interacting hand pose estimation from a single RGB image. In Proceedings of the European Conference on Computer Vision (ECCV), pages 548–564, 2020. 3, 4, 6

[^24]: F. Mueller, D. Mehta, O. Sotnychenko, S. Sridhar, D. Casas, and C. Theobalt. Real-time hand tracking under occlusion from an egocentric RGB-D sensor. In Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), pages 1163–1172, 2017. 2, 3

[^25]: T. Ohkawa, R. Furuta, and Y. Sato. Efficient annotation and learning for 3d hand pose estimation: A survey. CoRR, abs/2206.02257, 2022. 3

[^26]: T. Ohkawa, Y.-J. Li, Q. Fu, R. Furuta, K. M. Kitani, and Y. Sato. Domain adaptive hand keypoint and pixel localization in the wild. In Proceedings of the European Conference on Computer Vision (ECCV), pages 68—87, 2022. 3, 6

[^27]: J. Romero, D. Tzionas, and M. J. Black. Embodied hands: Modeling and capturing hands and bodies together. ACM Transactions on Graphics (ToG), 36(6):245:1–245:17, 2017. 3

[^28]: F. Sener, D. Chatterjee, D. Shelepov, K. He, D. Singhania, R. Wang, and A. Yao. Assembly101: A large-scale multi-view video dataset for understanding procedural activities. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 21096–21106, 2022. 1, 2, 3, 5, 7, 10, 12, 13

[^29]: A. Shahroudy, J. Liu, T.-T. Ng, and G. Wang. Ntu rgb+ d: A large scale dataset for 3d human activity analysis. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 1010–1019, 2016. 3

[^30]: T. Simon, H. Joo, I. Matthews, and Y. Sheikh. Hand keypoint detection in single images using multiview bootstrapping. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 4645–4653, 2017. 3, 4

[^31]: S. Sridhar, F. Mueller, M. Zollhoefer, D. Casas, A. Oulasvirta, and C. Theobalt. Real-time joint tracking of a hand manipulating an object from RGB-D input. In Proceedings of the European Conference on Computer Vision (ECCV), pages 294–310, 2016. 3

[^32]: M. Tan and Q. V. Le. EfficientNet: Rethinking model scaling for convolutional neural networks. In Proceedings of the International Conference on Machine Learning (ICML), volume 97, pages 6105–6114, 2019. 4

[^33]: C. Wang, Y. Wang, and A. Yuille. An approach to pose-based action recognition. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 915–922, 2013. 3

[^34]: A. Yao, J. Gall, G. Fanelli, and L. Van Gool. Does human action recognition benefit from pose estimation?". In Proceedings of the British Machine Vision Conference (BMVC). BMV press, 2011. 3

[^35]: B. Yu, H. Yin, and Z. Zhu. Spatio-temporal graph convolutional networks: A deep learning framework for traffic forecasting. arXiv preprint arXiv:1709.04875, 2017. 3

[^36]: C. Zimmermann and T. Brox. Learning to estimate 3D hand pose from single RGB images. In Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), pages 4913–4921, 2017. 3

[^37]: C. Zimmermann, D. Ceylan, J. Yang, B. Russell, M. J. Argus, and T. Brox. FreiHAND: A dataset for markerless capture of hand pose and shape from single RGB images. In Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), pages 813–822, 2019. 3

### 附录

### A. 摄像装置

请参见图7中我们实验中使用的两种摄像装置所拍摄的示例帧。

AssemblyHands采用的摄像装置与Assembly101 [^28] 中的相同，它由安装在固定支架上的8台分辨率为1080p的RGB摄像头，以及一套同步的头戴设备组成，该头戴设备配备4台分辨率为VGA的单色摄像头，其排列方式类似于Oculus Quest VR头盔。

我们还使用了近期Aria Pilot数据集中的Desktop Activities子集里的另一种多摄像头装置 [^21]，它包含12台分辨率为1080p的RGB摄像头，且与Project Aria眼镜同步。这款眼镜配备了一台以自我为中心的RGB摄像头和两台单色摄像头，但我们仅使用其中的静态非自我中心RGB摄像头来评估我们的多视角自动标注方法。

#### B. 实现细节

#### B.1. 非自我中心图像的处理

对于所有训练与评估图像，我们都会预先处理以去除外置摄像头拍摄图像中的镜头畸变。这能显著简化三角测量等几何运算。

训练时，我们首先将标注好的3D手部关键点投影到各摄像头的成像平面上，再利用得到的2D关键点来定义手部边界框。给定单只手（或双手）上的一组关键点坐标$\{(x_i, y_i), \forall i \in I\}$后，我们会以所有关键点的几何中心为原点创建一个正方形边界框，其边长L定义为：

 $$ L=\gamma\cdot\max\left(\max_{i\in I}x_{i}-\min_{i\in I}x_{i},\max_{i\in I}y_{i}-\min_{i\in I}y_{i}\right) $$

---

![Image](images/d9a86039e080dbb3009de04602567e63756f74217a3f94ef1cdfe7dd4bf48c1d.jpg)

<div style="text-align: center;">Figure 7. Multi-view camera rigs used in our experiments. Left: Assembly 101. Right: Desktop Activities.</div>

其中$\gamma$为扩展系数，训练期间该系数会随机取值，均值为1.5。对于3D特征体而言，其各边长度均为300毫米，且以第三个掌指关节为中心。训练过程中还会对根节点位置进行增强处理：在所有轴上添加范围在$[-5\ mm, 5\ mm]$内的微小随机噪声；我们发现若不采用这种增强方式，网络就会学到关于根节点的平凡解$(0, 0, 0)$。

测试时，我们需要根据手部检测器的输出结果来裁剪手部区域。但我们发现直接应用2D物体检测器来检测手部存在困难：由于遮挡情况复杂，现成的模型在我们的实验设置中无法达到很高的准确率，而且不同视角下的检测结果在几何上也不一定一致。因此，我们采用了一种基于人体关键点三角测量的更稳健的启发式方法。具体来说，我们首先利用在MS COCO数据集上训练的整图人体关键点检测器，从多视角外置摄像头图像中检测出3D人体关键点。接着，我们在3D空间中创建一个虚拟的“手部中心”关键点：从腕关节处向外延伸1/3的前臂长度（该长度由肘关节和腕关节关键点确定）。最后，针对每个摄像头视角，我们都能得出一个以“手部中心”的2D投影点为中心的成像空间边界框，其大小采用启发式设定。我们注意到，OpenPose的开源实现中也采用了类似的启发式方法[^2]。

这种手部边界框的初始设定对自动生成注释的质量至关重要。我们发现，注释流程中的迭代优化是降低注释误差的关键步骤。然而，如果因左右手识别错误而导致初始化的手部框有误，迭代过程还会进一步累积误差——因为新的手部裁剪区域是根据错误识别的手部框上的关键点预测结果生成的。而基于3D人体关键点的手部检测方法对这种失误更具鲁棒性，因为手部身份是由人体的骨骼结构而非手部图像本身决定的。

图8展示了检测到的人体关键点及由此得出的手部边界框示例。从设计上来说，同一帧图像中不同视角下的边界框在几何上是一致的，可直接用于创建3D特征体。另一方面，这种方法的缺点是“手部中心”的启发式猜测可能不够准确，尤其是当手腕明显弯曲时。结果就是裁剪区域未必能以手部为中心，因此我们需要使用更大的尺寸来确保覆盖整个手部。不过，推理过程中的迭代优化方案可以纠正这一问题；详见论文中的图4。

### B.2. 内置摄像头图像的处理

根据标注的关键点，我们生成手部剪裁图像以供输入到以自我为中心的手部姿态估计器中。给定两只手上所有关节（每只手21个）在三维世界坐标系中的坐标以及以自我为中心的相机参数，我们将这些关键点投影到二维图像空间，然后利用包含这些二维关键点的边界框来裁剪图像。我们会消除原始鱼眼相机的镜头畸变，从而使图像符合简单针孔相机模型。此外，我们还会剔除那些过于靠近图像边界或图像中未包含手部的裁剪区域。这种预处理针对每只右手或左手单独进行，因此当图像中同时出现两只手时，我们会得到两个输入裁剪图像。

接着，对于仅出现左手或右手的单张裁剪图像，我们预测手腕相对空间中21个关节的三维坐标。在后处理阶段，利用对每只手的预测结果，我们通过合并来自同一张图像的、不同手部裁剪区域上的两次预测结果，将单手预测转换为双手预测。这种双手格式会被用于结合动作识别模型进行姿态评估。

#### C. 标注质量

#### C.1. 与基于OpenPose的标注方法对比

开源工具OpenPose [^2]已被用于多个现有数据集（如H2O）中手部姿态的自动标注。我们通过运行基于OpenPose预测的手部关键点的2D+三角测量基线方法，来与这种标注方式进行比较。

表6展示了OpenPose基线方法与我们所提出的方法之间的对比结果。

---

![Image](images/d1791821198516453b054dc16001334b2a9a0b43a8a43445619e82f272461481.jpg)

![Image](images/d9ca24c46635d22f7aeb6a21c0e398252802a2b44009967ca8114b0b8980b9f8.jpg)

<div style="text-align: center;">Figure 8. Visualization of hand detection on two different frames. Green: detected body keypoints (shown: shoulder, elbow, wrist). Red: estimated hand center. Yellow: hand bounding boxes derived from our heuristic, and the resulting cropped images. Left: the hand is well centered in the bounding box when the wrist is not bent. Right: hand is not centered when the wrist is bent; this can be corrected by our iterative refinement at inference time.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Annotation method</td><td style='text-align: center; word-wrap: break-word;'>MPJPE</td><td style='text-align: center; word-wrap: break-word;'>PCK-AUC</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2D + Triangulation (OpenPose)</td><td style='text-align: center; word-wrap: break-word;'>5.15 $^{*}$</td><td style='text-align: center; word-wrap: break-word;'>48.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2D + Triangulation (Ours)</td><td style='text-align: center; word-wrap: break-word;'>7.97</td><td style='text-align: center; word-wrap: break-word;'>63.8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MVExoNet-R3 (Ours)</td><td style='text-align: center; word-wrap: break-word;'>4.20</td><td style='text-align: center; word-wrap: break-word;'>83.4</td></tr></table>

<div style="text-align: center;"> $^{*}$ Evaluated on valid predictions only.</div>

<div style="text-align: center;">Table 6. Comparison to OpenPose-based annotation. While 2D + Triangulation with OpenPose is relatively accurate on the valid predictions, it fails to triangulate on 40.2% of the keypoints, leading to a very low PCK-AUC value. We use a maximum distance threshold of 20 mm for PCK-AUC. Our proposed 2D + Triangulation and MVExoNet-R3 both outperform OpenPose by a significant margin.</div>

首先我们注意到，采用OpenPose的2D+三角测量方法在我们的测试集中有40.2%的标注关键点无法完成三角测量，原因要么是二维检测点数量过少，要么是三角测量误差过大。虽然该方法在成功三角测量的预测结果上能达到5.15毫米的MPJPE数值，但如此多的缺失标注对于训练以自我为中心的模型而言是不理想的。需要注意的是，我们在计算PCK-AUC时会将距离阈值设置在0到20毫米之间，观察发现OpenPose在最大截断阈值下的PCK值仅为59.2%；其余情况要么没有得到有效预测，要么预测误差超过了20毫米。

我们的2D+三角测量基线方法以及最终模型MVExoNet-R3的表现均显著优于OpenPose。首先，我们的2D+三角测量模型显著提高了成功三角测量的比例，尽管代价是MPJPE数值略有升高。随后，MVExoNet-R3不仅拥有最低的MPJPE数值，其成功标注率也高得多，在20毫米阈值下PCK值超过了85%。

### C.2. 动词类别相关的标注误差

我们在人工标注的数据上针对每个动词类别评估了我们的标注方法。如图9所示，我们绘制了在Assembly101数据集中，我们最终的标注方法（即MVExoNet-R3）相较于基于以自我为中心的手部追踪器[^11]的原始标注方法的相对改进幅度。对于人工标注集中出现的所有动词，与原始标注相比，我们的方法能将误差进一步降低10毫米以上。当两只手与物体发生复杂交互时，比如拧螺丝、推物体以及定位操作等场景，我们的标注质量提升尤为明显。这表明在此类手部与物体严重遮挡的情况下，多视角标注的效果要比仅从以自我为中心的视角进行的标注更好。

由于姿势标注中的错误减少了，在动词分类的下游任务中（详见论文中的表5），我们用于姿势识别的SVEgoNet模型性能提升了13%。考虑到标注的质量以及其对动词分类的支持作用，更精细的姿势标注有助于准确识别用户的手部动作。

#### D. 动作识别

#### D.1. 动词标签选择

在Assembly101数据集[^28]中，细粒度动作被定义为动词与交互物体的组合，共包含24个类别。由于动词标签呈现长尾分布特征，我们从全部24个动词中选取了出现频率最高的6个作为研究对象。其中包括3个主要的装配动词：拾取、定位、拧紧，以及3个拆卸动词：放下、移除、拧开，这6个动词涵盖了Assembly101数据集中70%的动词标签。

#### D.2. 动词识别中的物体线索

正如未来工作部分（第6节）所述，我们认为利用物体信息能进一步辅助识别用户动作。由于如今该数据集中小零件的物体标注（如边界框和姿势）难度较大，我们尝试将物体标签用于动词识别。我们将物体类别标签以独热编码的形式转化为帧级特征，融入基于姿势的动词分类器中。如表5所示，仅使用SVEgoNet进行姿势识别时，动词识别准确率为54.7%；而基于姿势+物体标签的分类器准确率则达到56.1%。这一提升进一步激励我们探索使用物体边界框和物体姿势的可能性。

---

![Image](images/594b045dfee7f9675dfc8ca77925488350ce819e6395fae55b9823a66779de07.jpg)

<div style="text-align: center;">Figure 9. Verb-wise hand pose annotation error reduction in AssemblyHands. We show relative MPJPE (mm) of our annotations to the original annotations provided by Assembly101 [^28]. We observe large reductions in annotation error across all verbs.</div>

我们将这些特征融入基于姿势的动词分类器中。如表5所示，仅使用SVEgoNet进行姿势识别时，动词识别准确率为54.7%；而基于姿势+物体标签的分类器准确率则达到56.1%。这一提升进一步激励我们探索使用物体边界框和物体姿势的可能性。
