
# 单张深度图像中的鲁棒三维手部姿态估计：从单视图CNN到多视图CNN

Ge Liuhao、梁辉、袁俊松、Daniel Thalmann

媒体创新研究所

新加坡南洋理工大学

lao, hliang1}@e.ntu.edu.sg, {jsyuan, danielthalmann}@ntu.edu.s

## 摘要

关节化手部姿态估计在人机交互中发挥着重要作用。尽管近期取得了进展，但现有方法的精度仍不尽如人意，部分原因是嵌入式高维非线性回归问题难以解决。与现有的利用单张深度图像回归手部姿态的判别性方法不同，我们提出先将输入的深度图像投影到三个正交平面上，再利用这些多视图投影来回归2D热图，从而估计每个平面上的关节位置。随后将这些多视图热图融合，借助学习到的姿态先验得到最终的三维手部姿态估计结果。实验表明，所提方法在具有挑战性的数据集上大幅超越了现有最先进方法。此外，跨数据集实验也证明了所提方法的良好泛化能力。

### 1. 引言

长期以来，三维手部姿态估计问题在计算机视觉领域备受关注，因为它在虚拟/增强现实等人机交互场景中发挥着重要作用。尽管该领域近期取得了进展[^14] [^18] [^21] [^23] [^29]，但鲁棒且精准的手部姿态估计仍是一项极具挑战性的任务。由于手部姿态变化范围大且运动维度高，通常很难建立从图像特征到关节化手部姿态参数的高效映射关系。

用于手部姿态估计的数据驱动方法会训练判别性模型，比如等距自组织映射[^4]、随机森林[^7] [^21] [^24] [^25]以及卷积神经网络（CNN）[^29]，用于将图像特征映射到手部姿态参数。随着标注完善的手部姿态数据集的出现[^21] [^24] [^29]，数据驱动方法优势更加明显，因为它们无需复杂的模型校准，且对初始条件不佳的情况也具有鲁棒性。

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

<div style="text-align: center;">Figure 1: Overview of our proposed multi-view regression framework. We generate heat-maps for three views by projecting 3D points onto three orthogonal planes. Three CNNs are trained in parallel to map each view's projected image to its corresponding heat-maps, which are then fused together to estimate 3D hand joint locations.</div>

本文重点研究基于CNN的数据驱动方法。CNN已被应用于身体和手部姿态估计[^27] [^29] [^30]，且被证明十分有效。基于CNN的手部姿态估计方法的主要难点在于精准的三维手部姿态回归。直接从输入图像映射到三维坐标的过程非线性程度极高，导致学习复杂度高且网络的泛化能力较弱[^27]。另一种思路是将输入图像映射为一组热图，这些热图代表了图像中关节位置的概率分布，再通过模型拟合从深度图像中恢复三维关节位置[^29]。不过这种方法中的热图仅能提供手部的二维信息，深度信息并未得到充分利用。

在本研究中，我们提出了一种基于多视角CNN的新型3D回归方法。该方法能够更有效地利用深度线索来恢复手部关节的完整3D信息，且无需进行模型拟合，如图1所示。具体而言，输入深度图像的点云首先会被投影到三个正交平面上。

---

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

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

![Image](images/dc3f1b0f1ba7d69eab317cac1a1e434554a56ff29d6e6c733b2f7b604ff821e6.jpg)

![Image](images/a4dedeb7ed5257a9369a958b950c81647e4a13693dd1964319881534bb07466e.jpg)

![Image](images/7669d73e5b6b24576ee124f9c856cbdc049c3a6420a26504e34e63a1c90200d6.jpg)

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

<div style="text-align: center;">Figure 2: (a) Illustration of joint estimation in single view. Blue points are true locations, and red points are estimated locations. The little finger tip is misestimated on the background and the middle finger tip is misestimated on the hand palm. (b) Illustration of ambiguous estimation. Despite the heat-map of x-y view contains two hotspots which are hard to choose, from the heat-map of z-x view, it is easy to find that the x value is small with high confidence. Thus, the left hotspot in x-y view's heat-map is true.</div>

随后，每张投影图像会被分别送入独立的CNN，以生成手部关节的热图，其流程与[^29]中描述的类似。由于每个视角下的热图都编码了该关节在投影平面上的2D分布，因此三个视角下的热图组合便包含了该关节在3D空间中的位置分布。通过融合三个视角的热图以及预先学习得到的手部姿态先验，我们最终就能得到3D关节位置，同时消除估计中的歧义性。

与[^29]中的单视角CNN方法相比，我们提出的多视角CNN方法具有以下优势：

- 在单视角CNN方法中，手关节的深度被取为估计出的2D位置处对应的深度值，即便估计的2D位置仅与真实关节位置有微小偏差，也可能导致较大的深度估计误差，如图2a所示。相比之下，我们提出的多视角CNN能够同时生成正面、侧面和顶面的热图，从而更稳健地估计出手关节的3D位置。

在估计存在不确定性的情况下，单视角CNN无法很好地区分热图中的多个热点区域，而这些热点中只有 하나可能对应真实的关节，如图2b（x-y视图）所示。借助所提出的多视角CNN，其他两个视角的热图能够帮助消除这种不确定性，比如图2b中的情况。

