
# 级联手部姿态回归

孙晓

香港中文大学

<mailto:sx014@ie.cuhk.edu.hk>

韦一尘

微软研究院

<mailto:yichenw@microsoft.com>

梁双 $^{*}$

同济大学

<mailto:angliang@tongji.edu.cn>

唐晓欧

香港中文大学

<mailto:xtang@ie.cuhk.edu.hk>

孙健

微软研究院

<mailto:jiansun@microsoft.com>

## 摘要

我们从两个方面对以往的二维级联物体姿态回归工作进行了扩展[^9]，使其能更好地应用于三维关节物体的姿态估计。我们的第一项贡献是三维姿态索引特征，它是对以往二维参数化特征的推广，能够实现对三维变换更强的不变性。第二项贡献是适配关节物体结构的、具有原则性的分层回归方法，因此精度更高且速度更快。大量实验验证了所提方法在极具挑战性的三维手部姿态估计任务中，无论是在公开数据集还是我们新构建的数据集上，均能达到最先进的精度和效率。

### 1. 引言

人体、手部等三维关节物体的姿态估计问题已经研究了数十年。近年来，借助消费级深度传感器，人体姿态估计取得了快速进展和显著成果[^18] [^29] [^1] [^19] [^36]。目前最先进的学习方法[^18] [^29]会将深度像素划分为不同身体部位，再根据像素分类结果推断人体姿态。这一范式也被应用于手部姿态估计[^6] [^39] [^10] [^22]，但效果不如人体姿态估计理想。这是因为人体大多呈近正面姿态，肢体间的遮挡较少；而手部运动在相机视角和手指关节变化方面表现出更大的多样性，会生成更复杂的深度图像，使得像素分类难度大幅增加。此外，像素分类方法无法捕捉手部姿态中的结构约束。

基于回归的方法直接利用深度图像估计手部姿态，可采用潜在回归森林[^34]或深度卷积神经网络[^35]。这类方法更具原则性，因为其学习过程直接由任务引导。不过，此类研究仅学习一个回归模型，其建模能力可能不足以应对复杂的图像变化，尤其是在大视角和手部运动情况下。

我们提出了一种在大视角和复杂手部姿态下更稳健的级联回归方法。该方法直接受到级联姿态回归框架的启发[^9]：通过一系列弱回归器逐步估计物体姿态，每个弱回归器所使用的特征都依赖于前一阶段估计出的姿态。这种姿态索引特征能提供更好的几何不变性，并简化学习任务。该框架已成功应用于多项二维姿态估计任务[^9] [^5]。但目前尚不清楚如何将其应用于像人手这样具有复杂关节结构的三维物体。

我们扩展了针对三维关节物体的框架。我们的首个贡献是三维姿态索引特征。虽然我们使用了与级联姿态回归[^9]、面部[^5]、人体[^18] [^29]以及手部[^6] [^39] [^10] [^20] [^22]中类似的像素差异特征，但我们证明了像素参数化是实现特定几何不变性的关键。我们分析了以往参数化方法的不变性特性，阐述了我们的设计思路，并提出了一种新的三维参数化方法；该方法能够推广以往的方法，并能更好地应对三维变换带来的不变性需求。

我们的第二个贡献是一种针对关节物体结构量身定制的、具有原则性的分层方法。我们的核心发现是：由于关节结构的存在，不同物体部位通常表现出不同的变化程度和自由度。因此，将所有部位一起回归既过于困难，还会导致收敛速度慢且精度下降。我们的分层方法会按照各部位的关节复杂程度顺序，依次回归其姿态。它首先估计较容易处理的根部部位（如手掌）的姿态。

---

![Image](images/2673b962c03da1dcf2ad474b2d908cc9e37924e839119dc84815e0108dc3f5d0.jpg)

<div style="text-align: center;">Figure 1. Illustration of cascaded hand pose regression on a real example. Starting from the depth image and a rough initial hand pose (see Section 3.5 about initialization), the hand pose is iteratively updated through six stages and approaching the ground truth. The top row is the holistic hand regression (Section 3.3). The bottom row is the hierarchical regression (Section 3.4), i.e., palm is updated in the first three stages with fingers fixed (relatively to the palm) and fingers are updated in the last three stages with palm fixed.</div>

而更复杂的子部位（如手指）的姿态则依赖于根部部位的姿态，因此更容易估计。这种分层方法不仅收敛更快，而且精度也更高。

所提出的方法适用于一般的三维关节物体。在本研究中，它被应用于手部姿态估计，如图1所示。全面的实验表明，无论是在公开数据集还是我们收集的大型挑战性数据集上，该方法的表现都显著优于现有最先进的方法。除了高精度外，我们的回归算法运行速度也非常快（在单线程CPU上超过300 FPS），有望对实际应用产生重要影响。

### 2. 相关工作

关于（关节）物体姿态估计的研究已经相当丰富。我们仅从几个与我们工作相关且值得关注的视角出发，简要回顾以往的研究成果。

