
# 用于手部姿态估计的密集3D回归

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

$^{1}$苏黎世联邦理工学院 $^{2}$波恩大学 $^{3}$鲁汶大学

## 摘要

我们提出了一种简单且高效的方法，可从单张深度图像中估计3D手部姿态。与以往基于整体3D回归的先进方法不同，我们的方法采用密集的逐像素估计方式。这一成果得益于在姿态参数化方面的精心设计，该方法充分利用了深度图的2D和3D特性。具体而言，我们将姿态参数分解为一组逐像素估计值，即2D热图、3D热图以及单位3D方向矢量场。2D/3D关节热图和3D关节偏移量通过多任务网络级联进行估计，该网络可端到端训练。这些逐像素估计值可直接转化为投票机制。随后采用均值漂移的变体来聚合局部投票结果，同时按照设计原则确保估计出的3D姿态与逐像素2D、3D估计结果之间的一致性。我们的方法效率高且精度高。在MSRA和NYU手部数据集上，我们的方法大幅超越了以往所有先进方法；在ICVL手部数据集上，我们的方法达到了与[^5]所得近乎饱和的结果相近的精度，同时也优于其他各类已提出的方法。代码已在线公开 $^{1}$。

### 1. 引言

近年来，基于视觉的手部姿态估计取得了显著进展。性能的提升可归因于两大主流趋势：深度成像与深度学习。首先，由于微软Kinect、英特尔RealSense等商用深度传感器已广泛普及，手部姿态估计技术几乎完全转向仅使用深度输入 $^{[33, 31, 27, 52]}$。作为2.5D信息源，深度数据能有效消除单目RGB输入中存在的诸多歧义。其次，深度学习从根本上改变了视觉问题的解决方式。使用深度神经网络已成为手部姿态估计领域的常态 $^{[43, 25, 51, 10]}$。

在标准的手部姿态估计流程中，深度图几乎总是被当作图像处理。基于深度学习的方法更是如此，这类方法严重依赖（2D）卷积神经网络的相关机制。3D手部姿态估计的一条研究路径是整体回归，即直接将深度图像映射到3D姿态参数，如关节角度或3D坐标。这种方法无需先求解2D坐标等中间表示，还能捕捉不同关节间的全局约束与相关性。然而，从图像和姿态这类差异极大的域中进行回归是一项极具挑战性的学习任务。此外，整体回归无法泛化到不同手指姿态等局部特征的组合，且存在平移方差问题，对手部边界框位置的敏感度也较高。

卷积神经网络（CNN）已成功应用于二维人体姿态估计$^{[23,44,47]}$；尤其是全卷积网络（FCN）能够非常精确地执行像素级关节检测$^{[23,47]}$。这一过程被表述为对每个像素是否属于关节位置的像素级分类。因此，姿态估计领域的另一研究方向便是尝试构建用于检测二维关节的类似网络。通过像素级分类，关节检测能比整体回归更明确地利用局部模式，从而帮助网络学习到更好的特征图。随后，二维检测结果与三维回归结果可以通过多任务机制相结合$^{[32,30,17,42]}$：既可以将二维检测热图作为三维回归网络的输入，也可以在检测和整体回归之间共享特征图。然而，无法保证经回归得到的三维关节在投影回二维后，能与原始的二维检测热图保持一致。此外，从设计上看，整体回归存在的上述缺陷在这一研究路径中仍未消除。其他二维检测相关研究采用逆向运动学并结合基于模型的优化方法；但由于手部存在严重的自遮挡现象，会产生难以解决的歧义性。

---

这种歧义性会导致精度问题，而这类问题在人体姿态估计中并不会出现。

尽管在二维环境下工作存在诸多弊端，但我们并不想直接用三维卷积神经网络来解决离散体素检测问题。这种方式会涉及大量参数，从而严重限制可处理的分辨率$^{[11,29,21]}$。此外，由于输入的深度图仅为2.5维，三维卷积神经网络难以解决手部姿态中常见的自遮挡所引发的歧义性问题。

问题的核心在于2.5维深度数据与传统卷积神经网络之间的不匹配，无论这些网络是二维还是三维的。将深度图视为二维图像，我们便能利用卷积神经网络的进步成果，但仍未充分利用其中蕴含的信息。同时，由于计算开销大且存在相关歧义性，我们又不想将深度信息转换为体素表示。为此，我们提出了一种用于手部姿态估计的像素级检测与密集回归相结合的方法。我们所提出的方法兼具基于二维全卷积网络的检测优势，比如平移不变性以及对不同手指手势组合的泛化能力；同时，密集回归使我们能够进行三维估计，并受益于整体三维回归的优点，比如能够考虑关节间的相关性及骨骼约束，而无需在离散体素域中进行处理。

为了稳定训练过程并提高回归的鲁棒性，我们在参数化方面做了两项精心设计的抉择。首先，我们使用偏移量而非绝对关节位置，即把每个像素回归为各关节的三维偏移量。以往的研究中已采用过关节偏移量$^{[33, 37, 40, 46]}$，它具有平移不变性，还能在卷积神经网络进行池化操作时保持原有的空间分辨率。其次，我们将三维偏移量重新参数化为热图和方向单位向量，自然就转化为分别求解的关节检测与回归问题。这种参数化方式充分利用了2.5维深度图的二维和三维几何特性。对于给定的深度图，我们利用二维卷积神经网络捕捉局部表面模式，同时将深度图视为一组三维点，最终得出三维姿态估计结果。