- 与仍依赖预定义手部模型来获取最终估计结果的[^29]不同，我们提出的方法以隐式方式嵌入了从训练样本中学习到的手部姿态约束，无需手动定义手部尺寸参数即可强制施加手部运动约束。

全面的实验验证了所提方法在公共数据集[^21]上相较于现有最先进方法的卓越性能，其运行速度超过70fps。此外，我们提出的多视角回归方法在跨数据集实验[^17] [^21]中也能取得较高的准确率。

### 2. 文献综述

基于视觉的手部姿态估计多年来一直是学界广泛研究的课题。最常见的手部姿态估计技术可分为模型驱动方法和数据驱动方法[^22]。模型驱动方法通常通过将可变形的3D手部模型拟合到输入图像观测结果上来寻找最优的手部姿态参数。这类方法已被证明相当有效，尤其是在使用深度摄像头时[^15] [^17] [^19] [^23]。不过，模型驱动方法也存在一些不足。例如，它们通常需要明确界定手部的解剖尺寸和运动约束，才能与输入图像相匹配。此外，由于手部姿态参数的维度较高，迭代模型拟合过程对初始值较为敏感，难以收敛到最优姿态。

相比之下，数据驱动的方法无需显式指定手部尺寸和运动约束。这些信息会自动编码在训练数据中。因此，许多近期的方法都基于这种方案 [^10] [^11] [^13] [^21] [^25] [^32]。其中，随机森林及其变体被证明具有相当高的准确性和速度。在 [^32] 中，作者提出利用随机森林直接从深度图像回归手部关节角度：一组参与空间投票的像素会独立为手部姿态投票，这些投票结果会被聚类为一组候选解，最终通过结合手部模型的验证阶段确定最优解。类似的方法在 [^25] 中也有提及，该方法进一步采用迁移学习来弥补合成数据与真实数据之间的差异。由于随机森林对复杂手部姿态的估计可能存在歧义，有时会利用预先学习的手部姿态先验来更好地融合独立预测的手部关节分布 [^8] [^12]。在 [^21] 中，级联姿态回归算法 [^3] 被应用于手部姿态估计问题。具体而言，作者提出先预测手部骨骼的根关节，再据此更新其余关节，这样就能在姿态回归过程中很好地保留手部姿态约束。

最近，卷积神经网络在关节姿态估计领域展现出卓越效果。在 [^30] 中，研究人员对其进行调整，使其能通过直接最小化训练数据上的姿态估计误差来回归二维人体姿态。结果显示其性能大幅优于传统方法。不过，训练该网络需要二十多天时间。

---

该数据集仅包含几千张图像。考虑到 [^30] 中使用的数据集规模相对较小，将其应用于包含超过7万张图像的更大数据集（如 [^21]、[^24]）时会存在困难。此外，[^5] 和 [^27] 指出，利用CNN从图像特征直接映射到连续的二维/三维位置这一过程具有高度非线性和复杂性，且泛化能力较差，因此难以用这种方式训练CNN。针对这一问题，在他们关于人体姿态估计的研究 [^27]、[^28] 中，CNN被用来预测关节位置的热图，而非原始的关节姿态参数；热图中每个像素的强度代表了该位置出现关节的概率。训练时，回归误差被定义为预测热图与真实热图之间的L2范数。通过这种方式，网络能够高效训练，并达到最先进的性能。类似的框架也已被应用于三维手部姿态估计 [^29]。不过，热图仅能提供手部的二维信息，深度信息并未得到充分利用。为解决这一问题，研究采用了基于模型的验证阶段，根据预测的热图和输入的深度图像来估计三维手部姿态 [^29]。这类基于热图的方法颇具价值，因为热图能够反映三维手部关节在投影平面上的概率分布。受此类方法的启发，我们生成多视角热图并将其融合，以估计三维空间中手部关节的概率分布。

### 3. 方法论

手部姿态估计任务可以被视为从深度图像中提取三维手部关节位置。具体而言，该任务的输入是一张仅包含人手及其某种手势的裁剪后的深度图像，输出则是表示手部姿态的K个三维手部关节位置。设这K个目标手部关节位置为$\mathbf{\Phi} = \{\phi_k\}_{k=1}^K \in \mathbf{\Lambda}$，其中$\mathbf{\Lambda}$属于$3 \times K$维的手部关节空间，在本研究中$K = 21$。这21个目标手部关节位置包括腕部中心、五个掌指关节、五个近节指关节、五个远节指关节以及五个指尖。

根据第1节的讨论，我们提出基于三个正交平面上的投影图像来推断三维手部关节位置$\mathbf{\Phi}$。设这三个投影图像分别为$I_{xy}$、$I_{yz}$和$I_{zx}$，它们是通过将深度图像中的三维点分别投影到投影坐标系中的x-y平面、y-z平面和z-x平面上得到的。因此，查询用深度图像$I_D$会被转换为这三个投影图像$I_{xy}$、$I_{yz}$和$I_{zx}$，这些图像将在后续推导中作为输入用于推断三维手部关节位置。

我们通过应用MAP（最大后验）估计器来估算手部关节位置$\Phi$，其基础是投影…

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

