
# DeepPrior++：提升快速且精准的3D手部姿态估计性能

Markus Oberweger $^{1}$ Vincent Lepetit $^{1,2}$

 $^{1}$奥地利格拉茨技术大学计算机图形与视觉研究所  

 $^{2}$法国波尔多大学波尔多计算机科学研究所

{oberweger, lepetit}@icg.tugraz.at

## 摘要

DeepPrior [^18]是一种基于深度学习的简单方法，能够根据深度图预测手部的关节3D位置。自2015年初发表以来，它已被多项出色的研究成果超越。本文表明，通过简单的改进——添加ResNet层、数据增强以及更优的初始手部定位方式，我们在三个主要基准数据集（NYU、ICVL、MSRA）上取得了与近期更复杂的方法相当甚至更好的性能，同时仍保留了原始方法的简洁性。我们的新实现可在<https://github.com/moberweger/deep-prior-pp>获取。

### 1. 引言

精准的手部姿态估计是许多人机交互或增强现实任务的重要需求，因此受到了计算机视觉研究界的广泛关注 [^9] [^10] [^16] [^20] [^21] [^34] [^36] [^43]。即便使用结构光或飞行时间传感器等3D设备，这一任务依然极具挑战性，因为手部具有多个自由度，且在图像中会出现自身相似性和遮挡现象。

3D手部姿态估计的一种常用方法是DeepPrior，由[^18]提出。DeepPrior是一种基于深度网络的方法，以单张深度图像为输入，直接预测手部骨骼的3D关节位置。DeepPrior的核心思想是将通过主成分分析（PCA）计算得到的3D手部姿态先验显式地融入卷积神经网络中。这种方法提供了一种简单、精准且快速的3D手部姿态估计方案。

自原始论文发表以来，机器学习和深度神经网络领域取得了巨大进展。我们利用该领域的最新成果对原始方法进行了更新，因此将该方法称为DeepPrior++。具体而言：

- 我们更新了模型架构，引入残差网络 [^7] 来提取特征图，从而让模型更强大；

- 我们改进了初始手部定位方法。在DeepPrior中，这一步是基于启发式规则的；而我们采用了经过训练的方法；

我们优化了训练流程，以便充分利用现有数据中的更多信息。

我们将带有这些改进的代码发布在<https://github.com/moberweger/deep-prior-pp>上，希望它能对业界有所帮助。

接下来，我们将在第3节简要回顾原始的DeepPrior方法，随后在第4节介绍我们的修改内容。第5节会对这些修改进行评估，并与公开基准数据集上的最先进方法进行比较。

### 2. 相关工作

关于手部姿态估计，已有大量早期研究成果，相关概述可参见[^3]。2015年，针对基准数据集上的多项研究进行的评估[^30]表明，DeepPrior在准确性和速度方面均达到了当时的最先进水平。此后该领域取得了巨大进展，在此我们简要回顾一下相关研究。我们对比了所有至少在一个主要基准数据集上采用常用误差指标报告结果的研究，这些数据集包括NYU [^40]、MSRA [^28]和ICVL [^34]。本节中这些研究均用星号$^{*}$标记。

许多近期的方法利用了手部运动树的层级结构。[^35]*沿着骨骼树推进，预测树内子关节的位置。类似地，[^44]（Lie-X）*会沿骨骼树预测修正初始姿态的更新量，并利用李代数对这些更新进行约束。Sun等人[^28]（HPR）*为每个手指在标准化坐标系中估算关节位置；[^25]则为每个手指配备独立的回归器，用以预测空间和时间特征，再通过最近邻算法将这些特征整合起来。[^46]则引入了一种针对每个关节专门设计的空间注意力机制。

---

此外还有额外的优化步骤来强化运动学约束。[^14]沿着运动树将手部划分为更小的子区域。[^45] $^{*}$为每个姿态预测手势类别，并为每个类别训练独立的姿态回归器。所有这些方法都需要多个预测器，每个关节或手指对应一个，通常还需要为算法的不同迭代过程配备额外的回归器。因此，需要训练和评估的回归模型数量从数十个到50多个不等。

为克服这一缺陷，有若干研究将运动学层级结构整合到单一的CNN结构中。Guo等人[^6]（REN）$^{*}$为输入特征的不同空间区域训练子网络集合；Madadi等人[^15] $^{*}$则采用树形CNN架构来预测运动树的不同部分。不过，这需要根据标注数据专门设计CNN架构。

针对输入深度图像也有不同的数据表示方式被提出。Deng等人[^2]（Hand3D）*将深度图像转换为3D体积，再利用3D CNN预测关节位置。但3D网络的计算效率较低[^23]。与之不同的是，[^42]*使用表面法线而非深度图像，但当前的深度传感器无法直接获取表面法线，因此会增加额外的计算开销。Neverova等人[^17]*将手部区域的分割与关节位置的回归相结合，但这种分割对传感器噪声较为敏感。

$[40]^{*}$没有直接预测3D关节位置，而是提出了一种预测不同关节2D热图的方法。$[5]^{*}$在此基础上进一步拓展，利用多个CNN从深度图像的不同投影中预测热图，每种投影都需要对应的CNN。此外，这些方法还需要复杂的后处理步骤，才能将运动学模型与热图相匹配。