视角估计：许多以往的研究将相机视角分布建模为隐变量，先学习其分布，再以该分布为条件来学习物体姿态分布。这种方法减少了视角带来的变化，简化了姿态学习问题。该框架已被应用于面部 landmarks 定位[^8]、人体姿态估计[^33]以及手部姿态估计[^6] [^10]。然而，对于手部而言，这种方法的效果较差，因为手部的视角变化比人体和面部复杂得多——后两者在偏航角上的视角变化通常较小。以往的技术（如在[^6]中对手部姿态进行预聚类，以及在[^10]中使用带有视角分类项的增强代价函数）较为简单，只能实现粗略的视角估计。在本研究中，我们将视角参数化到手部姿态中，并在增强回归框架中迭代估计视角，这种方式更加稳健且精确。

级联姿态回归与姿态索引特征

该框架通过一系列弱回归器逐步更新物体姿态[^9]。它通过利用基于姿态的特征来扩展提升回归方法[^12]，也就是说，当前阶段的回归器学习会使用基于前一阶段估计姿态所定义的特征。这种方式能实现更好的几何不变性，并使每个阶段的学习更加容易。该框架已成功应用于二维物体姿态估计问题[^9]，尤其是面部特征点定位[^5] [^27]。在本研究中，我们首次将该框架扩展到三维物体姿态估计领域，并展示了如何在三维空间中定义基于姿态的特征。

逐关节估计与整体回归：许多方法[^6] [^39] [^10] [^22]采用类似于人体姿态识别中的逐像素分类方法来单独估计手部关节[^18] [^29]。这类方法首先将所有像素分类为物体部件，再将其转化为语义关节。这种策略存在两个缺点：其一，对大量像素进行评估的速度较慢；其二，也是更重要的一点，单独估计关节可能会违背其固有的结构约束。相比之下，我们的整体方法只需对整幅图像评估一次，就能同时回归出所有关节。这种方法不仅速度更快，还能更好地保留结构约束，如[^5]中所示。我们注意到，整体回归方法也应用于手部姿态估计[^34] [^35]，但并非以级联方式实现。

---

手部姿态估计，但并非采用级联方式。

分层姿态估计：渐进式人体姿态估计方法[^11]在宏观层面上与我们提出的分层回归思路相似，但在细节上存在很大差异。我们并不进行部件检测，而是按照关节活动的复杂程度顺序直接估计物体部件的姿态。事实证明，这种方式比将所有部件一起回归更有效。

基于模型的姿态跟踪：有许多基于模型的手部跟踪方法[^30] [^14] [^15] [^16] [^32] [^23] [^37] [^26] [^25] [^31]以及人体跟踪方法[^1] [^19] [^36]。它们大多基于缓慢但精确的局部优化算法，且需要良好的初始值才能正常工作。这类方法大多与基于学习的方法互补，后者能提供快速且粗略的姿态估计作为初始值。

早期的手部研究：大多数早期研究[^17] [^38] [^4] [^2] [^13] [^24]使用RGB图像或视频。由于缺乏三维信息，这些方法通常仅在近乎正面的视角下才能正常工作，而在大视角下稳定性较差。

### 3. 级联手部姿态回归

如图2(a)所示，手部姿态$\Theta$由21个运动关节参数化。我们也将$\Theta$划分为六个部分：手掌$\Theta^p$（6个关节）和五个手指$\{\Theta^f\}$（每个手指3个关节），其中$f \in F = \{1,2,3,4,5\}$。手掌编码了全局视角的6个自由度，而每个手指及其在手掌上的对应根节点（共4个关节）则编码了手指活动的4个自由度。

为了估计手部姿态，我们从深度图像I和初始姿态$\Theta^0$开始。在每个阶段$t(=1,...,T)$中，当前姿态估计会通过阶段回归器$\mathcal{R}^t$逐步更新，具体过程如下：

 $$ \Theta^{t}=\Theta^{t-1}+\mathcal{R}^{t}(I,\Theta^{t-1}). $$

最终的姿态估计结果为$\Theta^{T}$。

训练期间，阶段回归器$\mathcal{R}^t$被训练用来近似当前的姿态残差$\delta\Theta_i$，该残差指的是真实姿态与上一阶段的估计姿态之间的差值$\Theta_i^{t-1}$，这一计算涵盖所有训练样本i。需要注意的是，用于学习$\mathcal{R}^t$的特征依赖于前一阶段的姿态估计$\Theta_i^{t-1}$。这种基于姿态的特征具有更好的几何不变性，在多个2D姿态回归任务中已被证明十分有效[^9]。

这种级联姿态回归框架具有通用性，已在[^9]中有所介绍。现在我们将展示如何将其扩展应用于3D手部姿态回归。我们首先在第3.1节和第3.2节阐述基本原理，即3D姿态归一化和3D姿态索引特征。随后在第3.3节提出一种整体回归算法。接着在第3.4节提出并开发一种新的分层回归算法，该算法利用了关节结构的特性，能够改进整体算法。实现细节将在第3.5节给出。

![Image](images/357c425d3ef85a65418e92ce8d6694fc66be51b05f4e06811de9d66d1c1847ef.jpg)

<div style="text-align: center;">Figure 2. (a) 21-joint representation of a canonical hand pose. (b) Illustration of two finger coordinate frames and the palm coordinate frame on a real 3D hand pose, as well as the corresponding 3D transformations. See Section 3.1 for details.</div>

该对象能够优化整体算法。具体实现细节详见第3.5节。

#### 3.1.3 D姿态归一化

