
# FreiHAND：基于单张RGB图像的无标记手部姿态与形状捕捉数据集

Christian Zimmermann $^{1}$、Duygu Ceylan $^{2}$、Jimei Yang $^{2}$、Bryan Russell $^{2}$、Max Argus $^{1}$ 以及 Thomas Brox $^{1}$

$^{1}$弗莱堡大学

$^{2}$Adobe研究院

项目页面：<https://lmb.informatik.uni-freiburg.de/projects/freihand/>

## 摘要

从单张RGB图像中估计3D手部姿态是一个高度模糊的问题，这类问题依赖于无偏差的训练数据集。在本文中，我们分析了使用现有数据集训练时的跨数据集泛化能力。我们发现，相关方法在训练所用的数据集上表现良好，但无法泛化到其他数据集或真实场景。因此，我们推出了首个大规模多视角手部数据集，该数据集同时包含3D手部姿态和形状标注。为了标注这个真实世界数据集，我们提出了一种迭代式的半自动化“人在回路”方法，该方法包含手部拟合优化步骤，用于推断每个样本的3D姿态和形状。实验表明，在我们数据集上训练的方法在其他数据集上测试时也能保持优异的性能。此外，利用该数据集我们还能训练出一个能从单张RGB图像预测完整关节化手部形状的网络。该数据集的评估集可作为关节化手部形状估计的基准。

### 1. 引言

从单张RGB图像中估计3D手部姿态和形状在手势识别、机器人技术和增强现实领域有广泛应用。各类深度学习方法都尝试解决这一问题，但它们的结果质量取决于训练数据的可用性。这类数据要么通过渲染合成数据集来获取[^5] [^7] [^23] [^24] [^38]，要么通过在受控环境下采集真实数据集得到，这类数据集通常变化性较低[^8] [^27] [^32]。这两种方法都存在局限性，我们在相关工作部分对此进行了讨论。

合成数据集采用带有纹理信息的可变形手部模型，并在不同的姿态配置下渲染该模型。与所有渲染生成的数据集一样，很难模拟真实图像的广泛特征，比如不同的光照条件、相机镜头畸变、运动模糊、景深和去马赛克效应。更重要的是，手部渲染需要来自可行且真实的手部姿态真实分布的样本。与人类姿态相比，这类分布数据并没有达到同等程度的可获得性。因此，合成数据集要么姿态种类有限，要么包含大量不真实的姿态。

![Image](images/33623405162a6824b95addc179dd1287531fa53507397df9f22a6c9e1064d22d.jpg)

<div style="text-align: center;">Figure 1: We create a hand dataset via a novel iterative procedure that utilizes multiple views and sparse annotation followed by verification. This results in a large scale real world data set with pose and shape labels, which can be used to train single-view networks that have superior cross-dataset generalization performance on pose and shape estimation.</div>

采集真实人类手部数据集需要在后期处理阶段进行标注。在单张图像中，手动标注十分困难，而且由于遮挡和歧义问题，也无法轻易通过众包方式完成。此外，收集和标注大规模数据集是一项耗时耗力的工程。

采集真实人手的数据集需要在后期处理阶段进行标注。在单张图像中，由于遮挡和歧义现象的存在，手动标注十分困难，也无法轻易通过众包方式完成。此外，收集和标注大规模数据集本身就是一项艰巨的工作。

在本文中，我们分析了这些局限性对单视图手部姿态估计在跨数据集及真实应用场景中的泛化能力的影响。我们发现，各数据集在各自的评估子集上表现优异，但在其他数据集上的性能却相当差，也就是说我们看到了典型的数据集偏差现象。

为了解决数据集偏差问题，我们通过增加样本间的差异性来创建新的大规模数据集。我们收集了一个真实世界的数据集，并开发了一种能够自动化大部分标注流程的方法，同时手动确保对3D姿态和3D手部形状的标注具有极高的准确性。其中

---

![Image](images/fb1c7e217c8321248e449d807443fb27a78ffbc90e199f6915400e22d2fad789.jpg)

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

<div style="text-align: center;">Figure 2: Examples from our proposed dataset showing images (top row) and hand shape annotations (bottom row). The training set contains composited images from green screen recordings, whereas the evaluation set contains images recorded indoors and outdoors. The dataset features several subjects as well as object interactions.</div>

一个关键点是，我们记录了来自多个视角的同步图像，这一思路此前已在 [^2] [^27] 中被采用。多视角消除了诸多歧义，简化了人工标注和自动拟合过程。我们方法的第二个关键点是一种带有强大自举组件的半自动化人机交互标注流程。从稀疏的2D关键点标注（如指尖标注）和半自动生成的分割掩码出发，我们提出了一种将可变形手部模型 [^25] 拟合到多视角输入上的手部拟合方法。这种拟合能为每个视角生成3D手部姿态和形状标注。随后，我们利用这些标注训练一个多视角3D手部姿态估计网络。该网络能预测数据集中未标注样本的3D手部姿态以及置信度指标。通过验证高置信度的预测结果，并以迭代方式标注置信度最低的样本，我们仅用较少的人工标注工作量便获得了11592个标注数据。

该数据集涵盖了32名不同的受试者，包含完全关节化的手部形状、丰富的手部姿态变化，还涉及与物体的交互情况。其中被标记为训练集的部分是在绿幕前采集的，因此样本可以轻松地与各种背景图像合成。测试集则包含在不同室内外环境下拍摄的录像；相关示例图像及对应标注请参见图2。

利用该数据集进行训练，相比现有数据集，能显著提升跨数据集的泛化能力。此外，我们还能训练出基于单张RGB图像的全3D手部形状估计网络。目前，针对这一任务尚无公开可用的训练或评测数据。我们的数据集已发布在项目页面上，因此既可作为训练数据集，也可作为该领域未来研究的评测数据集。

### 2. 相关工作

由于数据集对于3D手部姿态和形状估计的成功至关重要，学界在获取此类数据方面投入了大量精力。

在手部形状估计领域，大多数方法属于基于模型的技术范畴。这些方法是在严格控制的环境下开发的，要么直接使用深度数据 [^29] [^30] [^33]，要么采用多视角立体成像方法进行重建 [^2]。与我们工作更相关的是那些将统计性人体形状模型拟合到自然场景彩色图像输入上的方法 [^4] [^21]。这类方法需要借助半自动方法来获取每幅输入图像的标注（如关键点或分割掩码），以指导拟合过程。

以往的数据采集方法通常会在手上添加标记，以便轻松估计姿态。常见的标记包括红外标记 [^11]、彩色编码手套 [^34] 或电子传感设备 [^37]。这会改变手部的外观，从而降低数据用于训练判别性模型的价值。

标注也可以手动在手部图像上进行[^24] [^28] [^35]。不过，这种标注方式仅限于手部可见的区域。因此，要么要求受试者保持不会导致严重遮挡的复杂手部姿势，要么只能标注部分手关节。

为了避免遮挡问题并大规模标注数据，Simon等人[^27]采用了多视角录制方案。他们提出了一种迭代式自举方法，用于检测每个视角下的手部关键点，并通过三角测量生成3D点假设。虽然我们的数据采集策略理念与之类似，但我们直接将多视角信息融入神经网络以预测3D关键点，且我们的数据集同时包含姿态和形状标注。

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>train\eval</td><td style='text-align: center; word-wrap: break-word;'>STB</td><td style='text-align: center; word-wrap: break-word;'>RHD</td><td style='text-align: center; word-wrap: break-word;'>GAN</td><td style='text-align: center; word-wrap: break-word;'>PAN</td><td style='text-align: center; word-wrap: break-word;'>LSMV</td><td style='text-align: center; word-wrap: break-word;'>FPA</td><td style='text-align: center; word-wrap: break-word;'>HO-3D</td><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>Average Rank</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>STB [^35]</td><td style='text-align: center; word-wrap: break-word;'>0.783</td><td style='text-align: center; word-wrap: break-word;'>0.179</td><td style='text-align: center; word-wrap: break-word;'>0.067</td><td style='text-align: center; word-wrap: break-word;'>0.141</td><td style='text-align: center; word-wrap: break-word;'>0.072</td><td style='text-align: center; word-wrap: break-word;'>0.061</td><td style='text-align: center; word-wrap: break-word;'>0.138</td><td style='text-align: center; word-wrap: break-word;'>0.138</td><td style='text-align: center; word-wrap: break-word;'>6.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>RHD [^38]</td><td style='text-align: center; word-wrap: break-word;'>0.362</td><td style='text-align: center; word-wrap: break-word;'>0.767</td><td style='text-align: center; word-wrap: break-word;'>0.184</td><td style='text-align: center; word-wrap: break-word;'>0.463</td><td style='text-align: center; word-wrap: break-word;'>0.544</td><td style='text-align: center; word-wrap: break-word;'>0.101</td><td style='text-align: center; word-wrap: break-word;'>0.450</td><td style='text-align: center; word-wrap: break-word;'>0.508</td><td style='text-align: center; word-wrap: break-word;'>2.9</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>GAN [^23]</td><td style='text-align: center; word-wrap: break-word;'>0.110</td><td style='text-align: center; word-wrap: break-word;'>0.103</td><td style='text-align: center; word-wrap: break-word;'>0.765</td><td style='text-align: center; word-wrap: break-word;'>0.092</td><td style='text-align: center; word-wrap: break-word;'>0.206</td><td style='text-align: center; word-wrap: break-word;'>0.180</td><td style='text-align: center; word-wrap: break-word;'>0.087</td><td style='text-align: center; word-wrap: break-word;'>0.183</td><td style='text-align: center; word-wrap: break-word;'>5.4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PAN [^15]</td><td style='text-align: center; word-wrap: break-word;'>0.459</td><td style='text-align: center; word-wrap: break-word;'>0.316</td><td style='text-align: center; word-wrap: break-word;'>0.136</td><td style='text-align: center; word-wrap: break-word;'>0.870</td><td style='text-align: center; word-wrap: break-word;'>0.320</td><td style='text-align: center; word-wrap: break-word;'>0.184</td><td style='text-align: center; word-wrap: break-word;'>0.351</td><td style='text-align: center; word-wrap: break-word;'>0.407</td><td style='text-align: center; word-wrap: break-word;'>3.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LSMV [^8]</td><td style='text-align: center; word-wrap: break-word;'>0.086</td><td style='text-align: center; word-wrap: break-word;'>0.209</td><td style='text-align: center; word-wrap: break-word;'>0.152</td><td style='text-align: center; word-wrap: break-word;'>0.189</td><td style='text-align: center; word-wrap: break-word;'>0.717</td><td style='text-align: center; word-wrap: break-word;'>0.129</td><td style='text-align: center; word-wrap: break-word;'>0.251</td><td style='text-align: center; word-wrap: break-word;'>0.276</td><td style='text-align: center; word-wrap: break-word;'>4.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FPA [^6]</td><td style='text-align: center; word-wrap: break-word;'>0.119</td><td style='text-align: center; word-wrap: break-word;'>0.095</td><td style='text-align: center; word-wrap: break-word;'>0.084</td><td style='text-align: center; word-wrap: break-word;'>0.120</td><td style='text-align: center; word-wrap: break-word;'>0.118</td><td style='text-align: center; word-wrap: break-word;'>0.777</td><td style='text-align: center; word-wrap: break-word;'>0.106</td><td style='text-align: center; word-wrap: break-word;'>0.163</td><td style='text-align: center; word-wrap: break-word;'>6.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HO-3D [^9]</td><td style='text-align: center; word-wrap: break-word;'>0.154</td><td style='text-align: center; word-wrap: break-word;'>0.130</td><td style='text-align: center; word-wrap: break-word;'>0.091</td><td style='text-align: center; word-wrap: break-word;'>0.111</td><td style='text-align: center; word-wrap: break-word;'>0.149</td><td style='text-align: center; word-wrap: break-word;'>0.073</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>0.169</td><td style='text-align: center; word-wrap: break-word;'>6.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>0.473</td><td style='text-align: center; word-wrap: break-word;'>0.518</td><td style='text-align: center; word-wrap: break-word;'>0.217</td><td style='text-align: center; word-wrap: break-word;'>0.562</td><td style='text-align: center; word-wrap: break-word;'>0.537</td><td style='text-align: center; word-wrap: break-word;'>0.128</td><td style='text-align: center; word-wrap: break-word;'>0.557</td><td style='text-align: center; word-wrap: break-word;'>0.678</td><td style='text-align: center; word-wrap: break-word;'>2.2</td></tr></table>

