
# Hand PointNet：基于点集的3D手部姿态估计

Ge Liuhao$^{1}$、Cai Yujun$^{1}$、Weng Junwu$^{2}$、Yuan Junsong$^{3}$

$^{1}$南洋理工大学跨学科研究生院媒体创新研究所

$^{2}$南洋理工大学电气与电子工程学院

$^{3}$纽约州立大学布法罗分校计算机科学与工程系

{ge0001ao, yujun001, we0001wu}@e.ntu.edu.sg，<mailto:jsyuan@buffalo.edu>

## 摘要

卷积神经网络（CNN）在深度图像中的3D手部姿态估计任务上取得了令人瞩目的成果。与现有以2D图像或3D体素为输入的基于CNN的手部姿态估计方法不同，我们提出的HandPointNet直接处理用于建模手部可见表面的3D点云，以实现姿态回归。以归一化后的点云作为输入，我们提出的手部姿态回归网络能够捕捉复杂的手部结构，并精准地回归出3D手部姿态的低维表示。为了进一步提升指尖估计的精度，我们设计了一个指尖精细化网络，该网络直接以估计出的指尖位置附近的邻域点作为输入来优化指尖位置。在三个具有挑战性的手部姿态数据集上的实验表明，我们提出的方法性能优于现有最先进的方法。

### 1. 引言

近年来，借助深度相机实现实时3D手部姿态估计的研究稳步发展[^12] [^45] [^38] [^18] [^36] [^31] [^8] [^3] [^48]，因为这项技术能够提升用户体验，并在各类人机交互应用中发挥重要作用，尤其是在虚拟现实和增强现实领域。然而，由于3D手部姿态的维度较高、手部朝向变化较大、手指之间的相似性较强以及严重的自遮挡现象，3D手部姿态估计在精度和鲁棒性方面仍存在诸多问题。

随着深度神经网络在各种计算机视觉任务中取得成功，以及大型手部姿态数据集的出现[^38] [^34] [^33] [^49] [^48]，近期许多三维手部姿态估计方法都基于卷积神经网络[^38] [^21] [^7] [^8] [^9] [^3] [^19] [^51]。由于以二维图像为输入的二维卷积神经网络无法充分利用深度图像中的三维空间信息，Ge等人[^8]将手部深度图像编码为三维体数据，并应用三维卷积神经网络来推断三维手部姿态。然而，三维卷积神经网络的时间和空间复杂度会随着输入三维体分辨率的增加而呈立方级增长[^27]。因此，[^8]中所采用的三维体分辨率较低（例如32 $^{3}$），这可能会丢失手部的有用细节。此外，由于三维点云的稀疏性，三维体中的大多数体素通常没有点占据，这不仅浪费了三维卷积的计算资源，还会干扰神经网络学习有效的核函数来捕捉手形的有意义特征。[^8]中的方法将稀疏点云转换为密集的体素表示，以实现高效的三维卷积，但这种转换改变了数据的本质，还使数据量变得不必要地庞大。

为解决这些问题，受PointNet[^23] [^25]近期直接对点集进行三维物体分类和分割的研究启发，我们旨在直接从三维点云中学习三维手部关节信息，而非将三维点栅格化为三维体素。值得注意的是，深度图像本质上是由手部可见表面上的无序三维点组成的集合，属于2.5维数据，不适合直接用于二维或三维卷积处理。与以往基于多视角卷积神经网络的方法[^7]以及基于三维卷积神经网络的方法[^8]相比，我们的方法无需将点云投影为多张二维图像，也无需将稀疏点云转换为密集的三维体，因此能够以更高效、更有效的方式充分利用原始点云。

在这项工作中，我们提出了一种基于点云的手部关节回归方法，用于从单张深度图像中估计三维手部姿态，如图1所示。具体而言，首先把分割出的手部深度图像转换为一组三维点；接着对手部的三维点云进行下采样，并在有向边界框中进行归一化，以使我们的方法能够适应各种手部朝向。分层PointNet[^25]以归一化后的点的坐标以及估算出的表面法线作为输入，输出三维手部关节位置的低维表示，随后在

---

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

<div style="text-align: center;">Figure 1: Overview of our proposed Hand PointNet-based method for 3D hand pose estimation in single depth images. We normalize the 3D point cloud in an oriented bounding box (OBB) to make the network input robust to global hand rotation. The 3D coordinates of sampled and normalized points attached with estimated surface normals are fed into a hierarchical PointNet [^25], which is trained in an end-to-end manner, to extract hand features and regress 3D joint locations. The fingertip refinement PointNet can further improve the estimation accuracy of fingertip locations.</div>