为此，我们首先将二维检测热图扩展为三维形式，即热图的值与深度图中对应点到特定关节的三维距离成反比。此外，我们还会预测单位向量场，每个向量场对应从深度图中的点到某一手指关节的方向。最后，我们也会以投影热图的形式在二维空间中检测关节。我们利用均值漂移算法将所有这些估计结果整合起来，得到兼顾二维和三维估计一致性的全局估计。

所提出的方法精度极高，在三个公开数据集——NYU $^{[43]}$、ICVL $^{[39]}$ 和 MSRA $^{[37]}$——上的表现均优于以往的所有先进方法。我们还将该方法与几种结合整体回归和二维关节检测的基线方法进行了比较。实验结果表明，与全身姿态估计的情况不同，这类组合策略很难提升整体回归的效果，其精度也远低于我们所提出的方法。我们将这一现象归因于自遮挡导致的深度歧义，而所提出的方法对此具有更强的鲁棒性。

我们的贡献可总结如下：

- 我们将三维手部姿态估计表述为一种基于姿态重参数化的密集回归问题，该方法能够充分利用二维表面几何特征和三维坐标属性；

- 我们提出了一种非参数的后处理方法，用于将逐像素的估计结果聚合为三维关节坐标；该后处理过程明确处理了整体估计问题，确保了二维和三维估计之间的一致性；

- 我们实现了几种基线方法，用于探究在多任务设置下整体回归与二维关节检测的融合策略；此类分析此前尚未在手姿估计领域开展，为该领域提供了宝贵的见解。

### 2. 相关工作

将二维关节检测与三维估计相结合：基于二维观测的三维姿态估计在计算机视觉领域有着悠久的发展历史。早期的研究 [^35] [^50] [^34] 主要依赖低层视觉线索（如轮廓或光流），并利用生成模型来解决深度歧义问题。由于高精度二维关节检测器的出现 [^23] [^47]，近期的研究转向了中层和高层特征，例如二维关节检测热图或卷积神经网络生成的表征。其中一类研究 [^32] [^30] [^17] [^42] 将三维姿态估计表述为回归问题，并在多任务设置中结合二维关节检测和三维回归；另一类研究 [^2] [^22] [^4] [^19] [^53] [^43] [^51] [^10] 则将三维估计视为在二维关节检测基础上进行的基于模型的优化。

我们的方法类似于[^32] [^30] [^17] [^42]，因为二维和三维估计都是在多任务设置中进行的。不过，我们并非采用整体三维回归，而是执行逐像素的三维估计。这种融合方案具有平移不变性，能够更好地泛化到不同的手指手势组合。与其他许多研究类似，我们也使用了后处理步骤，但我们的方法要简单得多，与[^2] [^22] [^19] [^43] [^51] [^10]所采用的耗时巨大的能量最小化算法相比，所需的计算开销微乎其微；此外，最近邻搜索[^4]以及额外神经网络的运用[^19] [^53]也属于此类情况。

---

姿态参数化：骨骼模型并不一定需要用三维关节坐标来参数化。许多研究为了更好地利用骨骼结构，会在其他空间中对姿态参数进行建模。例如，[^25] [^45]学习了一个潜空间来建模不同关节之间的相关性；而[^49] [^54] [^36]则采用分层方式对姿态进行参数化——即子关节的位置取决于其在骨骼树中的父关节，从而充分利用骨骼中的依赖关系。[^22]将骨骼建模为不同关节间的距离矩阵，而[^28] [^3]则将姿态参数表述为热图，并结合偏移向量场来处理多实例的二维检测问题。我们的方法受到[^28] [^3]的启发，只不过我们专注于三维估计。

手部姿态估计：我们将讨论范围限定在基于深度学习的方法上，关于其他基于模型和随机森林的方法的详细综述，请参阅[^38]。基于深度学习的方法可分为两类：一类是两阶段方法[^43] [^10] [^51]，即先进行二维关节检测，再实施基于模型的优化；另一类是单阶段方法[^25] [^26] [^11] [^45] [^24] [^12] [^5] [^6] [^9]，即直接进行整体姿态回归。目前性能最优的方法[^5] [^12] [^24]都属于单阶段方法，这很可能是由于它们能有效利用关节间的相关性。我们的方法结合了这两类方法的优势，充分挖掘深度图的二维和三维特性。

偏移回归与霍夫投票：以往有几项研究已成功将偏移回归应用于定位与姿态估计任务[^33] [^37] [^40] [^46] [^16]。由于具有局部特性，这些方法具备平移不变性，且适用于自下而上的估计方式。不过，除二维定位相关研究外[^20] [^48]，这些方法通常依赖于手工设计的特征。在本研究中，我们通过端到端学习密集的三维偏移回归来拓展这一思路。

### 3. 方法

我们利用深度图的二维和三维特性，将手部姿态估计转化为逐像素回归问题。从二维视角来看，我们将深度图视为嵌入在三维空间中的二维表面，并利用由二维卷积层组成的卷积神经网络（CNN）来捕捉表面的局部几何特征。从三维视角来看，深度图也可被视为一组三维点；我们希望针对这组点来估计其到手部关节的偏移量。更具体地说，我们使用CNN为手部的每个关节估计一个密集的偏移向量场。我们将关节偏移量重新参数化为三维热图和方向单位向量，并分别通过检测与回归来求解它们（见第3.1节）。所得到的网络为全卷积结构，可与现有的关节检测网络架构兼容（见第3.2节）。多个网络可堆叠起来作为中间监督形式，所有估计结果都会被送入下一阶段以提升姿态估计精度。我们采用均值漂移算法（见第3.3节）来聚合逐像素的回归估计结果，同时确保最终估计出的三维关节的二维投影与逐像素的二维关节检测结果保持一致。