<div style="text-align: center;">Table 1: This table shows cross-dataset generalization measured as area under the curve (AUC) of percentage of correct keypoints following [^38]. Each row represents the training set used and each column the evaluation set. The last column shows the average rank each training set achieved across the different evaluation sets. The top-three ranking training sets for each evaluation set are marked as follows: first, second or third. Note that the evaluation set of HO-3D was not available at time of submission, therefore one table entry is missing and the other entries within the respective column report numbers calculated on the training set.</div>

由于采集真实数据需要昂贵的标注设备和流程，近年来更多方法选择使用合成数据集[^24] [^38]。

### 3. 现有数据集分析

我们通过对最先进的单RGB图像3D手部姿态估计数据集进行测试，全面分析了它们对未见数据的泛化能力。我们确定了七个最先进的数据集，这些数据集提供RGB图像及配套的3D关键点信息，具体如表2所示。

#### 3.1. 所考虑的数据集

立体跟踪基准测试（STB）[^35]数据集是最早且最常用的用于评估单RGB图像3D关键点估计性能的数据集之一。其标注为手动完成，因此仅适用于手部大部分区域可见的姿势。该数据集展示了不同背景场景下、无物体干扰时采用正面姿势的独特受试者样本。

Panoptic（PAN）数据集[^15]是通过由10台RGB-D传感器、480台VGA摄像机和31台高清摄像机组成的密集多视角采集系统创建的。该数据集展示了人类执行不同任务及相互互动的场景。共有83个公开序列，其中12个包含手部标注。我们选择171204_pose3作为评估集，其余11个属于运动、争执和工具类别的序列则用于训练。

Garcia等人[^6]提出了第一人称手部动作基准测试（FPA），这是一个从自我中心视角录制的大型数据集，标注时使用附着在受试者指尖的磁传感器。导线沿手指布置，会显著改变手部的外观。利用6自由度传感器测量值，通过逆向运动学优化给定的手部模型，从而获得完整的手部姿态标注。

Gomez等人[^22]使用商用Leap Motion设备[^8]进行关键点标注，提出了大规模多视角3D手部姿态数据集（LSMV）。该设备给出的标注会被转换到4台经过校准且时间大致同步的摄像机中。由于传感器设备的局限性，该数据集未包含任何手部与物体的交互场景。

Zimmermann等人[^38]提出的渲染手部姿态数据集（RHD）是一个合成数据集，由20个角色在随机背景图像前执行31种不同动作时渲染而成，不包含手部与物体的交互场景。

基于SynthHands [^24] 数据集，Mueller等人[^23] 提出了GANerated（GAN）数据集。SynthHands是通过将测量得到的人手关节运动映射到混合现实环境中的网格化模型来创建的。这种方式能够在一定程度上实现手与物体的交互，因为受试者可以实时看到渲染场景并相应地调整手部姿势。在后续的GANerated手部数据集中，采用了CycleGAN方法来弥合合成数据与真实数据之间的域差异。

最近，Hampali等人[^9] 提出了一种用于创建数据集的算法，该算法采用了复杂的优化方案，综合考虑了时间一致性和物理一致性，以及轮廓和深度信息。由此生成的数据集被称为HO-3D。

#### 3.2. 评估设置

我们训练了一个最先进的网络架构[^14]，它以RGB图像为输入，预测各数据集训练集上的3D关键点，并在所有其他数据集的评估集上报告其性能。对于每个数据集，我们要么使用作者提供的标准训练/评估划分，要么自行创建80%/20%的划分。

---

<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;'>num. frames</td><td style='text-align: center; word-wrap: break-word;'>num. subjects</td><td style='text-align: center; word-wrap: break-word;'>real</td><td style='text-align: center; word-wrap: break-word;'>object</td><td style='text-align: center; word-wrap: break-word;'>shape</td><td style='text-align: center; word-wrap: break-word;'>labels</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>STB [^35]</td><td style='text-align: center; word-wrap: break-word;'>15 k / 3 k</td><td style='text-align: center; word-wrap: break-word;'>1</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;'>manual</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PAN [^38]</td><td style='text-align: center; word-wrap: break-word;'>641 k / 34 k</td><td style='text-align: center; word-wrap: break-word;'>&gt; 10</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;'>MVBS [^27]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FPA [^6]</td><td style='text-align: center; word-wrap: break-word;'>52 k / 53 k</td><td style='text-align: center; word-wrap: break-word;'>6</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;'>marker</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LSMV [^8]</td><td style='text-align: center; word-wrap: break-word;'>117 k / 31 k</td><td style='text-align: center; word-wrap: break-word;'>21</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;'>leapmotion</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>RHD [^38]</td><td style='text-align: center; word-wrap: break-word;'>41 k / 2.7 k</td><td style='text-align: center; word-wrap: break-word;'>20</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;'>synthetic</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>GAN [^23]</td><td style='text-align: center; word-wrap: break-word;'>266 k / 66 k</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;'>synthetic</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HO-3D [^9]</td><td style='text-align: center; word-wrap: break-word;'>11 k / -</td><td style='text-align: center; word-wrap: break-word;'>3</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;'>automatic [^9]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>33 k / 4 k</td><td style='text-align: center; word-wrap: break-word;'>32</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;'>hybrid</td></tr></table>

<div style="text-align: center;">Table 2: State-of-the-art datasets for the task of 3D keypoint estimation from a single color image used in our analysis. We report dataset size in number of frames, number of subjects, if it is real or rendered data, regarding hand object interaction, if shape annotation is provided and which method was used for label generation.</div>

其他详情请参阅补充材料。

单视图网络以RGB图像I为输入，推断出3D手部姿态$\mathbf{P} = \{\mathbf{p}_k\}$，其中每个$\mathbf{p}_k \in \mathbb{R}^3$代表位于人手运动骨骼上的预定义地标或关键点。由于存在尺度歧义，在相机坐标系下估计真实世界的3D关键点坐标是一个不适定问题。因此，我们采用[^14]提出的问题表述方式，以根部相对且尺度归一化的形式来估计坐标：

 $$ \mathbf{p}_{k}=s\cdot\hat{\mathbf{p}}_{k}=s\cdot\begin{pmatrix}\hat{x}_{k}\\ \hat{y}_{k}\\ \hat{z}_{k}\end{pmatrix}=\begin{pmatrix}\hat{x}_{k}\\ \hat{y}_{k}\\ \hat{z}_{k}^{\mathrm{r e l}}+\hat{z}^{\mathrm{r o o t}}\end{pmatrix}, $$

其中，归一化因子s取为手部骨骼中某根参考骨的长度，$\hat{z}^{\mathrm{root}}$表示根部深度，$\hat{z}_{k}^{\mathrm{rel}}$表示关键点k的相对深度。我们将得到的2.5D表示定义为：

 $$ \hat{\mathbf{p}}_{\mathrm{r e l}_{k}}=\left(\hat{x}_{k},\hat{y}_{k},\hat{z}_{k}^{\mathrm{r e l}}\right)^{\mathrm{T}}. $$

在给定尺度约束以及校准相机中点的2D投影的情况下，可以从$\hat{P}_{\text{rel}}$恢复出3D手部姿态P。有关此过程的详细信息，请参阅[^14]。

我们训练单视图网络时采用了与Iqbal等人[^14]相同的超参数选择。不过，我们仅使用单阶段训练，并减少了网络层中的通道数，这样在训练时间上显著加快，而精度方面的损失却微乎其微。我们采用了常规的数据增强方式，包括颜色、尺度和平移增强，以及绕光轴的旋转增强。这些增强操作应用于各个数据集。

#### 3.3. 结果

预期该网络在其训练所用的数据集上表现最佳，但当它在具有足够变化的数据集（如手部姿态、视角、形状、物体存在情况等）上训练时，也应能对未见数据给出合理的预测。

表1显示，对于每一个现有的训练数据集，该网络都能泛化到相应的评估集上并取得最佳结果。另一方面，当该网络在其他数据集上测试时，性能会大幅下降。