公式(1)中定义的手部姿态更新是在深度图像的3D相机坐标系下进行的。这种方式并不理想，因为它会受到此类坐标系之间非必要变换的影响；例如，平面内的图像旋转会为同一只手生成不同的深度图像。

为了实现一定的不变性，我们应当使用单一的规范坐标系，使其与各个相机坐标系无关。这可以通过应用3D变换$\mathcal{T}_{\Theta}$将姿态$\Theta$归一化到规范坐标系中来实现。所有训练样本都要进行这种归一化处理，以便在训练前它们在规范坐标系中大致对齐。测试时，则使用逆变换$\mathcal{T}_{\Theta}$将姿态转换回相机坐标系，实际的姿态更新便在此处发生。本质上，以往所有的身体/手部姿态回归工作都隐含地使用了这种3D姿态归一化方法，不过通常仅表现为3D平移操作；例如，事先通过平移对齐深度图像块或3D点云，或者回归相对于深度像素的相机坐标系下的3D关节偏移量[^29]。

在本研究中，我们首次采用了完整的3D刚体变换，因此除了平移外，它对3D旋转也具有更好的不变性。我们定义了两种类型的规范坐标系。如图2(b)所示，第一种与手掌根部对齐，第二种与手指根部对齐。对应的3D归一化变换分别记为$\mathcal{T}_{\Theta}^{p}$和$\mathcal{T}_{\Theta}^{f}$。具体而言，手掌坐标系的原点位于手腕处，正Y轴指向中指根部，正Z轴指向手掌平面外侧。由于该坐标系仅基于手掌部分定义，因此变换$\mathcal{T}_{\Theta}^{p}$也可表示为$\mathcal{T}_{\Theta}^{p}$。手指坐标系的原点位于手指……

---

以根部为原点，正Y轴沿第一指节方向，X轴垂直于手指平面$^1$。需要注意的是，手指坐标系与手掌坐标系存在不同的3D旋转关系，这反映了手指根部的自由度。因此，在手指姿态估计中，$\mathcal{T}_{\Theta}^f$比$\mathcal{T}_{\Theta}^p$更为适用，因为不同姿态下的手指在其局部坐标系中比在全局手掌坐标系中排列得更整齐。

#### 3.2. 基于3D姿态的索引特征

与以往基于深度的人体[^18] [^29]及手部[^6] [^39] [^10] [^34] [^22]学习方法类似，我们采用像素差异特征，即一个特征是两个随机像素的深度值之差$I(u_1) - I(u_2)$。实现特定几何不变性的关键在于如何对$u_i(i = 1, 2)$进行参数化。

遵循[^18]的研究思路，几乎所有以往的工作都使用随机2D偏移量$u_i$来对$\delta u_i$进行参数化，具体形式如下：

 $$ u_{i}=u+\frac{\delta u_{i}}{z(u)},i=1,2, $$

其中u为参考像素，即深度块的中心[^34]或任意待考察的像素[^6] [^10] [^22]，而$z(u)$为其深度值。[^18]中指出，这种参数化方式对u的深度变化具有不变性。

[^39]中的研究扩展了公式(2)，以实现对2D平面内旋转的不变性，具体形式如下：

 $$ u_{i}=u+\frac{R o t(\delta u_{i};u,\alpha)}{z(u)},i=1,2, $$

其中$Rot(\cdot)$是一种2D变换，它将$\delta u_i$围绕像素u旋转$\alpha$角度。在[^39]中，手部姿态的平面内旋转角度$\alpha$会在初始回归步骤中被估算出来，随后被固定下来。

从2D到3D：公式(2)和(3)都是利用2D偏移量$u_i$来索引像素$\delta u_i$。我们注意到，这个2D偏移量也可以被视为一个3D偏移量$\Delta u_i$，它位于一个与图像平面平行、深度为$z(u)$的3D平面上。其主要作用是定义一条从相机中心出发的背投影射线，用以定位3D表面点，再将该点投影到像素上以计算深度特征。

从这个角度来看，我们发现3D偏移量$\Delta u_i$其实不必局限于那个3D平面上，它可以任意定义。这为我们实现特定不变性提供了额外的灵活性。在我们的研究中，给定一个当前姿态$\Theta$以及将其归一化到某个标准坐标系的对应3D变换$T_\Theta$，我们会在标准坐标系中对3D偏移量进行参数化，从而使其对$T_\Theta$具有不变性。我们的方法具体如下：

```pseudo
// Algorithm 1: Training algorithm for holistic cascaded hand pose regression.

1: input: image  $I_i$, ground truth pose  $\Theta_i$, and initial pose  $\Theta_i^0$ for all training samples  i

2: for  $t = 1$ to  T do

3:  $\delta\Theta_i = \mathcal{T}_{\Theta_i^{p,t-1}}^p(\Theta_i) - \mathcal{T}_{\Theta_i^{p,t-1}}^p(\Theta_i^{t-1})$  $\triangleright$ residual

4: learn  $\mathcal{R}^t$ to approximate  $\delta\Theta_i$

5:  $\Theta_i^t = \Theta_i^{t-1} + \mathcal{T}_{\Theta_i^{p,t-1}}^p(\mathcal{R}^t(I_i, \Theta_i^{t-1}))$  $\triangleright$ update

6: end for

7: output: regressors  $\{\mathcal{R}^t\}_{t=1}^T$

1. Generate random 3D offsets  $\Delta u_i$. They represent 3D locations in the canonical coordinate frame.

2. Transform them using  $\overline{\mathcal{T}_{\Theta}}$. Now they represent 3D locations in the camera coordinate frame and are ready for feature generation.

3. Project them to image and compute depth feature.

```