#### 3.1. 姿态参数化

与大多数其他基于回归的方法不同，我们并不试图直接从深度图回归出三维关节坐标[^25] [^26] [^11] [^45] [^24] [^12] [^5] [^6]，而是希望估计深度点与手部关节之间的偏移向量。这种方式能使估计结果具有平移不变性，也能更好地适配不同的手指姿态组合。不过，直接回归三维偏移向量场并非理想之选：首先，距离特定手部关节较远的点所产生的偏移向量模值较大，会主导训练损失；其次，距离较远的关节本就超出了卷积滤波器的感受野范围。因此，我们将三维偏移向量分解为两个组成部分——通过检测得到的三维热图S，以及通过回归得到的方向单位向量V，具体如下：

 $$ S_{j}(p)=\begin{cases}{\theta-\|p-p_{j}\|_{2}\quad}&{\|p-p_{j}\|_{2}\leq\theta,}\\ {0\quad}&{\mathrm{o t h e r w i s e};}\\ \end{cases} $$

 $$ V_{j}(p)=\begin{cases}\frac{p-p_{j}}{\|p-p_{j}\|_{2}}&\qquad\|p-p_{j}\|_{2}\leq\theta,\\ 0&\text{otherwise}.\end{cases} $$

其中$p \in \mathcal{R}^3$和$p_j \in \mathcal{R}^3$分别是深度图中某点的三维坐标以及关节j的三维坐标。$\theta$定义了以关节位置为中心、用于确定候选区域的三维球体半径（见图1），我们正是从该区域中获取支撑信息。三维热图$S_j(p)$可视为二维热图的直接延伸。

此外，我们将关节的二维投影也估计为热图R，

 $$ R_{j}(p)=\begin{cases}{\tau-\|\Pi(p)-\Pi(p_{j})\|_{2}\quad}&{\|\Pi(p)-\Pi(p_{j})\|_{2}\leq\tau}\\ {0\quad}&{\mathrm{o t h e r w i s e}}\\ \end{cases}, $$

其中$\Pi(\cdot)$表示二维透视投影函数，$\tau$为候选圆盘的半径。尽管公式1和2已足以还原三维关节位置，但加入二维投影后的过完备估计能提升局部估计的鲁棒性。二维投影可与三维关节估计结合使用非参数方法，相关细节我们将在第3.3节中详述。

#### 3.2. 网络架构

检测与回归网络的架构如图1所示。我们采用沙漏网络$^{[23]}$作为

---

之所以选择Backbone，是因为它效率极高，不过理论上也可以采用其他任何关节检测网络架构，例如 [^47] [^28]。二维和三维关节热图以及单位向量场是通过网络级联以多任务学习的方式估算得出的。具体来说，对于J个关节而言，网络首先会在沙漏模块的输出特征图之上，利用两个独立的逐像素全连接层来输出二维和三维关节热图。由于单位向量场 $V_j$ 与热图估算结果存在相关性，我们会将热图与沙漏模块的输出特征图拼接起来，以此确定单位向量场。为了处理三维热图和单位向量场在表面边缘处的不连续性，初始深度图也会通过拼接方式输入到三维热图网络中。与 [^8] [^13] 的做法类似，我们将二值化后的深度图作为掩码与特征图相乘，再将其与初始特征图拼接。这便构成了单位向量场回归组件的输出输入。

遵循 [^23] 提出的范式，我们将多个结构相同的模块堆叠在一起以提升模型的学习能力。前一个模块的估算结果会作为后一个模块的输入，同时每个模块末尾都会施加中间监督。具体而言，我们针对T个堆叠模块中的J个关节定义如下的 $L_{2}$ 损失函数：

 $$ \begin{aligned}\mathcal{L}&=\sum_{t=1}^{T}\mathcal{L}_{R}^{(t)}+\mathcal{L}_{S}^{(t)}+\mathcal{L}_{V}^{(t)}\quad&(4)\\&=\sum_{t=1}^{T}\sum_{j=1}^{J}\|R_{j}^{(t)}-R_{j}^{*}\|^{2}+\|S_{j}^{(t)}-S_{j}^{*}\|^{2}+\|V_{j}^{(t)}-V_{j}^{*}\|^{2}\end{aligned} $$

其中 $R_j^*, S_j^*, V_j^*$ 分别表示关节j对应的真实二维热图、三维热图以及向量偏移量，而 $R_j^t, S_j^t, V_j^t$ 则是第t个堆叠模块给出的对应估算结果。

#### 3.3. 推理过程

推理阶段，我们会将所有逐像素估算出的证据汇总为完整的三维关节坐标，这一过程借助均值漂移算法实现。从设计层面来讲，该流程能确保二维和三维关节检测结果之间的一致性。由于每个关节都采用相同的均值漂移流程进行估算，为简便起见，本节中我们省略了关节索引j。如算法1所示，系统会根据估算的三维距离选出距离该关节最近的N个点。我们仅选取K个点，是因为估算三维距离较大的点往往会放大偏移方向的估算误差，进而降低恢复出的三维关节位置的精确度。

此外，我们还为算法1提供了一种更高效的“无权重”近似方案，该方案省去了二维投影步骤（第4步），并用 $(1 + R) \odot S^2$ 替代原有权重。表1显示，这两种策略得到的结果几乎一致。实际应用中，我们选择将最近的5个点作为均值漂移算法的输入。

```pseudo
// Algorithm 1: Mean-shift estimation of one joint
```

