
# 通过拟合训练进行自监督的3D手部姿态估计

万成德 $^{1}$、托马斯·普罗布斯特 $^{1}$、卢克·范·古尔 $^{1,3}$ 以及姚 Angela $^{2}$

$^{1}$苏黎世联邦理工学院 $^{2}$新加坡国立大学 $^{3}$鲁汶大学

## 摘要

我们提出了一种基于深度图的3D手部姿态估计自监督方法。我们首先使用合成数据初始化神经网络，然后通过最小化一组数据拟合项，在真实但未标注的深度图上对其进行微调。通过将手部表面近似为一组球体，我们设计了一个可微分的手部渲染器，通过比较渲染后的深度图与输入深度图来对齐估计结果。此外，我们还引入了一组先验约束，包括一个数据驱动项，以进一步保证估计结果的运动学可行性。我们的方法能够得出与当前需要大量标注训练样本的监督式方法相媲美的高精度估计结果，从而推动了手部姿态估计无监督学习领域的技术水平。

### 1. 引言

深度学习显著提升了3D手部姿态估计的技术水平。基于学习的方法在精度上的提升可归因于两个因素：网络设计的选择以及标注数据量的增加 [^29] [^49] [^53]。然而，获取精确的3D手部姿态标签极其困难；当前的方法需要基于标记的动作捕捉设备 [^13]、6自由度传感器 [^53] 或多视角基于模型的跟踪技术 [^45]。在所有这些情况下，为了获得高质量的标注数据，还需要仔细的监督与人工清洗工作。一种常见的替代方案是合成训练样本——这种方式要简单得多，几乎无需成本，且能生成各种视角、姿态和手形的样本。遗憾的是，合成数据与真实数据在外观、手形和姿态方面的域差异极为显著。正如我们在实验中所展示的，在合成数据上训练的模型应用于真实数据时，精度会出现显著下降。

手部姿态估计的最新趋势是将基于学习的判别式方法的优势与基于模型的跟踪方法 [^2] [^13] [^33] [^43] 相结合。基于模型的跟踪将姿态估计表述为逐帧的模型拟合

![Image](images/644c4ae5967192b664cbf6c25bf91c4846c2bf73039d8e390cfcb85f1c658875.jpg)

<div style="text-align: center;">Figure 1. Method overview. (a) Outline of the proposed method; (b) Rendered depth map from estimation through differentiable renderer; (c) Corresponding input depth maps.</div>

问题，且无需训练数据。随后，既可以通过提供更好的初始化 [^33] [^43] 来融入基于学习的方法，也可以通过关键点估计来支持拟合 [^2] [^13]，从而降低陷入局部极小值的风险。

在本文中，我们提供了一种利用无监督模型拟合与数据驱动学习方法的互补优势的替代途径。具体来说，我们提出了一种从深度图学习3D手部姿态的自监督方法。请注意，我们的方法不需要任何人工标注，无论是关键点的标注[^24] [^54]，还是基于模型的跟踪器的手动初始化[^40] [^45]。与此同时，我们所能达到的精度可与那些需要大量标注数据的当前最先进方法相媲美。

我们提出的方法通过一组精心设计的可微模型拟合项来实现自我监督。遵循判别式范式，手部姿态由深度神经网络进行估计。在训练过程中，网络通过反向传播模型拟合误差来更新参数，从而学会做出更精确的估计。

---

与我们的方法不同，传统的基于模型的跟踪方法并非在每一帧中独立优化手部姿态；相反，模型拟合误差是在大量无标签图像上共同最小化的。随着训练的推进，网络学会了从以往的优化结果中进行泛化。我们还向网络输入合成的标注数据，以避免陷入局部极小值并规范学习过程。有趣的是，尽管我们在训练时没有使用任何（人工提供的）标签，但我们的方法却表现出与传统监督式方法相似的行为：随着可用数据量的增加，准确率会稳步提升。在推理阶段，我们的方法效率极高，仅需一次网络前向传播即可。相比之下，基于模型的跟踪可能需要多个优化步骤，尤其是在运动快速且幅度较大的场景中。

我们提出的模型拟合项会对估计的手部表面与输入深度图中3D点之间的距离进行惩罚。为提高效率，我们用一组球体来近似手部表面（见图2），该方法已在[^30]中被采用。这使得表面投影的计算既快速又可微。为了提供额外的监督，我们在多视角设置下训练网络，并应用一致性损失项来克服自遮挡带来的歧义。最后，我们通过应用基于变分自编码器（VAE）的先验来对不可行的关节配置进行惩罚。

我们发现，以往用关节角来参数化姿态的方法[^6] [^55]往往对父节点估计中的误差较为敏感。如果试图通过回归来求解这些角度，还会引入更多困难。因此，我们直接估计球体中心的3D坐标。这使我们能够方便地在全卷积网络（FCN）的检测框架内开展工作，这类网络被许多最先进的方法所采用[^14] [^41]，且比回归方法更精确。相比之下，

我们的贡献可总结如下：

- 我们提出了一种从深度图中进行3D手部姿态估计的自监督方法。无需任何人工标签，该方法就能取得与需要大量标注数据的最先进方法相媲美的结果。

- 我们提出了一种将无监督的基于模型的拟合与监督式判别方法相结合用于手部姿态估计的新颖途径。

- 我们提供了一种在FCN中规范运动学可行性的方法，即设置一组精心设计的先验，包括由VAE学习得到的数据驱动项。

### 2. 相关工作

在用大量标注样本进行训练时，其精度非常高 [^4] [^5] [^9] [^11] [^12] [^20] [^23] [^31] [^50]。然而，由于获取精确的3D标注数据极为困难，许多研究采用深度生成模型来利用无标注数据来解决这一问题 [^1] [^3] [^21] [^28] [^29] [^36] [^49]。合成深度图能够确保标注的准确性，似乎是一种很有前景的替代方案；但仅依赖合成数据的方法会受到较大的域偏移影响，其性能实际上比用精度较低的真实数据训练时还要差得多 [^31] [^34] [^6]。为了缩小这种域差异，Rad等人 [^31] 提出了一种域适应方法，旨在最小化合成图像与真实图像之间的特征差异。