综上所述，我们提出的参数化形式可表示为

 $$ u_{i}=C a m P r o j(\overline{{\mathcal{T}_{\Theta}}}(\Delta u_{i})),i=1,2. $$

讨论：公式(4)中的参数化方式是公式(2)和(3)中参数化方式的推广。如果$\mathcal{T}_{\Theta}$退化为3D平移，那么公式(4)就退化为公式(2)；如果$\mathcal{T}_{\Theta}$的旋转部分被限制为仅包含2D图像平面内的旋转，那么公式(4)就退化为公式(3)。

我们注意到，公式(2)、(3)和(4)中的三种参数化方式均无法实现严格的3D不变性，因为这些特征是在2D深度图像中定义的，而深度图像只是3D物体表面的不完整且存在畸变（由遮挡和投影导致）的观察结果。不过，它们仍是对这种不变性的良好近似。

我们的三维参数化方法有望生成对三维变换$\mathcal{T}_{\Theta}$完全不变的特征。我们注意到上述步骤（1）和（2）具有三维不变性，也就是说，同一个三维偏移量$\Delta u_i$对于仅因三维变换$\Theta$而有所不同的不同姿态$\mathcal{T}_{\Theta}$而言，对应的相对三维位置是相同的。因此，如果我们能在步骤（3）中用某种真实的三维特征来替换深度特征——例如该三维位置到三维物体表面的有符号距离（若该数据可获取的话，比如通过多视角深度传感器采集得到）——那么我们的方法就具备完全的三维不变性。

#### 3.3. 整体回归

整体算法直接对整只手的姿态$\Theta$进行回归。它利用基于手掌的变换$\mathcal{T}_{\Theta}^{p}$来进行姿态归一化和特征参数化。训练算法详见算法1。在训练前，每个样本的姿态残差会先被归一化（第3行），之后为了进入下一阶段，再将其归一化回原姿态（第5行）。

---

```pseudo
// Algorithm 2: Testing algorithm for hierarchical cascaded hand pose regression.

1: input: palm regressors  $\{\mathcal{R}^{p,t}\}_{t=1}^{T_1}$
2: input: finger regressors  $\{\mathcal{R}^{f,t}\}_{t=1}^{T_2}, f \in F$
3: input: image  I and initial palm pose  $\Theta^{p,0}$
4: for  $t = 1$ to  $T_1$ do ▷ update palm
5:  $\Theta^{p,t} = \Theta^{p,t-1} + \overline{\mathcal{T}_{\Theta^{p,t-1}}^{p}}$ ( $\mathcal{R}^{p,t}(I, \Theta^{p,t-1})$)
6: end for
7: initialize  $\{\Theta^{f,0}\}_{f \in F}$ as canonical finger poses on  $\Theta^{p,t}$
8:  $\Theta^0 = \Theta^{p,T_1} \cup \{\Theta^{f,0}\}_{f \in F}$ ▷ initialize whole hand
9: for  $t = 1$ to  $T_2$ do
10: for all fingers  $f \in F$ do ▷ update fingers
11:  $\Theta^{f,t} = \Theta^{f,t-1} + \overline{\mathcal{T}_{\Theta^{t-1}}^{f}}$ ( $\mathcal{R}^{f,t}(I, \Theta^{t-1})$)
12: end for
13:  $\Theta^t = \Theta^{p,T_1} \cup \{\Theta^{f,t}\}_{f \in F}$ ▷ update whole hand
14: end for
15: output:  $\Theta^{T_2}$

```

 $$ \begin{array}{r}{\Theta^{t}=\Theta^{t-1}+\overline{{\mathcal{T}_{\Theta^{p,t-1}}^{p}}}\big(\mathcal{R}^{t}(I,\Theta^{t-1})\big).}\end{array} $$

由于进行了归一化处理，公式（1）中的通用姿态更新规则变为

为了学习$\mathcal{R}^{t}$（第4行），我们采用标准的回归随机森林[^3] [^7]。在训练树中的每个分裂节点时，我们会按照公式（4）的描述采样大量随机像素差异特征，并从中选出能使姿态残差各维度上的方差减少量最大的那个特征。每个叶节点会存储落入该叶节点的所有姿态残差的平均值，以此作为该叶节点的预测结果。详细内容见3.5节。

#### 3.4. 分层回归

上述整体回归算法具有通用性，可应用于任何3D物体姿态估计问题。实验结果表明它已经能取得不错的效果。针对手部这类高度关节化的物体，我们基于以下观察提出了进一步改进方案。

1. 不同部位（手掌和手指）的姿态变化差异显著。手掌的稳定性远高于手指。将所有部位一起回归的效果较差，而且这会拖慢提升式回归框架[^12]的收敛速度，因为每个弱回归器产生的误差相对较大。

2. 手部的关节结构表明，手掌姿态会对手指姿态产生严重影响。换句话说，手指姿态的大量变化是由手掌姿态的改变引起的，而非手指自身的关节活动。