Bouchacourt等人[^1]提出了一种概率框架（DISCO）$^{*}$，他们利用神经网络来学习手部姿态的后验分布，并可从该分布中采样。不过，实际操作中如何组合这些样本尚不清楚。Wan等人[^41]提出的Crossing Nets方法$^{*}$采用了两个生成网络，一个用于生成手部姿态，另一个用于生成深度图像，并学习这两个网络之间的共享映射关系，这一过程需要按照复杂的流程训练多个网络。

Oberweger等人[^19]提出的Feedback方法$^{*}$利用CNN合成手部的深度图像，再借助合成的深度图像来预测对初始手部姿态的更新。同样，这种方法也需要训练三个不同的网络。

Zhou等人[^48]提出的DeepModel方法$^{*}$将手部模型集成到CNN中，通过引入额外的一层来强制满足3D手部模型的物理约束，而这些约束需事先手动定义。

Fourre等人[^4]（JTSC）$^{*}$通过引入一种共享表示来利用来自不同数据集的不同注释，这一想法对于获取更多训练样本而言颇具价值，但在处理传感器特性时存在不足。

Zhang等人[^47] $^{*}$将姿态估计建模为一个多变量回归问题，不过该方法在运行时需要解决复杂的优化问题。

此外，基于生成模型的方法近年来也备受关注。尽管这类方法精度很高，但[^12] $^{*}$、[^26]、[^32] $^{*}$以及[^37] $^{*}$的研究都需要使用手部的3D模型，且该模型需根据用户手部特征进行调整[^26]、[^33] $^{*}$，同时在推理阶段还要运行复杂的优化程序。

与这些最新方法相比，我们的方法训练更简单、更快捷，架构更简洁，精度更高，且运行速度相当，即能达到实时处理水平。

### 3. 原始的DeepPrior

在本节中，我们将简要回顾原始的DeepPrior方法。更多细节可参见[^18]。

DeepPrior旨在从单张深度图像中估算3D手部关节位置。训练时需要一组标有3D关节位置的深度图像。

为了简化回归任务，DeepPrior首先进行手部的3D检测，进而估算包含手部的粗略3D边界框。按照[^34]的描述，DeepPrior假设手部是距离相机最近的物体，因此会从深度图中提取以该物体质心为中心的固定大小立方体。随后，将提取出的立方体缩放为$128 \times 128$大小的深度值块，并归一化到$[-1, 1]$。

对于那些没有深度信息的点——比如结构光传感器可能会出现这种情况——或者深度值超出立方体背面的范围，其深度值会被设为1。这种归一化处理在学习阶段至关重要，它能确保模型不受手部与相机之间距离差异的影响。

由于手部存在物理约束，不同3D关节位置之间具有很强的相关性。因此，DeepPrior并非直接预测3D关节位置，而是在低维空间中预测姿态参数。由于这种方法强制施加了手部姿态约束，从而提高了预测的可靠性。

如图1所示，DeepPrior通过将最后一层权重初始化为3D手部姿态数据PCA的主成分，从而将姿态先验融入网络结构。随后，整个网络通过标准反向传播算法进行训练。

---

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

<div style="text-align: center;">Figure 1: The network architecture for the original DeepPrior. C denotes a convolutional layer with the number of filters and the filter size inscribed, FC a fully-connected layer with the number of neurons, and P a max-pooling layer with the pooling size. The shown Multi-layer Network can be an arbitrary Neural Network, with an additional layer for the prior. DeepPrior introduces a pose prior by precomputing the weights of the last layer from a PCA applied to the 3D hand pose data.</div>

### 4. DeepPrior++

在本节中，我们将介绍对原始DeepPrior方法的改进，包括优化的训练数据增强、更精准的手部定位以及更强大的网络架构。关于实现层面的细节，请参阅相关代码。

#### 4.1. 优化的训练数据增强

由于我们的方法是数据驱动的，因此旨在充分利用现有数据中的尽可能多的信息。文献中已提出了多种数据增强方法[^13] [^40]，例如缩放、翻转、镜像、旋转等。在本研究中我们使用深度图像，这催生了特定的数据增强方法。具体来说，我们采用旋转、缩放和平移，以及它们的不同组合。

旋转：手部可以围绕前臂轻松旋转。这种旋转可以通过对深度图像进行简单的平面内旋转来近似实现。我们对图像施加随机的平面内旋转，并通过将3D标注投影到2D图像上、应用相同的平面内旋转，再将2D标注投影回3D坐标的方式来相应调整3D标注。旋转角度是从区间为$[-180^{\circ}, 180^{\circ}]$的均匀分布中采样的。

缩放：MSRA [^28]和NYU [^40]数据集包含不同个体，其手部大小和形状各异。尽管DeepPrior并非对尺度具有显式不变性，但我们可以通过在训练数据中改变裁剪区域的大小，来训练网络使其对手部大小具有不变性。因此，我们以均值为1、方差为0.02的正态分布中随机采样出的因子，来对从深度图像中裁剪出的区域的3D边界框进行缩放。这会改变裁剪立方体中手部的大小外观，我们也会根据这一随机因子来调整3D关节位置。