相机坐标系下恢复这些关节位置。指尖位置会由一个简单的PointNet进一步细化，该网络以估算出的指尖位置周围的邻近点作为输入。据我们所知，这是首个利用深度神经网络直接从三维点云中回归三维手部关节位置的研究，该方法能够捕捉手部的三维结构，并能实时准确地估计三维手部姿态。我们的主要贡献总结如下：

我们提出基于PointNet网络架构，直接从3D点云中估计3D手部关节位置[^23] [^25]。与基于2D CNN及多视角CNN的方法相比[^38] [^7] [^9] [^3] [^19]，我们的方法能更好地利用深度图像中的3D空间信息；与基于3D CNN的方法相比[^8]，我们的方法能有效利用深度图像中的更多信息来捕捉手部细节，同时所需的网络参数更少。

为了使我们的方法能够适应手部全局朝向的变化，我们提出在不借助额外网络对手部点云进行变换的情况下，将采样的3D点归一化到定向边界框内。具有更一致全局朝向的归一化点云能让PointNet更容易学习3D手部关节的运动规律。

- 我们提出用基础版PointNet来优化指尖位置：该网络以估算出的指尖位置的邻近点为输入，从而回归出更精确的指尖位置。这种优化网络能进一步利用原始点云中的细微特征，得到更准确的指尖位置。

我们在三个具有挑战性的手部姿态数据集上开展了全面实验[^33] [^34] [^38]，以评估我们的方法。实验结果表明，我们提出的基于Hand PointNet的3D手部姿态估计方法在这三个数据集上的表现均优于现有最先进的方法，且运行速度超过48帧/秒。

### 2. 相关工作

手部姿态估计：手部姿态估计方法可分为判别式方法[^12] [^45] [^16] [^38]、生成式方法[^22] [^1] [^39] [^13] [^26]以及混合式方法[^28] [^36] [^35]。在本节中，我们重点介绍基于深度神经网络的判别式方法。

目前已有一些复杂的神经网络被应用于3D手部姿态估计，例如反馈循环模型[^21]、空间注意力网络[^47]、区域集成网络[^9]、深度生成模型[^41]等。深度学习方法中会融入手部关节约束，以避免出现不合理的手部姿态。Oberweger等人[^20] [^19]利用手部先验来约束手部姿态；Zhou等人[^50]训练CNN来回归手部模型参数，再通过正运动学推算出手部姿态。还有一些方法侧重于不同的输入表示形式：Ge等人[^7] [^8]采用多视角CNN和3D CNN进行3D手部姿态估计，分别将多视角的投影图像和3D体素作为输入，以便更好地利用深度信息；Choi等人[^3]采用几何特征作为额外的输入模态，通过多任务学习来估计手部姿态。不过，这些方法均未直接将点云作为神经网络的输入。

3D 深度学习：基于多视图 CNN 的方法 [^32] [^24] [^7] [^2] 将 3D 点投影到 2D 图像中，并使用 2D CNN 进行处理。基于 3D CNN 的方法 [^44] [^17] [^24] [^30] [^8] 将 3D 点光栅化为 3D 体素以进行 3D 卷积。基于八叉树的 3D CNN [^27] [^43] 被提出用于在高分辨率体上的高效计算。

PointNet [^23] [^25] 是一种最近提出的方法，它直接将点云作为网络输入。与 PointNet 类似，深度 Kd 网络 [^15] 是一种最近提出的网络架构，它通过采用 Kd 树结构直接处理点云。这些方法在 3D 分类和分割任务上表现出了良好的性能，但尚未应用于铰接式姿态回归。

---

### 3. 方法论

我们提出的 3D 手部姿态估计方法以包含手部的深度图像作为输入，并输出一组 3D 手部关节位置 $\boldsymbol{\Phi} = \{\phi_m\}_{m=1}^M \in \Lambda$ 在相机坐标系（C.S.）中，其中 M 是手部关节的数量，$\Lambda$ 是 $3 \times M$ 维的手部关节空间。

手部深度图像会被转换为一组三维点。这组三维点会被下采样为N个$p_i \in \mathbb{R}^3$个点($i = 1, \cdots, N$)，随后在定向包围盒（OBB）中进行归一化处理。层次化PointNet [^25]会将这N个点作为输入，用于提取层次化的手部特征并回归出三维手部姿态。每个输入点的维度为$D = d + C_0$，由d维坐标和$C_0$维输入特征组成。在本研究中，我们采用了估计出的三维表面法线作为输入特征，因此使用了$d = 3$和$C_0 = 3$。为了进一步提升指尖位置的估计精度，我们设计了指尖精细化网络。在后续章节中，我们会先简要回顾PointNet的工作原理，然后介绍我们提出的三维手部姿态估计方法。

#### 3.1. PointNet回顾

