
# UmeTrack：面向VR的统一多视角端到端手部追踪技术

韩尚辰、吴博辰、张宇波、刘贝贝，Meta Reality Labs，美国

张灵光、王征、司伟光、张培照，Meta Reality Labs，美国

蔡宇军、托马斯·霍丹、兰迪·卡贝萨斯、阮鸾，Meta Reality Labs，美国

穆扎费尔·阿克拜、余子豪、杰姆·凯斯金、罗伯特·王，Meta Reality Labs，美国

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

![Image](images/c42950f0c1c1f57922c170609650eca176a4ab63dae1a46fb26f17a65b72415a.jpg)

![Image](images/b35040c9384db80a890452b7be6fc7177026fbe5eb698afde7012ce5a95ad1c8.jpg)

![Image](images/11484c3aa2bf455a290399836deeb516892b8648b80973c294c4a7439239816f.jpg)

<div style="text-align: center;">Fig. 1. The proposed hand tracking method can effectively incorporate information from multi-view image sequences captured by cameras mounted on a VR headset (left) and has been successfully deployed in various VR applications (right).</div>

在三维空间中实时追踪手部姿态是一项极具挑战性的任务，它在虚拟现实交互中发挥着重要作用。现有相关研究要么仅能输出相对于根节点的三维姿态（而非世界空间下的三维姿态），要么需要经历生成热图、运动学优化等多个阶段才能获取三维姿态。此外，这些方法很少涉及典型的虚拟现实场景——即利用大视场角摄像头进行的多视角手部追踪。在本文中，我们提出了一种统一的多视角、多帧端到端可微框架，用于直接预测世界空间中的三维手部姿态。我们通过为框架添加抖动消除、捏合动作预测等下游任务，验证了端到端可微性的优势。为了证明模型的有效性，我们进一步发布了一个包含真实数据与合成数据的大规模第一人称视角手部姿态数据集。实验表明，在该数据集上训练的系统能够应对各种复杂的交互动作，且已成功应用于实时虚拟现实应用之中。

CCS概念：·计算方法：

其他关键词：动作捕捉、手部追踪、虚拟现实

## ACM参考格式

韩尚辰、吴博辰、张宇波、刘贝贝、张灵光、王征、司伟光、张培照、蔡宇军、托马斯·霍丹、兰迪·卡贝萨斯、阮鸾、穆扎费尔·阿克拜、余子豪、杰姆·凯斯金、罗伯特·王。2022年。UmeTrack：面向VR的统一多视角端到端手部追踪技术。收录于SIGGRAPH Asia 2022会议论文集（SA '22会议论文集），2022年12月6日至9日，韩国大邱。ACM，纽约，美国，共9页。<https://doi.org/10.1145/3550469.3555378>

## 1 引言

包括Meta Quest、Pico Neo、HTC Vive以及HP Reverb G2在内的商用虚拟现实与增强现实头戴设备，能够为游戏、通信、生产力和健身等领域提供沉浸式体验。虽然第一代这类设备主要依赖控制器进行游戏操作，但近期的头戴设备已转向基于手部追踪的交互方式，以提供更自然的使用体验，并满足游戏之外的应用场景需求。

传统的手部追踪方法，例如[Han等人，2020年；Sharp等人，2015年；Taylor等人，2016年]，通常采用多阶段流程：先预测热图或对应关系，再通过独立的优化步骤求解三维手部姿态。然而，这些多阶段方法的训练是基于代理损失（如热图损失）而非实际目标指标（如三维姿态精度）。近期的一系列研究[蔡等人，2018年；Spurr等人，2021年；Zimmermann和Brox，2017年]探索了可端到端训练的单阶段架构，以直接预测手部姿态。不过，这些方法仅能输出相对于根节点的三维姿态预测结果。许多虚拟现实交互场景（如图1所示示例）需要绝对的三维根节点姿态，因此这些方法要应用于这类交互场景，还需额外增加绝对根节点姿态恢复阶段。

此外，VR头戴设备上采用的手部追踪系统是基于广角视场RGB或单色摄像头采集的多视角图像序列来运行的。然而，目前仍缺乏一种能够统一多视角融合、时间融合以及处理广角视场摄像头的架构。[Han等人，2020年]提出了一种相对距离参数化方法来处理来自广角视场摄像头的图像，但他们的系统采用的是多阶段流水线设计。[Boukhayma等人，2019年；Zhou等人，2016年、2020年]为单视角手部姿态估计设计了相应的网络。以往的研究分别探讨了多视角或时间信息的整合问题[Cai等人，2019年；Chen等人，2021年；Yang等人，2020年]，但从未实现完全的统一。

---

在本文中，我们提出了一种端到端可微的架构，该架构能够预测绝对3D手部姿态，并能处理来自广角鱼眼摄像头的单视角及多视角时序数据。这种端到端可微性使我们不仅能优化姿态精度，还能改善用户/开发者体验的其他关键方面，包括抖动和捏合检测，这两者对于VR交互而言都至关重要。借助这种端到端可微框架，我们通过时序损失实现了更优的抖动指标，通过捏合损失获得了更精准的捏合检测结果，其性能均优于现有的多阶段手部追踪系统。

由于所提出的方法基于深度神经网络，因此用于训练和评估的数据集至关重要。为此，我们推出了一个大规模的自我中心式手部追踪数据集。该数据集是利用4个鱼眼单色摄像头采集的，包含真实数据与合成数据，且数据变化丰富。数据集中既包含单手运动数据，也涵盖具有挑战性的双手交互场景。该数据集还包含了标注有捏合事件的专用捏合序列，以便研究动作识别与姿态估计任务之间的相互作用。在该数据集上训练出的所提方法在复杂的手部运动场景下表现出稳健的性能，并已在多个VR应用中成功部署（见图1）。

## 本工作做出了以下贡献

(1) 一种端到端可微的架构，能够统一多视角融合、时间融合以及对广角视场图像的处理，同时输出绝对3D手部姿态预测结果。以往的研究仅能通过多阶段方法实现这种统一。

(2) 利用端到端可微性，我们通过时序损失实现了更优的抖动指标，通过捏合损失获得了更精准的捏合检测结果，其性能均优于现有的多阶段手部追踪系统。

(3) 一个新的大规模自我中心式数据集，涵盖了单手运动及双手交互场景，包含来自53名用户的1397个真实序列和1397个合成序列。该数据集将公开发布。

## 2 相关工作

### 2.1 基于神经网络的姿态估计

许多手部姿态估计方法首先通过预测热图来估算二维关键点，通常基于单视角数据[Cai et al. 2020; Iqbal et al. 2018]。为了更好地处理自遮挡和深度模糊问题，人们通过三角测量[Simon et al. 2017]或推理后的优化[Han et al. 2020; Simon et al. 2017]来整合多视角数据。近期关于网络内多视角融合的研究则利用潜特征来实现[He et al. 2020; Isakov et al. 2019; Remelli et al. 2020]。例如，Remelli等人[^2020]采用特征变换层（FTL）来学习与相机几何相关的潜特征，并以端到端可微分的方式对三维关键点位置进行约束。不过，从关键点重建手部姿态通常还需要额外的优化步骤。