平移：由于手部3D定位并不完美，我们通过给手部3D位置添加随机3D偏移来扩充训练集，并将深度图像中的裁剪区域以这些3D位置为中心。我们从方差为5毫米的正态分布中采样随机偏移量，该数值与我们所用手部3D检测器的误差相当。我们也会根据这一偏移量修改3D标注。

在线增强：增强操作在训练期间在线进行，因此网络在每个训练轮次中看到的是不同的样本。这总共产生了超过1000万个不同的样本。这种增强有助于防止过拟合，并使模型对训练集中未出现过的手部偏差更具鲁棒性。尽管这些样本之间存在相关性，但正如实验所示，它在测试时仍能发挥显著作用。

鲁棒先验：同样，我们也改进了通过对3D手部姿态应用PCA得到的先验。我们通过随机对原始3D姿态进行旋转、缩放和平移，生成了100万个姿态样本。我们使用这组增强后的3D姿态来计算先验。

#### 4.2. 精细化的手部定位

最初的DeepPrior采用了非常简单的手部检测方法。该方法基于手部深度分割的质心来计算。具体来说，先通过深度阈值分割出手部区域，再计算出其三维质心，随后以该质心为中心提取一个三维边界框。

DeepPrior++仍然沿用这种方法，但引入了一个能够显著提升最终精度的优化步骤。这一优化步骤依赖于一个回归型CNN。该CNN被应用于以质心为中心的三维边界框上，训练目标是预测中指掌指关节（MCP关节）的位置，我们将其作为参考点。正如4.1节所述，我们还使用增强后的训练数据来训练这个CNN。

对于实时应用场景，我们无需从每一帧中提取质心，而是将这种回归型CNN应用于上一帧中的手部位置。这种方式在保证精度的同时，实际运行速度也更快。

---

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

<div style="text-align: center;">Figure 2: Our ResNet architecture. C denotes a convolutional layer with the number of filters and the filter size inscribed, FC a fully-connected layer with the number of neurons, D a Dropout layer with the probability of dropping a neuron, R a residual module with the number of filters and filter size, and P a max-pooling layer with the pooling region size. The hand crop from the depth image is fed to the ResNet that predicts the final 3D hand pose.</div>

#### 4.3. 更强大的网络架构

残差网络。自DeepPrior问世以来，学界对更优的深度架构开展了大量研究[^8] [^24] [^31]，其中残差网络（ResNet）架构[^8]似乎是目前性能最优的模型之一。

我们的模型与[^8]提出的50层ResNet模型类似。由于ResNet最初是为图像分类任务设计的，我们对其架构进行了调整以适应我们的回归问题。最关键的是，我们移除了全局平均池化层，并添加了两个全连接层。网络的输入为$128 \times 128$像素，数值已归一化到$[-1, 1]$范围。调整后的ResNet模型如图2所示。该网络包含一个初始卷积层，包含64个滤波器以及$2 \times 2$的最大池化操作。这个卷积层之后是四个残差模块，每个模块的步长均为$2 \times 2$，滤波器数量为$\{64, 128, 256, 256\}$。

用于精细化手部定位的简单得多的模型如图3所示。它由三个带最大池化操作的卷积层，以及两个带Dropout的全连接层组成。

我们使用梯度下降算法ADAM[^11]来优化网络参数，采用标准超参数，学习率设为0.0001，训练共进行100个周期。

基于Dropout的正则化。ResNet模型容易出现过拟合现象，我们在手部姿态变化较小的数据集上尤其观察到了这种情况[^34]。因此，我们在模型中引入了Dropout[^27]，事实证明这是正则化神经网络的有效方法。我们在残差模块之后的两个全连接层上应用dropout率为0.3的二元Dropout操作。这种方式既能训练出容量较大的ResNet模型，又能避免过拟合，从而实现高精度的预测结果。

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

<div style="text-align: center;">Figure 3: The network architecture used for refining hand localization. As in Fig. 2, C denotes a convolutional layer, FC a fully-connected layer, D a Dropout layer, and P a max-pooling layer. The initial hand crop from the depth image is fed to the network that predicts an offset to correct an inaccurate hand localization.</div>

### 5. 评估

我们在三个公开的手部姿态估计基准数据集上对DeepPrior++方法进行了评估：NYU数据集[^40]、ICVL数据集[^34]和MSRA数据集[^28]。在与其他方法的对比中，我们重点关注那些发表于原始DeepPrior论文之后的研究成果。文献中针对手部姿态估计采用了不同的评估指标，我们直接引用论文中给出的数值，或根据提供的图表测量得出相应数值，同时也会绘制相关图表以便对比。

在所有实验中，我们均报告了基于30维PCA先验的结果。通过采用高效的数据增强实现方式，所有实验的训练时间保持一致，在配备Intel i7处理器（3.2GHz）、64GB内存以及Nvidia GTX 980 Ti显卡的计算机上，训练时间约为10小时。

#### 5.1. 评估指标

我们使用两种不同的指标来评估精度：

- 首先，我们以平均3D关节误差来衡量3D手部姿态估计的精度。这是文献中最常用的指标，因其评估简便，便于与其他研究进行对比。

作为第二种更具挑战性的指标，我们统计所有预测关节与真实值之间的欧几里得距离低于给定阈值的帧数占比[^38]。

#### 5.2. NYU数据集