<div style="text-align: center;">Figure 3: Illustration of 3D points projection. 3D points obtained from the input depth image are projected onto x-y, y-z and z-x planes of the OBB coordinate system, respectively.</div>

…投影图像$I_{xy}$、$I_{yz}$和$I_{zx}$，它们可被视为三维手部姿态的观测值。给定$(I_D, \Phi)$，我们假设在关节位置$I_{xy}$已知的条件下，这三个投影图像$I_{yz}$、$I_{zx}$和$\Phi$是相互独立的[^1] [^33]。基于这一假设以及先验概率相等的假设$P(\Phi)$，关节位置的后验概率可以表示为来自三个视角的各自估计值的乘积。因此，寻找最优手部关节位置$\Phi^*$的问题可表述如下：

 $$ \begin{aligned}\mathbf{\Phi}^{*}=&\underset{\mathbf{\Phi}}{argmax}P\left(\mathbf{\Phi}|I_{xy},I_{yz},I_{zx}\right)\\=&\underset{\mathbf{\Phi}}{argmax}P\left(I_{xy},I_{yz},I_{zx}|\mathbf{\Phi}\right)\\=&\underset{\mathbf{\Phi}}{argmax}P\left(I_{xy}|\mathbf{\Phi}\right)P\left(I_{yz}|\mathbf{\Phi}\right)P\left(I_{zx}|\mathbf{\Phi}\right)\\=&\underset{\mathbf{\Phi}}{argmax}P\left(\mathbf{\Phi}|I_{xy}\right)P\left(\mathbf{\Phi}|I_{yz}\right)P\left(\mathbf{\Phi}|I_{zx}\right)\end{aligned} $$

 $$ s.t.\Phi\in\Omega $$

其中，$\Phi$被约束在一个低维子空间$\Omega \subseteq \Lambda$中，以解决关节估计模糊的问题。

后验概率$P(\phi_k | I_{xy})$、$P(\phi_k | I_{yz})$和$P(\phi_k | I_{zx})$可以通过CNN生成的热图来估算。现在我们来详细介绍多视角三维关节位置回归方法。我们首先在第3.1节描述多视角投影与学习方法，然后在第3.2节介绍多视角融合方法。

#### 3.1. 多视角投影与学习

多视角投影与学习的目标是生成每个视角的投影图像，并学习投影图像与各视角热图之间的关系。首先，我们详细介绍三维投影过程；接着，我们介绍CNN的架构。

三维点投影：如图1所示，输入的深度图像首先通过深度相机转换为世界坐标系下的一组三维点…

---

![Image](images/b4dfbacacad3434e48333eddabc8babed8e4d9d84917ded2c1ab347c45832305.jpg)

<div style="text-align: center;">Figure 4: Convolutional Network architecture for each view. The network contains convolutional layers and fully-connected layers. In convolutional layers, there are three banks for multi-resolution inputs. The network generates 21 heat-maps with the size of 18x18 pixels. All of the three views have the same network architecture and the same architectural parameters.</div>

固有参数，例如主点的位置以及焦距。为了生成多视图投影，我们将这些三维点投影到三个正交平面上。如图3所示，通过对这组三维点执行主成分分析（PCA），可生成一个有向包围盒（OBB），该包围盒能在局部空间中紧密地贴合这些三维点 [^31]。OBB坐标系的原点被设定在包围盒的中心，其x、y、z轴分别与第一、第二和第三主成分对齐。该坐标系被设定为投影坐标系。

对于三维点到平面的投影，三维点到投影平面的距离会被归一化到0到1之间（最近的点设为0，最远的点设为1）。随后，三维点会分别被正交投影到OBB坐标系的x-y、y-z和z-x平面上，如图3所示。相应的归一化距离会被存储为投影图像的像素值。如果有多个三维点被投影到同一个像素上，则最小的归一化距离会被作为该像素值存储。需要注意的是，由于深度图的分辨率限制，三个正交平面上的投影可能会比较粗糙 [^9]，可通过在投影图像上执行中值滤波和开运算来解决这一问题。

CNN的架构：由于我们将三维点投影到三个视图上，因此针对每个视图，我们都会构建具有相同网络架构和相同架构参数的卷积网络。受Tompson等人研究的启发 [^29]，我们为每个视图采用了如图4所示的多分辨率卷积网络架构。输入的投影图像会被缩放为96×96像素，随后通过局部对比度归一化（LCN）处理 [^6]，以归一化图像中的对比度。经过LCN处理后，96×96的图像会被下采样为48×48和24×24像素。这三幅不同分辨率的图像会分别传入由两级卷积层组成的三组网络中。这三组网络的输出特征图会被拼接起来，再输入到一个包含两级线性层的全连接网络中。该网络的最终输出是21个尺寸为18×18像素的热图，其强度反映了在指定视图的二维位置上定位关节点的置信度。

#### 3.2. 多视图融合

多视图融合的目标是根据三个视图的热图来估计三维手部关节的位置。设$\phi_{kx}$、$\phi_{ky}$和$\phi_{kz}$分别表示OBB坐标系中三维手部关节位置$\phi_k$的x、y和z坐标。