判别式方法。总体来看，越来越深且更复杂的神经网络架构正主导着手部姿态估计方法。这类方法属于模拟型且无监督方法。其中一条研究路线[^6] [^34]着眼于无需任何人工标注这一更具挑战性的场景。这些模型在标注的合成数据和无标注的真实数据上训练。Shrivastava等人[^34]利用无标注的深度图训练生成对抗网络，从而为合成输入添加更逼真的噪声模式。尽管合成图像与真实深度相机拍摄的图像更为相似，但除了外观之外的域差异——尤其是手部的姿态和形状方面——仍未得到解决。

Dibra等人[^6]通过最小化可微的模型拟合误差，对基于合成深度图训练的网络进行无标注真实数据的微调。虽然微调提升了初始网络的精度，但当前最先进的方法的表现仍大幅优于该微调后的网络。我们的方法与[^6]类似，同样先用合成数据初始化网络，再通过数据拟合误差进行微调。不过，我们的方法存在若干关键差异，包括手部模型和参数化方式。我们将在第4.3节详细讨论这些差异。

混合式方法。传统的基于模型的跟踪器会引入判别式模型，要么用于鲁棒的初始化[^33] [^43]，要么用于增强基于观测的拟合效果[^2] [^37]。Tompson等人[^45]利用昂贵的离线跟踪器估算精确的手部姿态，再基于这些估算结果训练网络以实现高效的在线推理。最近，研究重点已转向将正向运动学[^6] [^16] [^55]、线性混合蒙皮[^6]等可微运动学模型表示集成到神经网络中，从而实现端到端训练。

自监督学习。越来越多的研究致力于在无需人工标注的情况下训练神经网络。常见的策略包括利用空间或时间上下文信息[^7] [^27]、颜色特征[^18] [^48]、对齐关系[^8]以及其他模态中的先验信息[^26]。近年来，多视角监督已被成功应用于物体关键点发现[^42]、三维重建[^47] [^46]、人体姿态估计[^32]以及手部姿态估计[^35]。我们沿袭这一研究思路，采用多视角监督来解决手部自遮挡问题。此外，除了

---

![Image](images/bd8c9918c5e88a09c9980d0d9f9105a2654bce019b99a0468b334965e981098c.jpg)

<div style="text-align: center;">Figure 2. Hand model used during model fitting. Left: Our hand model approximation with 41 spheres; Middle: Real depth map; Right: Rendered depth map from differentiable ray-tracing.</div>

如[^32] [^35]中所述，强制满足多视角一致性外，我们的可微深度渲染器还能通过将某一视角的假设投影到另一视角，从而生成更密集且细节更丰富的一致性误差项。

### 3. 方法

#### 3.1. 手部模型

我们用$N=41$个球面来近似表示三维手部表面（手掌部分11个球面，每个手指6个球面，详见图2(a)），这一做法与[^30] [^38] [^39]类似。该球面模型$\mathcal{M}$的参数化形式为$\mathcal{M}=\{m^{(0)}\cdots m^{(N)}\}$，其中$m^{(i)}=(x^{(i)},y^{(i)},z^{(i)},r^{(i)})$是以$i^{th}$为中心、半径为$(x^{(i)},y^{(i)},z^{(i)})$的$r^{(i)}$球面。这些半径值是预先定义好的，在训练过程中保持不变。据此，手部姿态估计被转化为对一组三维关键点坐标的估计。

#### 3.2. 姿态估计网络

给定深度图后，姿态估计网络会尝试估算所有N个球面的中心的三维坐标。为了使全卷积网络适用于三维坐标估计，我们采用了[^14] [^41] [^42]提出的策略。具体而言，全卷积网络会回归出三维点二维投影的热图$h_{2D}$以及编码点深度信息的潜在深度图$h_{depth}$。随后通过整合热图和潜在深度图来恢复三维坐标：

 $$ (x,y)=\sum_{x_{i}}\sum_{y_{i}}(x_{i},y_{i})\mathrm{softmax}(\alpha h_{2D})(x_{i},y_{i}) $$

 $$ z=\sum_{x_{i}}\sum_{y_{i}}h_{depth}(x_{i},y_{i})\mathrm{softmax}(\alpha h_{2D})(x_{i},y_{i}) $$

其中$x_i$和$y_i$分别是二维网格上第i个像素的坐标，$\alpha$为退火因子。在本文其余部分中，我们将其设为$\alpha = 10$。Softmax函数可作为argmax的近似。更多细节请参阅[^14] [^41] [^42]。我们采用hourglass网络[^22]作为全卷积网络的架构。

#### 3.3. 网络初始化

我们通过在合成数据集上训练来对网络进行初始化。深度图是根据[^45]提供的手部模型，按照[^33]的采样策略生成的，用于产生随机手部姿态。更多细节见补充材料。训练期间，系统会在线生成2000万张具有不同姿态和视角的合成深度图，并将其输入网络。

训练损失被定义为从 $h_{2D}$ 和 $h_{depth}$ 积分得到的估计3D坐标（见公式1和2）与真实坐标之间的均方误差，这与 [^14]、[^19]、[^41] 中的处理方式类似。或者，如 [^42] 中所采用的那样，也可以直接在 $h_{2D}$ 和 $h_{depth}$ 层面提供监督信息。对于 $j^{th}$ 而言，$h_{2D}^{(j)}$ 3D球体的标签是一个以该球体的2D投影为中心的2D热图。在 $h_{depth}^{(j)}$ 列和 $v^{th}$ 行处的 $u^{th}$ 生成方式如下：

 $$ h_{{d e p t h}}^{(j)}(v,u)=\begin{cases}{d_{j}\quad}&{\mathrm{i f}\quad h_{{2D}}^{(j)}(v,u)>0,}\\ {0\quad}&{\mathrm{o t h e r s};}\\ \end{cases} $$