NYU数据集[^40]包含超过72,000帧训练数据和8,000帧测试数据，均为多视角RGB-D数据。该数据集是通过结构光传感器采集的，因此深度图中存在缺失值以及噪声边缘。

---

这使得该数据集极具挑战性。在我们的实验中，仅使用单个摄像头采集的深度数据。该数据集标注准确，且包含多种不同的姿态变化。训练集来自单一用户，测试集则来自两名不同用户。我们遵循既定的评估协议[^18] [^40]，并使用14个关节来计算相关指标。

我们的结果如表1所示，同时也与当前最先进的方法进行了对比。我们将DeepPrior++与几种相关方法进行比较，发现其性能显著优于其他方法。

<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;'>Average 3D error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Oberweger et al. [^18] (DeepPrior)</td><td style='text-align: center; word-wrap: break-word;'>19.8mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Oberweger et al. [^19] (Feedback)</td><td style='text-align: center; word-wrap: break-word;'>16.2mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Deng et al. [^2] (Hand3D)</td><td style='text-align: center; word-wrap: break-word;'>17.6mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Guo et al. [^6] (REN)</td><td style='text-align: center; word-wrap: break-word;'>13.4mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Bouchacourt et al. [^1] (DISCO)</td><td style='text-align: center; word-wrap: break-word;'>20.7mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Zhou et al. [^48] (DeepModel)</td><td style='text-align: center; word-wrap: break-word;'>16.9mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Xu et al. [^44] (Lie-X)</td><td style='text-align: center; word-wrap: break-word;'>14.5mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Neverova et al. [^17]</td><td style='text-align: center; word-wrap: break-word;'>14.9mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Wan et al. [^41] (Crossing Nets)</td><td style='text-align: center; word-wrap: break-word;'>15.5mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Fourre et al. [^4] (JTSC)</td><td style='text-align: center; word-wrap: break-word;'>16.8mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Zhang et al. [^47]</td><td style='text-align: center; word-wrap: break-word;'>18.3mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Madadi et al. [^15]</td><td style='text-align: center; word-wrap: break-word;'>15.6mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>This work (DeepPrior++)</td><td style='text-align: center; word-wrap: break-word;'>12.3mm</td></tr></table>

<div style="text-align: center;">Table 1: Comparison with state-of-the-art on the NYU dataset [^40]. We report the average 3D error in mm. DeepPrior++ significantly performs better than all other methods for this dataset.</div>

在图4中，我们将所提方法与其它判别性方法进行了比较。尽管Supancic等人[^30]在部分帧上取得了非常精确的结果，但我们的方法在大多数帧上的表现明显更优。

在图5中，我们采用不同的评估协议对最先进的方法进行了比较，即遵循[^32] [^37]的协议，评估测试集的前2,400帧。针对该协议，我们的性能也显著优于Taylor等人[^37]提出的最先进方法。需要注意的是，[^32] [^33] [^37]需要依赖可能针对特定用户的3D手部模型，而我们的方法仅利用训练数据，无需任何3D模型。

#### 5.3. ICVL数据集

ICVL数据集[^34]包含超过180,000帧训练数据，涵盖了各种手部姿态。测试集包含两个序列，每个序列约700帧。该数据集是通过飞行时间相机采集的，有16个标注关节。深度图像质量较高，几乎没有缺失的深度值，

![Image](images/cbc6b9582ac0189a42a3c7d07e8e65d29aa193cb82df824a557269d4ee1ec789.jpg)

<div style="text-align: center;">Figure 4: Comparison with state-of-the-art discriminative methods on the NYU dataset [^40]. We plot the fraction of frames where all joints are within a maximum distance from the ground truth. A larger area under the curve indicates better results. Our proposed approach performs best among other discriminative methods. (Best viewed in color)</div>

![Image](images/b4936b9feffb0bd606cc739e379f4cec722e2a06aef5b636d98708b26e7f8b97.jpg)

<div style="text-align: center;">Figure 5: Comparison with state-of-the-art model-based methods on the NYU dataset [^40]. We plot the fraction of frames where the average joint error per frame is within a maximum distance from the ground truth, following the protocol of [^32] [^37]. A larger area under the curve indicates better results. Our proposed approach even outperforms model-based approaches on this dataset, with more than 90% of the frames with an error smaller than 10mm. (Best viewed in color)</div>

且边缘清晰、噪声极少。尽管作者提供了不同的人工旋转训练样本，但我们

---

仅从原始的22,000帧数据出发，并应用第4.1节所述的数据增强方法。不过，与其他数据集相比，该数据集的姿态变化较为有限[^28] [^40]，且如[^18] [^30]中所讨论的，其标注准确性也较差。

我们在表2中展示了与不同最先进方法的对比结果。同样，我们的方法展现了最先进的精度。不过，与其他方法的差距要小得多。这可能是因为该数据集较为简单，姿态变化较小[^30]，同时也由于评估时标注存在误差[^18] [^30]。