基础版PointNet：PointNet [^23]是一种神经网络，它可直接将一组点作为输入，并能提取点云的判别性特征。如图2所示，每个输入点$\boldsymbol{x}_i \in \mathbb{R}^D$（$i = 1, \cdots, N$）会通过多层感知机（MLP）网络映射为一个C维特征向量，且不同点之间的权重是共享的。通过向量最大值运算，可将N个点的特征向量聚合为一个对输入点排列顺序具有不变性的全局特征向量。最后，这个C维的全局特征向量会经由MLP网络映射为F维的输出向量。[^23]中已经证明，只要网络中的神经元数量足够，PointNet就能够逼近任意连续的集合函数。

分层PointNet：基础版PointNet的主要局限在于它无法以分层方式捕捉点云的局部结构。为解决这一问题，Qi等人[^25]提出了一种分层PointNet，凭借其分层特征提取架构，该模型具备更强的泛化能力。在本文中，我们采用分层PointNet进行3D手部姿态估计。如图1所示，分层PointNet包含L个点集抽象层级。在第l层($l=1,\cdots,L-1$)中，会选取$N_l$个点作为局部区域的质心；以该质心点为圆心，将其k个最近邻点归为一个局部区域；随后应用在不同局部区域间共享权重的基础版PointNet来提取每个局部区域的$C_l$维特征；接着将这$N_l$个具有d维坐标和$C_l$维特征的质心点送入下一层级。在最后一层，通过基础版PointNet从该层的所有输入点中抽象出全局点云特征。

![Image](images/3414c0fdc34bba47260fd8dc0701e082d210f7756afb9fad6e7184f7f885e688.jpg)

<div style="text-align: center;">Figure 2: Basic architecture of PointNet. The network directly takes N points as the input. Each D-dim input point is mapped into a C-dim feature through MLP. Per-point features are aggregated into a global feature by max-pooling. The global feature is mapped into an F-dim output vector.</div>

![Image](images/cb42d37e0c9be9a7595023ebd4c38edd045951232d7cb35fbc9413046cd73bfc.jpg)

<div style="text-align: center;">Figure 3: Examples of OBB-based point cloud normalization. The 1st and 3rd columns present the original point clouds in the camera C.S. with various hand orientations. The 2nd and 4th columns present the sampled and rotated point clouds in the OBB C.S., of which the hand orientations are more consistent. We color-code all point clouds to show the relative z coordinate value.</div>

#### 3.2. 基于OBB的点云归一化

3D手部姿态估计面临的一个挑战是手部全局朝向存在较大差异。手部点云归一化的目标是将原始手部点云转换到规范坐标系下，使得转换后的手部点云的全局朝向尽可能一致。这一归一化步骤能确保我们的方法对手部全局朝向的变化具有鲁棒性。

如果输出结果对输入点云的旋转具有不变性（比如语义标注任务中的输出[^23]），我们就可以按照[^11]中的思路，在PointNet中加入空间变换网络[^23] [^23]来预测变换矩阵。但在我们的问题中，输出的3D手部姿态依赖于输入手部点云的朝向，这使得网络难以以端到端的方式训练。

---

![Image](images/13ecceb1fa78f0d2f93287039f0dc92d4d42e332c3e27b0e686d798579539fb4.jpg)

<div style="text-align: center;">Figure 4: Visualization of the point sensitivity in different regions to different filters at three set abstraction levels. At each of the first two levels, each column corresponds to the same local region, and each row corresponds to the same filter. For illustration purpose, we only show the sensitivity of points in three local regions to two filters at each of the first two levels; At the third level, we show the sensitivity of points to six filters. Points with high sensitivity are shown in red color, and points with low sensitivity are shown in blue color. Points that do not belong to the local region are shown in gray color.</div>

一些解决方案包括设计两个并行网络来同时估计规范手部姿态和手部朝向[^51]，或者在输出层前加入空间逆变换网络，将估计出的姿态映射回原始坐标系[^5]。但这些方案会增加网络的复杂度，使训练难度加大。

在这项工作中，我们提出了一种简单却有效的方法，即通过OBB对3D手部点云进行归一化，无需额外添加网络来估计手部全局朝向或变换手部点云。OBB是输入点云的紧密拟合包围盒[^40]。通过对输入点的3D坐标执行主成分分析（PCA）来确定OBB的朝向。OBB坐标系的x、y、z轴分别与输入点协方差矩阵的特征向量对齐，且分别对应从大到小排列的特征值。首先会将相机坐标系下的原始点转换为OBB坐标系下的点，随后对这些点进行平移使其均值为零，并缩放至单位尺寸：

 $$ \begin{aligned}\boldsymbol{p}^{obb}&=\left(\boldsymbol{R}_{obb}^{cam}\right)^{T}\cdot\boldsymbol{p}^{cam},\\\boldsymbol{p}^{nor}&=\left(\boldsymbol{p}^{obb}-\bar{\boldsymbol{p}}^{obb}\right)/L_{obb},\end{aligned} $$