得益于基于学习的框架的快速发展，近期许多论文[Boukhayma et al. 2019; Spurr et al. 2018; Theodoridis et al. 2020]利用端到端可微分架构，在单图像条件下取得了不错的相对根部三维手部姿态估计结果。然而，利用单个网络估计绝对三维姿态的能力仍然有限。例如，Boukhayma等人[^2019]、Kulon等人[^2020]以及Yang等人[^2020]采用的弱透视投影相机模型本身存在深度模糊问题。[Cai et al. 2019; Chen et al. 2021; Zhou et al. 2020; Zimmermann and Brox 2017]预测的是相对根部的三维手部姿态，评估前需先将其与真实值进行全局对齐。Moon等人[^2019]提出了一种距离感知架构来预测绝对根部位置，但后续研究表明该架构不足以给出准确的深度预测[Moon et al. 2020]。近期研究[Cai et al. 2019; Chen et al. 2021; Hasson et al. 2020; Yang et al. 2020]也尝试利用多视角信息或时间信息来解决单图像中的模糊问题，但它们仍局限于相对根部三维姿态估计。本文提出的架构旨在结合多视角和时间信息，同时预测绝对三维手部姿态。

### 2.2 手部姿态数据集

表1总结了用于手部姿态估计的不同数据集。Moon等人[^2020]构建了一个高质量的大型数据集，其中包含了具有挑战性的手部动作，这些动作既有人工标注，也通过多台高分辨率RGB相机采用自举法生成标注。不过，该数据集的背景和光照变化较少。Christian Zimmermann和Brox[^2019]同样使用了多视角捕捉装置，并增加了更多背景变化，但发布的数据集仅限用于训练和评估单帧、单视角的姿态估计方法。由于获取具有丰富变化的高质量数据难度较大，人们提出了基于渲染或图像到图像转换的合成数据集[Mueller et al. 2018; Zimmermann and Brox 2017]。上述所有数据集都局限于窄视场角相机拍摄的外向视角数据，因此不适合用于VR/AR场景中的以眼为中心的手部追踪。

现有的以自我为中心的数据集要么配备了高度可见的标记[Garcia-Hernando et al. 2018]，要么环境变化有限[Kwon et al. 2021]。为了收集多视角以自我为中心的数据集，Han等人[^2020]提出了两种方法：(1)配备单个深度传感器的移动装置，通过基于深度的手部追踪器获取真实值；(2)配备多台动作捕捉摄像机的实验室装置，通过基于标记的手部追踪器获取真实值[Han et al. 2018]。这两种方法的标注都是自动生成的，因此适合大规模数据收集。不过，方法(1)的真实值质量受到单视角基于深度的手部追踪器的限制（该追踪器在处理手部遮挡带来的歧义时表现不佳），而方法(2)的环境和光照变化也较为有限。在本研究中，我们采用同样的基于标记的手部追踪器来确保真实值的准确性，同时利用合成数据来增加环境和光照的变化。总的来说，我们贡献了迄今为止规模最大、多样性最高的以自我为中心的多视角、多帧数据集（如表1所示）。

---

![Image](images/67170b8854b0f4cb4a5a7917d42d205f7e2599728719a0a652eccee316d0fa0f.jpg)

<div style="text-align: center;">Fig. 2. This figure shows our architecture for the case of a known hand skeleton. The 3D feature extractor block can take either single-view or multi-view input data and produce 3D features  $z^{3d}$ via a feature transform layer (FTL). The pose regression block first generates  $z^{R}$ which contains 3D information, temporal context and skeleton features. The known-skeleton regressor (Regressor-K) takes  $z^{R}$ as input and predicts the absolute 3D hand pose. The whole network can be trained end-to-end as all the modules and operators are differentiable.</div>

<div style="text-align: center;">Table 1. Comparing the proposed datasets with existing datasets.</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;'># frames</td><td style='text-align: center; word-wrap: break-word;'>ego</td><td style='text-align: center; word-wrap: break-word;'>bg variation</td><td style='text-align: center; word-wrap: break-word;'>markerless</td><td style='text-align: center; word-wrap: break-word;'>real</td><td style='text-align: center; word-wrap: break-word;'>large fov</td><td style='text-align: center; word-wrap: break-word;'>hand-hand</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FreiHAND [^2019]</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;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</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;'>HOnnotate [^2020]</td><td style='text-align: center; word-wrap: break-word;'>78K</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</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;'>InterHand2.6M [^2020]</td><td style='text-align: center; word-wrap: break-word;'>2,590K</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</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;'>GANerated Hands [^2018]</td><td style='text-align: center; word-wrap: break-word;'>331K</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✗</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;'>H2O [^2021]</td><td style='text-align: center; word-wrap: break-word;'>571K</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</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;'>FPHA [^2018]</td><td style='text-align: center; word-wrap: break-word;'>105K</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✓</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;'>Ours (real)</td><td style='text-align: center; word-wrap: break-word;'>839k</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✓</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;'>Ours (synth)</td><td style='text-align: center; word-wrap: break-word;'>839k</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr></table>

## 3 方法

预备知识。我们的手部骨骼H由20个关节组成，这些关节可由一个20维的关节角度向量$\theta$来描述。每个关节都由关节位置和旋转轴定义。手部的全局变换由根变换$T_{H}$表示，包含6个自由度（DOF）。有了手部骨骼以及预测的关节角度和根变换，我们就可以通过线性混合蒙皮（LBS）技术来驱动相应的手部网格动画。

我们采用了Han等人[^2020]提出的、在VR头戴设备上安装广角鱼眼摄像头的多摄像头布局。在这种布局中，根据手部的位置，一只手可以被单个摄像头或多个摄像头捕捉到。因此，我们设计的网络能够同时处理单视角和多视角的输入数据。对于每一帧，模型的输入要么是单视角图像，要么是多视角图像，同时会提供手部周围的感兴趣区域（ROI）。

在现实应用中，我们的模型既支持已知的手部骨骼，也支持未知的手部骨骼。如果用户事先已经生成了手部骨骼（例如通过扫描系统），我们的模型就能利用该骨骼信息，此时输出结果为$\{\theta, T_{H}\}$。对应的架构如图2所示。对于没有预先掌握手部骨骼信息的新用户，我们通过从多视角图像中预测手部尺度来对未知的手部骨骼进行校准，此时模型的输出结果为$\{\theta, T_{H}, H\}$。

在后续章节中，第3.1节介绍了我们为模型准备输入图像的方法。第3.2节概述了在提供已知手部骨骼时的模型情况。第3.3节详细说明了在用户手部骨骼未知时进行骨骼校准的过程。

![Image](images/3e1dd33dc90f34b2f4f70ec54a74e04bde1fe2053084c77459434c9aa4de05bf.jpg)