<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;'>Average 3D error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Oberweger et al. [^18] (DeepPrior)</td><td style='text-align: center; word-wrap: break-word;'>10.4mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Deng et al. [^2] (Hand3D)</td><td style='text-align: center; word-wrap: break-word;'>10.9mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Tang et al. [^34] (LRF)</td><td style='text-align: center; word-wrap: break-word;'>12.6mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Wan et al. [^42]</td><td style='text-align: center; word-wrap: break-word;'>8.2mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Zhou et al. [^48] (DeepModel)</td><td style='text-align: center; word-wrap: break-word;'>11.3mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Sun et al. [^28] (HPR)</td><td style='text-align: center; word-wrap: break-word;'>9.9mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Wan et al. [^41] (Crossing Nets)</td><td style='text-align: center; word-wrap: break-word;'>10.2mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Fourure et al. [^4] (JTSC)</td><td style='text-align: center; word-wrap: break-word;'>9.2mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Krejov et al. [^12] (CDO)</td><td style='text-align: center; word-wrap: break-word;'>10.5mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>This work (DeepPrior++)</td><td style='text-align: center; word-wrap: break-word;'>8.1mm</td></tr></table>

<div style="text-align: center;">Table 2: Comparison with state-of-the-art on the ICVL dataset [^34]. We report the average 3D error in mm.</div>

在图6中，我们将DeepPrior++与其他方法在ICVL数据集上的表现进行了对比[^34]。我们的方法与Guo等人[^6]、Wan等人[^42]以及Tang等人[^35]的研究结果相近，均在该数据集上取得了最先进的精度。这或许表明该数据集上的性能已趋于饱和，剩余的误差源于注释的不确定性。这一实证发现与[^30]中的讨论一致。尽管Tang等人[^35]在图6的某些曲线段上表现略好，但如图5所示，我们的方法在NYU数据集上的表现明显更优。

#### 5.4. MSRA数据集

MSRA数据集[^28]包含约76k帧深度图像，是由飞行时间相机采集的。该数据集涵盖了9名不同受试者的序列。我们遵循常规的评估协议[^5] [^29] [^41]，采用留一法交叉验证：用8名受试者的数据训练模型，并在剩余的一名受试者数据上评估。我们对每位受试者重复此过程，最终报告多次运行的平均误差。

表3展示了平均3D误差的对比结果。同样，DeepPrior++以3毫米的巨大优势超越了现有方法。在图7中，DeepPrior++在所列出的指标上也优于所有其他方法。

![Image](images/166c26c0b56af146a8a5818aa6ef357441a714cbc65815bd90761be6262dfd32.jpg)

<div style="text-align: center;">Figure 6: Comparison with state-of-the-art on the ICVL dataset [^34]. We plot the fraction of frames where all joints are within a maximum distance from the ground truth. Several works show a similar error curve, which can be an indicator for saturating performance for this dataset. (Best viewed in color)</div>

<div style="text-align: center;">which shows that it is also able to handle different users' hands.</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;'>Average 3D error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ge et al. [^5]</td><td style='text-align: center; word-wrap: break-word;'>13.2mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Sun et al. [^28] (HPR)</td><td style='text-align: center; word-wrap: break-word;'>15.2mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Wan et al. [^41] (CrossingNets)</td><td style='text-align: center; word-wrap: break-word;'>12.2mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Yang et al. [^45]</td><td style='text-align: center; word-wrap: break-word;'>13.7mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>This work (DeepPrior++)</td><td style='text-align: center; word-wrap: break-word;'>9.5mm</td></tr></table>

<div style="text-align: center;">Table 3: Comparison with state-of-the-art on the MSRA dataset [^28]. We report the average 3D error in mm. DeepPrior++ significantly performs better than all other methods for this dataset.</div>

#### 5.5. 消融实验

我们开展了额外的实验以验证各项改进的贡献。我们在NYU数据集上评估这些改进[^40]，因为该数据集的标注最为准确，姿态多样，且有两名单独的评估用户。

#### 5.5.1 训练数据增强

为了评估训练过程的贡献，我们测试了不同的数据增强方案。

---

![Image](images/c17731c5540ccb7a7155181237de33a932128130acbc62d30c8c47d158ea42e0.jpg)

<div style="text-align: center;">Figure 7: Comparison with state-of-the-art on the MSRA dataset [^28]. We plot the fraction of frames where all joints are within a maximum distance from the ground truth. A larger area under the curve indicates better results. Our approach significantly outperforms current state-of-the-art discriminative approaches on this dataset. (Best viewed in color)</div>

表4展示了相关结果。使用数据增强后，精度提升了超过7毫米。最重要的是，对手部平移进行增强可以弥补手部检测环节的误差，而对旋转进行增强则能覆盖旋转的手部姿态，从而有效扩充训练所用的姿态范围。

虽然在NYU数据集上，仅增强尺度所带来的帮助不如增强平移或旋转那么大，但在用户手部尺寸无法被精确确定的情况下——比如实际应用中的新用户——它仍能发挥作用。有趣的是，从增强后的3D手部姿态中计算先验也至关重要。如果仅增强了数据，但先验仍基于原始的3D手部姿态计算，那么精度反而会低于未使用数据增强的情况，因为先验的表达能力不足以捕捉增强后手部姿态的变化。

#### 5.5.2 手部定位