其中$\pmb{H}_{obb}^{cam}$是OBB在相机坐标系下的旋转矩阵；$\pmb{p}^{cam}$和$\pmb{p}^{obb}$分别是点$\pmb{p}$在相机坐标系和OBB坐标系下的3D坐标；$\bar{\pmb{p}}^{obb}$是点云$\{\pmb{p}_{i}^{obb}\}_{i=1}^{N}$的质心；$L_{obb}$是OBB的最大边长；$\pmb{p}^{nor}$是点$\pmb{p}$在归一化后的OBB坐标系下的归一化3D坐标。

在训练过程中，相机坐标系下的真实3D关节位置也会通过公式1进行变换，从而得到归一化OBB坐标系下的3D关节位置。在测试阶段，归一化OBB坐标系下估计出的3D关节位置$\hat{\phi}_{m}^{nor}$会被逆变换回相机坐标系下的位置$\hat{\phi}_{m}^{cam}$（$m = 1, \cdots, M$）：

 $$ \hat{\phi}_{m}^{c a m}=\boldsymbol{R}_{o b b}^{c a m}\cdot\left(L_{o b b}\cdot\hat{\phi}_{m}^{n o r}+\bar{\boldsymbol{p}}^{o b b}\right). $$

图3展示了一些原始手部点云及其对应的归一化手部点云的示例。可以看出，尽管相机坐标系下原始手部点云的方向存在较大差异，但OBB坐标系下归一化后的手部点云方向则更为一致。第4.1节中的实验表明，我们提出的基于OBB的点云归一化方法能够提升基础PointNet以及分层PointNet的性能。

#### 3.3. 手部姿态回归网络

我们设计了一个可端到端训练的3D手部姿态回归网络。该网络的输入是一组归一化后的点$\boldsymbol{X}^{nor} = \{\boldsymbol{x}_i^{nor}\}_{i=1}^N = \{(\boldsymbol{p}_i^{nor}, \boldsymbol{n}_i^{nor})\}_{i=1}^N$，其中$\boldsymbol{p}_i^{nor}$表示归一化点的3D坐标，$\boldsymbol{n}_i^{nor}$则表示对应的3D表面法向量。这些N个点随后会被送入分层PointNet[^25]中进行处理，如图1所示，该网络包含三个点集抽象层级。前两个层级分别将输入点分组为$N_1 = 512$和$N_2 = 128$个局部区域，每个局部区域包含$k = 64$个点。这两个层级会分别为每个局部区域提取$C_1 = 128$维和$C_2 = 256$维的特征。最后一个层级则会提取一个1024维的全局特征向量，该向量会通过三层全连接层映射为F维的输出向量。关于分层PointNet的详细架构，我们在补充材料中进行了介绍。

由于人手的自由度通常低于3D手部关节位置的维度，

---

$(3 \times M)$，PointNet被设计为输出F维的$(F < 3 \times M)$手部姿态表示，以强制满足手部姿态约束并减少不可行的手部姿态估计情况，这一设计与[^20]类似。在训练阶段，给定T个包含归一化点云及对应真实3D关节位置$\{(X_t^{nor}, \Phi_t^{nor})\}_{t=1}^T$的训练样本，我们会对以下目标函数进行最小化：

 $$ \boldsymbol{w}^{*}=\arg\min_{\boldsymbol{w}}\sum_{t=1}^{T}\left\|\boldsymbol{\alpha}_{t}-\mathcal{F}\left(\boldsymbol{X}_{t}^{n o r},\boldsymbol{w}\right)\right\|^{2}+\lambda\left\|\boldsymbol{w}\right\|^{2} $$

其中$\boldsymbol{w}$表示网络参数；$\mathcal{F}$代表手部姿态回归PointNet；$\lambda$为正则化强度；$\alpha_t$是$\Phi_t^{nor}$的F维投影。通过对训练数据集中的真实3D关节位置执行PCA分析，我们可以得到$\alpha_t = \boldsymbol{E}^T \cdot (\Phi_t^{nor} - \boldsymbol{u})$，其中$\boldsymbol{E}$表示主成分，$\boldsymbol{u}$为经验均值。在测试阶段，估计出的3D关节位置会根据网络输出进行重构：

 $$ \hat{\Phi}^{n o r}=\boldsymbol{E}\cdot\mathcal{F}\left(X^{n o r},w^{*}\right)+u. $$