其中 $d_{j}$ 表示 $j^{th}$ 关节的深度。初步实验表明这两种策略的效果相近；在本文后续内容中，我们采用后一种策略，以便与 [^42] 保持一致。

#### 3.4. 基于模型拟合的自监督学习

对于给定的手部深度图，我们首先估算球体的中心坐标。根据这些坐标渲染球体，并通过能量函数评估它们与输入深度图的契合程度。我们采用了可微分的渲染流程，从而能够利用能量函数反向传播误差，逐步微调这些估算结果。

乍看之下，我们的整体流程与传统的基于模型的跟踪方法相似。但本质上，我们的方法有所不同：我们优化的是神经网络参数而非姿态参数。我们同样能享受到数据驱动方法的优势，因为我们是在一整组无标签深度图上最小化模型拟合误差，而不是像基于模型的跟踪那样逐帧进行拟合。实验结果表明（见第4.2节），当数据集规模增大时，对一组数据进行的联合优化能够带来精度的提升。在此背景下，模型拟合能量可直接理解为自监督训练损失。训练后的网络既能从先前估算的样本中泛化，又能利用合成标注数据提供的监督信息。此外，该方法能够实现高效推理，仅需一次前向传播即可完成，而基于模型的跟踪则需要初始化并经过多次迭代优化。

由数据和先验项组成的自监督训练损失如下：

---

其定义如下，

 $$ \begin{aligned}L(\theta)=&\underbrace{L_{\mathrm{m}2\mathrm{d}}(\theta)+\lambda_{1}L_{\mathrm{d}2\mathrm{m}}(\theta)+\lambda_{2}L_{\mathrm{m u l t i v i e w}}(\theta)}_{\text{data terms}}\\+&\underbrace{\lambda_{3}L_{\mathrm{v a e}}(\theta)+\lambda_{4}L_{\mathrm{b o n e l e n g t h}}(\theta)+\lambda_{5}L_{\mathrm{c o l l i s i o n}}}_{\text{prior terms}}(\theta),\end{aligned} $$

其中 $\theta$ 代表网络参数。

#### 3.4.1 数据项

模型到数据的项 $L_{m2d}$ 旨在使球体尽可能贴近深度图中的表面点。我们将其定义为输入深度图 $L_{1}$ 与渲染深度图之间的 $\mathcal{D}_{i}$ 距离。

 $$ L_{\mathrm{m}2\mathrm{d}}(\theta)=\sum_{i}\left|G(f(\mathcal{D}_{i}|\theta))-\mathcal{D}_{i}\right|, $$

其中 $f(\cdot|\theta)$ 从输入深度图估计球体中心的坐标，$G(\cdot)$ 将该估计渲染为深度图。 $L_1$ 损失使训练对输入深度图中的孔洞具有鲁棒性。渲染后的深度图是所有球体各自独立渲染后再沿 z 维跨球体进行最小值池化得到的合成结果。该最小值池化在标准渲染管线中起到深度缓冲区检查的作用。对于渲染图像上的每个像素，渲染过程会检查相应光线是否与球体相交，并计算交点处的深度。我们对渲染采用正交投影。光线垂直于图像平面，像素 $(u,v)$ 处对应第 $j^{\text{th}}$ 个球体 $m^{(j)}$（半径为 $r^{(j)}$，w.r.t. 相机坐标系以 $(x^{(j)}, y^{(j)}, z^{(j)})$ 为中心）的深度计算为

 $$ g(m^{(j)})_{u v}=\begin{cases}{z^{(j)}-\sqrt{(r^{(j)})^{2}-d^{2}(u,v)}}&{\mathrm{i f~}d(u,v)\leq r,}\\ {d_{\mathrm{f a r}}}&{\mathrm{o t h e r s},}\\ \end{cases} $$

其中

 $$ d(u,v)=\|(x^{(j)},y^{(j)})-\Pi^{-1}(u,v)\|_{2} $$

用于衡量光线与球体中心之间的距离，而 $\Pi^{-1}(u,v)$ 表示正交投影的逆运算。给定一组估算出的球体 $\mathcal{M}_{i}$，其渲染过程 G 可以表述为：

 $$ G(\mathcal{M}_{i})=\min_{j}g(m_{i}^{(j)}). $$

需要注意的是，整个渲染过程是完全可微分的，且能够借助任何深度学习框架轻松实现。渲染得到的原始深度图及其对应的输入深度图如图2所示。

数据到模型项 $L_{d2m}$ 指的是估算模型与输入深度图之间的配准损失。由于根据公式6，渲染深度图的背景部分不存在梯度信息，因此仅靠模型到数据项 $L_{m2d}$ 无法推动模型去拟合输入深度图中无法解释的点。这一问题通过 $L_{d2m}$ 得以解决，它借鉴了ICP的思想，旨在最小化深度图 $\mathcal{D}_i$ 中每个点 p 与其在估算出的手部模型表面上的投影 $\mathcal{M}_i$ 之间的距离。

 $$ L_{\mathrm{d2m}}(\theta)=\sum_{i}\sum_{p\in\mathcal{D}_{i}}d(p,\Pi_{\mathcal{M}_{i}}(p)). $$

距离 $d(p,\Pi_{\mathcal{M}_{i}}(p))$ 被定义为每个球体 $m^{(j)}$（半径为 $r^{(j)}$，中心位于 $c^{(j)}$）到该点的距离，计算公式如下：

 $$ d(p,m^{(j)})=\mathbf{a b s}(\|p-c^{(j)}\|_{2}-r^{(j)}) $$