此外，我们评估了手部定位对最终3D关节误差的影响。在该实验中，我们采用了ResNet架构以及所有数据增强方法。结果如表5所示。使用手部的真实位置时能够获得最高的精度，但这在现实中并不可行，因为实际检测器无法提供完美的手部定位。这表明仍有改进空间。

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Augmentation</td><td style='text-align: center; word-wrap: break-word;'>Average 3D error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>No augmentation</td><td style='text-align: center; word-wrap: break-word;'>19.9mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Translation (T)</td><td style='text-align: center; word-wrap: break-word;'>14.7mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Rotation (R)</td><td style='text-align: center; word-wrap: break-word;'>13.8mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Scale (S)</td><td style='text-align: center; word-wrap: break-word;'>17.1mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>All (R+T+S)</td><td style='text-align: center; word-wrap: break-word;'>12.3mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>All (R+T+S) &amp; no prior aug.</td><td style='text-align: center; word-wrap: break-word;'>21.7mm</td></tr></table>

<div style="text-align: center;">Table 4: Effects of the new training procedure on the NYU dataset [^40]. By using different data augmentation methods, the accuracy can be significantly increased. In the first row we do not use any data augmentation. In the last row we apply augmentation on the training data, but not for computing the pose prior, showing the importance of having a good pose prior.</div>

通过采用更精准的3D手部定位方法来进一步提升精度。

<div style="text-align: center;">Starting with the very simple center of mass localization and by refining the estimated center of mass localization, this step decreases the 3D localization error by almost 20mm. This in turn improves further the final average 3D pose error by over 1mm.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Localization</td><td style='text-align: center; word-wrap: break-word;'>Avg. 3D pose error</td><td style='text-align: center; word-wrap: break-word;'>Loc. 3D error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>CoM</td><td style='text-align: center; word-wrap: break-word;'>13.8mm</td><td style='text-align: center; word-wrap: break-word;'>28.1mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Refined CoM</td><td style='text-align: center; word-wrap: break-word;'>12.3mm</td><td style='text-align: center; word-wrap: break-word;'>8.6mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ground truth</td><td style='text-align: center; word-wrap: break-word;'>10.8mm</td><td style='text-align: center; word-wrap: break-word;'>0.0mm</td></tr></table>

<div style="text-align: center;">Table 5: Impact of hand localization accuracy on NYU dataset [^40]. The ground truth localization gives the lowest 3D pose error, but this localization is not applicable in practice. Our refinement of the commonly used center of mass localization (CoM) improves the accuracy by over 1mm.</div>

#### 5.5.3 网络架构

我们在表6中评估了不同网络架构的影响。训练两种网络时，我们采用了优化后的手部定位结果以及所有数据增强方法。改进后的训练流程和更精准的定位已经使原始架构的结果提升了超过3毫米（从[^18]时的19.8毫米提升至更低数值）。采用所提出的ResNet架构后，由于模型容量更大，精度平均又能再提升4毫米。我们也测试了原始架构，只是将卷积层的滤波器数量调整为与ResNet架构相同，但该架构的性能仍逊于ResNet。

---

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

<div style="text-align: center;">Figure 8: Qualitative comparison between DeepPrior and DeepPrior++ on the NYU dataset [^40]. We show the inferred 3D joint locations projected on the depth images. Ground truth is shown in blue, the predicted poses in red. The results provided by DeepPrior++ are significantly better than the results from the original DeepPrior, especially on complex poses. (Best viewed in color)</div>

<div style="text-align: center;">The ResNet architecture is slower than the original implementation, however it is still able to run at over 30fps on a single GPU, making it applicable to realtime applications.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Architecture</td><td style='text-align: center; word-wrap: break-word;'>Average 3D error</td><td style='text-align: center; word-wrap: break-word;'>fps</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Original [^18]</td><td style='text-align: center; word-wrap: break-word;'>16.6mm</td><td style='text-align: center; word-wrap: break-word;'>100</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Original with more filters</td><td style='text-align: center; word-wrap: break-word;'>13.7mm</td><td style='text-align: center; word-wrap: break-word;'>80</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ResNet</td><td style='text-align: center; word-wrap: break-word;'>12.3mm</td><td style='text-align: center; word-wrap: break-word;'>30</td></tr></table>

<div style="text-align: center;">Table 6: Impact of network architecture on the NYU dataset [^40]. The more recent ResNet architecture performs significantly better than the original network architecture, even when using the same number of filters as ResNet for the Original architecture (Original with more filters). Most importantly, we can still maintain realtime performance with 30fps in our hand tracking application.</div>

#### 5.6 定性评估

我们在图8中展示了多项定性结果，将其与原始的DeepPrior方法进行比较[^18]。总体而言，DeepPrior++相比原始DeepPrior取得了显著更好的结果，尤其是在关节活动度较高的姿态上。这一成果归功于数据增强和更精准的定位，也得益于更强大的CNN结构，它使得CNN能够为复杂的关节姿态学习到高度精确的姿态信息。

### 6. 讨论与结论

自DeepPrior发表以来，其他姿态估计领域的研究也在深度学习框架中引入了姿态先验，这凸显了此类先验的重要性：

• [^22]提出用编码器取代PCA计算的线性变换。该编码器首先与解码器一同训练，以预测姿态的紧凑表示形式。由于解码器的结构更为复杂，因此能带来精度的提升。

• [^39]针对人体姿态估计问题，同样使用了自动编码器，但用于计算维度更大的姿态嵌入，这在人体姿态估计场景中似乎能显著提升精度。