CNN会为每个关节、每个视图生成一组热图。由于热图上的强度反映了关节点在x-y、y-z或z-x视图的二维位置上定位的置信度，因此我们可以从三个视图的热图中得到相应的概率$P(\phi_{kx}, \phi_{ky} | I_{xy}), P(\phi_{ky}, \phi_{kz} | I_{yz})$和$P(\phi_{kz}, \phi_{kx} | I_{zx})$。

假设在给定x-y视图的条件下，z变量的分布是均匀的，那么我们有：

 $$ \begin{aligned}P\left(\phi_{k}|I_{xy}\right)&=P\left(\phi_{kx},\phi_{ky},\phi_{kz}|I_{xy}\right)\\&=P\left(\phi_{kx},\phi_{ky}|I_{xy}\right)P\left(\phi_{kz}|I_{xy}\right)\\&\propto P\left(\phi_{kx},\phi_{ky}|I_{xy}\right)\end{aligned} $$

基于类似的假设，对于另外两个视图，可以推导出$P(\phi_k | I_{yz}) \propto P(\phi_{ky}, \phi_{kz} | I_{yz})$和$P(\phi_k | I_{zx}) \propto P(\phi_{kz}, \phi_{kx} | I_{zx})$。

我们假设在给定每个视图的投影图像的条件下，手部关节位置是相互独立的。因此，公式1中的优化问题可以转化为：

 $$ \begin{aligned}\mathbf{\Phi}^{*}&=\underset{\mathbf{\Phi}}{\arg\max}P\left(\mathbf{\Phi}|I_{xy}\right)P\left(\mathbf{\Phi}|I_{yz}\right)P\left(\mathbf{\Phi}|I_{zx}\right)\\&=\underset{\mathbf{\Phi}}{\arg\max}\prod_{k}P\left(\phi_{k}|I_{xy}\right)P\left(\phi_{k}|I_{yz}\right)P\left(\phi_{k}|I_{zx}\right)\\&=\underset{\mathbf{\Phi}}{\arg\max}\prod_{k}Q\left(\phi_{kx},\phi_{ky},\phi_{kz}\right)\\ \end{aligned} $$

其中$Q(\phi_{kx},\phi_{ky},\phi_{kz})$表示每个关节的概率乘积$P(\phi_{kx},\phi_{ky}|I_{xy})$、$P(\phi_{ky},\phi_{kz}|I_{yz})$和$P(\phi_{kz},\phi_{kx}|I_{zx})$。

公式3表明，通过最大化所有关节的$Q(\phi_{kx},\phi_{ky},\phi_{kz})$乘积，我们就能得到最优的手部关节位置，该乘积可由三个视角热图的强度计算得出。在本研究中，我们均匀采样边界框内的三维点，并将其投影到三个视角上以获取对应的热图强度。

---

随后便可计算出某个三维点的$Q(\phi_{kx}, \phi_{ky}, \phi_{kz})$值。

为了简化问题，我们将概率乘积$Q(\phi_{kx}, \phi_{ky}, \phi_{kz})$近似为三维高斯分布$\mathcal{N}(\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)$，其中$\boldsymbol{\mu}_k$为均值向量，$\boldsymbol{\Sigma}_k$为协方差矩阵。这些高斯分布的参数可通过采样数据来估计。

基于上述假设和推导，公式3中的优化问题可近似表示为：

 $$ \begin{aligned}\boldsymbol{\Phi}^{*}&=\underset{\Phi}{\arg\max}\sum_{k}\log Q\left(\phi_{k x},\phi_{k y},\phi_{k z}\right)\\&=\underset{\Phi}{\arg\max}\sum_{k}\log\mathcal{N}(\boldsymbol{\mu}_{k},\boldsymbol{\Sigma}_{k})\\&=\underset{\Phi}{\arg\min}\sum_{k}\left(\phi_{k}-\boldsymbol{\mu}_{k}\right)^{T}\boldsymbol{\Sigma}_{k}^{-1}\left(\phi_{k}-\boldsymbol{\mu}_{k}\right)\\ s.t.&\boldsymbol{\Phi}=\sum_{m=1}^{M}\alpha_{m}\boldsymbol{e}_{m}+\boldsymbol{u}\end{aligned} $$

其中$\mathbf{\Phi}$被约束为取线性形式。为了学习手部姿态约束的低维子空间$\mathbf{\Omega}$，我们对训练数据集中的关节位置执行主成分分析([^12])__。$\mathbf{E} = [\mathbf{e}_1, \mathbf{e}_2, \cdots, \mathbf{e}_M]$为主成分，$\boldsymbol{\alpha} = [\alpha_1, \alpha_2, \cdots, \alpha_M]^T$为主成分的系数，$\mathbf{u}$为经验均值向量，而$M \ll 3 \times K$则代表其他相关参数。

正如补充材料中所证明的，在给定$\Phi$的线性约束条件下，最优系数向量$\boldsymbol{\alpha}^* = [\alpha_1^*, \alpha_2^*, \cdots, \alpha_M^*]^T$为：

 $$ \boldsymbol{\alpha}^{*}=\mathbf{A}^{-1}\boldsymbol{b} $$