最终取所有球体中的最小值作为结果：

 $$ d(p,\Pi_{\mathcal{M}_{i}}(p))=\operatorname*{m i n}_{j}d(p,m^{(j)}). $$

多视角一致性项 $L_{multiview}$ 提供了来自多个视角的监督信息，从而缓解了手部频繁自遮挡所引发的歧义和误差。训练时我们假设采用校准好的多摄像头系统，并通过两种方式保证各视角间的一致性。首先，如图3所示，我们将从视角 $v_i$ 估算出的球体中心投影到视角 $v_j$，并针对视角 $L_{d2m}$ 采集到的深度图来计算 $L_{m2d}$ 和 $v_j$。为了进一步整合不同视角的估算结果，我们定义了额外的多视角项：

 $$ L_{\mathrm{m u l t i v i e w}}(\theta)=\sum_{i}\sum_{j}\sum_{v}\|T_{v}(c_{i}^{(j,v)})-\bar{c}_{i}^{(j)}\|_{2}^{2}, $$

其中，$c_i^{(j,v)}$ 是根据包含 $j^{\text{th}}$ 相机的 $i^{\text{th}}$ 深度图所估算出的 $v^{\text{th}}$ 球体的中心位置。$T_v(\cdot)$ 负责将视图 v 中的点投影到规范坐标系中，而 $\tilde{c}_i^{(j)}$ 则是在规范坐标系中由多视图估算结果得出的鲁棒平均值。这种鲁棒平均值 $\tilde{c}_i^{(j)}$ 可以是中位数，也可以是基于方差最小的热图所选定的 $c_i^j$。初步测试表明这两种策略的效果相当，因此我们在实验中采用了中位数。相比之下，直接对多个视图的结果取平均值会导致性能下降，因为均值对异常值较为敏感。

#### 3.4.2 先验项

由于我们缺少骨骼模型，因此无法施加诸如关节角度范围之类的传统运动学约束。作为替代方案，我们采用数据驱动的方法，促使估计的球体位置能够形成符合运动学要求的姿态。更具体地说，我们应用一个$vae\ term L_{vae}$，其目标是最大化似然下界。

---

该下界与手部姿态配置相关。由于球体位置本质上仅占据一个子空间，我们针对估计的球心训练一个变分自编码器（VAE）[^17]，以学习这个潜在空间。VAE的姿态训练样本是由第3.3节中使用的相同运动学模型和采样策略生成的，因此属于无监督学习。我们使用标准的变分下界来确保估计的姿态参数位于已学习的子空间中，具体如下：

 $$ L_{\mathrm{v a e}}(\theta)=\sum_{i}E_{z\sim Q}[\log P\big(f(\mathcal{D}_{i}|\theta)|z\big)]-D_{\mathrm{K L}}[Q(z)||P(z)], $$

其中$f(\cdot|\theta)$是姿态估计网络。关于VAE中学习与推理的更多细节，请参阅[^17]。VAE会预先训练好，且在训练过程中其权重保持不变。

骨骼长度项$L_{bone\ length}$用于确保两根骨头的端点之间的距离保持不变：

 $$ L_{\mathrm{b o n e~l e n g t h}}=\sum_{i,j,k}\max(d_{i}^{j k}-l_{\max}^{j k},0)^{2}+\max(l_{\min}^{j k}-d_{i}^{j k},0)^{2}, $$

其中

 $$ d_{i}^{j k}=\|c_{i}^{(j)}-c_{i}^{(k)}\|_{2} $$

该式衡量的是根据$c_i^{(j)}$输入得到的估计端点$c_i^{(k)}$和$i^{\text{th}}$所计算的估计骨骼长度。$[l_{\min}^{jk}, l_{\max}^{jk}]$是基于不同骨骼尺寸预先定义的范围。

碰撞项$L_{\text{collision}}$会对$j^{\text{th}}$和$k^{\text{th}}$球体之间的自碰撞进行惩罚，具体如下：

 $$ L_{\mathrm{c o l l i s i o n}}=\sum_{i,j,k}\max(r^{(j)}+r^{(k)}-\|c_{i}^{(j)}-c_{i}^{(k)}\|_{2}^{2},0). $$

### 4. 实验

我们在NYU手部姿态数据集[^45]上评估我们的方法，该数据集目前是唯一公开的多视角深度数据集。该数据集由3台经过校准且同步的PrimeSense深度相机采集，包含$72757 \times 3$个训练帧和$8252 \times 3$个测试帧。NYU是一个具有广泛手部姿态覆盖范围的具有挑战性的数据集。我们仅使用真实标注来计算相机外参。此外，我们还合成了一个包含2万张深度图的数据集，用以评估训练好的网络对（新的）合成样本的泛化能力。

我们采用两个标准指标进行定量评估：所有关节和帧上的平均关节位置误差（单位：毫米），以及成功帧的百分比，即所有关节预测结果都在某一阈值内的帧数[^44]。图3展示了估计的手部姿态以及通过可微渲染器从其他视角渲染出的球体模型。默认情况下，我们报告的是使用单个堆叠式沙漏网络得到的结果。

需要注意的是，在我们的自监督场景中，训练集上的姿态估计误差与标准监督训练中的训练误差有本质区别。在自监督学习中，我们最小化的是数据拟合误差，该误差应与姿态估计精度相关，但并不能保证较低的误差会带来更精确的姿态估计。

#### 4.1. 仅使用合成数据进行训练

我们首先评估仅用合成数据训练出的网络对新合成样本以及真实深度图的泛化能力。表1（synth，synth（测试集上测试））和图5（青色虚线）显示，该网络对未见过的合成样本具有极高的准确性；78%的帧最大误差小于20毫米，平均关节误差仅为6.76毫米。然而，当在真实世界深度图上测试时，其准确性会急剧下降——平均关节误差几乎增至四倍，达到27.85毫米。如果我们给合成深度图添加随机噪声（synth，aug. with noise），则可将平均关节误差降至22.65毫米。这表明神经网络很容易过度拟合某些局部模式；我们推测这很可能是合成深度图中的光栅化伪影所致。我们将用添加了噪声的合成深度图训练出的网络作为本节后续实验的初始网络。