3. 五个手指的姿态在很大程度上是相互独立的，而且在手指根部还存在额外的自由度，

```pseudo
// Algorithm 3: Training algorithm for hierarchical cascaded hand pose regression.

1: input: image $I_i$, ground truth pose $\Theta_i$, and initial palm pose $\Theta_i^{p,0}$ for all training samples i

2: for $t=1$ to $T_1$ do $\triangleright$ learn palm

3: $\delta\Theta_i^p = \mathcal{T}_{\Theta_i^{p,t-1}}^p(\Theta_i^p) - \mathcal{T}_{\Theta_i^{p,t-1}}^p(\Theta_i^{p,t-1})$ $\triangleright$ residual

4: learn $\mathcal{R}^{p,t}$ to approximate $\delta\Theta_i^p$

5: $\Theta_i^{p,t} = \Theta_i^{p,t-1} + \frac{\mathcal{T}_{\Theta_i^{p,t-1}}^p}{(\mathcal{R}^{p,t}(I_i, \Theta_i^{p,t-1}))} \triangleright$ update

6: end for

7: initialize $\{\Theta_i^{f,0}\}_{f\in F}$ as canonical finger poses on $\Theta^{p,t}$

8: $\Theta_i^0 = \Theta_i^{p,T_1} \cup \{\Theta_i^{f,0}\}_{f\in F} \triangleright$ initialize whole hand

9: for $t=1$ to $T_2$ do $\triangleright$ learn fingers

10: for all fingers $f\in F$ do

11: $\delta\Theta_i^f = \mathcal{T}_{\Theta_i^{f-1}}^f(\Theta_i^f) - \mathcal{T}_{\Theta_i^{f-1}}^f(\Theta_i^{f,t-1})$ $\triangleright$ residual

12: learn $\mathcal{R}^{f,t}$ to approximate $\delta\Theta_i^f$

13: $\Theta_i^{f,t} = \Theta_i^{f,t-1} + \overline{\mathcal{T}_{\Theta_i^{f-1}}^f}(\mathcal{R}^{f,t}(I_i, \Theta_i^{t-1})) \triangleright$ update

14: end for

15: $\Theta_i^t = \Theta_i^{p,T_1} \cup \{\Theta_i^{f,t}\}_{f\in F} \triangleright$ update whole hand

16: end for

17: output: palm regressors $\{\mathcal{R}^{p,t}\}_{T_1}^{T_1}$

18: output: finger regressors $\{\mathcal{R}^{f,t}\}_{t=1}^{T_2}, f\in F$

```

此外还有手掌的全局视角变换。因此，将所有手指姿态一起回归，并采用基于手掌的3D姿态归一化方式，对于单个手指而言并非最优选择。

这些观察结果都很直观。它们自然地促使我们开发出一种新的分层回归算法。该算法从两个方面对整体算法进行了扩展。首先，回归操作沿着关节链依次进行。先估算根部位姿，由于它的变化较小，因此比同时学习所有部位更容易，收敛也更快。其次，将子部位归一化到其与根部位相连的局部坐标系下，并在根部位固定的情况下对其进行学习。这种局部归一化能够更好地对齐子部位，减小变化程度，从而简化学习过程。

分层回归方法适用于任何关节式物体。将其应用于手部时，我们首先估计手掌姿态，固定后再相应地估计手指姿态。手掌姿态的学习方式与第3.3节所述类似。五个手指的姿态分别通过不同的回归器来学习。相应的基于手指的3D变换用于手指姿态归一化和特征参数化。分层手部姿态回归的测试与训练算法分别在算法2和3中给出。我们使用的随机森林回归模型几乎完全相同，唯一的区别在于回归目标现在变为手掌 $\Theta^p$ 或手指 $\Theta^f$，而非整个手部 $\Theta$。

---

#### 3.5. 实现细节

初始化：训练和测试都需要一个初始姿态 $\Theta^0$，该姿态是通过启发式方法计算得出的。全局手部位置（中指根部）被初始化为手部3D点云的中心。全局旋转则是根据点云的主成分分析（PCA）来初始化：Y轴为变化最大的3D方向，Z轴为变化最小的3D方向。随后，所有关节会相对于全局姿态初始化到其标准位置，如图2(a)所示。与采用同一图像上的多个随机初始姿态以增强鲁棒性的 [^9] 不同，我们在训练和测试过程中仅使用上述一种初始化方式。

这种启发式初始化方法相当粗糙，当初始化在不同手部姿态下不稳定或不一致时可能会引发误差。不过，级联回归方法通常足以从这种粗略的初始状态中收敛。图1和图7展示了实际示例。

训练参数：每个随机森林回归器（用于整个手部、手掌或手指）包含10棵树。每个分裂节点使用512个随机特征进行训练；当节点内样本数少于10个时，树节点分裂停止。公式(4)中的3D偏移量 $\Delta u_i$ 是在大小与真实3D手部模型相近的3D体积中随机采样的。需要注意的是，不同人的3D手部模型尺寸存在差异。在我们的实验（训练与测试）中，这类手部尺寸参数是已知且手动设定的。对于整体回归，我们使用6个级联阶段；为了公平比较，在分层回归中手掌和手指部分均使用3个阶段。

### 4. 实验