GAN和FPA数据集似乎都特别难以实现泛化，这表明它们的数据分布与其他数据集存在显著差异。对于FPA而言，这种差异源于标注时所用的标记导致的外观变化。这种外观上的改变为在该数据集上训练的网络提供了强大的任务解决线索，而这些线索在评估其他数据集时并不存在。因此，在FPA上训练的网络在其他数据集上的表现较差。通过对GAN数据集的视觉观察，我们推测手部纹理缺失以及颜色分布不同等细微变化是导致泛化问题的主要原因。我们还发现，虽然在STB上训练的网络在其余数据集上表现不佳，但在其他数据集上训练的网络在STB的评估集上却表现出不错的性能。由此我们得出结论：在STB上的良好性能并不能作为该方法对未见数据泛化能力的可靠衡量标准。

根据各网络的表现，我们计算了每个数据集的累积排名分数，并在表1的最后一列中予以报告。计算累积排名时，我们会根据各训练集的性能为表的每一列分别赋予排名。随后将所有评估集（即表中的各行）的排名取平均值，从而得到累积排名。基于这些观察结果，我们认定有必要推出一种新的基准测试数据集，以具备更优异的泛化能力。

为了实现这一目标，我们推出了FreiHAND数据集。该数据集包含真实图像，能够提供充足的视角和手部姿态变化，同时收录了有物体交互和无物体交互的样本。因此，在该数据集上训练的单视图网络在跨数据集泛化的排名方面取得了显著提升。接下来我们将介绍该数据集的获取与标注过程。

### 4. FreiHAND数据集

该数据集是利用图3所示的多视角装置采集的。该装置便于携带，既可在室内也可在室外采集数据。我们采集了来自32名不同性别和种族背景的受试者的手部姿态数据。要求每位受试者执行有物体参与和无物体参与的动作。为了采集手-物交互数据，我们给受试者提供了一些适合单手操作的日常家用物品，并要求他们

---

![Image](images/4e5ca18c04d887ff665044de7d706178de1e4a3f22dda1f5ab366a396648854f.jpg)

<div style="text-align: center;">Figure 3: Recording setup with 8 calibrated and temporally synchronized RGB cameras located at the corners of a cube. A green screen background can be mounted into the setup, enabling easier background subtraction.</div>

展示不同的抓取技巧。更多相关信息请参阅补充材料。

为了保留手部的真实外观，采集过程中并未使用任何标记。我们转而采用能够生成3D标签的后处理方法来完成标注。显然，手动获取3D注释是不可行的。另一种策略是为每个输入视图标注2D关键点，再利用多视角相机装置将这些注释提升至3D，这一做法与Simon等人[^27]的研究类似。

初步实验表明，当前的2D手部姿态估计方法表现欠佳，尤其是在手部姿态复杂、存在自身遮挡或物体遮挡的情况下。要为大规模数据集标注所有视图下的2D关键点，成本极高。使用专业工具标注多个视图下的全部21个关键点，每组多视角数据就需要花费约15分钟。此外，仅有关键点标注还不足以获取形状信息。

我们通过一种新颖的自举流程（见图4）来解决这一问题，该流程包含一系列利用稀疏2D标注的自动化方法。由于我们的数据是在绿幕背景下采集的，因此前景可以自动提取出来。仅需对分割掩码与手部模型的腕部进行对齐优化即可。此外，我们手动标注了由六个2D关键点（指尖和腕部）组成的稀疏集合。这些标注获取成本相对较低，且质量较高。例如，手动修正一个分割掩码平均只需12秒，而标注一个关键点大约需要2秒。利用这些信息，我们采用第4.1节所述的新颖拟合流程，将可变形手部模型拟合到多视角图像上。这样就能得到3D手部姿态和形状标签的候选结果。

![Image](images/6dfe8bdeaa0bbb1e23009660449eca90d02bf46183b55c36be8865f89e6e458f.jpg)

<div style="text-align: center;">Figure 4: The dataset labeling workflow starts from manual annotation followed by the shape fitting process described in 4.1, which yields candidate shape fits for our data samples. Sample fits are manually verified allowing them to be accepted, rejected or queued for further annotation. Alternatively a heuristic can accept samples without human interaction. The initial dataset allows for training the networks involved, which for subsequent iterations of the procedure, can predict information needed for fitting. The labeling process can be bootstrapped, allowing more accepted samples to accumulate in the dataset.</div>

随后对这些候选结果进行人工验证，之后再将其加入标签集合中。

有了初始标签集后，我们便训练所提出的网络MVNet。该网络以多视角图像为输入，预测3D关键点位置及置信度评分，具体描述见第4.2节。关键点预测结果可替代手动标注的关键点，用作拟合过程的输入。这一自举流程会不断迭代。置信度最低的样本会被人工标注（第4.3节）。通过这种人机协作的流程，我们能够快速获得大规模标注数据集。接下来我们将详细介绍这一流程的各个阶段。

#### 4.1. 基于稀疏标注的手部模型拟合

我们的目标是将可变形手部形状模型拟合到同时采集的多视角观测数据中。我们基于Romero等人[^25]提出的统计MANO模型进行构建，该模型由$\boldsymbol{\theta} \in \mathbb{R}^{61}$参数化。模型参数$\boldsymbol{\theta} = (\boldsymbol{\alpha}, \boldsymbol{\beta}, \boldsymbol{\gamma})^{\mathrm{T}}$包括形状$\boldsymbol{\alpha} \in \mathbb{R}^{10}$、关节运动$\boldsymbol{\beta} \in \mathbb{R}^{45}$以及全局平移和方向$\boldsymbol{\gamma} \in \mathbb{R}^{6}$。利用关键点和分割信息，我们优化多项损失函数，

 $$ \mathcal{L}=\mathcal{L}_{\mathrm{k p}}^{\mathrm{2D}}+\mathcal{L}_{\mathrm{k p}}^{\mathrm{3D}}+\mathcal{L}_{\mathrm{s e g}}+\mathcal{L}_{\mathrm{s h a p e}}+\mathcal{L}_{\mathrm{p o s e}}, $$

从而估计模型参数$\theta$，其中波浪号表示正在优化的变量。接下来我们将逐一介绍式(3)中的各项。

2D关键点损失$\mathcal{L}_{\mathrm{kp}}^{2\mathrm{D}}$：该损失是模型3D关键点投影得到的2D坐标$\Pi^{i}$

---

 $\tilde{p}_k \in \mathbb{R}^3$ 到 2D 标注 $q_k^i$，跨视图 i 和可见关键点 $k \in V_i$：

 $$ \mathcal{L}_{\mathbf{k p}}^{\mathrm{2D}}=w_{\mathbf{k p}}^{\mathrm{2D}}\cdot\sum_{i}\sum_{k\in V_{i}}\cdot\left\|\boldsymbol{q}_{k}^{i}-\Pi^{i}(\tilde{\boldsymbol{p}}_{k})\right\|_{2}. $$

3D关键点损失$\mathcal{L}_{\mathrm{kp}}^{\mathrm{3D}}$：该损失的定义方式与式(4)类似，但作用于3D关键点。此处，$p_k$表示3D关键点标注，前提是存在此类标注（例如由MVNet预测得到），

 $$ \mathcal{L}_{{\bf k p}}^{{3D}}=w_{{\bf k p}}^{{3D}}\cdot\sum_{i}\sum_{k\in V_{i}}\left\|{\boldsymbol p}_{k}-\tilde{{\boldsymbol p}}_{k}\right\|_{2}. $$

分割损失$\mathcal{L}_{\text{seg}}$：为了优化形状，我们计算模型生成的掩码$l_2$与视图i中的手动标注$\tilde{M}^i$之间的$M^i$损失之和：

 $$ \mathcal{L}_{\mathrm{s e g}}=w_{\mathrm{s e g}}\cdot\sum_{i}(\left\|M^{i}-\tilde{M}^{i}\right\|_{2}+\left\|\mathrm{E D T}(M^{i})\cdot\tilde{M}^{i}\right\|_{2}). $$

此外，我们还应用了基于欧几里得距离变换（EDT）的轮廓项。具体来说，我们对$M^{i}$应用对称EDT，该值表示每个位置到最近边界像素的距离。

形状先验$\mathcal{L}_{\text{shape}}$：为了对形状进行正则化，我们采用

 $$ \mathcal{L}_{\mathrm{s h a p e}}=w_{\mathrm{s h a p e}}\cdot\left\|\tilde{\beta}\right\|_{2}, $$

该方法强制使预测出的形状贴近MANO的平均形状。

姿态先验 $\mathcal{L}_{\text{pose}}$：姿态先验包含两项。第一项是对用于通过PCA基向量 $a_j$ 来表示姿态 $\tilde{\alpha}$ 的PCA系数 $c_j$ 进行正则化（即 $\tilde{\alpha} = \sum_j \tilde{a}_j \cdot c_j$）。这种正则化迫使预测出的姿态在MANO的PCA姿态空间中靠近可能的姿态。第二项则对当前姿态 $\tilde{\alpha}$ 与从 [^6] 获取的手部姿态数据集中最近的N个邻居之间的距离进行正则化：

 $$ \mathcal{L}_{\mathrm{p o s e}}=w_{\mathrm{p o s e}}\cdot\sum_{j}\left\|\tilde{a}_{j}\right\|_{2}+w_{\mathrm{n n}}\cdot\sum_{n\in N}\left\|\boldsymbol{\alpha}^{n}-\tilde{\boldsymbol{\alpha}}\right\|_{2}. $$

我们在Tensorflow [^1] 中实现拟合过程，并利用MANO来建立从 $\tilde{\theta}$ 到3D模型关键点 $\tilde{p}_k$ 以及3D模型顶点位置 $\tilde{V} \in \mathbb{R}^{778 \times 3}$ 的可微映射。我们采用Neural Renderer [^18] 根据手部模型顶点 $\tilde{M}^i$ 生成分割掩码 $\tilde{V}$，并使用ADAM优化器 [^19] 来最小化误差：

 $$ \boldsymbol{\theta}=\underset{\tilde{\boldsymbol{\theta}}}{\arg\min}(\mathcal{L}(\tilde{\boldsymbol{\theta}})) $$

![Image](images/0ed4931baf643cd5b14b245c24107ba0ca66b1747951641b942779e825495d6b.jpg)