在图4中，我们展示了在训练良好的三层层级PointNet中，不同区域内的点对于三种集合抽象层次下不同滤波器的敏感度。相应的输入即为图1中所展示的示例。我们将同一区域内、由同一滤波器提取出的各点特征归一化到0到1之间。归一化后的特征值越大，表明该点对相应滤波器的敏感度越高。从图4可以看出，从低层到高层，欧几里得空间中的感受野尺寸逐渐增大。在前两个层次中，滤波器从局部区域提取特征，且不同滤波器会突出显示局部区域内的不同结构；而在最高层，滤波器则从该层的全部输入点中提取特征，不同滤波器会突出显示手的不同部位，如不同的手指、手掌等。借助这种层级化架构，网络能够从局部到全局捕捉手部结构。

#### 3.4. 指尖精细化网络

为了进一步提升指尖位置的估计精度，我们设计了一个指尖精细化网络。该网络以估计出的指尖位置附近的K个最近邻点为输入，输出精细化后的指尖3D位置，如图5所示。我们之所以精细化指尖位置，主要基于两点原因：其一，如第4.1节的实验结果所示，与其他关节相比，指尖位置的估计误差通常相对较大；其二，伸直手指的指尖位置往往容易精细化，因为当K值较大时，即便估计位置与真实位置存在一定偏差，指尖附近的K个最近邻点也不会发生太大变化。

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

<div style="text-align: center;">Figure 5: Illustration of fingertip refinement. K nearest neighboring points of the estimated fingertip location are found in the original hand point cloud with upper limit of point number. These points are normalized and fed into a basic PointNet that outputs the refined fingertip 3D location. Numbers in parentheses of MLP networks are layer sizes.</div>

由于我们只对伸直的手指进行指尖精细化处理，因此首先需利用关节位置计算关节角，以此判断每根手指是弯曲还是伸直。针对伸直的手指，我们会在原始点云中查找指尖位置附近的K个最近邻点，同时设定点数上限以保证实时性。随后，这些K个最近邻点会按照与3.2节类似的方法在OBB中进行归一化。一个基础的PointNet会以这些归一化后的点作为输入，输出精细化后的指尖3D位置。在训练阶段，我们利用真实的关节位置来计算关节角；用于最近邻搜索的指尖位置，会在真实指尖位置的基础上加上半径不超过$r = 15mm$的3D随机偏移量，从而使指尖精细化网络对不准确的指尖估计更具鲁棒性。在测试阶段，我们则利用手部姿态回归网络估计出的关节位置来计算关节角并查找最近邻点。

#### 3.5. 实现细节

我们通过对采样点云中查询点附近的最近邻点执行PCA操作来拟合局部平面，进而近似得到3D表面法线[^10]。最近邻点的数量被设定为30。对于后续接有[^25]的层级式PointNet，我们采用最远点采样方法来选取局部区域的质心，并用球查询来分组点。第一层的球查询半径设为0.1，第二层设为0.2。手部姿态回归网络F的输出维度被设定为$2 \times M$，该数值为手部关节位置维度的2/3。

训练PointNets时，我们采用Adam [^14]优化器，初始学习率为0.001，批量大小为32，正则化强度为0.0005。训练50个周期后，学习率会除以10。

---

![Image](images/db09e4562526126da640b49ada7e7b7339ec87270d230b13de547a5b2f0d3450.jpg)

![Image](images/f0693d75a8fcdfae647743ffe43184b35851fa6ef15c71535abd018ee62ba836.jpg)

![Image](images/623c7b9d06b1d9665eafd2d0f7f398e2516fa5ed4d9828ecc0017b15f93d2cf5.jpg)

<div style="text-align: center;">Figure 6: Self-comparison of different methods on NYU dataset [^38]. Left: the impact of different numbers of sampled points on the proportion of good frames. Middle & Right: the impact of different PointNet architectures and normalization methods on the proportion of good frames as well as on the per-joint mean error distance (R: root, T: tip). The overall mean error distances are shown in parentheses.</div>

训练过程在60个周期后停止。

进行指尖精细化处理时，我们将最近邻点数量K设为256。考虑到实时性能要求，当原始点云中的点数超过上限$N' = 6000$时，我们会通过随机采样将原始点云下采样为$N'$个点；同时，我们采用Kd树算法 [^6] 来实现高效的最近邻搜索。

### 4. 实验

我们在三个公开的手部姿态数据集上评估所提出的方法：NYU [^38]、MSRA [^33]和ICVL [^34]。

NYU数据集 [^38]包含超过72K个训练帧和8K个测试帧。每帧包含36个标注关节。遵循以往的研究 [^38] [^21] [^8]，我们仅估计其中$M = 14$个关节。我们采用与 [^34] 类似的方法，利用随机决策森林（RDF）从深度图像中分割出手部区域。由于分割出的手部可能包含长度各异的手臂，因此我们对训练数据增加了随机手臂长度的增强处理。