<div style="text-align: center;">Fig. 3. The perspective cropping method generates a virtual perspective camera for each hand. In this figure, each camera is represented with a different color: grey for original camera, red for left hand virtual camera and blue for right hand virtual camera. The solid lines around each hand outline the crop boundaries. On the right, we show the square crops commonly used in previous methods for comparison. Note that the square crop of the right hand is visually more distorted whereas perspective cropping can correct this distortion.</div>

### 3.1 输入图像的透视裁剪

第3.4节介绍了我们用于训练模型的损失项。

大多数现有研究 [Han et al. 2020] 均采用手部区域周围的方形裁剪图像作为输入。与物理相机拍摄的图像不同，这些裁剪图像实际上丢失了相应的相机几何信息（即内参和外参），因此无法直接用于估计绝对三维姿态。为解决这一问题，受透视裁剪技术有效性的启发 [Remelli et al. 2020; Yu et al. 2021]，我们采用了相同的裁剪方法（见图3）来为模型生成输入图像。具体而言，给定原始图像中的感兴趣区域（ROI），我们首先在原相机位置创建一个虚拟透视相机。外参矩阵的设置使得虚拟相机的z轴指向ROI的中心。在训练阶段，虚拟相机的内参矩阵被设定为让所有真实的手部关键点都投影在图像边界内。

---

在推理阶段，由于无法获取真实数据，我们依靠先前跟踪到的姿态来估计内参矩阵。一旦创建好虚拟相机，便可利用 [Yu et al. 2021] 描述的变形技术来生成裁剪图像。通过采用透视裁剪技术，我们实现了两个目标：（1）可以校正鱼眼图像产生的畸变（如图3所示）；（2）虚拟相机提供了三维空间所需的几何信息，从而能够直接预测手部尺度和绝对三维姿态。

### 3.2 已知手部骨骼结构时的网络架构

在本节中，我们将讨论已知手部骨骼结构时的网络架构，如图2所示。

三维特征提取器。给定输入的裁剪图像 $\{I_i\}_{i=1}^n$，其中N表示手部裁剪图像的数量，我们首先将它们送入全卷积编码器以生成潜在特征 $z_i^I$。此处 $z_i^I$ 是从图像空间中提取的，并未考虑相机几何信息，因此不足以进行尺度预测或绝对三维姿态预测。为了将三维结构融入网络，我们利用FTL [Remelli et al. 2020; Worrall et al. 2017] 来生成与相机几何信息相关的潜在特征：

 $$ z_{i}^{3d}=\mathrm{F T L}(z_{i}^{I}|T_{i,1}*K_{i}^{-1}). $$

在此过程中，图像特征 $z_i^I$ 首先利用虚拟相机的内参矩阵 $K_i$ 被反投影到三维空间，随后从虚拟相机i的三维空间变换到参考相机的三维空间。实践中，我们将虚拟相机1设为参考相机，$T_{i,1}$ 表示相机i到相机1的变换矩阵（因此 $T_{1,1}$ 在此处为单位矩阵）。通过这种方式，我们将三维结构信息整合到图像特征中，变换后的特征 $\{z_i^{3d}\}_{i=1}^n$ 都处于同一三维空间内。

我们的模型既能处理单视图（n = 1）数据，也能处理多视图（n > 1）数据。我们将三维特征提取器的输出记为 $z^{3d}$。对于单视图输入，可直接将特征设置为：$z^{3d} = z_1^{3d}$。对于多视图输入，则采用多视图融合模块MVF来融合不同相机视角下的特征：

 $$ z^{3d}=M V F\big({c o n c a t e n a t e}(z_{i}^{3d},...,z_{n}^{3d})\big),i\in[1,n]. $$

MVF的输出 $z^{3d}$ 与 $z_i^{3d}$ 具有相同的形状，这样模型中后续以 $z^{3d}$ 为输入的模块就能忽略输入图像数量的影响。由于 $z_i^{3d}$ 借助FTL包含了相机间的关系，MVF能够在特征空间中进行可学习的三角测量 [Iskakov et al. 2019]，这也是我们能够预测手部尺度的关键（更多细节见第3.3节）。

时序模块。给定一组（单视图或多视图）空间特征$z^{3d}$，我们启动基于时序模块TEM的姿态回归步骤，该模块将$z^{3d}$与时序上下文$z^{TEM} = TEM(z^{3d}, h_{TEM})$进行融合。时序模块是一种循环神经网络，其隐藏状态记为$h_{TEM}$。它旨在学习时序一致性，是处理严重遮挡情况下手部姿态的关键。

骨骼编码器。如果没有骨骼数据，姿态回归任务会变得模糊不清：(1)若输入为单张图像，在不知道手部尺度的情况下无法解决深度模糊问题；(2)关节角度需要与关节位置和旋转轴结合才能定义手部关节运动。借助骨骼数据的先验知识，我们引入骨骼编码器SE，将手部骨骼信息隐式地整合到网络中。具体来说，我们将静止状态下手部的关节位置（三维）和旋转轴（三维）转换为一个特征向量。由于有20个关节，可得到120维的特征向量。骨骼编码器SE以骨骼H为输入，进行特征提取并将骨骼特征编码为特征图：$z^{H} = SE(H)$。

回归器-K。最后一个可学习的模块是回归器-K（“K”代表“已知手部骨骼”）。回归器-K的输入为：

 $$ z^{R}={c o n c a t e n a t e}(z^{{T E M}},z^{H}), $$

其中，拼接后的特征$z^R$包含了三维空间信息、时序上下文以及手部骨骼数据。回归器-K以$z^R$为输入，预测20个关节角度$\hat{\theta}$以及三维根节点坐标$\hat{v}$，后者编码了参考相机空间中的根节点变换$\hat{T}_{H,1}$。为了从$\hat{T}_{H,1}$中解码出$\hat{v}$，我们使用奇异值分解[Sorkine-Hornung和Rabinovich 2016]技术，将局部手部坐标系下预定义的三维根节点坐标与预测出的三维根节点坐标$\hat{v}$对齐。关于$\hat{T}_{H,1}$解码的更多细节可在补充材料中找到。随后，我们利用参考相机的外部参数，将根节点变换$\hat{T}_{H}$转换到世界坐标系中。输出$\{\hat{\theta}, \hat{T}_{H}\}$可用于渲染手部模型并驱动虚拟现实应用。

### 3.3 未知手部骨骼的校准

我们将手部骨骼校准问题转化为类似于[Han等人，2020]所提出的手部尺度校准任务。校准后的手部尺度可用于缩放参考手部骨骼。类似[Romero等人，2017]所涉及的更多手部参数的校准，将是该方法未来的扩展方向。对于手部尺度校准，我们的方法依赖于回归器-U（“U”代表“未知手部骨骼”）。回归器-K与回归器-U的区别如图4所示。如图4(b)所示，回归器-U需要利用多视图数据计算得到的时序特征$z^{TEM}$，因为单视图数据本身存在尺度模糊问题，导致尺度校准成为不适定问题。回归器-U会额外输出手部尺度估计值，用于生成校准后的手部骨骼$\hat{H}$。回归器-U的最终输出为$\{\hat{\theta}, \hat{T}_{H}, \hat{H}\}$。训练时，回归器-K和回归器-U可以端到端方式联合训练。推理时，模型可根据是否提供骨骼数据动态选择使用哪个回归器。