<div style="text-align: center;">Figure 5: MVNet predicts a single hand pose  P using images of all 8 views (for simplicity only 2 are shown). Each image is processed separately by a 2D CNN that is shared across views. This yields 2D feature maps  $f_i$. These are individually reprojected into a common coordinate frame using the known camera calibration to obtain  $\boldsymbol{F}_i = \Pi^{-1}(\boldsymbol{f}_i)$. The  $\boldsymbol{F}_i$ are aggregated over all views and finally a 3D CNN localizes the 3D keypoints within a voxel representation.</div>

#### 4.2. MVNet：多视角3D关键点估计

为了实现拟合过程的自动化，我们希望自动估计3D关键点。我们提出了如图5所示的MVNet，它能够聚合来自全部八张相机图像 $I_i$ 的信息，并预测单一的手部姿态 $P = \{p_k\}$。我们采用了一种与Kar等人 [^17] 类似的可微反投影操作，将各视角的特征聚合到一个共同的3D体积中。

为此，我们将关键点估计问题表述为体素级回归任务：

 $$ \mathcal{L}_{\mathrm{M V N e t}}=\frac{1}{K}\sum_{k}\left\|S_{k}-\tilde{S}_{k}\right\|_{2}, $$

其中 $\widetilde{S}_k \in \mathbb{R}^{N \times N \times N}$ 表示网络对关键点k的预测结果，$S_k$ 是我们根据经过验证的MANO拟合结果计算出的真实值。$S_k$ 被定义为以真实关键点位置为中心的正态分布。预测点 $\widetilde{p}_k$ 则从 $\widetilde{S}_k$ 中的最大值位置提取得出。此外，我们将预测的置信度c定义为空间维度上的最大值以及关键点维度上的平均值：

 $$ c=\frac{1}{K}\sum_{k}(\max_{i,j,l}\tilde{\boldsymbol{S}}_{k}(i,j,l)). $$

更多相关信息可在补充材料中找到。

#### 4.3. 迭代式优化

为了大规模生成标注数据，我们提出了一种迭代式的、有人工参与的工作流程，如图4所示。在初始阶段，我们使用一组人工标注数据来生成初始数据集 $\mathcal{D}_0$。在第i次迭代中，我们利用数据集 $\mathcal{D}_i$、一组图像及其对应的MANO拟合结果来训练MVNet和HandSegNet [^38]。MVNet会为剩余的未标注数据生成3D关键点预测结果及置信度分数，HandSegNet [^39] 也会同步处理这些数据。

---

<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;'>mesh error $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>F@5mm $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>F@15mm $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mean shape</td><td style='text-align: center; word-wrap: break-word;'>1.63</td><td style='text-align: center; word-wrap: break-word;'>0.340</td><td style='text-align: center; word-wrap: break-word;'>0.839</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MANO Fit</td><td style='text-align: center; word-wrap: break-word;'>1.44</td><td style='text-align: center; word-wrap: break-word;'>0.416</td><td style='text-align: center; word-wrap: break-word;'>0.880</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MANO CNN</td><td style='text-align: center; word-wrap: break-word;'>1.07</td><td style='text-align: center; word-wrap: break-word;'>0.529</td><td style='text-align: center; word-wrap: break-word;'>0.935</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Boukhayma et al. [^5]</td><td style='text-align: center; word-wrap: break-word;'>1.30</td><td style='text-align: center; word-wrap: break-word;'>0.435</td><td style='text-align: center; word-wrap: break-word;'>0.898</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hasson et al. [^10]</td><td style='text-align: center; word-wrap: break-word;'>1.32</td><td style='text-align: center; word-wrap: break-word;'>0.436</td><td style='text-align: center; word-wrap: break-word;'>0.908</td></tr></table>

<div style="text-align: center;">Table 3: This table shows shape prediction performance on the evaluation split of FreiHAND after alignment. We report two measures: The mean mesh error and the F-score at two different distance thresholds.</div>

SegNet负责预测手部分割掩码。利用这些预测结果，我们执行第4.1节所述的手部形状拟合过程。随后，我们会进行验证，以决定接受、拒绝或部分标注这些样本中的数据。

启发式验证。我们定义了由三个标准构成的启发式规则，用于识别具有良好MANO拟合效果的数据样本。首先，要求MVNet的平均置信度得分高于0.8，且所有单个关键点的置信度至少为0.6，这一要求确保了3D关键点预测具备最低程度的确定性。其次，我们为预测的分割掩码与基于MANO拟合结果生成的掩码之间的交并比（IoU）设定了最低阈值；所有视图的该阈值平均值需达到0.7，同时会排除那些超过2个视图的IoU低于0.5的样本。第三，要求预测的3D关键点与拟合后的MANO关键点之间的平均欧几里得距离不超过0.5厘米，且任何单个关键点的欧几里得距离不得超过1厘米。只有满足全部三个标准的样本才会被纳入集合$\mathcal{D}_i^h$。

人工验证与标注。其余未被接受的样本会根据MVNet的置信度得分进行排序，我们选取排名在$50^{th}$百分位数及以上的样本。为确保样本多样性，我们会设定所选样本之间的最小时间间隔；同时也会挑选那些当前姿态估计值与平坦手部形态的差异较大的样本，这种差异是通过姿态参数中的欧几里得距离来衡量的。我们要求标注员评估这些样本的MANO拟合质量；任何被确认为拟合良好的样本都会被加入集合$\mathcal{D}_{i}^{m}$。对于剩余样本，标注员可以选择丢弃该样本，或提供额外的标注信息（例如标注错误的指尖位置）以改进拟合效果。这些额外标注的样本会被加入集合$\mathcal{D}_{i}^{l}$。

将来自各个数据流的样本合并后，便得到了规模更大的标注数据集

 $$ \mathcal{D}_{i+1}=\mathcal{D}_{i}+\mathcal{D}_{i}^{h}+\mathcal{D}_{i}^{m}+\mathcal{D}_{i}^{l} $$

这使我们能够重新训练HandSegNet和MVNet。我们重复这一过程4次，最终得到了我们的数据集。

### 5. 实验

#### 5.1. FreiHAND的数据集跨域泛化能力

为了评估我们数据集的跨域泛化能力，并与表1中的结果进行对比，我们制定了如下的训练与评估划分方式：数据集中包含有绿幕拍摄和无绿幕拍摄的样本，我们选择所有绿幕拍摄的样本用于训练，其余样本用于评估。训练集和评估集分别包含24名和11名受试者的数据，两个集合之间仅有3名受试者重叠。评估集的数据采集于2个室内地点和1个室外地点。我们利用绿幕实现简便高效的背景去除，并通过新背景创建合成图像，以此扩充训练集；为避免手部边界处出现绿色渗色现象，我们分别对数据应用了Tsai等人提出的图像协调方法[^31]以及Zhang等人的深度图像上色方法[^36]。[^36]的自动版本和采样版本均被采用。借助原始样本，训练集规模从3.3万个唯一样本增至13.2万个增强样本。生成图像的示例如图2所示。

按照上述训练与评估划分方式，我们在自己的数据上训练单视角3D姿态估计网络，并在不同数据集上对其进行测试。如表1所示，该网络在所有数据集上均展现出极高的准确性，且在跨域泛化方面排名第一。

#### 5.2. 3D形状估计

由于我们的数据集同时包含姿态和形状标注，因此可用于以全监督方式训练形状估计模型。此外，它也是首个可用于评估形状估计方法的真实数据集。借鉴Kanazawa等人[^16]的研究思路，我们训练了一个网络，该网络以单张RGB图像为输入，利用以下损失函数预测MANO参数$\tilde{\theta}$：

 $$ \begin{align*}\mathcal{L}&=w_{\mathrm{3D}}\left\|\boldsymbol{p}_{k}-\tilde{\boldsymbol{p}}_{k}\right\|_{2}+w_{\mathrm{2D}}\left\|\Pi(\boldsymbol{p}_{k})-\Pi(\tilde{\boldsymbol{p}})\right\|_{2}+\\&\quad w_{\mathrm{p}}\left\|\boldsymbol{\theta}-\tilde{\boldsymbol{\theta}}\right\|_{2}.\end{align*} $$

我们采用了针对2D和3D关键点以及模型参数的$l_{2}$损失函数，并选择相应的权重为$w_{3D}=1000$、$w_{2D}=10$和$w_{p}=1$。

我们还提供了两种基线方法：一种是不考虑关节变化、预测恒定平均形状的模型；另一种是将MANO模型拟合到由我们的单视图网络预测的3D关键点上的模型。

为了进行比较，我们使用了两个评价指标。网格误差衡量的是真实网格与预测手形中对应网格顶点之间的平均欧几里得距离。我们还评估了F分数[^20]，在给定距离阈值的情况下，它定义为……

---

两组点之间的召回率与精确率的调和平均值[^20]。在评估中，我们使用了$F@5mm$和$F@15mm$这两个距离指标，分别报告细粒度和粗粒度下的精度。为了将形状评估与全局旋转和平移分离，我们首先通过Procrustes对齐算法对预测网格进行对齐。结果汇总于表3中。直接用CNN估计MANO参数在所有指标上的表现都优于基线方法。评估结果显示，在高精度范围内，F分数的差异更为明显。我们网络的预测结果可视化展示在图6中。

![Image](images/df1340e8b10896759e242520215761e475853816289f13b89e67d45e4f55e12e.jpg)

![Image](images/ecc296a388e903a2604f503296193c28358ca2c9e89714f2716b9a7652859bff.jpg)

<div style="text-align: center;">Figure 6: Given a single image (top rows), qualitative results of predicted hand shapes (bottom rows) are shown. Please note that we don't apply any alignment of the predictions with respect to the ground truth.</div>

#### 5.3. 迭代标注的评估

在迭代标注过程的第一步中，我们设定$w_{kp}^{2D} = 100$和$w_{kp}^{2D} = 0$（由于没有3D关键点标注），以及$w_{seg} = 10.0$、$w_{shape} = 100.0$、$w_{nn} = 10.0$和$w_{pose} = 0.1$。（后续迭代中我们设定$w_{kp}^{2D} = 50$和$w_{kp}^{3D} = 1000$。）根据拟合结果，我们训练MVNet并在剩余数据集上对其进行测试。经过首次验证步骤后，有302个样本被采纳。验证一个样本大约需要5秒时间，我们发现大多数情况下全局姿态都能被准确捕捉，但为了获得高质量的真实数据，即使存在微小误差的拟合结果也会被舍弃。