其中A是一个$M \times M$对称矩阵，b是一个M维列向量：

 $$ \mathbf{A}_{i j}=\sum_{k}e_{j,k}^{T}\mathbf{\Sigma}_{k}^{-1}e_{i,k},\;b_{i}=\sum_{k}\left(\boldsymbol{\mu}_{k}-\boldsymbol{u}_{k}\right)^{T}\mathbf{\Sigma}_{k}^{-1}\boldsymbol{e}_{i,k} $$

 $$ \begin{array}{l}{\boldsymbol{e}_{i}=\left[\boldsymbol{e}_{i,1}^{T},\boldsymbol{e}_{i,2}^{T},\cdots,\boldsymbol{e}_{i,K}^{T}\right]^{T};\boldsymbol{u}=\left[\boldsymbol{u}_{1}^{T},\boldsymbol{u}_{2}^{T},\cdots,\boldsymbol{u}_{K}^{T}\right]^{T};}\\ {i,j=1,2,\cdots,M.}\end{array} $$

通过将子空间$\Phi^*$中的最优系数$\alpha^*$反投影回原始关节空间$\Omega$，即可重构出最优关节位置$\Lambda$：

 $$ \Phi^{*}=\sum_{m=1}^{M}\alpha_{m}^{*}e_{m}+u $$

综上所述，所提出的多视角融合方法包含两个主要步骤：第一步是利用三个视角的热图来估计每个关节的高斯分布参数；第二步是计算最优系数$\alpha^*$并重构最优关节位置$\Phi^*$。在训练阶段，通过对训练数据执行PCA，可获得手部关节配置的主成分和经验均值向量。

### 4. 实验

#### 4.1. CNN训练

第3.1节中描述的多视角CNN是在Torch7 [^2]框架下实现的。由于手部姿态估计任务属于典型的回归问题，CNN训练过程中采用的优化算法为随机梯度下降(SGD)，损失函数为均方误差(MSE)。在训练参数方面，我们将批量大小设为64，学习率设为0.2，动量设为0.9，权重衰减设为0.0005。为防止过拟合，训练在50个周期后停止。我们进行CNN训练所用的工作站配备两颗英特尔至强处理器、64GB内存以及两块英伟达Tesla K20 GPU。由于三个视角的CNN可并行处理，因此能够同时训练。训练CNN大约需要12小时。

#### 4.2. 数据集与评估指标

我们在[^21]发布的数据集上进行了自我比较以及与最先进方法的对比，该数据集是文献中难度最高的手部姿态数据集。该数据集包含9名受试者，每名受试者有17种手势。实验中，我们选取8名受试者作为CNN训练集，剩余1名受试者作为测试集。这一过程针对所有受试者重复9次。

此外，我们还利用[^21]数据集中的训练数据，以及另一个数据集[^17]中的测试数据，开展了跨数据集评估。

我们采用两项指标来评估回归性能。第一项指标是所有测试样本中每个关节的平均误差距离，这是标准的评估指标。第二项指标是优质测试样本在全部测试样本中所占的比例。只有当所有估计的关节位置与真实值之间的误差不超过允许的最大距离（即误差容忍度）时，该测试样本才被视为优质样本。[^26]中提出的这种最坏情况下的准确率要求非常严格。

#### 4.3. 自我比较

在自我比较中，我们设置了两个基线：单视图回归方法和采用粗融合方法的多视图回归方法。在单视图回归方法中，只有投影到OBB坐标系x-y平面上的图像会被输入CNN。从输出的热图中，我们只能通过[^29]中提出的高斯拟合方法来估计关节位置的x和y坐标。z坐标则可以根据投影图像的亮度来估算。如果具有估算出的x、y坐标的二维点位于投影图像的背景上，那么在OBB坐标系中z坐标会被指定为零，而非最大深度值，这样就能减少z方向的估算误差。

---

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

<div style="text-align: center;">Figure 6: An experimental example for self-comparison. Top-left: 3D point cloud with ground truth and estimated 3D locations. Top-right: Projection images in three views. Bottom-right: Heat-maps of three views. The ground truth and estimated 3D locations are back-projected onto three views and their heat-maps for comparison. Lines indicate the offsets between ground truth and estimations.</div>

采用粗融合方法的多视图回归方法可视为我们精细融合方法的一种简化变体。该方法通过简单平均三个视图热图中估算出的x、y和z坐标，来得到3D手部关节位置。

我们将这两种方法的准确性能与第3节中描述的多视图精细融合方法进行比较。这三种方法中的每个关节平均误差及最坏情况下的准确率分别如图5（左图和中间图）所示。可以看出，多视图回归确实有效，因为我们的两种多视图回归方法的表现都显著优于单视图回归方法。此外，从平均误差表现来看，精细融合方法优于粗融合方法，在[^21]数据集上其误差约为13毫米。从最坏情况下的准确率来看，只有当误差容忍度较大时，精细融合方法的表现才会劣于粗融合方法。不过，误差容忍度较小时所对应的高准确率显然更值得青睐，因为较大的误差容忍度意味着不精确的估算也会被视作优质测试样本。因此，总体而言精细融合方法优于粗融合方法，我们在后续实验中采用了这种融合方法。