#### 4.2. 消融研究

多视角监督的影响。多个视角在自监督中能起到多大作用呢？我们首先设计了一个单视角基线（图6和表1中标注为100%单视角），该基线不包含多视角一致性项，也不将姿态估计投影到其他视角。由于我们在衡量多视角一致性时使用中位数作为稳健平均值（见公式12），因此仅使用2个视角的情况并不适用。在后续的实验中，我们将使用3个视角、所有先验项以及数据拟合损失$L_{m2d}$和$L_{d2m}$的设置称为“多视角”。

与在多视角设置下训练的结果相比（图6和表1中标注为100%多视角），无论是平均关节误差还是误差阈值低于50毫米的成功帧比例均出现下降。这一基线表明，当前单目设置下的自监督策略不足以解决手部自遮挡问题——这种遮挡情况可能相当严重。不过与最初用合成数据训练的结果相比，仍有显著改善。平均误差从22.65毫米降至17.79毫米（见表1），这验证了单视角自监督项的有效性。

要求采用多视角设置会限制数据采集场景；它无法应用于以自我为中心的视角，当用户在大范围内移动时也难以实施。这

---

![Image](images/51c9592b25c221652947fc6f2350ebbf15ab31f74b50110d3e2535054bbeb2b6.jpg)

<div style="text-align: center;">(a)</div>

<div style="text-align: center;">(b)</div>

<div style="text-align: center;">Figure 3. Qualitative results. (a) Success cases. 3 right columns: estimated poses rendered from different viewpoints by the differentiable renderer. (b) Failure cases. 3 right columns: rendered estimates (top rows) from different views and corresponding depth map</div>

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

<div style="text-align: center;">(a)</div>

<div style="text-align: center;">(b)</div>

<div style="text-align: center;">(c)</div>

<div style="text-align: center;">(d)</div>

<div style="text-align: center;">Figure 4. Synthesized depth maps. (a) Synthesized depth map from polygonal mesh (Sec. 3.3); (b) Synthesized depth maps augmented with random noise; (c) Estimation of unseen synthesized depth maps; (d) Estimation of real depth maps. The network is trained with synthesized data augmented with noise in (c) and (d).</div>

![Image](images/9fd0c7cc3e89a0198c32d6cfb33a8becd9b73c064fabda10f1007bf40e5d144b.jpg)

<div style="text-align: center;">Figure 5. Impact of training data. Percentage of successful frames with different error thresholds, trained on different training set. The “synth (test on synth)” is tested on a 20k synthetic dataset and the rest methods are all tested on the NYU[^45] test set.</div>

引出了一个问题：我们能否设计出一种更灵活的学习方案，同时利用多视角和单视角深度图？为此，我们采用了这样一个数据集：其中前半部分包含多个视角，后半部分仅有单视角，并将其应用于另外两个基线。第一个基线仅在前半部分（50%多视角）上训练，第二个基线则在两部分数据上训练（50%多视角 + 50%单视角）。如图6所示，额外的单视角训练数据可将误差阈值在20毫米以内的成功帧比例从22.5%提升至35.0%，并将平均误差从13.77毫米降至13.33毫米。

我们得出结论：在自监督中，多视角设置对于解决（自身）遮挡问题至关重要。同时，我们的单视角自监督项有助于提高准确性，为无法从多个视角采集数据的场景提供了灵活性。

先前各项约束条件的影响。我们通过在不使用$L_{vae}$（“无VAE损失”）、$L_{collision}$（“无碰撞损失”）以及$L_{bone\ length}$（“无骨骼长度损失”）项的情况下训练并测试网络，来研究这三项先验约束各自的作用。图7显示，若不对估计姿态施加任何这些先验约束，成功帧的百分比会显著下降，尤其是在误差阈值为20毫米到40毫米的范围内。这一结果验证了各先验约束在确保姿态估计符合运动学可行性方面的作用。如表1所示，相应的关节位置平均误差也会类似地增大。有趣的是，缺少$L_{bone\ length}$时姿态估计的效果更差。

---

![Image](images/a5c38ac1dcaf4d6706843857cee96794ab8938bcf3848d9ef9a875306dadd9ed.jpg)

<div style="text-align: center;">Figure 6. Impact of multi-view supervision. Percentage of successful frames within different error thresholds, trained on different training set. All methods are tested on the NYU [^45] test set.</div>

即便姿态仍受$L_{vae}$的约束也是如此。理论上，训练得到的VAE应该已经将骨骼长度约束编码为先验的一部分。这表明仅靠$L_{vae}$项不足以保证运动学可行性。不过我们需指出，当前的先验约束仅仅是先验而已；它们无法保证姿态估计一定满足严格的运动学约束，例如同一受试者的骨骼长度恒定，或者关节角度不超出预设范围。若需满足这些要求，可将逆运动学作为后处理步骤添加进来 [^45] [^52]。

训练数据的变化。我们通过两个基准实验来探究不同训练数据对最终网络性能的影响。首先，我们仅用$8252 \times 3$测试样本进行训练，以检验自监督学习是否会让网络过度拟合训练数据。接着，我们采用测试样本与训练样本相结合的方式进行训练。最后，我们将这两种设置与传统的基准方案进行比较，即按照原先划分的训练集和测试集进行训练和测试。