<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;'>$\mathcal{D}_{0}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathcal{D}_{1}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathcal{D}_{2}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathcal{D}_{3}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathcal{D}_{4}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>#samples</td><td style='text-align: center; word-wrap: break-word;'>302</td><td style='text-align: center; word-wrap: break-word;'>993</td><td style='text-align: center; word-wrap: break-word;'>1449</td><td style='text-align: center; word-wrap: break-word;'>2609</td><td style='text-align: center; word-wrap: break-word;'>4565</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>RHD</td><td style='text-align: center; word-wrap: break-word;'>0.244</td><td style='text-align: center; word-wrap: break-word;'>0.453</td><td style='text-align: center; word-wrap: break-word;'>0.493</td><td style='text-align: center; word-wrap: break-word;'>0.511</td><td style='text-align: center; word-wrap: break-word;'>0.518</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PAN</td><td style='text-align: center; word-wrap: break-word;'>0.347</td><td style='text-align: center; word-wrap: break-word;'>0.521</td><td style='text-align: center; word-wrap: break-word;'>0.521</td><td style='text-align: center; word-wrap: break-word;'>0.539</td><td style='text-align: center; word-wrap: break-word;'>0.562</td></tr></table>

<div style="text-align: center;">Table 4: Bootstrapping convergence is evaluated by reporting cross-dataset generalization to RHD and PAN. The measure of performance is AUC, which shows monotonous improvement throughout.</div>

我们利用这些额外被采纳的样本重新训练MVNet和HandSegNet，然后重复这一过程。第一轮迭代结束后，数据集规模增加到了993个样本，其中140个是通过启发式规则自动采纳的，其余来自对1000个样本的验证。第二轮迭代后，数据集总规模增至1449个样本，其中289个通过启发式规则自动采纳，其余来自对500个样本的验证。后续的迭代中，数据集总规模分别增至2609个和4565个样本，其中启发式规则采纳的样本数分别为347个和210个。这就是我们用于跨数据集泛化实验（见表1）和形状估计实验（见表3）的数据集。

我们通过在数据集的不同迭代版本上训练单视图3D关键点估计网络，来评估迭代标注过程的有效性。为此，我们选择了在表1中平均排名较好的两个评估数据集。表4报告了相关结果，显示出随着数据集规模的扩大，两次迭代的性能均稳步提升。关于迭代过程的更多实验细节详见补充材料。

### 6. 结论

我们提出了FreiHAND数据集，这是迄今为止最大的包含真实图像手部姿态与形状标签的RGB数据集。我们通过一种新颖的迭代流程来采集该数据集。该数据集能够帮助我们提升基于单张图像进行3D手部姿态估计任务的泛化性能，同时也有助于监督学习单目手部形状估计。

为了推动手部形状估计领域的研究，我们计划进一步扩展该数据集，为学术界提供一个具有挑战性的基准测试集，从而向在真实自然场景下进行评估迈出重要一步。

## 致谢

我们衷心感谢巴登-符腾堡州基金会作为RatTrack项目的一部分所提供的资助。Christian在Adobe Research实习期间参与了部分研究工作。

---

### 7. 跨数据集泛化能力

在本节中，我们将提供实验中使用的单视图姿态估计网络及其他技术细节的相关信息。实验中使用的各数据集在手部模型定义上存在细微差异：有些数据集将关键点设置在手腕处，而另一些则将其定义在手掌上。为了进行公平比较，我们排除了这些关键点，最终用于评估的关键点数量变为20个。在后续章节中，我们首先会在7.1节介绍实现细节，包括所使用的超参数和网络架构；其次，我们会在7.2节分析使用预训练网络对实验结果产生的影响。

#### 7.1. 实现细节

我们的超参数和网络架构选择与[^14]中的设置类似。该网络采用带有跳跃连接的编码器-解码器结构。为简洁起见，我们将基础模块定义为Block0（见表6）、Block1（见表7）、Block2（见表8）、Block3（见表9）以及Block4（见表10）。依据表5的内容即可组装出整个网络。所有模块中所有卷积层的通道数均保持一致；唯一的例外是Block4，其前两个卷积层的输出通道数为128，最后一个卷积层的输出通道数为42。数字42源于我们需要估计的21个关键点的2D位置和深度。从Block1到Block3的跳跃连接总是在Block1的最后一个卷积层（编号3）之后，基于空间分辨率相同的模块来建立。

我们对该网络进行30万次迭代训练，批量大小为16。优化过程中采用动量求解器，初始学习率为0.001，动量为0.9。迭代次数达到15万次后，学习率会降至0.0001。

#### 7.2. 预训练网络

我们提供了所提出的跨数据集泛化实验的额外版本，该实验展示了使用预训练网络的影响。为此，我们采用了在ImageNet上预训练的ResNet50作为骨干网络，并对其进行训练以学习从图像到归一化3D姿态的直接映射。我们从原始的ResNet50中提取平均池化的最终特征，并通过两个各含2048个神经元的全连接层进行处理，这些层使用ReLU激活函数；最后一个线性全连接层则输出63个参数（$= 21 \times 3D$坐标）。超参数与7.1节中的设置相同，唯一区别是采用ADAM优化器，且初始学习率为$10^{-5}$，该值在迭代15万次后降低至$10^{-6}$。结果如表11所示，可见与主论文中报告的结果相比，平均排名基本保持不变。我们发现模型在相应评估集上的性能略低，但对其他数据集的泛化能力更强。

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>id</td><td style='text-align: center; word-wrap: break-word;'>Name</td><td style='text-align: center; word-wrap: break-word;'>Dimensionality</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Input image</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 128 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>Block0</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 128 \times 64$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Block1</td><td style='text-align: center; word-wrap: break-word;'>$64 \times 64 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Block1</td><td style='text-align: center; word-wrap: break-word;'>$32 \times 32 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>Block1</td><td style='text-align: center; word-wrap: break-word;'>$16 \times 16 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>Block1</td><td style='text-align: center; word-wrap: break-word;'>$8 \times 8 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>Block1</td><td style='text-align: center; word-wrap: break-word;'>$4 \times 4 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>7</td><td style='text-align: center; word-wrap: break-word;'>Block1</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>Block2</td><td style='text-align: center; word-wrap: break-word;'>$4 \times 4 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>9</td><td style='text-align: center; word-wrap: break-word;'>Block3</td><td style='text-align: center; word-wrap: break-word;'>$8 \times 8 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>Block3</td><td style='text-align: center; word-wrap: break-word;'>$16 \times 16 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>11</td><td style='text-align: center; word-wrap: break-word;'>Block3</td><td style='text-align: center; word-wrap: break-word;'>$32 \times 32 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>12</td><td style='text-align: center; word-wrap: break-word;'>Block3</td><td style='text-align: center; word-wrap: break-word;'>$64 \times 64 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>13</td><td style='text-align: center; word-wrap: break-word;'>Block3</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 128 \times 128$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>Block4</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 128 \times 42$</td></tr></table>

<div style="text-align: center;">Table 5: Our single view network architecture used for 3D pose estimation in the cross-dataset generalization experiment.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>id</td><td style='text-align: center; word-wrap: break-word;'>Name</td><td style='text-align: center; word-wrap: break-word;'>Kernel</td><td style='text-align: center; word-wrap: break-word;'>Stride</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>Conv. + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Avg. Pool</td><td style='text-align: center; word-wrap: break-word;'>$4 \times 4$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Conv. + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>Avg. Pool</td><td style='text-align: center; word-wrap: break-word;'>$4 \times 4$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr></table>

<div style="text-align: center;">Table 6: Block0.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>id</td><td style='text-align: center; word-wrap: break-word;'>Name</td><td style='text-align: center; word-wrap: break-word;'>Kernel</td><td style='text-align: center; word-wrap: break-word;'>Stride</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>Conv. + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Avg. Pool</td><td style='text-align: center; word-wrap: break-word;'>$4 \times 4$</td><td style='text-align: center; word-wrap: break-word;'>2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Conv. + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr></table>

<div style="text-align: center;">Table 7: Block1.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>id</td><td style='text-align: center; word-wrap: break-word;'>Name</td><td style='text-align: center; word-wrap: break-word;'>Kernel</td><td style='text-align: center; word-wrap: break-word;'>Stride</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>Conv. + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Upconv.</td><td style='text-align: center; word-wrap: break-word;'>$4 \times 4$</td><td style='text-align: center; word-wrap: break-word;'>2</td></tr></table>

表8：Block2。

### 8. MVNet

#### 8.1. 训练损失

我们尝试了不同的损失函数来训练 MVNet，并观察到它们在适用于我们的问题方面存在很大差异。除了所述的损失之外

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>id</td><td style='text-align: center; word-wrap: break-word;'>Name</td><td style='text-align: center; word-wrap: break-word;'>Kernel</td><td style='text-align: center; word-wrap: break-word;'>Stride</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>Concat(Input, Block1 skip)</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;'>2</td><td style='text-align: center; word-wrap: break-word;'>Conv. + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$1 \times 1$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Conv. + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>Upconv.</td><td style='text-align: center; word-wrap: break-word;'>$4 \times 4$</td><td style='text-align: center; word-wrap: break-word;'>2</td></tr></table>

<div style="text-align: center;">Table 9: Block3.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>id</td><td style='text-align: center; word-wrap: break-word;'>Name</td><td style='text-align: center; word-wrap: break-word;'>Kernel</td><td style='text-align: center; word-wrap: break-word;'>Stride</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>Conv. + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$7 \times 7$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Conv. + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$7 \times 7$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Conv.</td><td style='text-align: center; word-wrap: break-word;'>$7 \times 7$</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr></table>

<div style="text-align: center;">Table 10: Block4.</div>

在主论文中，我们将其称为 Scorevolume 损失，此外我们还使用了 Softargmax 损失公式 [^14]。正如文献中所报道的，我们发现 Softargmax 在关键点估计方面取得了更好的结果，但每个预测的相应分数作为预期误差的预测因子意义较小。

在这两种情况下，我们按照主论文中的定义，确定MVNet所做出的预测的得分c，并利用Softargmax损失的潜热图来计算c。为了分析预测得分c与最终预测的预期误差之间的关系，我们采用了[^13]中详细描述的方法，并在图7中展示了稀疏化曲线。该图分析了通过逐步剔除预测得分c所衡量的不确定性较高的预测样本时，给定数据集上的预测误差是如何变化的。如果预测得分能够很好地代表预测误差，那么这些曲线应会单调下降至零，因为得分较低的预测往往对应着误差较大的样本。理想曲线则代表了某种损失函数下的理论最优曲线，它是通过直接获取真实误差而非依赖预测得分来生成的，也就是说，系统总是会优先剔除误差最大的预测。