MSRA数据集 [^33]包含来自9名受试者的超过76K帧数据，每名受试者有17种手势。每帧中手部已从深度图像中分割出来，其真实标签包含$M = 21$个关节。神经网络在8名受试者数据上训练，在剩余1名受试者数据上测试。我们对所有受试者重复该实验9次，并报告平均指标。对该数据集我们不进行任何数据增强处理。

ICVL数据集 [^34]包含22K个训练帧和1.6K个测试帧。每帧的真实标签包含$M = 16$个关节。我们采用RDF进行手部分割，并对训练数据增加随机手臂长度和随机拉伸因子的增强处理。

我们通过以下两项指标评估手部姿态估计的性能：

![Image](images/bb04b848b33acfc179111b61b4442f53846339930cb601d0db7c335a35f92be6.jpg)

<div style="text-align: center;">Figure 7: The impact of fingertip refinement on fingertips' mean error distances and the overall mean error distance on NYU [^38], MSRA [^33] and ICVL [^34] datasets (T: tip).</div>

第一项指标是所有测试帧中每个关节的平均误差距离；第二项指标是满足最差关节误差低于某一阈值的有效帧所占比例，该阈值由 [^37] 提出，要求更为严格。

所有实验均在一台配备两颗Intel Core i7 5930K处理器、64GB内存和Nvidia GTX1080 GPU的工作站上进行。深度神经网络是在PyTorch框架内实现的。

#### 4.1. 自我对比实验

我们首先评估采样点数量N的影响。如图6（左）所示，我们使用基础的PointNet在NYU数据集上进行手部姿态回归实验，分别测试了三种不同的采样点数量。当N=512时，估计精度略低于其他采样点数量更大的情况。

---

![Image](images/88d88fa35c38f71f994474950bc717ea9d1800ecc72a55542d6ecbdfe8fead98.jpg)

![Image](images/a2bd97ed40b194df7f9de657776ada7fd4ef82aeec2b2ff161f3370ce15a0bea.jpg)

![Image](images/e4a1e8a13c23084de2c4d138c121ba7edd5e1016f16fcb9733bee585a3f138e0.jpg)

<div style="text-align: center;">Figure 8: Comparison with state-of-the-art methods on NYU [^38] (left), MSRA [^33] (middle) and ICVL [^34] (right) datasets. The proportions of good frames and the overall mean error distances (in parentheses) are presented in this figure.</div>

![Image](images/18f6747dff9ca0a1c654b3b1e340f4b3a5200e4c125ba7d822a916007c2f866f.jpg)

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

![Image](images/6639254acf005e46e0b9597e678a5365a7b16bd1545e16f67d2dd43e9404b8c3.jpg)

<div style="text-align: center;">Figure 9: Comparison with state-of-the-art methods on NYU [^38] (left), MSRA [^33] (middle) and ICVL [^34] (right) datasets. The per-joint mean error distances and the overall mean error distances are presented in this figure (R: root, T: tip).</div>

但当N=1024和N=2048时，估计精度几乎一致。为了在估计精度和实时性能之间取得平衡，我们选择N=1024，并在后续实验中采用这一采样点数量。该实验还表明，我们的方法对少量采样点具有鲁棒性，因为当N=512时性能并未出现大幅下滑。

我们评估了不同PointNet架构和归一化方法对NYU数据集的影响，且未采用指尖精细化处理。需要注意的是，对于不使用OBB的归一化方法，我们会将点云中心移至零点，并将点缩放至单位球内，同时不旋转点云。如图6（中间和右侧）所示，在相同的PointNet架构下，基于OBB的点云归一化方法的估计精度远高于不使用OBB的归一化方法，这一结果充分说明我们提出的基于OBB的点云归一化方法十分有效——它能够以更一致的方向对点云进行归一化，从而帮助网络更轻松地学习手部关节特征。此外，在采用相同归一化方法时，分层PointNet在估计精度上的表现优于基础PointNet，这表明分层网络架构[^25]在我们的手部关节回归任务中同样具备有效性。

此外，我们还研究了指尖精细化的影响。由图7可见，经过指尖精细化处理后，三个数据集中大多数指尖的平均估计误差以及整体平均误差均有所降低，这一结果说明我们提出的指尖精细化方法能够进一步提升指尖位置的估计精度。

#### 4.2. 与现有先进方法的对比

我们将基于点云的手部关节回归方法与 16 种最先进的方法进行比较：潜在随机森林（LRF）[^34]、基于随机森林的分层回归（Hierarchical）[^33]、协同过滤 [^4]、用于热图回归的 2D CNN（Heat-map）[^38]、具有先验和细化的 2D CNN（DeepPrior）[^20]、具有前馈的 2D CNN—