图6展示了一个易产生歧义的情况示例：食指指尖很容易与小指指尖混淆。可以看出，单视图回归方法仅利用了包含两个热点的x-y视图热图，其估计结果与真实值之间的误差较大。而多视图精细融合方法则融合了三个视图的热图，能够高精度地估算出3D位置。这种多视图……

![Image](images/5352c2101ae83477b5f62037525a914367b66f3e472decf37f2184b03841b08e.jpg)

<div style="text-align: center;">Figure 7: Comparison with the approach proposed in [^29]. In this method, 14 hand joints are estimated. For fair comparison, in our method, 14 corresponding joints of 21 estimated joints are used to calculate the worst case accuracy.</div>

粗略融合方法由于对热图信息的利用不足，其估算结果介于上述两种方法之间。图9展示了这三种方法在几个具有挑战性的样本上的定性结果，进一步体现了多视图精细融合方法相较于另外两种方法的优越性。

此外，我们研究了在不同误差容忍度下，联合约束中所使用的主成分数量对最坏情况精度的影响，如图5（右侧）所示。考虑到最坏情况下的精度，在联合约束中使用35个主成分是合理的。我们在所有其他实验中都采用了这一设置。

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

我们在[^21]数据集上将我们的多视图精细融合方法与两种最先进的方法进行了比较。第一种方法是[^29]中提出的基于CNN的手部姿态估计方法；第二种方法是[^21]中提出的基于随机森林的层次化手部姿态回归方法。

[^29]中描述的方法需要借助模型拟合过程来修正较大的估计误差。由于[^21]数据集并未提供每个受试者的手部参数，我们采用未经校准的手部模型进行模型拟合，并将手部尺寸和手指长度设为优化变量。在我们的实现中，该方法可估计14个手部关节位置，这些关节只是我们所用21个手部关节的子集。为了公平比较，我们计算了由我们的方法所估计的21个关节中对应这14个关节的最差情况精度。如图7所示，采用精细融合技术的多视角回归方法，在最差情况精度上明显优于[^29]中的方法。本质上，[^29]中的方法属于单视角回归方法，仅将深度图像作为网络的输入。这一结果进一步证明了在基于CNN的3D手部姿态估计中使用多视角信息的优势。即便使用经过精确校准的手部模型……

---

![Image](images/a873865b277294e3abb90c53cb23b558f199b03c9ca9f21bbdb64288a89eb703.jpg)

![Image](images/aa41f7ec78f508333b2fc55b803bc4ee24c5b92fdbd844bbc50359a2809d9d40.jpg)

![Image](images/f052cd09f46474a9e750167d8674fd247f2c2ab2cc6b785186462ad11dc9589e.jpg)

<div style="text-align: center;">Figure 5: Self-comparison of different methods on the dataset in [^21]. Left: the mean error distance for each joint across all the test samples (R:root, T:tip). Middle: the proportion of good test samples in the entire test samples over different error tolerances. Right: The impact of different number of principal components used in joint constraints on accuracy performance.</div>

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

![Image](images/cb17047547e5ab31b139f6a42667955f04d087a0725d69dfe72500e518b81368.jpg)

![Image](images/33f5f12d838de24d68919cdc6fb97ec87c8f1814a32205d23a1c959bf0dab16e.jpg)

<div style="text-align: center;">Figure 8: Comparison with the approach proposed in [^21]. Left: the proportion of good test samples in the entire test samples over different error tolerances. Middle & right: the mean error distance over different yaw and pitch angles of the viewpoint. Our method holds smaller average errors in all of the yaw and pitch angles. The curves of the hierarchical regression method are cropped from the results reported in [^21].</div>

即便如此，也只能在有限程度上提升[^29]中方法的精度，而且为每位受试者校准手部模型十分繁琐，模型拟合过程还会增加计算复杂度。

我们将其与[^21]中提出的分层回归方法进行比较。需要注意的是，该方法已被证明优于[^20]、[^24]和[^32]中的方法。因此，我们间接地将自己的方法与[^20]、[^24]和[^32]中的方法进行了比较。从图8可以看出，我们的方法优于[^21]中的方法。如图8（左）所示，在大多数误差容忍度下，我们方法的最差情况准确率都高于[^21]中的方法。尤其是当误差容忍度为20毫米和30毫米时，我们方法的优质样本比例分别比[^21]中的方法高出约10%和15%。当误差容忍度小于15毫米时，我们方法的优质样本比例略低于[^21]中的方法。这可能是由于我们方法中使用的热图分辨率相对较低所致。我们还比较了这两种方法在不同视角下的平均估计误差。如图8（中和右）所示，在所有偏航角和俯仰角视角下，我们方法的平均误差都小于[^21]中的方法。此外，我们方法对俯仰角变化的鲁棒性更强，其标准差仅为0.64毫米，而[^21]中的方法标准差为0.79毫米。

整个流程的运行时间为14.1毫秒，其中多视图投影耗时2.6毫秒，CNN前向传播耗时6.8毫秒，多视图融合耗时4.7毫秒。因此，我们的方法能够以超过70帧/秒的速度实时运行。需要注意的是，多视图投影和多视图融合过程是在CPU上无并行方式执行的，而CNN前向传播则是在GPU上针对三个视图并行执行的。