预定义的常量：
$\theta \quad \triangleright$ 点D到关节之间的三维距离阈值
$K \quad \triangleright$ 作为均值漂移算法输入的点数量
$\sigma \quad \triangleright$ 均值漂移核函数的核宽度
$N \quad \triangleright$ 均值漂移迭代次数

输入：
$D \in \mathcal{R}^{h \times w \times 3} \in \mathcal{R} \quad \triangleright$ 输入点云坐标
神经网络的输出：
$R \in \mathcal{R}^{h \times w \times 1} \quad \triangleright$ 二维热图，见公式3
$S \in \mathcal{R}^{h \times w \times 1} \quad \triangleright$ 三维热图，见公式1
$V \in \mathcal{R}^{h \times w \times 3} \quad \triangleright$ 三维偏移单位向量场，见公式2

1: $P = D + \theta(1 - S) \odot V \quad \triangleright$ 恢复关节坐标
2: $I = \text{topK}(S) \in \mathcal{N}^{K \times 2} \quad \triangleright$ 选取前K个值的索引
3: $\mathcal{P} = P(I) \subset \mathcal{R}^{3} \quad \triangleright$ 获取估算出的三维关节坐标
4: $\mathcal{P}_{2d} = \{\Pi(p) | \forall p \in \mathcal{P}\} \subset \mathcal{R}^{2} \quad \triangleright$ 二维投影
5: $\mathcal{W} = R(\mathcal{P}_{2d}) \subset \mathcal{R} \quad \triangleright$ 获取对应的二维热图值作为权重
6: $p = \text{init}(\mathcal{W}, \mathcal{P}) \in \mathcal{R}^{3} \quad \triangleright$ 初始化
7: 对N中的每个n执行以下操作
8: $p \leftarrow \frac{\sum p_{i,w_i} \in (P,W)}{K(p_i - p)w_i} \quad \triangleright K(x) = e^{-\frac{\|x\|^2}{2\sigma^2}}$
9: 循环结束
10: 输出：p

也就是说，根据消融实验的结果，取K=5，核宽度设为 $\sigma$ 40毫米。

#### 3.4. 实现细节

该网络基于Tensorflow[^1]实现，并使用Adam优化器[^15]进行优化，初始学习率设为0.001，动量的指数衰减率为$\beta_1 = 0.5$。遵循[^11]和[^24]的做法，我们随机旋转输入的深度图并调整宽高比以实现数据增强。批量大小设为40，我们使用批量重归一化来加速训练；相较于批量归一化，该方法在较小的训练小批量上表现更佳[^14]。测试阶段，我们使用两个网络栈，在单张NVIDIA Titan X GPU上处理每张图像的平均运行时间为36毫秒（即27.8帧/秒）。

### 4. 实验

我们在3个公开可用的数据集上开展实验，分别是NYU[^43]、MSRA[^37]和ICVL[^39]。我们选择NYU数据集开展消融实验并与基线方法进行比较，因为与其他两个数据集相比，它涵盖了更广泛的手部姿态。

我们采用两项指标对方法性能进行定量评估：所有关节和所有帧上的平均关节误差（单位：毫米），以及所有关节误差低于某一阈值时的帧数占比[^41]。估计出的手部姿态的定性结果如图5和图8所示。

---

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

<div style="text-align: center;">Figure 1. Network architecture. The abbreviations C, P, R stands for convolution layer, pooling and residual module respectively. We choose  $128 \times 128$ as size of input depth map and  $32 \times 32$ as the input and output resolution of hourglass module $^{[23]}$ with 128 feature channels in each layer. In this paper, we use 2 stacks due to real-time performance constraint. The network estimate 2D,3D heat maps and unit vector field for each joint, we only show the pinky tip point here. Figure is best viewed in colour.</div>

#### 4.1. 基线方法

在本节中，我们分析了2D关节检测是否有助于3D回归，以及不同的2D关节检测与3D回归融合策略对最终姿态精度的影响。此外，我们还展示了选择不同3D偏移参数化的影响。

2D关节检测对3D回归有帮助吗？首先，我们想确定2D关节检测是否真的有助于3D整体回归。为此，我们设计了两种基线方法：直接回归3D关节坐标，以及在多任务设置中将2D关节检测与3D回归相结合。具体而言，对于基线1（坐标回归），回归网络采用图2(a)中的架构，以深度图作为输入并直接输出3D关节坐标。对于基线2（检测+坐标回归），我们采用类似的回归网络架构（见图2(b)），但增加了沙漏模块$^{[23]}$。我们将深度图、来自沙漏模块的特征图以及2D关节检测热图拼接在一起，作为图2中棕色模块的输入，用于训练回归模型。此外，为了与我们所提出的方法进行公平比较，我们也为基线2堆叠了两个这样的网络。

如图3所示，从直接坐标回归到检测+坐标回归，平均关节误差仅改善了0.16毫米。此外，当误差阈值大于25毫米时，这两种方法的性能相近。我们由此得出结论：虽然2D检测可能有助于学习更好的特征图，但将2D检测与3D回归结合并不能解决3D回归固有的问题，例如平移方差问题以及无法通过组合局部证据来实现泛化的问题。

融合策略的影响 为了进一步探索2D检测与3D回归的更佳融合策略，我们设计了一种替代方法：采用与检测+坐标回归相同的网络架构（见图2(b)），仅输出层有所不同。与基线2中回归$(x, y, z)$的做法不同，我们仅回归z坐标，将其称为基线3（检测+深度回归）。随后将z轴上的这一输出与2D检测结果相结合，后者直接用作x、y平面的坐标。