---

![Image](images/7c22a768de60fe5dfa9d56a6d018fd0ef6b4bd3e0fd74182281fa1bf216dc1da.jpg)

<div style="text-align: center;">Figure 10: Qualitative results for NYU [^38] (left), MSRA [^33] (middle) and ICVL [^34] (right) datasets. We compare our method (in the second row) with the 3D CNN-based method in [^8] (in the first row). The ground truth hand joint locations are presented in the last row. We show hand joint locations on depth images. Different hand joints and bones are visualized with different colors. This figure is best viewed in color.</div>

反向循环 (Feedback) [^21], 用于手部模型回归的2D CNN (DeepModel) [^50], 基于深度特征的矩阵补全 (DeepHand) [^29], 基于局部表面法向的随机森林 (LSN) [^42], 多视图CNNs [^7], 使用李群理论的2D CNN (Lie-X) [^46], Crossing Nets [^41], 3D CNN [^8], 区域集成网络 (REN) [^9], 改进的DeepPrior (DeepPrior++) [^19] 和使用幻觉热分布的2D CNN (Hallucination) [^3]. 不同方法在NYU [^38], MSRA [^33] 和ICVL [^34] 数据集上的不同误差阈值下的良好帧比例和每关节平均误差距离分别如图8和图9所示。

从图8可以看出，在大多数误差阈值下，我们的方法均优于这些最先进的方法。在NYU数据集[^38]上，当误差阈值处于15毫米到20毫米之间时，我们方法生成的优质帧比例比REN[^9]和DeepPrior++[^19]方法高出约15%。在MSRA数据集[^33]上，当误差阈值处于15毫米到20毫米之间时，我们方法生成的优质帧比例比3D CNN[^8]和DeepPrior++[^19]方法高出约10%。在ICVL数据集[^34]上，当误差阈值为15毫米时，我们方法生成的优质帧比例比REN[^9]方法高出约15%，比DeepPrior++[^19]方法高出约10%。从图9所示的平均误差距离来看，我们的方法在大多数手部关节上的表现也优于最先进的方法，且在全部三个数据集上均取得了最小的总体平均误差距离。

图10展示了NYU[^38]、MSRA[^33]和ICVL[^34]数据集上的一些定性结果。可以看出，与基于3D CNN的方法[^8]相比，我们的方法能够捕捉复杂的手部结构，并估算出更精确的三维手部关节位置。

#### 4.3. 运行时间与模型大小

我们的方法平均运行时间为20.5毫秒，其中点采样与表面法线计算耗时8.2毫秒，手部姿态回归网络的前向传播耗时9.2毫秒，指尖邻近点搜索耗时2.8毫秒，指尖精细化网络的前向传播耗时0.3毫秒。因此，我们的方法能够以超过48帧/秒的速率实时运行。

此外，我们的网络模型大小为10.3MB，其中手部姿态回归网络占9.2MB，指尖精细化网络占1.1MB；而[^8]中3D CNN的模型大小约为420MB。

### 5. 结论

在本文中，我们提出了一种将点云直接作为网络输入以回归三维手部关节位置的新方法。为应对手部全局朝向的变化，我们采用OBB对手部点云进行归一化处理，使其具有更一致的全局朝向。随后，将归一化后的点云输入分层PointNet以进行手部姿态回归，再通过一个基础的PointNet进一步细化指尖位置。在三个公开手部姿态数据集上的实验结果表明，我们的方法能够实现实时且性能优越的三维手部姿态估计。

致谢：本研究得到了南洋理工大学跨学科研究生院的支持。本研究还得到了BeingTogether中心的支持，该中心是新加坡南洋理工大学与美国北卡罗来纳大学教堂山分校的合作项目。BeingTogether中心由新加坡总理办公室下属的国家研究基金会通过其“新加坡国际研究中心资助计划”提供支持。

---

## 参考文献

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

[^2]: Z. Cao, Q. Huang, and K. Ramani. 3d object classification via spherical projections. In 3DV, 2017.

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

[^4]: C. Choi, A. Sinha, J. Hee Choi, S. Jang, and K. Ramani. A collaborative filtering approach to real-time hand pose estimation. In ICCV, 2015.

[^5]: H. Fang, S. Xie, Y.-W. Tai, and C. Lu. RMPE: Regional multi-person pose estimation. In ICCV, 2017.

[^6]: J. H. Friedman, J. L. Bentley, and R. A. Finkel. An algorithm for finding best matches in logarithmic expected time. ACM Transactions on Mathematical Software, 3(3):209–226, 1977.

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

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

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