数据集：目前公开的手部姿态估计数据集很少。早期的大多数研究仅在合成数据上进行定量评估。近期的一些手部跟踪工作 [^21] [^32] [^26] 提供了少量真实视频序列，但这些数据不足以支持基于学习的方法。

近期的研究 [^34] 发布了其训练/测试数据 $^{2}$，从而可以进行公平比较。结果表明这些数据相对简单，我们的方法在其中取得了非常好的效果。因此，在本研究中，我们收集并发布了一个规模更大、更具挑战性的数据集 $^{3}$。

评估指标：我们使用两种精度指标。第一种是所有图像上各关节误差（以毫米为单位）的平均值；第二种是成功率，即合格帧所占的百分比。如果某帧的最大关节误差小于一个小阈值（如20毫米），则该帧被视为合格帧。这种严格的衡量标准最初用于人体姿态估计 [^19]，随后被应用于手部研究 [^34]。

![Image](images/67a5b5c77b781eacbe544040a8d3226870efb7597e68b646f53294419814d363.jpg)

![Image](images/01066d058ed3312c8edb63d7b6e3b50b66913d91fb8501198cab911f16c8c9b0.jpg)

<div style="text-align: center;">Figure 4. Viewpoint (pitch and yaw) distribution of testing dataset in [^34] and our dataset.</div>

为了便于比较，我们设置了两个基线模型，它们可视为我们方法的简化变体。这两个模型均采用回归随机森林来估计整个手部姿态$\Theta$，只是在公式(2)和(3)中采用了不同的像素特征参数化方式。公式(2)和(3)中的参考像素u即为图像块的中心。公式(3)中的平面内旋转角度$\alpha$是根据我们的基于3D PCA的初始设定来估算的（详见第3.5节），也就是初始全局旋转中Y轴的二维投影。随机森林中的其他训练参数则完全相同。我们将这两个基线模型分别命名为手部姿态回归2D（HPR-2D）和手部姿态回归2D+Rot（HPR-2D+Rot）。需要注意的是，第二个基线模型的设计思路与[^39]中的方法类似，即先估算平面内旋转角度，再使用公式(3)中的特征。

与最先进方法的对比 许多手部姿态估计算法[^6] [^39] [^10] [^22]都基于像素分类范式，很少报告关节估计的精确度，因此无法直接与我们的方法进行比较。$^{F}$中提出的近期提出的潜在回归森林方法（简称LR [^34]）与我们的方法类似，同样采用整体（从粗到细）的关节回归方式，并且使用随机森林。因此，我们使用[^34]中的相同训练和测试数据来与LRF进行比较。值得注意的是，[^34]中的LRF已被证明优于[^6] [^23]中的方法。因此我们也间接与[^6] [^23]进行了比较。

图3（左侧和中间）的结果显示：1）使用基于3D姿态索引的特征的级联回归是有效的，因为我们的两种方法在性能上显著优于基线模型和LRF [^34]；2）分层回归的效果优于整体回归。示例结果如图6所示。

图3（右侧）进一步分析了整体回归与分层回归在6个级联阶段（分层回归中手掌占3个阶段，手指占3个阶段）的收敛特性。其中有几个有趣的发现：1）手掌部分比手指部分更容易估计；2）分层回归中的手掌部分比整体回归中的更精确，且收敛速度更快；3）分层回归中手指部分经过3个阶段的更新后，其精度高于整体方法中采用6个阶段的结果。这些观察结果表明，当关节物体的各部分变化程度不同时，整体回归的效果较差。按照关节复杂程度依次对各个部分进行分层回归会更好。

---

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

![Image](images/be24b4b2de951431963c047428186ee451b1b81f5ea304d90efe6aa995ba66c0.jpg)

![Image](images/a2b01c6909f528830fbf8ea57075d2760720071138fecdc79e8d38539a95f36c.jpg)

<div style="text-align: center;">Figure 3. Comparison of different methods on the dataset in [^34]. Left: success rates over different thresholds. Middle: per-joint average errors (R:root, T:tip). Right: average joint errors of palm and all fingers over 6 cascaded stages, for our holistic and hierarchical regression.</div>

![Image](images/b96565ac11fa35b6b5373df7dc14fac862a5f6f00302a55e83e811e98d523549.jpg)

![Image](images/77ec5fa3e82a51699a417453127527962f122ebb54862c1e2d8da28b8f1b76a1.jpg)

![Image](images/646cebfc8e262ab66942ee7f640ec6456c764597c28075ac470d700ab8d8d4d3.jpg)

<div style="text-align: center;">Figure 5. Comparison of different methods on our dataset. Left: success rates over different thresholds. Middle/Right: the average joint errors distributed over all yaw/pitch viewpoint angles. The standard deviations of the error distributions are shown in the legend titles.</div>

在新数据集上的评估 我们在[^34]的数据集上取得了令人惊讶的好结果。如图3（中间）所示，分层回归的平均关节误差约为10毫米。如此高的精度甚至可与基于模型的最先进跟踪方法[^15] [^32] [^23] [^26]相媲美，但这也可能意味着该数据集过于简单。图4显示，测试集的视角变化相对较小（偏航角在$[-30, 30]$度以内，俯仰角在$[-10, 45]$度以内），且大多数图像几乎都是从正面拍摄的。