#### 8.2. 实现细节

### 8.2. 实现细节

用于 2D 特征提取的网络部分使用 Simon 等人 [^27] 提出的网络进行初始化。我们使用大小为 $224 \times 224$ 的输入图像，这些图像显示的是裁剪后的手部图像。对于手部裁剪，我们使用在 Egohands [^12] 上训练并进行微调的 MobileNet 架构 [^3]，并进行微调于

![Image](images/0c28393aa4bf4a43d3518e2ec63ef6a6e8513b996dd285c282c501a0e39b3e19.jpg)

<div style="text-align: center;">Figure 7: Shown is the average predictions 3D error of MVNet on a given dataset over the sparsification rate. When moving along the x-axis from left to right the remaining evaluation set gets smaller and the y-axis reports the error upon the remaining dataset. For each approach the resulting curves are shown, when the prediction score is used as solid lines, and when the ground truth error is used as dashed lines, which we refer to as oracle. A good score yields a line that stays close to the oracle line, which shows that Scorevolume trained networks learn much more meaningful scores than Softargmax.</div>

这是我们数据中一个规模较小且经过人工标注的子集。通过二维卷积神经网络，我们在经过12层卷积处理后提取出维度为$f_i$的特征编码$28 \times 28 \times 128$，随后将其反投影到大小为0.4米的$64 \times 64 \times 64 \times 128$体素网格$\pmb{F}_i$中。该体素网格的中心位于一个三维点假设位置，该位置是通过对之前用于图像裁剪的检测到手部的边界框中心进行三角测量得出的。

为了整合所有摄像头反投影后的信息，我们会对所有视角i的数据取平均值$F_i$，并采用类似U-Net [^26]的编解码结构来处理三维数据。我们使用ADAM优化器训练该网络，共进行10万次训练步骤；二维卷积神经网络的批量大小为8，三维卷积神经网络则为1。损失函数采用Scorevolume损失，其对应的真实值高斯目标的标准差为2个体素单位。

### 9. 迭代过程的扩展评估

在图8中，我们展示了MVNet的三维关键点估计精度随迭代次数变化的趋势。作为对比，我们还展示了仅在Panoptic（PAN）数据集上训练的MVNet的性能表现。虽然这种训练方式得到的性能并不理想，但在PAN数据集和我们的数据集上进行联合训练后，首次迭代就能带来显著的性能提升，后续每次迭代还会进一步改善性能。

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>eval train</td><td style='text-align: center; word-wrap: break-word;'>STB</td><td style='text-align: center; word-wrap: break-word;'>RHD</td><td style='text-align: center; word-wrap: break-word;'>GAN</td><td style='text-align: center; word-wrap: break-word;'>PAN</td><td style='text-align: center; word-wrap: break-word;'>LSMV</td><td style='text-align: center; word-wrap: break-word;'>FPA</td><td style='text-align: center; word-wrap: break-word;'>HO3D</td><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>Average Rank</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>STB</td><td style='text-align: center; word-wrap: break-word;'>0.687</td><td style='text-align: center; word-wrap: break-word;'>0.247</td><td style='text-align: center; word-wrap: break-word;'>0.151</td><td style='text-align: center; word-wrap: break-word;'>0.263</td><td style='text-align: center; word-wrap: break-word;'>0.220</td><td style='text-align: center; word-wrap: break-word;'>0.138</td><td style='text-align: center; word-wrap: break-word;'>0.207</td><td style='text-align: center; word-wrap: break-word;'>0.244</td><td style='text-align: center; word-wrap: break-word;'>5.6</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>RHD</td><td style='text-align: center; word-wrap: break-word;'>0.480</td><td style='text-align: center; word-wrap: break-word;'>0.697</td><td style='text-align: center; word-wrap: break-word;'>0.200</td><td style='text-align: center; word-wrap: break-word;'>0.353</td><td style='text-align: center; word-wrap: break-word;'>0.490</td><td style='text-align: center; word-wrap: break-word;'>0.156</td><td style='text-align: center; word-wrap: break-word;'>0.417</td><td style='text-align: center; word-wrap: break-word;'>0.403</td><td style='text-align: center; word-wrap: break-word;'>2.9</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>GAN</td><td style='text-align: center; word-wrap: break-word;'>0.184</td><td style='text-align: center; word-wrap: break-word;'>0.198</td><td style='text-align: center; word-wrap: break-word;'>0.624</td><td style='text-align: center; word-wrap: break-word;'>0.217</td><td style='text-align: center; word-wrap: break-word;'>0.229</td><td style='text-align: center; word-wrap: break-word;'>0.182</td><td style='text-align: center; word-wrap: break-word;'>0.188</td><td style='text-align: center; word-wrap: break-word;'>0.233</td><td style='text-align: center; word-wrap: break-word;'>5.8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PAN</td><td style='text-align: center; word-wrap: break-word;'>0.447</td><td style='text-align: center; word-wrap: break-word;'>0.367</td><td style='text-align: center; word-wrap: break-word;'>0.221</td><td style='text-align: center; word-wrap: break-word;'>0.632</td><td style='text-align: center; word-wrap: break-word;'>0.454</td><td style='text-align: center; word-wrap: break-word;'>0.205</td><td style='text-align: center; word-wrap: break-word;'>0.264</td><td style='text-align: center; word-wrap: break-word;'>0.345</td><td style='text-align: center; word-wrap: break-word;'>3.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LSMV</td><td style='text-align: center; word-wrap: break-word;'>0.242</td><td style='text-align: center; word-wrap: break-word;'>0.286</td><td style='text-align: center; word-wrap: break-word;'>0.199</td><td style='text-align: center; word-wrap: break-word;'>0.226</td><td style='text-align: center; word-wrap: break-word;'>0.640</td><td style='text-align: center; word-wrap: break-word;'>0.162</td><td style='text-align: center; word-wrap: break-word;'>0.283</td><td style='text-align: center; word-wrap: break-word;'>0.307</td><td style='text-align: center; word-wrap: break-word;'>4.4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FPA</td><td style='text-align: center; word-wrap: break-word;'>0.186</td><td style='text-align: center; word-wrap: break-word;'>0.178</td><td style='text-align: center; word-wrap: break-word;'>0.156</td><td style='text-align: center; word-wrap: break-word;'>0.206</td><td style='text-align: center; word-wrap: break-word;'>0.197</td><td style='text-align: center; word-wrap: break-word;'>0.705</td><td style='text-align: center; word-wrap: break-word;'>0.162</td><td style='text-align: center; word-wrap: break-word;'>0.239</td><td style='text-align: center; word-wrap: break-word;'>6.6</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HO3D</td><td style='text-align: center; word-wrap: break-word;'>0.254</td><td style='text-align: center; word-wrap: break-word;'>0.311</td><td style='text-align: center; word-wrap: break-word;'>0.198</td><td style='text-align: center; word-wrap: break-word;'>0.206</td><td style='text-align: center; word-wrap: break-word;'>0.338</td><td style='text-align: center; word-wrap: break-word;'>0.148</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>0.313</td><td style='text-align: center; word-wrap: break-word;'>5.4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>0.520</td><td style='text-align: center; word-wrap: break-word;'>0.399</td><td style='text-align: center; word-wrap: break-word;'>0.205</td><td style='text-align: center; word-wrap: break-word;'>0.395</td><td style='text-align: center; word-wrap: break-word;'>0.509</td><td style='text-align: center; word-wrap: break-word;'>0.208</td><td style='text-align: center; word-wrap: break-word;'>0.416</td><td style='text-align: center; word-wrap: break-word;'>0.523</td><td style='text-align: center; word-wrap: break-word;'>2.0</td></tr></table>

<div style="text-align: center;">Table 11: This table shows, cross-dataset generalization measured as area under the curve (AUC) of percentage of correct keypoints following [^38]. In contrast to the table reported in the main paper an ImageNet pretrained ResNet50 network is used for direct regression of normalized 3D pose. Entries are marked if they rank: first, second or third for each dataset.</div>

![Image](images/4d793abb4c129d81bc7c93d8b6c7e8631af0df5a9dbc5b22bb4fc9a9f52b6707.jpg)

<div style="text-align: center;">Figure 8: We show performance measured as 3D PCK of MVNet over different iterations of our procedure. It shows that training MVNet only on the Panoptic dataset is not sufficient to generalize to our data an that each iteration improves performance. In brackets the 3D AUC is reported.</div>

### 10. 图像合成

在此，我们研究了多种用于后期处理所录制图像的方法，以提升合成图像的泛化能力。绿色背景表示直接使用原始图像，即未采用额外的处理步骤。“剪切并粘贴”指的是利用前景分割掩码作为混合的Alpha通道，将原始图像与随机选取的新背景图像进行融合。Harmonization是由Tsai等人提出的基于深度网络的方法[^31]，该方法有望提升网络在合成图像上的表现。此外，我们还尝试了Zhang等人提出的深度图像上色方法[^36]。在这一处理步骤中，我们将“剪切并粘贴”方法生成的合成图像转换为灰度图像，再将其输入上色模型。在该方法中，有“自动”和“采样”两种选项：“自动”模式下网络会自行生成所有颜色；而在“采样”模式下，我们会为网络提供每个前景和背景上随机选取的20个样本点处的实际颜色。图10展示了这些方法生成的图像示例。表12报告了第7.1节所述网络的结果，表13则显示了使用预训练基线模型时的结果。这两张表表明，当网络从零开始训练时，后期处理方法更为重要。表12显示，采用其中任意一种处理选项都能带来大致相同的性能提升，而同时采用所有选项时效果最佳。主论文中的相应实验便选择了这一方案。当使用预训练网络时，表13显示仅用绿色背景图像训练的网络就已取得不错的结果。有趣的是，在这种情况下，较为复杂的后期处理方法相比“剪切并粘贴”策略带来的提升十分有限。我们推测这些结果与预训练权重所具有的较强鲁棒性有关。请注意，对于无法提供前景物体分割掩码的数据集，我们无法以类似方式运用这些算法。只有RHD数据集提供了分割掩码，因此我们展示了所讨论的处理方法对其泛化能力的影响。表14显示，这些方法对基于RHD训练的网络性能提升并不明显。结果表明，这些策略不应被视为通用的数据增强手段，而应是用于解决训练数据集中出现的绿色背景色彩溢出问题的特定处理步骤。