[^10]: H. Hoppe, T. DeRose, T. Duchamp, J. McDonald, and W. Stuetzle. Surface reconstruction from unorganized points. Computer graphics, 26(2):71–78, 1992.

[^11]: M. Jaderberg, K. Simonyan, A. Zisserman, and K. Kavukcuoglu. Spatial transformer networks. In NIPS, 2015.

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

[^13]: S. Khamis, J. Taylor, J. Shotton, C. Keskin, S. Izadi, and A. Fitzgibbon. Learning an efficient model of hand shape variation from depth images. In CVPR, 2015.

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

[^15]: R. Klokov and V. Lempitsky. Escape from cells: Deep kd-networks for the recognition of 3d point cloud models. In ICCV, 2017.

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

[^17]: D. Maturana and S. Scherer. Voxnet: A 3D convolutional neural network for real-time object recognition. In IROS, 2015.

[^18]: P. Molchanov, X. Yang, S. Gupta, K. Kim, S. Tyree, and J. Kautz. Online detection and classification of dynamic hand gestures with recurrent 3D convolutional neural network. In CVPR, 2016.

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

[^20]: M. Oberweger, P. Wohlhart, and V. Lepetit. Hands deep in deep learning for hand pose estimation. In CVWW, 2015.

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

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

[^23]: C. R. Qi, H. Su, K. Mo, and L. J. Guibas. PointNet: Deep learning on point sets for 3D classification and segmentation. In CVPR, 2017.

[^24]: C. R. Qi, H. Su, M. Nießner, A. Dai, M. Yan, and L. J. Guibas. Volumetric and multi-view cnns for object classification on 3d data. In CVPR, 2016.

[^25]: C. R. Qi, L. Yi, H. Su, and L. J. Guibas. PointNet++: Deep hierarchical feature learning on point sets in a metric space. In NIPS, 2017.

[^26]: E. Remelli, A. Tkach, A. Tagliasacchi, and M. Pauly. Low-dimensionality calibration through local anisotropic scaling for robust hand model personalization. In ICCV, 2017.

[^27]: G. Riegler, A. O. Ulusoy, and A. Geiger. Octnet: Learning deep 3d representations at high resolutions. In CVPR, 2017.

[^28]: 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 real-time hand tracking. In CHI, 2015.

[^29]: A. Sinha, C. Choi, and K. Ramani. Deephand: Robust hand pose estimation by completing a matrix with deep features. In CVPR, 2016.

[^30]: S. Song and J. Xiao. Deep Sliding Shapes for amodal 3D object detection in RGB-D images. In CVPR, 2016.

[^31]: S. Sridhar, F. Mueller, M. Zollhoefer, D. Casas, A. Oulasvirta, and C. Theobalt. Real-time joint tracking of a hand manipulating an object from rgb-d input. In ECCV, 2016.

[^32]: H. Su, S. Maji, E. Kalogerakis, and E. Learned-Miller. Multi-view convolutional neural networks for 3D shape recognition. In ICCV, 2015.

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

[^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.

[^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 ICCV, 2015.

[^36]: 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, 35(4):143, 2016.

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

---

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

[^39]: D. Tzionas, L. Ballan, A. Srikantha, P. Aponte, M. Pollefeys, and J. Gall. Capturing hands in action using discriminative salient points and physics simulation. International Journal of Computer Vision, 118(2):172–193, 2016.

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

[^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 CVPR, 2017.

[^42]: C. Wan, A. Yao, and L. Van Gool. Direction matters: hand pose estimation from local surface normals. In ECCV, 2016.

[^43]: P.-S. Wang, Y. Liu, Y.-X. Guo, C.-Y. Sun, and X. Tong. O-cnn: Octree-based convolutional neural networks for 3d shape analysis. ACM Transactions on Graphics (TOG), 36(4):72, 2017.

[^44]: Z. Wu, S. Song, A. Khosla, F. Yu, L. Zhang, X. Tang, and J. Xiao. 3D shapenets: A deep representation for volumetric shapes. In CVPR, 2015.

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

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

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

[^48]: S. Yuan, G. Garcia-Hernando, B. Stenger, G. Moon, J. Y. Chang, K. M. Lee, P. Molchanov, J. Kautz, S. Honari, L. Ge, J. Yuan, X. Chen, G. Wang, F. Yang, K. Akiyama, Y. Wu, Q. Wan, M. Madadi, S. Escalera, S. Li, D. Lee, I. Oikonomidis, A. Argyros, and T.-K. Kim. Depth-based 3D hand pose estimation: From current achievements to future goals. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.

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

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

[^51]: C. Zimmermann and T. Brox. Learning to estimate 3D hand pose from single RGB images. In ICCV, 2017.