---

![Image](images/931eaaaebc6795e71036140b08ed84462de28568be0695a2a002d7f3f4af2e08.jpg)

<div style="text-align: center;">Figure 9: Qualitative results for dataset in [^21] of three approaches: single view regression (in the first line), our multi-view regression with coarse fusion (in the second line) and our multi-view regression with fine fusion (in the third line). We show the estimated hand joint locations on the depth image. Different hand joints and bones are visualized using different colors. This image is best viewed in color.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Subject</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>Avg</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FORTH</td><td style='text-align: center; word-wrap: break-word;'>35.4</td><td style='text-align: center; word-wrap: break-word;'>19.8</td><td style='text-align: center; word-wrap: break-word;'>27.3</td><td style='text-align: center; word-wrap: break-word;'>26.3</td><td style='text-align: center; word-wrap: break-word;'>16.6</td><td style='text-align: center; word-wrap: break-word;'>46.2</td><td style='text-align: center; word-wrap: break-word;'>28.6</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PSO</td><td style='text-align: center; word-wrap: break-word;'>29.3</td><td style='text-align: center; word-wrap: break-word;'>14.8</td><td style='text-align: center; word-wrap: break-word;'>40.2</td><td style='text-align: center; word-wrap: break-word;'>17.3</td><td style='text-align: center; word-wrap: break-word;'>16.2</td><td style='text-align: center; word-wrap: break-word;'>24.3</td><td style='text-align: center; word-wrap: break-word;'>23.6</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICP</td><td style='text-align: center; word-wrap: break-word;'>29.9</td><td style='text-align: center; word-wrap: break-word;'>20.7</td><td style='text-align: center; word-wrap: break-word;'>30.8</td><td style='text-align: center; word-wrap: break-word;'>23.9</td><td style='text-align: center; word-wrap: break-word;'>18.5</td><td style='text-align: center; word-wrap: break-word;'>32.8</td><td style='text-align: center; word-wrap: break-word;'>26.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICP-PSO</td><td style='text-align: center; word-wrap: break-word;'>10.1</td><td style='text-align: center; word-wrap: break-word;'>24.1</td><td style='text-align: center; word-wrap: break-word;'>13.0</td><td style='text-align: center; word-wrap: break-word;'>12.8</td><td style='text-align: center; word-wrap: break-word;'>11.9</td><td style='text-align: center; word-wrap: break-word;'>20.0</td><td style='text-align: center; word-wrap: break-word;'>15.3</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICP-PSO $^{*}$</td><td style='text-align: center; word-wrap: break-word;'>8.6</td><td style='text-align: center; word-wrap: break-word;'>7.4</td><td style='text-align: center; word-wrap: break-word;'>9.8</td><td style='text-align: center; word-wrap: break-word;'>10.4</td><td style='text-align: center; word-wrap: break-word;'>7.8</td><td style='text-align: center; word-wrap: break-word;'>11.7</td><td style='text-align: center; word-wrap: break-word;'>9.2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>30.1</td><td style='text-align: center; word-wrap: break-word;'>19.7</td><td style='text-align: center; word-wrap: break-word;'>24.3</td><td style='text-align: center; word-wrap: break-word;'>19.9</td><td style='text-align: center; word-wrap: break-word;'>21.8</td><td style='text-align: center; word-wrap: break-word;'>20.7</td><td style='text-align: center; word-wrap: break-word;'>22.8</td></tr></table>

<div style="text-align: center;">Table 1: Average estimation errors (in mm) of 6 subjects for 6 methods tested on the dataset in [^17].</div>

#### 4.5. 跨数据集实验

为了验证我们基于CNN的多视图回归方法的泛化能力，我们开展了跨数据集实验。我们尝试将基于CNN的回归器从[^21]中的源数据集迁移到[^17]中的新目标数据集。

在本实验中，我们在[^21]数据集的所有9名受试者上训练CNN。然后，利用我们提出的方法，直接将这些CNN用于[^17]数据集的所有6名受试者的手部姿态估计。根据[^17]中的评估指标，我们计算了手腕和五个指尖的平均误差。我们将自己的方法与[^17]中报道的基于模型的跟踪方法进行比较，这些方法包括FORTH [^15]、PSO [^17]、ICP [^16]、ICP-PSO [^17]以及基于手指初始化的ICP-PSO $^{*}$ [^17]。

根据[^17]的描述，这些基于模型的跟踪方法需要针对每个受试者尺寸校准的精确手部模型，并且它们依赖时间信息。尤其是，为了开始跟踪，这些方法需要使用真实值信息来初始化第一帧。然而，我们的方法不使用此类信息，因此在现实场景中更具灵活性且对跟踪失败更具鲁棒性。如表1所示，在这种情况下，我们的方法仍优于FORTH、PSO和ICP方法，这表明我们的方法具有良好的泛化能力。我们的方法不如ICP-PSO和ICP-PSO $^{*}$并不令人意外，因为我们没有使用校准的手部模型、任何真实值信息或时间信息，而且我们是在更具挑战性的跨数据集上开展此项实验。