### 3.4 损失函数

网络训练采用三种损失项的组合：姿态损失、时序损失和捏合损失。

---

![Image](images/7d198bb0b03953e95f456d2c5baf07ec7238b7e763a5127bf046531be67fcf5c.jpg)

<div style="text-align: center;">Fig. 4. we provide two regressors for (a) known and (b) unknown hand skeletons. (a) Regressor-K is used when a known hand skeleton is provided. Regressor-K is capable of handling  $z^{TEM}$ computed from either single-view or multi-view data and requires a known hand skeleton for computing  $z^{H}$. (b) Regressor-U is used when the hand skeleton is unknown. Regressor-U requires  $z^{TEM}$ being computed from multi-view data and predicts an additional hand scale that can be used to generate the estimated skeleton.</div>

姿态损失。姿态损失包含一组用于监督手部姿态的回归损失：

 $$ L_{p o s e}=\sum_{j}^{J}||p_{j}(\theta,T_{H},H)-p_{j}(\hat{\theta},\hat{T}_{H},\hat{H})||_{1}+ $$

 $$ \lambda_{\theta}||\theta-\hat{\theta}||_{1}+\lambda_{w}||w(T_{H})-w(\hat{T}_{H})||_{1}, $$

其中，$p_j(\cdot)$ 是一个利用正运动学计算第 j 个关键点位置的函数，而 w 则是从 $T_H$ 中获取平移分量的函数。我们用帽号来表示网络的预测结果。如果已知手部骨骼信息，则 $\hat{H}$ 与真实骨骼 H 相同；若手部骨骼未知，则由 Regressor-U 来预测 $\hat{H}$。在实验中，我们设定了损失权重 $\lambda_\theta = 0.05$ 和 $\lambda_w = 0.5$。

时间损失。时间损失通过惩罚加速度来强制保证预测姿态序列的平滑性：

 $$ L_{t e m p}=\sum_{t}^{T}(||a c c(\hat{\theta},t))||_{1}+||a c c(\hat{T}_{H},t)||_{1}) $$

其中，$acc(x,t)=x_{t+1}+x_{t-1}-2x_{t}$ 是计算信号 x 在帧 t 处加速度的函数。对于以往那些预测根部相对手部姿态的端到端方法而言，由于无法获取根部变换信息，因此很难引入类似的损失项。

捏合损失。可靠地检测捏合动作至关重要，因为在虚拟现实交互中捏合常用于选择操作。我们的捏合损失设计基于以下观察：捏合时拇指与食指指尖之间的距离较小：

 $$ L_{p i n c h}=l\cdot\min(d(\hat{\theta},\hat{T}_{H},\hat{H})-\epsilon_{1},0)+ $$

 $$ (1-l)\cdot\min(\epsilon_{2}-d(\hat{\theta},\hat{T}_{H},\hat{H}),0)), $$

其中，l 是标注的二进制捏合标签，d 是计算拇指与食指指尖之间距离的函数。$\epsilon_1$ 是对应高概率发生捏合事件的距离阈值，$\epsilon_2$ 则是表示不太可能发生捏合事件的“安全”距离阈值。$\epsilon_1$ 和 $\epsilon_2$ 分别被设定为 0.01 米和 0.02 米。

最终损失是上述各项损失的线性组合：

 $$ \begin{array}{r}{L=L_{p o s e}+\lambda_{t}L_{t e m p}+\lambda_{p}L_{p i n c h},}\end{array} $$

在实验中，我们将权重设定为 $\lambda_{t}=0.05$ 和 $\lambda_{p}=0.4$。

## 4 数据集

为了以监督方式训练我们的流程，需要一个包含具有挑战性的手部交互动作的大规模多视角第一人称视角数据集。如表 1 所示，现有的手部追踪数据集要么不适用于第一人称视角，要么缺乏对手部应用至关重要的复杂手部动作。为此，我们提出了一种新的大规模真实世界第一人称视角数据集，包含 53 名用户的 1397 个序列。对于每个用户，我们通过扫描系统获取其真实手部骨骼和网格数据。每个序列时长 15 秒，帧率为 30fps。每帧包含来自 VR 头显上 4 个广角单色摄像头的 4 张 VGA 图像。我们搭建了一个由 36 个摄像头组成的动作捕捉系统来跟踪标记点位置。每位用户手上都贴有 3 毫米大小的标记点，并使用基于标记的手部追踪器 [Han et al. 2018] 来获取真实动作数据。在每一帧中，带有真实标签的手部可能出现在 1 个或 2 个视角中。

该数据集分为两种协议：专注于单个手部动作的独立手协议，以及专注于手部间交互的手-手协议。在独立手协议中，有 192 个序列包含捏合动作。捏合事件经过人工标注，共得到 38003 个捏合标签。

除了真实数据外，我们还使用 Unity 游戏引擎，基于真实数据集中的手部动作渲染了合成数据集。每个序列采用不同的背景渲染，每帧也采用不同的光照配置。因此，合成数据集在环境和光照方面提供了更大的变化性。真实数据与合成数据的示例可在我们的补充视频中查看。如表 1 所示，据我们所知，这是目前最大的专门用于虚拟现实手部追踪的第一人称视角数据集。

## 5 评估

为了评估我们系统的准确性，我们使用平均关节位置误差（MPJPE）指标，该指标计算世界空间中估计关键点与真实关键点之间的平均三维欧几里得距离（单位：毫米）。我们使用平均关节位置加速度（MPJPA）指标来衡量跟踪抖动情况，这一做法与[Han等人，2020年]的研究类似，具体计算公式如下：

 $$ mp j p a(\hat{\theta},\hat{T}_{H},\hat{H})=\frac{1}{T\cdot J}\sum_{t}^{T}\sum_{j}^{J}||acc(p_{j}(\hat{\theta},\hat{T}_{H},\hat{H}),t)||_{2} $$

MPJPE数值越低，说明准确性越高；MPJPA数值越低，则表明跟踪抖动越小。我们将自己的方法与[Han等人，2020年]提出的用于虚拟现实领域的先进多阶段手部跟踪方法进行比较，以此了解我们的流程所带来的端到端可微性优势。

### 5.1 实现细节

数据增强。我们在训练过程中通过扰动相机的内参和外参来进行数据增强：(1)在生成虚拟相机的外参时，向注视方向添加噪声；(2)对相机外参随机施加平面内旋转；(3)对焦距进行随机缩放。需要注意的是，我们无法使用常用的仿射变换来增强输入图像，因为这会导致虚拟相机参数与图像数据之间出现不匹配。