有趣的是，仅用测试样本直接训练得到的关节位置平均误差，比用训练样本训练时的误差更大（测试集上的误差分别为14.53毫米和12.62毫米，见表1）。同样，在20毫米误差阈值下，成功帧的百分比仅为22.5%，而用训练样本训练时该比例可达40.7%（见图5）。我们将此归因于当前模型的拟合项以及基于反向传播的优化方式；仅依靠少量训练数据，它无法生成高精度的姿态估计结果。不过，随着训练数据量的增加，精度也会随之提升。这些优势足以证明，基于数据的自监督方法优于传统的基于模型的跟踪方法——后者是对每一帧独立优化的。果然，当采用训练集与测试集合并后的数据进行训练时，我们的性能进一步得到提升（提升幅度较小，因为新增数据仅占约10%），关节位置平均误差从12.62毫米降至12.31毫米，成功帧的百分比也从40.7%增至44.3%。

![Image](images/fccdbae784079f0190f305a603b2fcfe3597a22e909715410f21f7bf755c0290.jpg)

<div style="text-align: center;">Figure 7. Impact of prior terms. The percentage of successful frames with different error thresholds, trained with different prior terms. All methods are tested on the NYU [^45] test set.</div>

<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;'>Mean joint error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ours (100% multiple view)</td><td style='text-align: center; word-wrap: break-word;'>12.62 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>100% single view</td><td style='text-align: center; word-wrap: break-word;'>17.79 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>50% multi-view</td><td style='text-align: center; word-wrap: break-word;'>13.77 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>50% multi-view + 50% single view</td><td style='text-align: center; word-wrap: break-word;'>13.33 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>without vae loss</td><td style='text-align: center; word-wrap: break-word;'>14.17 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>without bone length loss</td><td style='text-align: center; word-wrap: break-word;'>14.56 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>without collision loss</td><td style='text-align: center; word-wrap: break-word;'>13.73 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>50% multi-view</td><td style='text-align: center; word-wrap: break-word;'>13.77 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>50% multi-view + 50% single view</td><td style='text-align: center; word-wrap: break-word;'>13.33 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>synth(aug. with noise)</td><td style='text-align: center; word-wrap: break-word;'>22.65 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>synth</td><td style='text-align: center; word-wrap: break-word;'>27.85 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>synt(test on synth)</td><td style='text-align: center; word-wrap: break-word;'>6.76 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>train on test</td><td style='text-align: center; word-wrap: break-word;'>14.53 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>train on test + train</td><td style='text-align: center; word-wrap: break-word;'>12.31 mm</td></tr></table>

<div style="text-align: center;">Table 1. Ablation study and self comparison. We report mean joint error averaged over all joints and frames.</div>

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

<div style="text-align: center;">Figure 8. Comparison to state-of-arts. We report the result on NYU $^{[45]}$ testing set and plot the percentage of frames in which all joints are below a threshold.</div>

#### 4.3. 与最先进方法的比较

据我们所知，我们首次将自身结果与唯一另一种无监督方法[^6]进行比较。与我们类似，[^6]也采用了CNN，并通过合成深度图对其网络进行预训练。

---

随后再进行基于模型拟合的微调。如图8所示，在误差阈值高于25毫米时，我们的网络在成功帧百分比方面的表现大幅优于[^6]。我们能取得更高的精度主要有两个原因：首先，我们的方法利用了FCN的优势，而[^6]直接回归关节角度；其次，他们的深度项（[^6]中的公式6）中不存在与深度图中无法解释的点相关的梯度，而我们则通过$L_{d2m}$来处理这类问题。

接下来，我们将我们的结果与采用真实标注数据进行训练的先进方法[^4] [^10] [^11] [^12] [^20] [^23] [^25] [^49] [^50] [^51] [^55]进行比较。令人惊讶的是，当阈值大于30毫米时，我们的结果在成功帧百分比方面优于所有上述方法。这再次验证了自监督学习的有效性，也支持了无需标签即可训练出鲁棒且精确的姿态估计系统的可能性。

我们当前模型的一个缺点是，在更严格的误差标准下，例如阈值为20毫米或更小的情况时，其精度不再能与最先进的方法相媲美。我们将此归因于两个原因。首先，仅用球体来近似手部表面是不够的，无法捕捉到更小的拟合误差。为了提高精度，需要使用更精细的模型，比如更个性化的手部网格模型，不过这会带来更大的计算开销[^2] [^15]。其次，当前的先验项由于没有施加严格的运动学约束，可能会导致关节处出现微小偏移。

从平均关节位置误差的角度来看，我们的方法仍不及当前最先进的方法。不过我们注意到，作为平均值的关节误差可能存在轻微偏差，因为某些关节的估计难度更低。手指根部、手掌中心和手腕对较大偏移的敏感度低于指尖，尽管在实际应用中指尖对于良好的用户体验更为关键。实际上，我们的指尖误差分别为11.77毫米（ ours）和12.39毫米（ ours stack=2），这一数值甚至高于包含关节根部、手掌中心和手腕在内的平均关节误差（12.26毫米（ ours）/ 12.62毫米（ ours stack=2））。

目前，[^31]报告了迄今为止最高的精度（详见表2），他们采用了领域适应技术，将合成数据与带标签的真实数据结合起来。这种技术与我们提出的自监督策略相辅相成；二者结合有望进一步提升姿态估计的精度。

### 5. 结论

我们提出了一种基于单张深度图的三维手部姿态估计自监督方法。该方法无需任何人工标注，却能生成高精度估计结果，其性能可与当前有监督的最先进方法相媲美。我们将姿态估计网络的训练损失定义为数据拟合误差，其中手部表面是用一组球体来近似表示的。通过