• [^49]为了从2D热图中估计3D手部关节位置而学习姿态先验，他们将先验分解为规范坐标和相对运动两部分，而我们采用PCA学习的先验并未区分这两者。

或许本文研究的一个重要结论是：学界在比较不同方法时应保持谨慎：通过细致分析各步骤，我们让DeepPrior++的性能显著优于原始DeepPrior，其表现也与近期的研究成果相当甚至更优，尽管这两种方法的核心思路是一致的。

致谢：本研究部分得到了Christian Doppler语义3D计算机视觉实验室的资助。

## 参考文献

## [^1]: D. Bouchacourt, M. P. Kumar, and S. Nowozin. DISCO Nets: Dissimilarity Coefficient Networks. In Advances in Neural Information Processing Systems, 2016

---

[^2]: X. Deng, S. Yang, Y. Zhang, P. Tan, L. Chang, and H. Wang. Hand3D: Hand Pose Estimation Using 3D Neural Network. In arXiv Preprint, 2017.

[^3]: A. Erol, G. Bebis, M. Nicolescu, R. D. Boyle, and X. Twombly. Vision-Based Hand Pose Estimation: A Review. Computer Vision and Image Understanding, 108(1-2), 2007.

[^4]: D. Fourure, R. Emonet, E. Fromont, D. Muselet, N. Neverova, A. Tremeau, and C. Wolf. Multi-Task, Multi-Domain Learning: Application to Semantic Segmentation and Pose Regression. Neurocomputing, 1(251):68–80, 2017.

[^5]: L. Ge, H. Liang, J. Yuan, and D. Thalmann. Robust 3D Hand Pose Estimation in Single Depth Images: from Single-View CNN to Multi-View CNNs. In Conference on Computer Vision and Pattern Recognition, 2016.

[^6]: H. Guo, G. Wang, X. Chen, C. Zhang, F. Qiao, and H. Yang. Region Ensemble Network: Improving Convolutional Network for Hand Pose Estimation. In International Conference on Image Processing, 2017.

[^7]: K. He, X. Zhang, S. Ren, and J. Sun. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition. In European Conference on Computer Vision, 2014.

[^8]: K. He, X. Zhang, S. Ren, and J. Sun. Deep Residual Learning for Image Recognition. In Conference on Computer Vision and Pattern Recognition, 2016.

[^9]: C. Keskin, F. Kiraç, Y. E. Kara, and L. Akarun. Real Time Hand Pose Estimation Using Depth Sensors. In International Conference on Computer Vision, 2011.

[^10]: C. Keskin, F. Kıraç, Y. E. Kara, and L. Akarun. Hand Pose Estimation and Hand Shape Classification Using Multi-Layered Randomized Decision Forests. In European Conference on Computer Vision, 2012.

[^11]: D. Kingma and J. Ba. Adam: A Method for Stochastic Optimization. In ICRL, 2015.

[^12]: P. Krejov, A. Gilbert, and R. Bowden. Guided Optimisation through Classification and Regression for Hand Pose Estimation. Computer Vision and Image Understanding, 155(2):124–138, 2016.

[^13]: A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet Classification with Deep Convolutional Neural Networks. In Advances in Neural Information Processing Systems, 2012.

[^14]: P. Li, H. Ling, X. Li, and C. Liao. 3D Hand Pose Estimation Using Randomized Decision Forest with Segmentation Index Points. In International Conference on Computer Vision, 2015.

[^15]: M. Madadi, S. Escalera, X. Baro, and J. Gonzalez. End-To-End Global to Local CNN Learning for Hand Pose Recovery in Depth Data. In arXiv Preprint, 2017.

[^16]: S. Melax, L. Keselman, and S. Orsten. Dynamics Based 3D Skeletal Hand Tracking. In Proc. of Graphics Interface Conference, 2013.

[^17]: N. Neverova, C. Wolf, F. Nebout, and G. Taylor. Hand Pose Estimation through Semi-Supervised and Weakly-Supervised Learning. In arXiv Preprint, 2015.

[^18]: M. Oberweger, P. Wohlhart, and V. Lepetit. Hands Deep in Deep Learning for Hand Pose Estimation. In Proc. of CVWW, 2015.

[^19]: M. Oberweger, P. Wohlhart, and V. Lepetit. Training a Feedback Loop for Hand Pose Estimation. In International Conference on Computer Vision, 2015.

[^20]: I. Oikonomidis, N. Kyriazis, and A. A. Argyros. Full DOF Tracking of a Hand Interacting with an Object by Modeling Occlusions and Physical Constraints. In International Conference on Computer Vision, 2011.

[^21]: C. Qian, X. Sun, Y. Wei, X. Tang, and J. Sun. Realtime and Robust Hand Tracking from Depth. In Conference on Computer Vision and Pattern Recognition, 2014.

[^22]: G. Riegler, D. Ferstl, M. Rüther, and H. Bischof. A Framework for Articulated Hand Pose Estimation and Evaluation. In Proc. of SCIA, 2015.

[^23]: G. Riegler, A. O. Ulusoy, and A. Geiger. OctNet: Learning Deep 3D Representations at High Resolution. In Conference on Computer Vision and Pattern Recognition, 2017.

[^24]: K. Simonyan and A. Zisserman. Very Deep Convolutional Networks for Large-Scale Image Recognition. In ICLR, 2014.