---

在创建虚拟相机的外参时，会向观察方向引入噪声；(2) 对相机外参随机施加平面内旋转；(3) 对焦距进行随机缩放。需要注意的是，我们无法使用常用的仿射变换来增强输入图像，因为这会导致虚拟相机参数与图像数据之间出现不匹配。

我们的方法是基于PyTorch [Paszke等人，2017年]实现的。为了与Han等人的研究进行公平比较 [^2020]，我们采用了相同的输入分辨率（$96 \times 96$ 单色图像）以及相同的图像编码器骨干网络。模型的各个模块通过9块GPU以144的批量大小进行端到端的联合训练。我们首先使用Adam优化器、0.0002的学习率，在不加入时序损失或捏合损失的情况下，让网络训练200个周期。随后，我们启用所有损失项，再继续训练200个周期。在配备NVIDIA GTX 2080 Super显卡的电脑上，使用我们的模型处理4张图像（两只手由2个摄像头拍摄）所需的推理时间为$\sim$10毫秒。关于各模块所用层的更多细节，请参阅补充材料。

通过实验我们发现，在合成数据上训练的网络对复杂环境的适应性更强；而在真实数据上训练的网络在真实数据集的测试集上表现更佳。为了兼顾两者的优势，我们对自己的方法以及[Han等人，2020年]提出的关键点网络，均在真实数据与合成数据混合的数据集上进行训练，以实现公平比较。相关指标是在真实数据的测试集上统计得出的。

### 5.2 消融研究

在本节中，我们对各个模块和损失函数进行了消融研究。Pinch损失未包含在内，将在5.4节中另行讨论。我们在独立手协议下，对比了MPJPE和MPJPA指标下的结果，相关总结见表2。若不使用FTL，我们的模型几乎无法学会预测3D手部姿态，对应模型的性能也最差（MPJPE为49.8毫米）。骨架编码器能够提取关键的手部尺度和关节特征，一旦缺少这些特征，网络的精度就会下降（MPJPE为13.4毫米）。若没有时序模块，网络会丢失时序上下文信息，在MPJPE指标上的表现会略差，而在MPJPA指标上的表现则明显更差。即便不加入时序模块，添加$L_{temp}$也能改善MPJPA指标（从5.10提升至4.39），但会导致MPJPE指标显著恶化（从9.5毫米升至10.0毫米）。当使用完整模型时，基于$L_{temp}$训练的模型在MPJPE指标上略有下降（9.4毫米对比9.3毫米），但在MPJPA指标上的表现却远优于未使用$L_{temp}$训练的模型（2.61对比3.52）。为了进一步验证$L_{temp}$的益处，我们将基于$L_{temp}$训练的模型与使用单欧元滤波器[Casiez等人，2012]进行后处理的模型进行对比。单欧元滤波器的参数经过调整，以使两者在MPJPA指标上保持一致，但其在MPJPE指标上的表现要差得多（10.1毫米对比9.4毫米）。基于这些观察结果，我们认为$L_{temp}$能为MPJPA指标带来足够的好处，因此我们采用同时结合了$L_{pose}$和$L_{temp}$训练的完整模型来执行手部追踪任务。

图5展示了使用我们方法得到的一些样本结果。尤其是当双手相互遮挡严重时，也能被合理追踪（见图5第3行和第5行）。我们还发现，时序模块是应对物体遮挡这类挑战的关键。为了说明这一点，我们给出了一个示例

<div style="text-align: center;">Table 2. Ablation study for different modules and loss functions. For each model, "|" separates the model architecture (left) and loss functions used for training (right). Model annotated with "(One-Euro)" refers to using one-euro filter to post-process the tracked poses. Best model is highlighted in bold.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>model</td><td style='text-align: center; word-wrap: break-word;'>MPJPE</td><td style='text-align: center; word-wrap: break-word;'>MPJPA</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o FTL $|L_{pose}$</td><td style='text-align: center; word-wrap: break-word;'>49.8</td><td style='text-align: center; word-wrap: break-word;'>6.29</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o skeleton encoder $|L_{pose}$</td><td style='text-align: center; word-wrap: break-word;'>13.4</td><td style='text-align: center; word-wrap: break-word;'>4.07</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o temporal module $|L_{pose}$</td><td style='text-align: center; word-wrap: break-word;'>9.5</td><td style='text-align: center; word-wrap: break-word;'>5.10</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o temporal module $|L_{pose} + L_{temp}$</td><td style='text-align: center; word-wrap: break-word;'>10.2</td><td style='text-align: center; word-wrap: break-word;'>4.39</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>full model $|L_{pose}$</td><td style='text-align: center; word-wrap: break-word;'>9.3</td><td style='text-align: center; word-wrap: break-word;'>3.52</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>full model $|L_{pose}$ (One-Euro)</td><td style='text-align: center; word-wrap: break-word;'>10.1</td><td style='text-align: center; word-wrap: break-word;'>2.67</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>full model $|L_{pose} + L_{temp}$</td><td style='text-align: center; word-wrap: break-word;'>9.4</td><td style='text-align: center; word-wrap: break-word;'>2.61</td></tr></table>

真实关键点

真实手部姿态

预测关键点

预测手部姿态

![Image](images/195cfd04a8ccb4cabca664e2071e3137414a67259ba1749c44c559201c4e6d2b.jpg)

<div style="text-align: center;">Fig. 5. Qualitative results on our evaluation dataset.</div>

如图6所示，当手部被纸张遮挡时，完整模型仍能保持合理的姿态，而没有时序模块的模型则完全无法做到这一点。

### 5.3 与以往的多阶段方法对比

已知手部骨骼。我们利用数据集提供的真实骨骼数据，将用$L_{pose}$和$L_{temp}$训练的模型与Han等人[^2020]的方法进行对比。表3中报告了单手协议和双手协议下的各项指标。在这两种协议下，我们的方法在MPJPE指标上的表现均优于[Han等人，2020]（单手情况下为9.4毫米对比9.9毫米；双手情况下为10.5毫米对比10.8毫米）。关于不同误差阈值下各方法的性能细节，可参见图7(a)和(b)。具体而言，在图7(a)中，我们方法的曲线与[Han等人，2020]的曲线在9.5毫米误差阈值处相交。这表明我们的方法产生的异常值（误差>9.5毫米）更少，但精确定位能力有所降低（误差<9.5毫米）。

---