令人惊讶的是，无论是在平均关节误差还是误差阈值在20到50毫米之间的帧数占比方面，检测+深度回归的表现都优于检测+坐标回归（见图3）。这表明2D检测提供的估计比坐标回归更精确。我们由此得出结论：在3D估计与2D检测之间强制建立某种一致性会带来益处。尽管该基线的准确率仍远低于我们提出的方法（见图3），但它表明：仅将深度图视为2D图像并利用CNN进行整体深度回归，不足以解决3D手部姿态估计中的深度歧义问题。

除了将2D检测热图作为坐标回归的输入外，另一条研究路线[^43] [^10] [^51]是基于逆向运动学进行基于模型的跟踪以恢复3D姿态。我们将其与以往采用此类策略的最先进方法[^43] [^10] [^51]进行比较，结果我们的表现优于所有此类方法（见第4.3节）。这验证了我们所提方法在处理手部严重自遮挡引发的深度歧义时的有效性。

偏移重新参数化的影响 我们实现了一种直接回归3D偏移而不重新参数化为3D热图和方向单位向量的网络，将其作为基线4（掩码损失）。如图2(c)所示，偏移回归架构的结构与图1中的偏移单位方向回归完全一致。

---

![Image](images/adedd1bcce38ecb4b9875ee55cfe22638bac1dbb5dd44b1974ae0b9761f56cf0.jpg)

![Image](images/024d6fd1d616a5aa520f472359e0914c9e35da57fe205b6e27cc7af5702201d3.jpg)

![Image](images/fd72281ee847dbe9e59259b8e2b5456d9cc4ada18a1a3b7d006d4fb3a4fa9b16.jpg)

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

<div style="text-align: center;">Figure 2. Baseline network architectures. (a) Direct 3D coordinate regression from depth map (baseline 1); (b) Network regresses 3D joint coordinates (baseline 2) or z-axis coupled 2D joint detection (baseline 3) together with the 2D joint detection heatmaps; (c) Regressing 3D offset vector field by masking the loss with the 3D distance to joint (baseline 4); (d) Detailed architecture configurations. The abbreviations C, P, R, FC stands for convolutional layer, pooling, residual module, and fully connected layer respectively. For (b) and (c), we experiment with a stack of 2 in the same way as the proposed method for fair comparison.</div>

我们利用2D检测分数来选择候选点作为均值漂移算法的输入。在该基线中，我们像[^28]中那样，对偏移的损失函数施加3D距离阈值，从而有效屏蔽回归过程，仅对关节的邻近点进行回归。理想情况下，该基线不应设置屏蔽机制，但训练完全失败，损失值来回波动且无法降低。如图3所示，像素级密集估计的表现优于整体回归方法，这也验证了逐点回归3D偏移的优势。

![Image](images/bdc5e28da7ee2ed2d00d1f096197e32ad9398ab19a4d044480ea0e08baafd3e2.jpg)

<div style="text-align: center;">Figure 3. Comparison with baselines. We compare our approach to four baseline methods (Sec. 4.1) on the NYU dataset [^43]. Number in the parenthesis of the legend indicates the average 3D error of the corresponding method.</div>

基于这些基线实验得出的结论，我们将所提方法的高准确率归因于重新参数化操作以及针对矢量场回归对所有点施加损失约束。将3D偏移分解为关节3D热图和偏移方向，并以级联方式分别回归这两部分，比直接回归偏移更容易学习。其次，对于异常点将偏移向量设为零而非从损失计算中排除它们，能使估计结果对测试阶段的回归误差更具鲁棒性。

#### 4.2. 探索性研究

我们首先对堆叠网络的数量以及均值漂移算法的超参数进行实验，即作为均值漂移算法输入的候选点数量与核宽度。如表1所示，我们发现所提出的方法对均值漂移超参数的鲁棒性较强。另一方面，网络堆叠数量对估计精度至关重要。为了保持实时性能，我们仅测试最多2层堆叠；不过，正如[^23]和[^47]中所展示的，增加堆叠层数能够提升精度。

此外，如表1最后两行所示，未加权均值漂移近似算法与加权版本的精度相近，两者在平均关节误差上的差异仅为0.09毫米。因此，在后续实验中，我们选择2层堆叠、5个作为均值漂移算法输入的候选点、核宽度为$\sigma = 40$毫米，并采用加权均值漂移算法，具体如算法1所述。

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

NYU数据集：NYU手部数据集[^43]包含超过72K的训练帧和8K的测试帧。该数据集涵盖的手部姿态范围广泛且输入深度图噪声较多，因此颇具挑战性。由于未对手部区域进行裁剪，我们使用单层堆叠的沙漏型关节检测器[^23]来定位关节。

---

<div style="text-align: center;">Network parameters</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2"># Stacks T</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>11.20</td><td style='text-align: center; word-wrap: break-word;'>10.21</td></tr></table>

<div style="text-align: center;">Mean-shift parameters</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2"># Candidates K</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>30</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>10.6</td><td style='text-align: center; word-wrap: break-word;'>10.21</td><td style='text-align: center; word-wrap: break-word;'>10.21</td><td style='text-align: center; word-wrap: break-word;'>10.96</td></tr><tr><td rowspan="2">Kernel width $\sigma$</td><td style='text-align: center; word-wrap: break-word;'>10mm</td><td style='text-align: center; word-wrap: break-word;'>40mm</td><td style='text-align: center; word-wrap: break-word;'>80mm</td><td style='text-align: center; word-wrap: break-word;'>100mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>10.35</td><td style='text-align: center; word-wrap: break-word;'>10.21</td><td style='text-align: center; word-wrap: break-word;'>10.21</td><td style='text-align: center; word-wrap: break-word;'>10.21</td></tr><tr><td rowspan="2">Weights</td><td colspan="2">weighted</td><td colspan="2">unweighted</td></tr><tr><td colspan="2">10.21</td><td colspan="2">10.26</td></tr></table>