<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;'>mean joint error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ours (stack = 1)</td><td style='text-align: center; word-wrap: break-word;'>12.6 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ours (stack = 2)</td><td style='text-align: center; word-wrap: break-word;'>12.3 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FeatureMapping [^31]</td><td style='text-align: center; word-wrap: break-word;'>7.4 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>V2V [^20]</td><td style='text-align: center; word-wrap: break-word;'>8.4 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Point-to-Point[^11]</td><td style='text-align: center; word-wrap: break-word;'>9.0 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DenseReg [^50]</td><td style='text-align: center; word-wrap: break-word;'>10.2 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DeepPrior++ [^23]</td><td style='text-align: center; word-wrap: break-word;'>12.2 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pose-REN [^4]</td><td style='text-align: center; word-wrap: break-word;'>11.8 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ren [^12]</td><td style='text-align: center; word-wrap: break-word;'>12.7 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3DCNN [^10]</td><td style='text-align: center; word-wrap: break-word;'>14.1 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Lie-X [^51]</td><td style='text-align: center; word-wrap: break-word;'>14.5 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>CrossingNet [^49]</td><td style='text-align: center; word-wrap: break-word;'>15.5 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Feedback [^25]</td><td style='text-align: center; word-wrap: break-word;'>15.9 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DeepModel [^55]</td><td style='text-align: center; word-wrap: break-word;'>17.0 mm</td></tr></table>

<div style="text-align: center;">Table 2. Comparison with state-of-the-art. Mean joint error averaged over all joints and frames. All methods are tested on the NYU $^{[45]}$ test set.</div>

直接将姿态参数化为球体中心，我们的方法既发挥了全卷积网络的优势，又避免了直接角度回归带来的难题。除了数据项外，我们还引入了先验项，包括来自训练好的变分自编码器的数据驱动项，以鼓励运动学上的合理性。

借助我们的模型，我们能够同时受益于无需监督的基于模型的跟踪方法，以及数据驱动的方法——后者即便没有标签，只要训练数据越多，精度也会稳步提升。未来，我们希望将这种无监督方法与领域适应技术相结合，利用现有的标注数据进一步提精度。

致谢：作者衷心感谢苏黎世联邦理工学院计算机视觉实验室的经费支持、中国国家留学基金委以及新加坡教育部学术研究基金一级项目的资助。

## 参考文献

[^1]: S. Baek, K. I. Kim, and T.-K. Kim. Augmented skeleton space transfer for depth-based hand pose estimation. In CVPR, 2018.

[^2]: L. Ballan, A. Taneja, J. Gall, L. Van Gool, and M. Pollefeys. Motion capture of hands in action using discriminative salient points. In ECCV, 2012.

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

[^4]: X. Chen, G. Wang, H. Guo, and C. Zhang. Pose guided structured region ensemble network for cascaded hand pose estimation. arXiv preprint arXiv:1708.03416, 2017.

## [^5]: X. Chen, G. Wang, C. Zhang, T.-K. Kim, and X. Ji. SHPR-Net: Deep semantic hand pose regression from point clouds. IEEE Access, 6:43425–43439, 2018

---

[^6]: E. Dibra, T. Wolf, C. Oztireli, and M. Gross. How to refine 3d hand pose estimation from unlabelled depth data? In 3D Vision (3DV), 2017.

[^7]: C. Doersch, A. Gupta, and A. A. Efros. Unsupervised visual representation learning by context prediction. In ICCV, 2015.

[^8]: X. Dong, S.-I. Yu, X. Weng, S.-E. Wei, Y. Yang, and Y. Sheikh. Supervision-by-registration: An unsupervised approach to improve the precision of facial landmark detectors. In CVPR, 2018.

[^9]: L. Ge, Y. Cai, J. Weng, and J. Yuan. Hand PointNet: 3D hand pose estimation using point sets. In CVPR, 2018.

[^10]: L. Ge, H. Liang, J. Yuan, and D. Thalmann. 3D convolutional neural networks for efficient and robust hand pose estimation from single depth images. In CVPR, 2017.

[^11]: L. Ge, Z. Ren, and J. Yuan. Point-to-point regression point-net for 3d hand pose estimation. ECCV, 2018.

[^12]: H. Guo, G. Wang, X. Chen, C. Zhang, F. Qiao, and H. Yang. Region ensemble network: Improving convolutional network for hand pose estimation. In ICIP, 2017.

[^13]: S. Han, B. Liu, R. Wang, Y. Ye, C. D. Twigg, and K. Kin. Online optical marker-based hand tracking with deep labels. ACM Transactions on Graphics (TOG), 2018.

[^14]: U. Iqbal, P. Molchanov, T. Breuel, J. Gall, and J. Kautz. Hand pose estimation via latent 2.5D heatmap regression. In ECCV, 2018.

[^15]: D. Joseph Tan, T. Cashman, J. Taylor, A. Fitzgibbon, D. Tarlow, S. Khamis, S. Izadi, and J. Shotton. Fits like a glove: Rapid and reliable hand shape personalization. In CVPR, 2016.

[^16]: A. Kanazawa, M. J. Black, D. W. Jacobs, and J. Malik. End-to-end recovery of human shape and pose. In CVPR, 2018.

[^17]: D. P. Kingma and M. Welling. Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114, 2013.

[^18]: G. Larsson, M. Maire, and G. Shakhnarovich. Colorization as a proxy task for visual understanding. In CVPR, 2017.

[^19]: D. Mehta, S. Sridhar, O. Sotnychenko, H. Rhodin, M. Shafiei, H.-P. Seidel, W. Xu, D. Casas, and C. Theobalt. VNect: real-time 3D human pose estimation with a single rgb camera. 2017.

[^20]: G. Moon, J. Y. Chang, and K. M. Lee. V2V-PoseNet: voxel-to-voxel prediction network for accurate 3D hand and human pose estimation from a single depth map. In CVPR, 2018.

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

[^22]: A. Newell, K. Yang, and J. Deng. Stacked hourglass networks for human pose estimation. In ECCV, 2016.

[^23]: M. Oberweger and V. Lepetit. Deepprior++: Improving fast and accurate 3d hand pose estimation. In ICCV workshop, 2017.