为了更好地揭示手部姿态估计面临的挑战，并进一步验证我们的方法，我们收集了一个规模更大且更具挑战性的数据集。该数据集包含由9名受试者使用英特尔Creative Interactive Camera拍摄的76,500张深度图像。手部姿态的基准真值是通过在[^26]中采用的优化方法以半自动方式标注的，即标注者先运行优化算法，再手动反复修正手部姿态，直至其准确无误。

在数据采集过程中，要求每位受试者每次执行17种手势中的一种，需在较大的视角范围内快速移动，并适度改变手指的关节形态。每种手势会记录500帧图像。这17种手势由我们手动选取，大多源自美国手语，旨在尽可能覆盖各种手指关节形态。如图4所示，我们的数据集具有更大的视角变化范围（偏航角几乎覆盖了完整的$[-90, 90]$范围，俯仰角则在$[-10, 90]$度以内）。据我们所知，在现有文献中，我们的数据集无论是规模还是难度都堪称最大、最高。

实验中，我们使用8名受试者的数据训练回归模型，并在剩余1名受试者上进行测试。这一过程对所有受试者重复9次，最终报告平均性能指标。图5（左）中的结果显示出相似的结论：我们的方法优于基线方法，其中分层回归的效果最佳。不过总体来看，这些结果明显不如图3中的结果，这表明我们的数据集难度更高。图5（中、右）展示了根据基准真值统计得出的、分布在各偏航角和俯仰角下的平均关节误差。虽然所有方法在较大视角下表现均较差，但我们的两种方法不仅效果更好，而且比基线方法更稳健（标准差更小）。图7展示了分层回归在几个具有挑战性的样本上的中间结果。

在图5（左）中，当误差阈值较大时，分层回归的表现不如整体回归。这与图3（左）中的情况不同，在图3中分层回归始终优于整体回归。经检查我们发现，这是因为在新数据集上，姿态初始化（见第3.5节）的稳定性远不如在[^34]的数据集上，原因在于新数据集的视角和手势变化更大。初始化不佳通常会导致分层回归中手掌姿态估计的误差较大，进而造成手指部分的误差增大。

---

LRF

![Image](images/836d61bea5c1200b356b6f7cfd299d6440a2a1814fa39de6c51bf10f065e0995.jpg)

整体回归

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

分层回归

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

图6. 在[^34]数据集上三种方法的示例结果：LRF [^34]、我们的整体回归以及分层回归。

初始姿态

![Image](images/b0eb8271072297286772b5cefe4b95d653690a0ccf9aa4a2726655e92ca6bd1d.jpg)

手掌阶段1

![Image](images/44343065cf35cd38a936a8a55d55cc4226d04ffd83293c210b69d39ae3e0d978.jpg)

![Image](images/8ff61d10921eb11775d464baf15b0621d1801f9c302ca0ac971522c786048c72.jpg)

手掌阶段3

手指阶段4

![Image](images/be5d60633f5532be904b2383f76ef11411ae59964ba9cca9b588e87ccd462e80.jpg)

手指阶段6

![Image](images/b8a8095f5c0e1522a68913d0b67e6117242ea0764a80c243811adcc391ca5873.jpg)

<div style="text-align: center;">Figure 7. Example intermediate results of hierarchical regression in our dataset. Note how the initial rough poses are gradually refined.</div>

随机森林算法结合像素差异特征，其评估速度很快。我们的分层回归模型（包括基于PCA的初始化过程）的运行速度超过300 FPS（英特尔至强CPU 3.70GHz，单线程）。如此高的性能对于实际应用至关重要。作者的网站上提供了相关演示视频。

相比之下，我们的方法比以往基于学习的方法要快得多（在[^6]中达到8.6 FPS，在[^39]中达到12 FPS，在[^10]中达到25 FPS，在[^34]中达到62.5 FPS，在[^22]中仅为几帧每秒，在[^35]中达到40 FPS）；也比基于模型的方法更快（在[^32]中达到10 FPS，在[^23]中达到60 FPS，在[^26]中达到25 FPS）。

### 5. 结论

我们提出了一种用于三维关节物体的新颖级联姿态回归方法。该方法采用了一种新的特征参数化方式以增强三维不变性，同时运用分层原则来更好地利用物体的关节结构。在手部姿态估计的准确性和效率方面，该方法均达到了最先进的水平。未来的工作将包括自动估算手部尺寸，以及在级联框架中采用更强大的回归模型，比如优化后的随机森林[^28]或卷积网络[^35]。

---

致谢：本研究得到了国家自然科学基金（编号61305091）、中央高校基本科研业务费（编号2100219038）以及上海浦江人才计划（编号13PJ1408200）的支持。

## 参考文献

[^1]: A. Baak, M. Muller, G. Bharaj, H. P. Seidel, and C. Theobalt. A data-driven approach for real-time full body pose reconstruction from a depth camera. In ICCV, 2011. 1, 3

[^2]: A.Erol, G.Bebis, M.Nicolescu, R.D.Boyle, and X.Twombly. Vision-based hand pose estimation: A review. CVIU, 2007. 3

[^3]: L. Breiman. Random forests. Machine learning, 45:5–32, 2001. 5

[^4]: B. Stenger, A. Thayananthan, P.H.S. Torr, and R. Cipolla. Model-based hand tracking using a hierarchical bayesian filter. PAMI, 2006. 3