### 5. 结论

在本文中，我们提出了一种基于多视角CNN的新型3D手部姿态回归方法。我们利用多视角CNN生成多个视角的热图，并将它们融合起来以估计3D手部关节位置。我们的多视角方法能够更有效地利用单张深度图像中的3D信息，从而得出精确的3D位置估计结果。实验结果表明，该方法在实时3D手部姿态估计任务中取得了优异的性能。

致谢：本研究在BeingThere中心开展，得到了新加坡国家研究基金会通过其“新加坡国际研究中心资助计划”提供的支持，该计划由IDM项目办公室负责管理。

---

## 参考文献

[^1]: R. K. Ando and T. Zhang. Two-view feature generation model for semi-supervised learning. In ICML, 2007.

[^2]: R. Collobert, K. Kavukcuoglu, and C. Farabet. Torch7: A matlab-like environment for machine learning. In BigLearn, NIPS Workshop, 2011.

[^3]: P. Dollr, P. Welinder, and P. Perona. Cascaded pose regression. In CVPR, 2010.

[^4]: H. Guan, R. S. Feris, and M. Turk. The isometric self-organizing map for 3d hand pose estimation. In FGR, 2006.

[^5]: A. Jain, J. Tompson, M. Andriluka, G. Taylor, and C. Bregler. Learning human pose estimation features with convolutional networks. In ICLR, 2014.

[^6]: K. Jarrett, K. Kavukcuoglu, M. Ranzato, and Y. LeCun. What is the best multi-stage architecture for object recognition? In ICCV, 2009.

[^7]: C. Keskin, F. Kra, Y. Kara, and L. Akarun. Hand pose estimation and hand shape classification using multi-layered randomized decision forests. In ECCV, 2012.

[^8]: F. Kirac, Y. E. Kara, and L. Akarun. Hierarchically constrained 3d hand pose estimation using regression forests from single frame depth data. Pattern Recognition Letters, 50:91–100, 2014.

[^9]: W. Li, Z. Zhang, and Z. Liu. Action recognition based on a bag of 3d points. In CVPR Workshops, 2010.

[^10]: H. Liang, J. Wang, Q. Sun, Y. Liu, J. Yuan, J. Luo, and Y. He. Barehanded music: real-time hand interaction for virtual piano. In ACM SIGGRAPH I3D, 2016.

[^11]: H. Liang, J. Yuan, and D. Thalmann. Parsing the hand in depth images. IEEE Transactions on Multimedia, 16(5):1241–1253, 2014.

[^12]: H. Liang, J. Yuan, and D. Thalmann. Resolving ambiguous hand pose predictions by exploiting part correlations. IEEE Transactions on Circuits and Systems for Video Technology, 25(7):1125–1139, 2015.

[^13]: H. Liang, J. Yuan, D. Thalmann, and N. M. Thalmann. Ar in hand: Egocentric palm pose tracking and gesture recognition for augmented reality applications. In ACM-MM, 2015.

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

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

[^16]: S. Pellegrini, K. Schindler, and D. Nardi. A generalization of the icp algorithm for articulated bodies. In BMVC, 2008.

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

[^18]: Z. Ren, J. Yuan, J. Meng, and Z. Zhang. Robust part-based hand gesture recognition using kinect sensor. IEEE Transactions on Multimedia, 15(5):1110–1120, 2013.

[^19]: M. Schrder, J. Maycock, H. Ritter, and M. Botsch. Real-time hand tracking using synergistic inverse kinematics. In ICRA, 2014.

[^20]: 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 a single depth image. In CVPR, 2011.

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

[^22]: J. S. Supancic III, G. Rogez, Y. Yang, J. Shotton, and D. Ramanan. Depth-based hand pose estimation: methods, data, and challenges. In ICCV, 2015.

[^23]: A. Tagliasacchi, M. Schroeder, A. Tkach, S. Bouaziz, M. Botsch, and M. Pauly. Robust articulated-icp for real-time hand tracking. Computer Graphics Forum, 34(5), 2015.

[^24]: D. Tang, H. J. Chang, A. Tejani, and T. K. Kim. Latent regression forest: Structured estimation of 3d articulated hand posture. In CVPR, 2014.

[^25]: D. Tang, T. H. Yu, and T. K. Kim. Real-time articulated hand pose estimation using semi-supervised transductive regression forests. In ICCV, 2013.

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

[^27]: J. Tompson, R. Goroshin, A. Jain, Y. LeCun, and C. Bregler. Efficient object localization using convolutional networks. In CVPR, 2015.

[^28]: J. Tompson, A. Jain, Y. LeCun, and C. Bregler. Joint training of a convolutional network and a graphical model for human pose estimation. In NIPS, 2014.

[^29]: 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(5):169, 2014.

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

[^31]: J. M. Van Verth and L. M. Bishop. Essential mathematics for games and interactive applications. CRC Press, 2015.

[^32]: C. Xu and L. Cheng. Efficient hand pose estimation from a single depth image. In ICCV, 2013.

[^33]: J. Xu, J. Yuan, and Y. Wu. Multimodal partial estimates fusion. In ICCV, 2009.