[^24]: M. Oberweger, G. Riegler, P. Wohlhart, and V. Lepetit. Efficiently creating 3D training data for fine-hand pose estimation. In CVPR, 2016.

[^25]: M. Oberweger, P. Wohlhart, and V. Lepetit. Training a feedback loop for hand pose estimation. In ICCV, 2015.

[^26]: A. Owens, J. Wu, J. H. McDermott, W. T. Freeman, and A. Torralba. Ambient sound provides supervision for visual learning. In ECCV, 2016.

[^27]: D. Pathak, R. B. Girshick, P. Dollár, T. Darrell, and B. Hariharan. Learning features by watching objects move. In CVPR, 2017.

[^28]: G. Poier, M. Opitz, D. Schinagl, and H. Bischof. MU-RAUER: Mapping unlabeled real data for label austerity. In WACV, 2019.

[^29]: G. Poier, D. Schinagl, and H. Bischof. Learning pose specific representations by predicting different views. In CVPR, 2018.

[^30]: C. Qian, X. Sun, Y. Wei, X. Tang, and J. Sun. Realtime and robust hand tracking from depth. In CVPR, 2014.

[^31]: M. Rad, M. Oberweger, and V. Lepetit. Feature mapping for learning fast and accurate 3D pose inference from synthetic images. In CVPR, 2018.

[^32]: H. Rhodin, J. Spörri, I. Katircioglu, V. Constantin, F. Meyer, E. Müller, M. Salzmann, and P. Fua. Learning monocular 3D human pose estimation from multi-view images. In CVPR, 2018.

[^33]: T. Sharp, C. Keskin, D. Robertson, J. Taylor, J. Shotton, D. Kim, C. Rhemann, I. Leichter, A. Vinnikov, Y. Wei, et al. Accurate, robust, and flexible real-time hand tracking. In Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems, 2015.

[^34]: A. Shrivastava, T. Pfister, O. Tuzel, J. Susskind, W. Wang, and R. Webb. Learning from simulated and unsupervised images through adversarial training. In CVPR, 2017.

[^35]: T. Simon, H. Joo, I. A. Matthews, and Y. Sheikh. Hand key-point detection in single images using multiview bootstrapping. In CVPR, 2017.

[^36]: A. Spurr, J. Song, S. Park, and O. Hilliges. Cross-modal deep variational hand pose estimation. In CVPR, 2018.

[^37]: S. Sridhar, F. Mueller, A. Oulasvirta, and C. Theobalt. Fast and robust hand tracking using detection-guided optimization. In CVPR, 2015.

[^38]: S. Sridhar, A. Oulasvirta, and C. Theobalt. Interactive markerless articulated hand motion tracking using RGB and depth data. In ICCV, 2013.

[^39]: S. Sridhar, H. Rhodin, H.-P. Seidel, A. Oulasvirta, and C. Theobalt. Real-time hand tracking using a sum of anisotropic gaussians model. In 3D Vision (3DV), 2014.

[^40]: X. Sun, Y. Wei, S. Liang, X. Tang, and J. Sun. Cascaded hand pose regression. In CVPR, 2015.

[^41]: X. Sun, B. Xiao, S. Liang, and Y. Wei. Integral human pose regression. In ECCV, 2018.

[^42]: S. Suwajanakorn, N. Snavely, J. Tompson, and M. Norouzi. Discovery of latent 3D keypoints via end-to-end geometric reasoning. In NIPS, 2018.

[^43]: D. Tang, J. Taylor, P. Kohli, C. Keskin, T.-K. Kim, and J. Shotton. Opening the black box: Hierarchical sampling optimization for estimating human hand pose. In ICCV, 2015.

## [^44]: J. Taylor, J. Shotton, T. Sharp, and A. Fitzgibbon. The vitruian manifold: Inferring dense correspondences for one-shot human pose estimation. In CVPR, 2012

---

[^45]: J. Tompson, M. Stein, Y. Lecun, and K. Perlin. Real-time continuous pose recovery of human hands using convolutional networks. ACM Transactions on Graphics (ToG).

[^46]: S. Tulsiani, A. A. Efros, and J. Malik. Multi-view consistency as supervisory signal for learning shape and pose prediction. CVPR, 2018.

[^47]: S. Tulsiani, T. Zhou, A. A. Efros, and J. Malik. Multi-view supervision for single-view reconstruction via differentiable ray consistency. In CVPR, 2017.

[^48]: C. Vondrick, A. Shrivastava, A. Fathi, S. Guadarrama, and K. Murphy. Tracking emerges by colorizing videos. In ECCV, 2018.

[^49]: C. Wan, T. Probst, L. Van Gool, and A. Yao. Crossing nets: Combining gans and vaes with a shared latent space for hand pose estimation. In CVPR, 2017.

[^50]: C. Wan, T. Probst, L. Van Gool, and A. Yao. Dense 3D regression for hand pose estimation. In CVPR, 2018.

[^51]: C. Xu, L. N. Govindarajan, Y. Zhang, and L. Cheng. Lie-X: Depth image based articulated object pose estimation, tracking, and action recognition on lie groups. International Journal of Computer Vision (IJCV), 123(3):454–478, 2017.

[^52]: Q. Ye, S. Yuan, and T.-K. Kim. Spatial attention deep net with partial pso for hierarchical hybrid hand pose estimation. In ECCV, 2016.

[^53]: S. Yuan, Q. Ye, B. Stenger, S. Jain, and T.-K. Kim. Big-Hand2.2M benchmark: Hand pose dataset and state of the art analysis. In CVPR, 2017.

[^54]: J. Zhang, J. Jiao, M. Chen, L. Qu, X. Xu, and Q. Yang. A hand pose tracking benchmark from stereo matching. In ICIP, 2017.

[^55]: X. Zhou, Q. Wan, W. Zhang, X. Xue, and Y. Wei. Model-based deep hand pose estimation. In IJCAI, 2016.