## 11. FreiHAND数据集详情

在该数据集中，我们邀请了32名参与者，让他们在摄像头前执行各种动作。非物体相关动作包括：美国手语手势、计数、将手指活动到其运动极限等。物体类别则包含各类工具，如电钻、扳手、螺丝刀或锤子。此外还涉及不同类型的厨房用品，例如：

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>eval method</td><td style='text-align: center; word-wrap: break-word;'>RHD</td><td style='text-align: center; word-wrap: break-word;'>Ours</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Green Screen</td><td style='text-align: center; word-wrap: break-word;'>0.246</td><td style='text-align: center; word-wrap: break-word;'>0.440</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Cut&amp;Paste</td><td style='text-align: center; word-wrap: break-word;'>0.350</td><td style='text-align: center; word-wrap: break-word;'>0.508</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Harmonization [^31]</td><td style='text-align: center; word-wrap: break-word;'>0.443</td><td style='text-align: center; word-wrap: break-word;'>0.628</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Colorization Auto [^36]</td><td style='text-align: center; word-wrap: break-word;'>0.458</td><td style='text-align: center; word-wrap: break-word;'>0.634</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Colorization Sample [^36]</td><td style='text-align: center; word-wrap: break-word;'>0.494</td><td style='text-align: center; word-wrap: break-word;'>0.643</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Joint</td><td style='text-align: center; word-wrap: break-word;'>0.518</td><td style='text-align: center; word-wrap: break-word;'>0.678</td></tr></table>

<div style="text-align: center;">Table 12: Network architecture as used in the main paper. When training networks from scratch, it is important to introduce background variation by inserting random backgrounds into the green screen recordings. Using post processing algorithms improves generalization.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>eval method</td><td style='text-align: center; word-wrap: break-word;'>RHD</td><td style='text-align: center; word-wrap: break-word;'>Ours</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Green Screen</td><td style='text-align: center; word-wrap: break-word;'>0.338</td><td style='text-align: center; word-wrap: break-word;'>0.436</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Cut&amp;Paste</td><td style='text-align: center; word-wrap: break-word;'>0.386</td><td style='text-align: center; word-wrap: break-word;'>0.468</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Harmonization [^31]</td><td style='text-align: center; word-wrap: break-word;'>0.416</td><td style='text-align: center; word-wrap: break-word;'>0.513</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Colorization Auto [^36]</td><td style='text-align: center; word-wrap: break-word;'>0.368</td><td style='text-align: center; word-wrap: break-word;'>0.478</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Colorization Sample [^36]</td><td style='text-align: center; word-wrap: break-word;'>0.381</td><td style='text-align: center; word-wrap: break-word;'>0.496</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Joint</td><td style='text-align: center; word-wrap: break-word;'>0.399</td><td style='text-align: center; word-wrap: break-word;'>0.523</td></tr></table>

<div style="text-align: center;">Table 13: Instead of the network architecture used in the main paper, we use a ResNet50 Baseline as described in 7.2. When the network is initialized with weights that already show a certain level of robustness the importance of background removal and recombination with post processing is less pronounced, but still improves results substantially.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>eval method</td><td style='text-align: center; word-wrap: break-word;'>RHD</td><td style='text-align: center; word-wrap: break-word;'>Ours</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Original</td><td style='text-align: center; word-wrap: break-word;'>0.767</td><td style='text-align: center; word-wrap: break-word;'>0.508</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Harmonization [^31]</td><td style='text-align: center; word-wrap: break-word;'>0.723</td><td style='text-align: center; word-wrap: break-word;'>0.517</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Colorization Auto [^36]</td><td style='text-align: center; word-wrap: break-word;'>0.726</td><td style='text-align: center; word-wrap: break-word;'>0.472</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Colorization Sample [^36]</td><td style='text-align: center; word-wrap: break-word;'>0.748</td><td style='text-align: center; word-wrap: break-word;'>0.501</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Joint</td><td style='text-align: center; word-wrap: break-word;'>0.756</td><td style='text-align: center; word-wrap: break-word;'>0.514</td></tr></table>

<div style="text-align: center;">Table 14: Network architecture as used in the main paper, but instead of training on our dataset we train on RHD and apply the same post processing methods to it. We chose RHD as reference because it is the only dataset that also provides foreground segmentation masks, which are needed for the processing methods. The table shows that none of them yields clear improvements over using the original unaltered RHD dataset for training.</div>

筷子、餐具、瓶子或烧烤夹。这些物体要么从录制开始就放置在参与者手中，

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Part</td><td style='text-align: center; word-wrap: break-word;'>Samples with object</td><td style='text-align: center; word-wrap: break-word;'>Samples w/o object</td><td style='text-align: center; word-wrap: break-word;'>male</td><td style='text-align: center; word-wrap: break-word;'>female</td><td style='text-align: center; word-wrap: break-word;'>total</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Training (green screen)</td><td style='text-align: center; word-wrap: break-word;'>2580</td><td style='text-align: center; word-wrap: break-word;'>1490</td><td style='text-align: center; word-wrap: break-word;'>2462</td><td style='text-align: center; word-wrap: break-word;'>1608</td><td style='text-align: center; word-wrap: break-word;'>4070</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Evaluation (total)</td><td style='text-align: center; word-wrap: break-word;'>339</td><td style='text-align: center; word-wrap: break-word;'>156</td><td style='text-align: center; word-wrap: break-word;'>290</td><td style='text-align: center; word-wrap: break-word;'>205</td><td style='text-align: center; word-wrap: break-word;'>495</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Evaluation (plane space office)</td><td style='text-align: center; word-wrap: break-word;'>119</td><td style='text-align: center; word-wrap: break-word;'>40</td><td style='text-align: center; word-wrap: break-word;'>63</td><td style='text-align: center; word-wrap: break-word;'>96</td><td style='text-align: center; word-wrap: break-word;'>159</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Evaluation (outdoor)</td><td style='text-align: center; word-wrap: break-word;'>114</td><td style='text-align: center; word-wrap: break-word;'>47</td><td style='text-align: center; word-wrap: break-word;'>88</td><td style='text-align: center; word-wrap: break-word;'>73</td><td style='text-align: center; word-wrap: break-word;'>161</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Evaluation (meeting room)</td><td style='text-align: center; word-wrap: break-word;'>106</td><td style='text-align: center; word-wrap: break-word;'>69</td><td style='text-align: center; word-wrap: break-word;'>139</td><td style='text-align: center; word-wrap: break-word;'>36</td><td style='text-align: center; word-wrap: break-word;'>175</td></tr></table>

<div style="text-align: center;">Table 15: Distribution of labeled samples in our dataset across different aspects.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Ethnicity</td><td style='text-align: center; word-wrap: break-word;'>Training</td><td style='text-align: center; word-wrap: break-word;'>Evaluation</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Caucasian (NA, Europe, ...)</td><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>11</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>South Asian (India, Pakistan, ...)</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>East Asia (China, Vietnam, ...)</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Male subjects</td><td style='text-align: center; word-wrap: break-word;'>15</td><td style='text-align: center; word-wrap: break-word;'>6</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Female subjects</td><td style='text-align: center; word-wrap: break-word;'>9</td><td style='text-align: center; word-wrap: break-word;'>5</td></tr></table>

<div style="text-align: center;">Table 16: Gender and ethnicity distribution of recorded subjects in the dataset.</div>

要么悬挂在我们的装置中，我们记录了参与者抓取物体的过程。

涉及物体交互的动作包括以下物品：锤子、螺丝刀、电钻、剪刀、镊子、焊锡吸锡枪、订书机、扳手、筷子、卡尺、电源插头、笔、勺子、叉子、刀、遥控器、膏体管、咖啡杯、喷罐、胶枪、飞盘、皮套、纸板箱、多功能工具以及各类球体（如苹果、橙子、泡沫塑料）。所选动作涵盖了所有主要的抓取类型，包括强力抓取和精细抓取，以及球体、圆柱体、立方体和圆盘形状的物体，还有针对特定物体的特殊抓取方式。

这些录音构成了我们执行迭代标注流程的基础，正是该流程创建了主论文中所展示的数据集。图11展示了其中的一些示例。图9显示了一个数据集样本，包含来自我们采集设备中8台不同相机在某一特定时间点拍摄的8张图像。可以看出，这些相机捕捉到了手部周围的多种视角，且不同相机所拍摄的图像中遮挡的手指也各不相同。我们的数据集形状标注被叠加在其中一半的视图上。

此外，我们在图12中提供了更多关于单视图形状估计网络的定性示例。

表16报告了不同性别和种族的分布情况，而表15则显示了标注样本在性别和物体交互方面的分布情况。

该数据集是使用以下硬件录制的：两台Basler acA800-510uc相机和六台Basler acA1300-200uc彩色相机，它们通过numato的GPIO模块进行硬件触发。这些相机配备了定焦镜头。

---

![Image](images/872ecf8ba61cccf8f481aaa76b9e6f61eff1ec33fe59c778212ed815c515e39c.jpg)

<div style="text-align: center;">Figure 9: Here we show one sample of our dataset, which consists of 8 images that are recorded at the same time instance. We overlay the shape label found with our method in some of the images.</div>

![Image](images/188f26dce364b1a05a77d36f27f197776f84aef7cdc91357d18f5146d16b5ef6.jpg)

<div style="text-align: center;">Figure 10: Visualizations of our explored post processing options on the same sample. From left to right: Original frame, Cut&Paste, Harmonization [^31], Colorization Auto [^36], Colorization: Sample [^36].</div>

镜头的焦距为4毫米或6毫米。录制装置大致形成一个边长为1米的立方体，每个角落各放置一台彩色相机。受试者通过立方体的一个面将手伸入立方体内部，这样他们的手到所有相机的距离就大致相等。在录制评估用数据时，我们使用了环境光。为了在绿幕录制时改善照明效果，我们使用了4盏大功率LED灯，这些灯在视频摄像机录制期间也可调节亮度和色温。

## 参考文献

[^1]: Martín Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S Corrado, Andy