<div style="text-align: center;">Table 3. Comparison with the multi-stage method [Han et al. 2020] on separate-hand and hand-hand protocols. For each of our models, loss functions used for training are specified after "\].</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="3">Method</td><td colspan="4">Known hand skeleton</td><td colspan="4">Unknown hand skeleton</td></tr><tr><td colspan="2">separate-hand</td><td colspan="2">hand-hand</td><td colspan="2">separate-hand</td><td colspan="2">hand-hand</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MPJPE</td><td style='text-align: center; word-wrap: break-word;'>MPJPA</td><td style='text-align: center; word-wrap: break-word;'>MPJPE</td><td style='text-align: center; word-wrap: break-word;'>MPJPA</td><td style='text-align: center; word-wrap: break-word;'>MPJPE</td><td style='text-align: center; word-wrap: break-word;'>MPJPA</td><td style='text-align: center; word-wrap: break-word;'>MPJPE</td><td style='text-align: center; word-wrap: break-word;'>MPJPA</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>[Han et al. 2020]</td><td style='text-align: center; word-wrap: break-word;'>9.9</td><td style='text-align: center; word-wrap: break-word;'>3.48</td><td style='text-align: center; word-wrap: break-word;'>10.8</td><td style='text-align: center; word-wrap: break-word;'>3.33</td><td style='text-align: center; word-wrap: break-word;'>12.9</td><td style='text-align: center; word-wrap: break-word;'>3.46</td><td style='text-align: center; word-wrap: break-word;'>13.6</td><td style='text-align: center; word-wrap: break-word;'>3.33</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours | $\bar{L}_{pose} + \bar{L}_{temp}$</td><td style='text-align: center; word-wrap: break-word;'>9.4</td><td style='text-align: center; word-wrap: break-word;'>2.61</td><td style='text-align: center; word-wrap: break-word;'>10.5</td><td style='text-align: center; word-wrap: break-word;'>2.73</td><td style='text-align: center; word-wrap: break-word;'>11.2</td><td style='text-align: center; word-wrap: break-word;'>2.57</td><td style='text-align: center; word-wrap: break-word;'>12.0</td><td style='text-align: center; word-wrap: break-word;'>2.69</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours | $L_{pose} + L_{temp} + L_{pinch}$</td><td style='text-align: center; word-wrap: break-word;'>9.4</td><td style='text-align: center; word-wrap: break-word;'>2.65</td><td style='text-align: center; word-wrap: break-word;'>10.6</td><td style='text-align: center; word-wrap: break-word;'>2.68</td><td style='text-align: center; word-wrap: break-word;'>11.4</td><td style='text-align: center; word-wrap: break-word;'>2.60</td><td style='text-align: center; word-wrap: break-word;'>12.2</td><td style='text-align: center; word-wrap: break-word;'>2.65</td></tr></table>

![Image](images/da10deb45049a5b9247f3f8747443364712ab5c8ada1cc64a2708386a0a87616.jpg)

<div style="text-align: center;">Fig. 6. The model without temporal module predicts a reasonable pose at frame (t-5) but completely fails at frame t due to severe occlusion. In contrast, the model with temporal module predicts a plausible hand pose at frame t by leveraging the temporal context.</div>

![Image](images/22981282c7a349a1ffdce9583be47162868833158282dbd8ca010fbe8d88af79.jpg)

![Image](images/be5bd4bd38e414ac9ef442a9ad044fe0866a5a519f811f1e09ec73133a429416.jpg)

<div style="text-align: center;">Fig. 7. PCK curves on separate-hand and hand-hand protocols. Legends including "(K)" refer to evaluation for known hand skeletons and legends with "(U)" refer to evaluation for unknown hand skeletons.</div>

类似现象也可在图7(b)中看到。就MPJPA指标而言，我们的方法始终优于Han等人[^2020]的方法（单手情况下为2.61对比3.48；双手情况下为2.68对比3.33）。

未知手部骨骼。当用户未提供手部骨骼信息时，我们对自身方法和[Han等人，2020]的方法均进行手部尺度校准。[Han等人，2020]的方法是通过收集多视角帧并利用优化方法来求解手部尺度。在我们的研究中，

<div style="text-align: center;">Table 4. Comparison on pinch metrics. For each of our models, loss functions used for training are specified after "|".</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>model</td><td style='text-align: center; word-wrap: break-word;'>precision (%)</td><td style='text-align: center; word-wrap: break-word;'>recall (%)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>[Han et al. 2020]</td><td style='text-align: center; word-wrap: break-word;'>96.5</td><td style='text-align: center; word-wrap: break-word;'>95.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours | $L_{pose} + L_{temp}$</td><td style='text-align: center; word-wrap: break-word;'>92.2</td><td style='text-align: center; word-wrap: break-word;'>90.8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours | $L_{pose} + L_{temp} + L_{pinch}$</td><td style='text-align: center; word-wrap: break-word;'>97.3</td><td style='text-align: center; word-wrap: break-word;'>97.3</td></tr></table>

通过取前30帧的尺度预测平均值来校准手部尺度。为了收集相关指标，我们首先运行两种方法来进行尺度校准，从而获得校准后的手部骨骼数据。随后，我们使用这些校准后的手部骨骼重新执行推理。如表3所示，我们的方法在MPJPE指标上始终大幅优于[Han et al. 2020]（分开手情况下为11.2毫米对比12.9毫米；双手情况下为12.0毫米对比13.6毫米），这证明了我们这种端到端可微架构的有效性。

### 5.4 捏合动作评估

在本节中，我们比较了捏合动作检测方面的精确度和召回率指标[LeCun et al. 2015]。两种方法均采用基于食指与拇指指尖距离阈值的捏合检测器，该阈值与我们设计的$L_{pinch}$中所使用的阈值一致。如表4所示，未使用$L_{pinch}$训练的模型，其各项指标均劣于Han等人提出的[^2020]方法。这可能与5.3节中的观察结果相关，即我们的方法在精确定位方面的能力较弱。不过，在训练过程中加入$L_{pinch}$后，尽管如表3所示MPJPE指标略有下降，但捏合动作检测的准确率却显著提升。表4显示，使用$L_{pinch}$训练的模型在精确度上达到97.3%，优于Han等人的[^2020]方法的96.5%；在召回率方面也达到97.3%，高于Han等人的95.0%。我们想强调，我们的模型为研究姿态估计与捏合动作检测等诸多下游任务之间的相互作用提供了框架。这类任务在多阶段方法中很难实现联合优化。

## 6 结论

我们提出了一种专为虚拟现实场景中的手部跟踪设计的端到端可微架构。该架构统一处理了多视角数据、时间融合以及宽视场角图像的处理问题，同时能够输出绝对的三维手部姿态预测结果。我们证明，与多阶段不可微流程相比，端到端可微性使得针对抖动消除、捏合动作检测等下游任务的优化更加容易。我们还推出了一个新的大规模第一人称视角数据集。在补充视频中，我们展示了利用该数据集训练的模型所带来的出色虚拟现实体验。

---

局限性与未来工作。双手交互对我们的方法而言仍是一个挑战。一个潜在的解决方案是同时回归两种手部的姿态，并设计双手交互损失函数（即可防止手部相互穿透的损失函数）。与[Han et al. 2020]相比，我们发现我们的方法在精确定位方面的能力较弱。我们推测这是直接姿态回归方法存在的局限性。借鉴多阶段方法的思路，我们的模型有望在训练过程中将热图回归和数值优化作为可微组件纳入，从而实现更精确的手部跟踪。