[^5]: X. Cao, Y. Wei, F. Wen, and J. Sun. Face alignment by explicit shape regression. In CVPR, 2012. 1, 2

[^6]: C.Keskin, F.Kirac, Y.E.Kara, and L.Akarun. Hand pose estimation and hand shape classification using multi-layered randomized decision forests. In ECCV, 2012. 1, 2, 4, 6, 8

[^7]: A. Criminisi and J. Shotton. Decision Forests for Computer Vision and Medical Image Analysis. Springer, 2013. 5

[^8]: M. Dantone, J. Gall, G. Fanelli, and L. V. Gool. Real-time facial feature detection using conditional regression forests. In CVPR, 2012. 2

[^9]: P. Dollar, P. Welinder, and P. Perona. Cascaded pose regression. In CVPR, 2010. 1, 2, 3, 6

[^10]: D.Tang, T.Y, and T.K.Kim. Real-time articulated hand pose estimation using semi-supervised transductive regression forests. In ICCV, 2013. 1, 2, 4, 6, 8

[^11]: V. Ferrari, M. Marin-Jimenez, and A. Zisserman. Progressive search space reduction for human pose estimation. In CVPR, 2008. 3

[^12]: J. H. Friedman. Greedy function approximation: A gradient boosting machine. The Annals of Statistics, 2001. 2, 5

[^13]: H. Hamer, K. Schindler, E.K. Meier, and L.V. Gool. Tracking a hand manipulating an object. In ICCV, 2009. 3

[^14]: I. Oikonomidis, N. Kyriazis, and A. A. Argyros. Markerless and efficient 26-dof hand pose recovery. In ACCV, 2010. 3

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

[^16]: I. Oikonomidis, N. Kyriazis, and A. A. Argyros. Tracking the articulated motion of two strongly interacting hands. In CVPR, 2012. 3

[^17]: J.M.Rehg and T. Kanade. Visual tracking of high dof articulated structures: an application to human hand tracking. In ECCV, 1994. 3

[^18]: J. Shotton, A. Fitzgibbon, M. Cook, T. Sharp, M. Finocchio, R. Moore, A. Kipman, and A. Blake. Real-time human pose recognition in parts from single depth images. In CVPR, 2011. 1, 2, 4

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

[^20]: E. Krupka, A. Vinnikov, B. Klein, A. B. Hillel, D. Freedman, S. Stachniak, and C. Keskin. Discriminative ferns ensemble for hand pose recognition. In CVPR, 2014. 1

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

[^22]: H. Liang, J. Yuan, and D. Thalmann. Parsing the hand in depth images. IEEE Trans. Multimedia, 2014. 1, 2, 4, 6, 8

[^23]: S. Melax, L. Keselman, and S. Orsten. Dynamics based 3d skeletal hand tracking. In Interactive 3D Graphics and Games, 2013. 3, 6, 7, 8

[^24]: M.L.Gorce, D.J.Fleet, and N.Paragios. Model-based 3d hand pose estimation from monocular video. PAMI, 2011. 3

[^25]: I. Oikonomidis, M. I. Lourakis, and A. A. Argyros. Evolutionary quasi-random search for hand articulations tracking. In CVPR, 2014. 3

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

[^27]: S. Ren, X. Cao, Y. Wei, and J. Sun. Face alignment at 3000 fps by regressing local binary features. In CVPR, 2014. 2

[^28]: S. Ren, X. Cao, Y. Wei, and J. Sun. Global refinement of random forest. In CVPR, 2015. 8

[^29]: R. Girshick, J. Shotton, P. Kohli, A. Criminisi, and A. Fitzgibbon. Efficient regression of general-activity human poses from depth images. In ICCV, 2011. 1, 2, 3, 4

[^30]: R.Y.Wang and J.Popovi. Real-time hand-tracking with a color glove. In SIGGRAPH, 2009. 3

[^31]: T. Sharp, C. Keskin, D. Robertson, J. Taylor, J. Shotton, D. Kim, C. Rhemann, I. Leichter, A. Vinnikov, Y. Wei, D. Freedman, P. Kohli, E. Krupka, A. Fitzgibbon, and S. Izadi. Accurate, robust, and flexible realtime hand tracking. In CHI, 2015. 3

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

[^33]: M. Sun, P. Kohli, and J. Shotton. Conditional regression forests for human pose estimation. In CVPR, 2012. 2

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

[^35]: J. Tompson, M. Stein, Y. LeCun, and K. Perlin. Real-time continuous pose recovery of human hands using convolutional networks. ACM Trans. Graph., 2014. 1, 2, 8

[^36]: V.Ganapathi, C.Plagemann, D.Koller, and S.Thrun. Real-time human pose tracking from range data. In ECCV, 2012. 1,3

[^37]: Y. Wang, J. Min, J. Zhang, Y. Liu, F. Xu, Q. Dai, and J. Chai. Video-based hand manipulation capture through composite motion control. In ACM Trans. Graph, 2013. 3

[^38]: Y. Wu, J. Y. Lin, and T. S. Huang. Capturing natural hand articulation. In ICCV, 2001. 3

[^39]: C. Xu and L. Cheng. Efficient hand pose estimation from a single depth image. In ICCV, 2013. 1, 2, 4, 6, 8