Davis、Jeffrey Dean、Matthieu Devin等。TensorFlow：异构分布式系统上的大规模机器学习。arXiv预印本arXiv:1603.04467，2016年。6

[^2]: Luca Ballan, Aparna Taneja, Jürgen Gall, Luc Van Gool, and Marc Pollefeys. Motion capture of hands in action using discriminative salient points. In European Conference on Computer Vision, pages 640–653. Springer, 2012. 2

[^3]: Sven Bambach, Stefan Lee, David J. Crandall, and Chen Yu. Lending A Hand: Detecting Hands and Recognizing Activities in Complex Egocentric Interactions. In Proceedings of the IEEE International Conference on Computer Vision, pages 1949–1957, 2015. 10

## [^4]: Federica Bogo, Angjoo Kanazawa, Christoph Lassner, Peter Gehler, Javier Romero, and Michael J Black. Keep it smpl: Automatic estimation of 3d human pose and shape from a single image. In Proc. of the Europ. Conf. on Computer Vision (ECCV), pages 561–578. Springer, 2016. 2

---

![Image](images/69f74449a3b99834dec7c486ba0a574f317c58c522f061c4b157e7957d2b5d6a.jpg)

![Image](images/d475fc9ffaf9f7a67706730a6f1ee0a0aa1ebbac2ed425d872d01af7a37a2662.jpg)

<div style="text-align: center;">Figure 11: Examples from our proposed dataset showing images and hand shape annotations. It shows the final images that are used for training of single view methods with the original background replaced and [^31] applied for post processing.</div>

![Image](images/46ab86cba9687b558effd1d984519be6aa2a4a84765bffcedb4ce1a9aaa0c673.jpg)

![Image](images/4f86cca36d5af7094243607076e5e46ca3173c197972d588848249582ab33ce6.jpg)

<div style="text-align: center;">Figure 12: More qualitative examples of predicted hand shapes that our single view network makes. Again, we don’t apply any alignment of the predictions with respect to the ground truth, which explains minor miss alignment whereas the hand articulation is captured correctly.</div>

[^5]: Adnane Boukhayma, Rodrigo de Bem, and Philip HS Torr. 3d hand shape and pose from images in the wild. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pages 10843–10852, 2019. 1,7

[^6]: Guillermo Garcia-Hernando, Shanxin Yuan, Seungryul Baek, and Tae-Kyun Kim. First-person hand action benchmark with rgb-d videos and 3d hand pose annotations. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pages 409–419, 2018. 3, 4, 6

[^7]: Liuhao Ge, Zhou Ren, Yuncheng Li, Zehao Xue, Yingying Wang, Jianfei Cai, and Junsong Yuan. 3d hand shape and pose estimation from a single rgb image. arXiv preprint arXiv:1903.00812, 2019. 1

[^8]: Francisco Gomez-Donoso, Sergio Orts-Escolano, and Miguel Cazorla. Large-scale multiview 3d hand pose dataset. Image and Vision Computing, 81:25–33, 2019. 1, 3, 4

[^9]: Shreyas Hampali, Markus Oberweger, Mahdi Rad, and Vincent Lepetit. Ho-3d: A multi-user, multi-object dataset

用于联合3D手-物体姿态估计。arXiv预印本arXiv:1907.01481，2019年。3, 4

[^10]: Yana Hasson, Gul Varol, Dimitrios Tzionas, Igor Kalevatykh, Michael J Black, Ivan Laptev, and Cordelia Schmid. Learning joint reconstruction of hands and manipulated objects. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pages 11807–11816, 2019. 7

[^11]: Gerrit Hillebrand, Martin Bauer, Kurt Achatz, Gudrun Klinker, and Am Oferl. Inverse kinematic infrared optical finger tracking. In Proceedings of the 9th International Conference on Humans and Computers (HC 2006), Aizu, Japan, pages 6–9. Citeseer, 2006. 2

[^12]: Andrew G Howard, Menglong Zhu, Bo Chen, Dmitry Kalenichenko, Weijun Wang, Tobias Weyand, Marco Andreetto, and Hartwig Adam. Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861, 2017. 10

## [^13]: Eddy Ilg, Ozgun Cicek, Silvio Galesso, Aaron Klein, Osama

---

Makansi、Frank Hutter和Thomas Brox。光流的不确定性估计与多假设网络。发表于欧洲计算机视觉会议（ECCV）论文集，第652–667页，2018年。10

[^14]: Umar Iqbal, Pavlo Molchanov, Thomas Breuel Juergen Gall, and Jan Kautz. Hand pose estimation via latent 2.5 d heatmap regression. In Proc. of the Europ. Conf. on Computer Vision (ECCV), pages 118–134, 2018. 3, 4, 9, 10

[^15]: Hanbyul Joo, Tomas Simon, and Yaser Sheikh. Total capture: A 3d deformation model for tracking faces, hands, and bodies. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pages 8320–8329, 2018. 3

[^16]: Angjoo Kanazawa, Michael J Black, David W Jacobs, and Jitendra Malik. End-to-end recovery of human shape and pose. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pages 7122–7131, 2018. 7

[^17]: Abhishek Kar, Christian Häne, and Jitendra Malik. Learning a multi-view stereo machine. In Proc. of Int. Conf. on Neural Information Processing Systems (NIPS), pages 365–376, 2017. 6

[^18]: Hiroharu Kato, Yoshitaka Ushiku, and Tatsuya Harada. Neural 3d mesh renderer. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pages 3907–3916, 2018. 6

[^19]: Diederik P. Kingma and Jimmy Ba. Adam: A method for stochastic optimization. CoRR, abs/1412.6980, 2014. 6

[^20]: Arno Knapitsch, Jaesik Park, Qian-Yi Zhou, and Vladlen Koltun. Tanks and temples: Benchmarking large-scale scene reconstruction. ACM Transactions on Graphics (ToG), 36(4):78, 2017. 7, 8

[^21]: Christoph Lassner, Javier Romero, Martin Kiefel, Federica Bogo, Michael J. Black, and Peter V. Gehler. Unite the people: Closing the loop between 3d and 2d human representations. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), July 2017. 2

[^22]: Leap Motion. <https://www.leapmotion.com>. 3

[^23]: Franziska Mueller, Florian Bernard, Oleksandr Sotnychenko, Dushyant Mehta, Srinath Sridhar, Dan Casas, and Christian Theobalt. Generated hands for real-time 3d hand tracking from monocular rgb. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pages 49–59, 2018. 1, 3, 4

[^24]: Franziska Mueller, Dushyant Mehta, Oleksandr Sotnychenko, Srinath Sridhar, Dan Casas, and Christian Theobalt. Real-time hand tracking under occlusion from an egocentric rgb-d sensor. In Int. Conf. on Computer Vision (ICCV), October 2017. 1, 2, 3

[^25]: Javier Romero, Dimitrios Tzionas, and Michael J Black. Embodied hands: Modeling and capturing hands and bodies together. ACM Transactions on Graphics (ToG), 36(6):245, 2017. 2, 5

[^26]: Olaf Ronneberger, Philipp Fischer, and Thomas Brox. U-net: Convolutional networks for biomedical image segmentation. In International Conference on Medical image computing and computer-assisted intervention, pages 234–241. Springer, 2015. 10

[^27]: Tomas Simon, Hanbyul Joo, Iain Matthews, and Yaser Sheikh. Hand keypoint detection in single images using multiview bootstrapping. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pages 1145–1153, 2017. 1, 2, 4, 5, 10

[^28]: Srinath Sridhar, Franziska Mueller, Michael Zollhoefer, Dan Casas, Antti Oulasvirta, and Christian Theobalt. Real-time joint tracking of a hand manipulating an object from rgb-d input. In Proc. of the Europ. Conf. on Computer Vision (ECCV), October 2016. 2

[^29]: Anastasia Tkach, Mark Pauly, and Andrea Tagliasacchi. Sphere-meshes for real-time hand modeling and tracking. ACM Transactions on Graphics (ToG), 35(6):222, 2016. 2

[^30]: Anastasia Tkach, Andrea Tagliasacchi, Edoardo Remelli, Mark Pauly, and Andrew Fitzgibbon. Online generative model personalization for hand tracking. ACM Transactions on Graphics (ToG), 36(6):243, 2017. 2

[^31]: Yi-Hsuan Tsai, Xiaohui Shen, Zhe Lin, Kalyan Sunkavalli, Xin Lu, and Ming-Hsuan Yang. Deep image harmonization. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pages 3789–3797, 2017. 7, 11, 12, 13, 14

[^32]: Dimitrios Tzionas, Luca Ballan, Abhilash Srikantha, Pablo Aponte, Marc Pollefeys, and Juergen Gall. Capturing hands in action using discriminative salient points and physics simulation. Int. Journal of Computer Vision, 118(2):172–193, 2016.

[^33]: Dimitrios Tzionas, Abhilash Srikantha, Pablo Aponte, and Juergen Gall. Capturing hand motion with an rgb-d sensor, fusing a generative model with salient points. In Proc. of the German Conf. on Computer Vision (GCPR), pages 277–289. Springer, 2014. 2

[^34]: Robert Y Wang and Jovan Popović. Real-time hand-tracking with a color glove. ACM Transactions on Graphics (ToG), 28(3):63, 2009. 2

[^35]: Jiawei Zhang, Jianbo Jiao, Mingliang Chen, Liangqiong Qu, Xiaobin Xu, and Qingxiong Yang. 3d Hand Pose Tracking and Estimation Using Stereo Matching. arXiv preprint arXiv:1610.07214, 2016. 2, 3, 4

[^36]: Richard Zhang, Jun-Yan Zhu, Phillip Isola, Xinyang Geng, Angela S Lin, Tianhe Yu, and Alexei A Efros. Real-time user-guided image colorization with learned deep priors. arXiv preprint arXiv:1705.02999, 2017. 7, 11, 12, 13

[^37]: Thomas G Zimmerman, Jaron Lanier, Chuck Blanchard, Steve Bryson, and Young Harvill. A hand gesture interface device. In ACM SIGCHI Bulletin, pages 189–192. ACM, 1987. 2

[^38] Christian Zimmermann和Thomas Brox。从单张RGB图像学习估计3D手部姿态。发表于国际计算机视觉会议（ICCV），2017年。<https://arxiv.org/abs/1705.01389>。1, 3, 4, 6, 11