## 参考文献

Adnane Boukhayma、Rodrigo de Bem和Philip HS Torr。2019年。基于野外图像的三维手部形状与姿态估计。载于IEEE计算机视觉与模式识别会议论文集，第10843–10852页。

Yujun Cai、Liuhao Ge、Jianfei Cai、Nadia Magnenat Thalmann和Junsong Yuan。2020年。利用合成数据与弱标注RGB图像进行三维手部姿态估计。IEEE模式分析与机器智能交易，第43卷第11期，第3739–3753页。

Yujun Cai、Liuhao Ge、Jianfei Cai和Junsong Yuan。2018年。基于单目RGB图像的弱监督三维手部姿态估计。载于欧洲计算机视觉会议（ECCV）论文集，第666–682页。

蔡宇君、葛柳浩、刘军、蔡建飞、Tat-Jen Cham、袁俊松和Nadia Magnenat Thalmann。2019年。利用时空关系通过图卷积网络进行3D姿态估计。载于IEEE国际计算机视觉会议论文集，第2272–2281页。

Géry Casiez、Nicolas Roussel和Daniel Vogel。2012年。1欧元滤波器：一种用于交互式系统中噪声输入的简单基于速度的低通滤波器。载于SIGCHI人机交互系统会议论文集（2012年）。

陈良健、林世耀、谢宇升、林彦宇和谢晓辉。2021年。MVHM：用于精确3D手部姿态估计的大规模多视角手部网格基准。载于2021年IEEE计算机视觉应用冬季会议（WACV）（2021年），第836–845页。

杨济梅、Bryan Russel、Max Argus、Christian Zimmermann、Duygu Ceylan和Thomas Brox。2019年。FreiHAND：一个从单张RGB图像中无标记捕捉手部姿态和形状的数据集。载于IEEE国际计算机视觉会议（ICCV）。<https://lmb.informatik.uni-freiburg.de/projects/freihand/>

Guillermo Garcia-Hernando、袁善欣、Seungryul Baek和Kim Tae-Kyun。2018年。带有RGB-D视频和3D手部姿态标注的第一人称手部动作基准。载于计算机视觉与模式识别会议（CVPR）论文集。

Shreyas Hampali、Mahdi Rad、Markus Oberweger和Vincent Lepetit。2020年。HOnnotate：一种用于手部与物体姿态的3D标注方法。载于IEEE/CVF计算机视觉与模式识别会议（CVPR）。

韩尚辰、刘贝贝、Randi Cabezas、Christopher Twigg、张培钊、Jeff Petkau、Tsz-Ho Yu、蔡春荣、Muzaffer Akbay、王正、Asaf Nitzan、董刚、叶雨婷、陶玲玲、万成德和Robert Wang。2020年。MEgA-Track：用于虚拟现实的单色自中心关节手部追踪技术。载于《ACM图形学交易》第39卷（2020年7月）。<https://doi.org/10.1145/3386569.3392452>

韩尚辰、刘贝贝、Robert Wang、叶雨婷、Christopher D. Twigg和Kenrick Kin。2018年。基于深度标签的在线光学标记手部追踪技术。载于《ACM图形学交易》第37卷第4期，文章编号166（2018年7月），共10页。<https://doi.org/10.1145/3197517.3201399>

Yana Hasson、Bugra Tekin、Federica Bogo、Ivan Laptev、Marc Pollefeys和Cordelia Schmid。2020年。利用时间上的光度一致性进行稀疏监督的手部-物体重建。载于IEEE/CVF计算机视觉与模式识别会议论文集，第571–580页。

何一辉、严瑞、Katerina Fragkiadaki和Shoou-I Yu。2020年。极线变换器。载于IEEE/CVF计算机视觉与模式识别会议论文集，第7779–7888页。

Umar Iqbal、Pavlo Molchanov、Thomas Breuel、Juergen Gall和Jan Kautz。2018年。通过隐式2.5D热图回归进行手部姿态估计。载于欧洲计算机视觉会议论文集。

Karim Iskakov、Egor Burkov、Victor Lempitsky和Yury Malkov。2019年。可学习的人体姿态三角测量技术。载于国际计算机视觉会议（ICCV）论文集。

Dominik Kulon、Riza Alp Guler、Iasonas Kokkinos、Michael M. Bronstein和Stefanos Zafeiriou。2020年。野外环境下的弱监督网格卷积手部重建技术。载于IEEE/CVF计算机视觉与模式识别会议（CVPR）论文集。

权泰仁、Bugra Tekin、Jan Stuhmer、Federica Bogo和Marc Pollefeys。2021年。H2O：用于第一人称交互识别的双手操控物体场景。载于ICCV 2021。<https://www.microsoft.com/en-us/research/publication/h2o-two-hands-manipulating-objects-for-first-person-interaction-recognition/>

Yann LeCun、Yoshua Bengio和Geoffrey Hinton。2015年。深度学习。《自然》杂志，第521卷，第7553期（2015年），第436–444页。

Gyeongsik Moon、Juyong Chang和Kyoung Mu Lee。2019年。基于相机距离感知的从上至下方法：从单张RGB图像进行3D多人姿态估计。载于IEEE国际计算机视觉会议（ICCV）。

Gyeongsik Moon、Shoou-I Yu、He Wen、Takaaki Shiratori和Kyoung Mu Lee。2020年。InterHand2.6M：从单张RGB图像进行3D交互手部姿态估计的数据集与基准模型。载于欧洲计算机视觉会议（ECCV）。

Franziska Mueller、Florian Bernard、Oleksandr Sotnychenko、Dushyant Mehta、Srinath Sridhar、Dan Casas和Christian Theobalt。2018年。GANerated Hands：基于单目RGB图像的实时3D手部追踪。载于计算机视觉与模式识别会议（CVPR）论文集。共11页。<https://handtracker.mpi-inf.mpg.de/projects/GANeratedHands/>

Adam Paszke、Sam Gross、Soumith Chintala、Gregory Chanan、Edward Yang、Zachary DeVito、Zeming Lin、Alban Desmaison、Luca Antiga和Adam Lerer。2017年。PyTorch中的自动微分。（2017年）

Edoardo Remelli、Shangchen Han、Sina Honari、Pascal Fua和Robert Wang。2020年。通过相机解耦表示实现轻量级多视角3D姿态估计。载于IEEE/CVF计算机视觉与模式识别会议（CVPR）。

Javier Romero、Dimitrios Tzionas和Michael J. Black。2017年。具身手部：手部与身体的联合建模与捕捉。载于《ACM图形学交易》（SIGGRAPH Asia会议论文集），第36卷，第6期（2017年11月）。

Toby Sharp、Cem Keskin、Duncan Robertson、Jonathan Taylor、Jamie Shotton、David Kim、Christoph Rhemann、Ido Leichter、Alon Vinnikov、Yichen Wei等。2015年。精准、稳健且灵活的实时手部追踪。载于第33届ACM人机交互系统年会论文集，第3633–3642页。