[^25]: A. Sinha, C. Choi, and K. Ramani. Deephand: Robust Hand Pose Estimation by Completing a Matrix Imputed with Deep Features. In Conference on Computer Vision and Pattern Recognition, 2016.

[^26]: S. Sridhar, F. Mueller, A. Oulasvirta, and C. Theobalt. Fast and robust hand tracking using detection-guided optimization. In Conference on Computer Vision and Pattern Recognition, 2015.

[^27]: N. Srivastava, G. E. Hinton, A. Krizhevsky, I. Sutskever, and R. Salakhutdinov. Dropout: A Simple Way to Prevent Neural Networks from Overfitting. Journal of Machine Learning Research, 15(1):1929–1958, 2014.

[^28]: X. Sun, Y. Wei, S. Liang, X. Tang, and J. Sun. Cascaded Hand Pose Regression. In Conference on Computer Vision and Pattern Recognition, 2015.

[^29]: Y. Sun, X. Wang, and X. Tang. Deep Convolutional Network Cascade for Facial Point Detection. In Conference on Computer Vision and Pattern Recognition, 2013.

[^30]: J. S. Supancic, G. Rogez, Y. Yang, J. Shotton, and D. Ramanan. Depth-Based Hand Pose Estimation: Data, Methods, and Challenges. In International Conference on Computer Vision, 2015.

[^31]: C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going Deeper with Convolutions. In Conference on Computer Vision and Pattern Recognition, 2015.

[^32]: A. Tagliasacchi, M. Schrder, A. Tkach, S. Bouaziz, M. Botsch, and M. Pauly. Robust Articulatedicp for Realtime Hand Tracking. Computer Graphics Forum, 34(5):101–114, 2015.

[^33]: D. J. 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 Conference on Computer Vision and Pattern Recognition, 2016.

## [^34]: D. Tang, H. J. Chang, A. Tejani, and T.-K. Kim. Latent Regression Forest: Structured Estimation of 3D Articulated Hand Posture. In Conference on Computer Vision and Pattern Recognition, 2014

---

[^35]: 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 International Conference on Computer Vision, 2015.

[^36]: D. Tang, T. Yu, and T.-K. Kim. Real-Time Articulated Hand Pose Estimation Using Semi-Supervised Transductive Regression Forests. In International Conference on Computer Vision, 2013.

[^37]: J. Taylor, L. Bordeaux, T. Cashman, B. Corish, C. Keskin, T. Sharp, E. Soto, D. Sweeney, J. Valentin, B. Luff, A. Topalian, E. Wood, S. Khamis, P. Kohli, S. Izadi, R. Banks, A. Fitzgibbon, and J. Shotton. Efficient and Precise Interactive Hand Tracking through Joint, Continuous Optimization of Pose and Correspondences. ACM Transactions on Graphics, 34(4):143, 2016.

[^38]: J. Taylor, J. Shotton, T. Sharp, and A. Fitzgibbon. The Vitruvian Manifold: Inferring Dense Correspondences for One-Shot Human Pose Estimation. In Conference on Computer Vision and Pattern Recognition, 2012.

[^39]: B. Tekin, I. Katircioglu, M. Salzmann, V. Lepetit, and P. Fua. Structured Prediction of 3D Human Pose with Deep Neural Networks. In British Machine Vision Conference, 2016.

[^40]: J. Tompson, M. Stein, Y. LeCun, and K. Perlin. Real-Time Continuous Pose Recovery of Human Hands Using Convolutional Networks. ACM Transactions on Graphics, 33, 2014.

[^41]: C. Wan, T. Probst, L. Van Gool, and A. Yao. Crossing Nets: Dual Generative Models with a Shared Latent Space for Hand Pose. Estimation. In Conference on Computer Vision and Pattern Recognition, 2017.

[^42]: C. Wan, A. Yao, and L. Van Gool. Hand Pose Estimation from Local Surface Normals. In European Conference on Computer Vision, 2016.

[^43]: C. Xu and L. Cheng. Efficient Hand Pose Estimation from a Single Depth Image. In International Conference on Computer Vision, 2013.

[^44]: C. Xu, L. N. Govindarajan, Y. Zhang, and L. Cheng. LieX: Depth Image Based Articulated Object Pose Estimation, Tracking, and Action Recognition on Lie Groups. International Journal of Computer Vision, 2016.

[^45]: H. Yang and J. Zhang. Hand Pose Regression via a Classification-Guided Approach. In Asian Conference on Computer Vision, 2016.

[^46]: Q. Ye, S. Yuan, and T. Kim. Spatial Attention Deep Net with Partial PSO for Hierarchical Hybrid Hand Pose Estimation. In European Conference on Computer Vision, 2016.

[^47]: X. Zhang, C. Xu, Y. Zhang, T. Zhu, and L. Cheng. Multivariate Regression with Grossly Corrupted Observations: A Robust Approach and Its Applications. In arXiv Preprint, 2017.

[^48]: X. Zhou, Q. Wan, W. Zhang, X. Xue, and Y. Wei. Model-Based Deep Hand Pose Estimation. IJCAI, 2016.

[^49]: C. Zimmermann and T. Brox. Learning to Estimate 3D Hand Pose from Single RGB Images. In International Conference on Computer Vision, 2017.