<div style="text-align: center;">Table 1. Impact of hyperparameters. We report the mean 3D error (in mm) averaged over all joints and all frames on NYU dataset[^43]. We choose 2 stacks and 5 nearest points as input to mean shift, kernel width  $\sigma = 40$mm and weighted mean shift as described in Alg. 1 as the default parameters.</div>

![Image](images/ccd09502f10c810d2eb2185587315a671be04fa05f804b686ef5621acb74931e.jpg)

<div style="text-align: center;">Figure 4. Comparison with state-of-the-art on NYU [^43]. We plot the percentage of frames in which all joints are below a threshold.</div>

随后取所有关节估计出的x坐标和y坐标的中位数，作为裁剪手部区域的中心点。训练和测试阶段我们仅使用视图1，并且按照[^43]中的设定，选取14个关节进行评估以实现公平比较。

我们将所提方法与近期提出的方法[^49]、[^45]、[^24]、[^11]、[^12]、[^5]进行比较。这些方法均为基于3D回归的方法，拥有复杂的网络架构，相比早期工作[^43]、[^51]、[^40]、[^7]、[^25]、[^26]、[^54]有显著提升。如图4和表2所示，我们的方法在两项指标上均大幅优于所有这些最先进的方法。具体而言，根据图4，在20毫米的误差阈值下，我们方法成功估计帧的百分比较目前最精确的方法（分别为[^5]、[^24]、[^12]、[^5]）提高了8%（从50%提升至58%）；在30毫米误差阈值下则提高了9.2%（从70%提升至79.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;'>Average 3D error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Xu et al. [^49] (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;'>Wan et al. [^45] (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;'>Oberweger et al. [^24] (DeepPrior++)</td><td style='text-align: center; word-wrap: break-word;'>12.3mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Guo et al. [^12] (REN)</td><td style='text-align: center; word-wrap: break-word;'>12.7mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Chen et al. [^5] (Pose Guided)</td><td style='text-align: center; word-wrap: break-word;'>11.8mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>10.2mm</td></tr></table>

<div style="text-align: center;">Table 2. Comparison with state-of-the-art on NYU. We report average 3D error on the NYU $^{[43]}$ dataset.</div>

![Image](images/bb92a871ec291df2af68e2e936d0b53d0ee53ec2eb23fdee56f1bd59da1335be.jpg)

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

![Image](images/d9add030b13a2cc3a02028afe84a5307fc5bda562032dde76c13a31009ece9b3.jpg)

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

<div style="text-align: center;">Figure 5. Qualitative results. Hand pose estimation results on NYU dataset $^{[43]}$. (a) Successful samples with largest joint error below 20mm; (b) Failed samples (top row) and the corresponding ground-truth (bottom row).</div>

MSRA数据集：MSRA手部数据集$^{[37]}$包含来自9名受试者的76.5K张图像，涵盖17种手势。遵循[^37]中的协议，我们采用留一受试者外训练/测试的分拆方式，并对9名受试者的结果取平均值。我们将所提方法与最先进的方法$^{[11,37,46,45,24,12,5]}$进行比较。具体而言，[^46]和[^37]基于分层回归森林。与我们的方法类似，[^46]和[^37]会回归3D偏移量，并通过均值漂移算法聚合局部估计结果。而[^11]、[^45]、[^24]、[^12]、[^5]是基于CNN的3D整体回归方法，其性能优于其他现有方法$^{[10,18]}$。

同样，我们的方法在成功帧百分比（见图6）和平均关节误差（见表3）方面，都大幅优于所有现有最先进的方法。如图6所示，超过81%和91%的帧其关节误差分别低于20毫米和30毫米。这一成果相比[^5]所取得的最精确结果有了巨大提升，后者的对应数值仅为60%和81%。定性结果如图8(b)所示。

ICVL数据集：ICVL手部数据集$^{[39]}$包含2.2万帧训练数据和1500帧测试数据。此外还提供了16万帧带有平面内旋转增强的数据。

---

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

<div style="text-align: center;">Figure 6. Comparison with state-of-the-art on MSRA $^{[37]}$. We plot the percentage of frames in which all joints are below a threshold.</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. [^11] (3D CNN)</td><td style='text-align: center; word-wrap: break-word;'>9.5mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Wan et al. [^45] (Crossing Nets)</td><td style='text-align: center; word-wrap: break-word;'>12.2mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Oberweger et al. [^24] (DeepPrior++)</td><td style='text-align: center; word-wrap: break-word;'>9.5mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Guo et al. [^12] (REN)</td><td style='text-align: center; word-wrap: break-word;'>9.8mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Chen et al. [^5] (Pose Guided)</td><td style='text-align: center; word-wrap: break-word;'>8.6mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>7.2mm</td></tr></table>

<div style="text-align: center;">Table 3. Comparison with state-of-art on MSRA [^37]. We plot the percentage of frames in which all joints are below a threshold.</div>

![Image](images/ead1aab605828edf362f225bae4ea8da5d768e9f2ab603bb3dcd513dda780253.jpg)

<div style="text-align: center;">Figure 7. Comparison with state-of-the-art on ICVL [^39]. We plot the percentage of frames in which all joints are below a threshold.</div>

虽然该数据集包含这些增强数据，但我们并未使用它们，因为正如3.4节所述，我们会在训练过程中实时进行数据增强。与NYU和MSRA数据集相比，ICVL数据集中的姿态变化要小得多。我们将我们的方法与[^37]、[^46]、[^40]、[^45]、[^24]、[^12]以及[^5]进行比较。其中[^37]、[^46]、[^40]基于分层回归森林，而其他方法[^45]、[^24]、[^12]、[^5]则采用3D整体回归技术。

如图7所示，我们的方法达到了与[^5]相近的精度，且优于其他方法。我们的方法平均3D误差与[^5]相当，且比其他方法更优。考虑到结果已接近饱和状态，我们认为我们的方法与[^5]之间的差异并不显著。定性结果可见图8。

<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;'>Wan et al. [^45] (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;'>Wan et al. [^46] (Surface Normal)</td><td style='text-align: center; word-wrap: break-word;'>8.2mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Sun et al. [^37] (Cascaded Regression)</td><td style='text-align: center; word-wrap: break-word;'>9.9mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Oberweger et al. [^24] (DeepPrior++)</td><td style='text-align: center; word-wrap: break-word;'>8.1mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Guo et al. [^12] (REN)</td><td style='text-align: center; word-wrap: break-word;'>7.5mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Chen et al. [^5] (Pose Guided)</td><td style='text-align: center; word-wrap: break-word;'>6.8mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>7.3mm</td></tr></table>

<div style="text-align: center;">Table 4. Comparison with state-of-art on ICVL $^{[39]}$ dataset.</div>

![Image](images/b58a364f6b63deac61679909034c6b2c3cf8240504860f0178f17c1b130d56e9.jpg)

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

![Image](images/0216eeb60ee29c2c9f5332795ee30817f66651655a42cb6da374fbc5822fff72.jpg)

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

<div style="text-align: center;">Figure 8. Qualitative results. Hand pose estimation results from (a) ICVL $^{[39]}$, (b) MSRA $^{[37]}$.</div>

### 5. 结论与讨论

我们提出了一种针对单深度图输入的超高精度的3D手部姿态估计方法。给定一幅深度相机帧，我们将3D姿态参数分解为一组2D/3D关节热图和3D偏移方向的单位向量场。这种参数化方式使我们能够同时利用深度图的2D和3D特性，并便于充分发挥全卷积网络的优势。我们通过一种非参数的均值漂移变体来聚合局部估计结果，该方法能确保估算出的3D关节坐标与2D和3D局部估计结果保持一致。与以往的最先进方法和各类基准模型相比，我们的方法在2D检测与3D回归之间的融合方案上表现更佳。作为未来的研究方向，我们计划进一步拓展该方法，使其不仅能处理RGB输入下的3D姿态估计，还能应用于手部抓取物体的场景。

## 参考文献

## [^1]: M. Abadi, A. Agarwal, P. Barham, E. Brevdo, Z. Chen, C. Citro, G. S. Corrado, A. Davis, J. Dean, M. Devin, et al. Tensorflow: Large-scale machine learning on heterogeneous

---

分布式系统。arXiv预印本arXiv:1603.04467，2016年4月。

[^2]: F. Bogo, A. Kanazawa, C. Lassner, P. Gehler, J. Romero, and M. J. Black. Keep it SMPL: Automatic estimation of 3D human pose and shape from a single image. In ECCV, 2016. 2

[^3]: Z. Cao, T. Simon, S.-E. Wei, and Y. Sheikh. Realtime multi-person 2D pose estimation using part affinity fields. In CVPR, 2017. 3

[^4]: C.-H. Chen and D. Ramanan. 3D Human Pose Estimation = 2D Pose Estimation + Matching. In CVPR, 2017. 2

[^5]: 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. 1, 3, 7, 8

[^6]: C. Choi, S. Kim, and K. Ramani. Learning hand articulations by hallucinating heat distribution. In ICCV, 2017. 3

[^7]: C. Choi, A. Sinha, J. H. Choi, S. Jang, and K. Ramani. A collaborative filtering approach to Real-Time hand pose estimation: Supplementary material. In ICCV, 2015. 7

[^8]: J. Dai, K. He, and J. Sun. Instance-aware semantic segmentation via multi-task network cascades. In CVPR, 2016. 4

[^9]: E. Dibra, T. Wolf, C. Oztireli, and M. Gross. How to Refine 3D Hand Pose Estimation from Unlabelled Depth Data? In 3DV, 2017. 3

[^10]: 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 CVPR, 2016. 1, 2, 3, 5, 7

[^11]: 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. 2, 3, 4, 7, 8

[^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. 3, 7, 8

[^13]: K. He, G. Gkioxari, P. Dollár, and R. Girshick. Mask R-CNN. In ICCV, 2017. 4

[^14]: S. Ioffe. Batch renormalization: Towards reducing minibatch dependence in batch-normalized models. arXiv preprint arXiv:1702.03275, 2017. 4

[^15]: D. Kingma and J. Ba. Adam: A method for stochastic optimization. In ICLR, 2015. 4

[^16]: I. Lifshitz, E. Fetaya, and S. Ullman. Human pose estimation using deep consensus voting. In ECCV, 2016. 3

[^17]: M. Lin, L. Lin, X. Liang, K. Wang, and H. Cheng. Recurrent 3D pose sequence machines. In CVPR, 2017. 1,2

[^18]: M. Madadi, S. Escalera, A. Carruesco, C. Andujar, X. Baró, and J. González. Occlusion aware hand pose recovery from sequences of depth images. In FG, 2017. 7

[^19]: J. Martinez, R. Hossain, J. Romero, and J. J. Little. A simple yet effective baseline for 3D human pose estimation. In ICCV, 2017. 2

[^20]: F. Milletari, S.-A. Ahmadi, C. Kroll, A. Plate, V. Rozanski, J. Maiostre, J. Levin, O. Dietrich, B. Ertl-Wagner, K. Bötzel, et al. Hough-cnn: Deep learning for segmentation of deep brain regions in mri and ultrasound. CVIU, 2017. 3

[^21]: G. Moon, J. Y. Chang, Y. Suh, and K. M. Lee. Holistic planimetric prediction to local volumetric prediction for 3d human pose estimation. arXiv preprint arXiv:1706.04758, 2017. 2

[^22]: F. Moreno-Noguer. 3D human pose estimation from a single image via distance matrix regression. In CVPR, 2017. 2, 3

[^23]: A. Newell, K. Yang, and J. Deng. Stacked hourglass networks for human pose estimation. In ECCV, 2016. 1, 2, 3, 4, 5, 6

[^24]: M. Oberweger and V. Lepetit. Deepprior++: Improving fast and accurate 3D hand pose estimation. In ICCVW, 2017. 3, 4, 7, 8

[^25]: M. Oberweger, P. Wohlhart, and V. Lepetit. Hands deep in deep learning for hand pose estimation. arXiv preprint arXiv:1502.06807, 2015. 1, 3, 7

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

[^27]: I. Oikonomidis, N. Kyriazis, and A. A. Argyros. Efficient model-based 3D tracking of hand articulations using kinect. In BMVC, 2011. 1

[^28]: G. Papandreou, T. Zhu, N. Kanazawa, A. Toshev, J. Tompson, C. Bregler, and K. Murphy. Towards accurate multiperson pose estimation in the wild. In CVPR, 2017. 3, 4, 6

[^29]: G. P $^{a}$, and K. Daniilidis.

3D手部——

[^30]: A.-I. Popa, M. Zanfir, and C. Sminchisescu. Deep multitask architecture for integrated 2D and 3D human sensing. In CVPR, 2017. 1, 2

[^31]: C. Qian, Q. Chen, S. Xiao, W. Yichen, T. Xiaoou, and S. Jian. Realtime and robust hand tracking from depth. In CVPR, 2014. 1

[^32]: G. Rogez, P. Weinzaepfel, and C. Schmid. LCR-Net: Localization-classification-regression for human pose. In CVPR, 2017. 1, 2

[^33]: J. Shotton, R. Girshick, A. Fitzgibbon, T. Sharp, M. Cook, M. Finocchio, R. Moore, P. Kohli, A. Criminisi, A. Kipman, and A. Blake. Efficient human pose estimation from single depth images. TPAMI, 2013. 1, 2, 3

[^34]: H. Sidenbladh, M. J. Black, and D. J. Fleet. Stochastic tracking of 3D human figures using 2D image motion. In ECCV, 2000. 2

[^35]: L. Sigal, A. O. Balan, and M. J. Black. Humaneva: Synchronized video and motion capture dataset and baseline algorithm for evaluation of articulated human motion. IJCV, 87(1):4–27, 2010. 2

[^36]: X. Sun, J. Shang, S. Liang, and Y. Wei. Compositional human pose regression. In ICCV, 2017. 3

[^37]: X. Sun, Y. Wei, S. Liang, X. Tang, and J. Sun. Cascaded hand pose regression. In CVPR, 2015. 2, 3, 4, 7, 8

[^38]: J. S. Supancic, G. Rogez, Y. Yang, J. Shotton, and D. Ramanan. Depth-Based hand pose estimation: Data, methods, and challenges. In ICCV, 2015. 3

## [^39]: D. Tang, H. J. Chang, A. Tejani, and T.-K. Kim. Latent regression forest: Structured estimation of 3D articulated hand posture. In CVPR, 2014. 2, 4, 7, 8

---

[^40]: 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. 2, 3, 7, 8

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

[^42]: D. Tome, C. Russell, and L. Agapito. Lifting from the deep: Convolutional 3D pose estimation from a single image. In CVPR, 2017. 1, 2

[^43]: 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), 2014. 1, 2, 3, 4, 5, 6, 7

[^44]: A. Toshev and C. Szegedy. DeepPose: Human pose estimation via deep neural networks. In CVPR, 2014. 1

[^45]: 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. 3, 7, 8

[^46]: C. Wan, A. Yao, and L. Van Gool. Hand pose estimation from local surface normals. In ECCV, 2016. 2, 3, 7, 8

[^47]: S.-E. Wei, V. Ramakrishna, T. Kanade, and Y. Sheikh. Convolutional pose machines. In CVPR, 2016. 1, 2, 4, 6

[^48]: Y. Xie, X. Kong, F. Xing, F. Liu, H. Su, and L. Yang. Deep voting: A robust approach toward nucleus localization in microscopy images. In International Conference on Medical Image Computing and Computer-Assisted Intervention, 2015. 3

[^49]: 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. IJCV, 2017. 3, 7

[^50]: A. Yao, J. Gall, L. V. Gool, and R. Urtasun. Learning probabilistic non-linear latent variable models for tracking complex activities. In NIPS, 2011. 2

[^51]: Q. Ye, S. Yuan, and T.-K. Kim. Spatial attention deep net with partial PSO for hierarchical hybrid hand pose estimation. In ECCV, 2016. 1, 2, 3, 5, 7

[^52]: 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. 1

[^53]: X. Zhou, Q. Huang, X. Sun, X. Xue, and Y. Wei. Towards 3D human pose estimation in the wild: A weakly-supervised approach. In ICCV, 2017. 2

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