Tomas Simon、Hanbyul Joo、Iain Matthews和Yaser Sheikh。2017年。利用多视角引导在单张图像中进行手部关键点检测。载于CVPR会议。

Olga Sorkine-Hornung和Michael Rabinovich。2016年。基于SVD的最小二乘刚体运动。技术说明。

Adrian Spurr，Anees $^{L}$

自监督 $^{L}$

学习 $^{L}$

$^{nd}$ Otmar Hilliges。2021年。

$^{R}$ 通过对比学习

$^{ter}$ 视觉。

Adrian Spurr、Jie Song、Seonwook Park和Otmar Hilliges。2018年。跨模态深度变分手部姿态估计。载于IEEE计算机视觉与模式识别会议论文集，第89–98页。

Jonathan Taylor、Lucas Bordeaux、Thomas Cashman、Bob Corish、Cem Keskin、Toby Sharp、Eduardo Soto、David Sweeney、Julien Valentin、Benjamin Luff等。2016年。通过姿态与对应点的联合连续优化实现高效且精准的交互式手部追踪。《ACM图形学交易》（TOG）第35卷，第4期（2016年），第1–12页。

Thomas Theodoridis、Theocharis Chatzis、Vassilios Solachidis、Kosmas Dimitropoulos和Petros Daras。2020年。潜空间的跨模态变分对齐。载于IEEE/CVF计算机视觉与模式识别研讨会论文集，第960–961页。

Daniel E Worrall、Stephan J Garbin、Daniyar Turmukhambetov和Gabriel J Brostow。2017年。基于编码器-解码器的可解释变换。载于IEEE国际计算机视觉会议论文集。第5726–5735页。

John Yang、Hyung Jin Chang、Seungeui Lee和Nojun Kwak。2020年。SeqHAND：基于RGB序列的3D手部姿态与形状估计。CoRR abs/2007.05168（2020年）。arXiv:2007.05168 <https://arxiv.org/abs/2007.05168>

Frank Yu、Mathieu Salzmann、P. Fua和Helge Rhodin。2021年。PCLs：基于透视裁剪层的几何感知型3D姿态神经重建。2021年IEEE/CVF计算机视觉与模式识别会议（CVPR）（2021年），第9060–9069页。

Xingyi Zhou、Xiao Sun、Wei Zhang、Shuang Liang和Yichen Wei。2016年。深度运动学姿态回归。CoRR abs/1609.05317（2016年）。arXiv:1609.05317 <http://arxiv.org/abs/1609.05317>

Yuxiao Zhou、Marc Habermann、Weipeng Xu、Ikhsanul Habibie、Christian Theobalt和Feng Xu。2020年。利用多模态数据实现单目实时手部形状与动作捕捉。载于IEEE/CVF计算机视觉与模式识别会议（CVPR）。

Christian Zimmermann和Thomas Brox。2017年。从单张RGB图像中估计3D手部姿态的学习方法。载于IEEE国际计算机视觉会议论文集。第4903–4911页。

## 网络架构细节

表5展示了输入快照、输出快照、中间状态快照以及各模块所用的层。编码器采用了与[Han等人，2020年]相同的ResNet以确保公平比较。编码器的最后一层是用于降维的$1 \times 1$卷积层。多视角融合使用了多个$1 \times 1$

---

<div style="text-align: center;">Table 5. Architecture table</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Module</td><td style='text-align: center; word-wrap: break-word;'>Input</td><td style='text-align: center; word-wrap: break-word;'>Output</td><td style='text-align: center; word-wrap: break-word;'>Hidden state</td><td style='text-align: center; word-wrap: break-word;'>Layers</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Encoder</td><td style='text-align: center; word-wrap: break-word;'>$1 \times 96 \times 96$</td><td style='text-align: center; word-wrap: break-word;'>$72 \times 6 \times 6$</td><td style='text-align: center; word-wrap: break-word;'>NA</td><td style='text-align: center; word-wrap: break-word;'>resnet + Conv11</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Multi-view fusion</td><td style='text-align: center; word-wrap: break-word;'>$144 \times 6 \times 6$</td><td style='text-align: center; word-wrap: break-word;'>$72 \times 6 \times 6$</td><td style='text-align: center; word-wrap: break-word;'>NA</td><td style='text-align: center; word-wrap: break-word;'>(Conv11 + ReLU) $\times 2$ + Conv11</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Temporal module</td><td style='text-align: center; word-wrap: break-word;'>$72 \times 6 \times 6$</td><td style='text-align: center; word-wrap: break-word;'>$72 \times 6 \times 6$</td><td style='text-align: center; word-wrap: break-word;'>$18 \times 6 \times 6$</td><td style='text-align: center; word-wrap: break-word;'>(Conv11 + ReLU) $\times 2$ + Conv11</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Skeleton encoder</td><td style='text-align: center; word-wrap: break-word;'>120</td><td style='text-align: center; word-wrap: break-word;'>$4 \times 6 \times 6$</td><td style='text-align: center; word-wrap: break-word;'>NA</td><td style='text-align: center; word-wrap: break-word;'>linear + reshape</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regressor-K</td><td style='text-align: center; word-wrap: break-word;'>$76 \times 6 \times 6$</td><td style='text-align: center; word-wrap: break-word;'>41</td><td style='text-align: center; word-wrap: break-word;'>NA</td><td style='text-align: center; word-wrap: break-word;'>residual blocks $\times 2$ + Pool</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regressor-U</td><td style='text-align: center; word-wrap: break-word;'>$72 \times 6 \times 6$</td><td style='text-align: center; word-wrap: break-word;'>42</td><td style='text-align: center; word-wrap: break-word;'>NA</td><td style='text-align: center; word-wrap: break-word;'>residual blocks $\times 2$ + Pool</td></tr></table>

卷积层和ReLU层。每个$1 \times 1$卷积层均用于特征融合与降维。多视角融合模块的输出形状与编码器的输出形状一致。时序模块是一种循环神经网络，其隐藏状态以$1 \times 1$卷积层和ReLU作为基本构件。Regressor-K和Regressor-U均由残差块构成。Regressor-K的输出包含20维关节角度和21维根节点坐标；Regressor-U除了输出关节角度和根节点坐标外，还会输出1维手部缩放参数。

对于根部变换预测，我们预先定义了7个点来表示手部局部空间中的变换：$v_H = \{[0,0,0]^T$、$[1,0,0]^T$、$[0,1,0]^T$、$[0,0,1]^T$、$[1,1,0]^T$、$[1,0,1]^T$、$[0,1,1]^T\}$。回归器的任务就是预测这些点在参考相机空间中的位置，记为$\hat{v}$。通过求解以下方程，即可利用奇异值分解[Sorkine-Hornung和Rabinovich，2016年]恢复根部变换：

 $$ \hat{T}_{H}=\min_{\hat{T}_{H}}\sum_{i}||\hat{T}_{H}*v_{H,i}-\hat{v}_{i}||_{2}^{2} $$
