
# 基于点云投票的手部姿态估计：采用残差置换等变层

李世乐

慕尼黑工业大学

<mailto:li.shile@mytum.de>

李东辉

慕尼黑工业大学。

德国航空航天中心

<mailto:dhlee@tum.de>

## 摘要

近年来，基于3D输入数据的手部姿态估计方法展现出了最先进的性能，因为3D数据比深度图像能捕获更多的空间信息。不过，基于3D体素的方法需要大量内存，而基于PointNet的方法则需要繁琐的预处理步骤，比如对每个点进行K近邻搜索。在本文中，我们提出了一种针对无序点云的新型深度学习手部姿态估计方法。该方法以1024个3D点为输入，无需额外信息。我们以置换等变层（Permutation Equivariant Layer, PEL）作为基本元件，并针对手部姿态估计任务提出了其残差网络版本。此外，我们提出了一种基于投票的机制，将各个点的信息合并为最终的姿态输出。除了姿态估计任务外，该基于投票的机制还能在无需分割真值的情况下提供点云分割结果。我们在NYU数据集和Hands2017Challenge数据集上评估了该方法，结果显示其性能优于近期的最先进方法，其中在Hands2017Challenge数据集上的姿态估计精度目前位居首位。

### 1. 引言

手部姿态估计在人机交互任务中发挥着重要作用，比如手势识别和通过人类示范学习抓取能力。自消费级深度传感设备问世以来，出现了许多基于深度图像的手部姿态估计方法。许多最先进的方法以深度图像作为输入，这便于利用发展成熟的卷积神经网络或残差网络。然而，使用2D图像作为输入的方法无法充分利用深度图像中的3D空间信息。此外，深度图像的表现形式依赖于相机参数，因此用某一相机图像训练的模型无法很好地泛化到另一相机的图像上。

![Image](images/62823165a23e8a7a3739740d70f67c59285130d098eb6b6e559945267dd8b733.jpg)

<div style="text-align: center;">Figure 1. Our method takes point cloud as input. Then each point predicts the hand pose and its importance weights for different pose dimensions. The final pose is obtained through weighted fusion from each point's pose prediction. Using the importance weight, the hand can be clearly segmented into different parts, although no segmentation ground-truth was used during training.</div>

近年来，使用3D数据作为输入的方法表现优于基于深度图像的方法[^36]。利用3D输入数据的一种方式是将2D深度图像转换为体积表示，比如3D体素[^15] [^4]，其中被占据的3D体素设为1，空体素设为0。使用体素化数据便于直接采用三维CNN学习结构。不过，体素化需要大量内存来表示输入和输出数据，这限制了深层结构的部署。

利用3D输入数据的另一种方式是采用无序点云作为输入[^6][^9][^3]。近年来，用于点云的深度学习结构PointNet在许多任务中取得了成功。PointNet为每个点估算逐点特征，并通过最大池化层从各点提取全局特征，从而使网络对点的顺序具有不变性。葛等人采用PointNet[^20][^22]作为骨干网络，从点云中估计手部姿态。

---

云数据[^6]。不过，对于[^6]而言，需要进行表面法线估计和k近邻搜索等繁琐的预处理步骤。此外，PointNet中的最终最大池化层会忽略许多对姿态估计至关重要的信息。

在本研究中，我们针对无序点集探索了一种更灵活的学习结构——排列等变层（PEL）[^24] [^39]。PEL是一种可应用于无序点的深度学习结构。在PEL中，会计算逐点特征，每个点的特征不仅取决于其自身输入，还取决于全局最大值。以PEL为基本单元，我们提出了一种残差网络版本的PEL，用于构建用于手部姿态估计任务的深度网络。此外，我们提出了一种点到姿态投票机制来获取手部姿态，该机制无需使用最大池化层来提取全局特征，从而避免了信息丢失。而且，生成的点到姿态重要性权重也可用于手部分割任务（图1），即便没有分割真值，也能得到清晰的分割结果。

本研究的贡献如下：

- 我们针对无序点云提出了一种基于深度学习的新型手部姿态估计方法。以排列等变层为基本单元，采用残差网络版本的PEL来解决手部姿态估计任务。与基于PointNet [^22]的方法相比，我们的方法无需进行法线估计、最近邻估计等繁琐步骤。

- 我们提出了一种点到姿态投票机制，用以整合来自逐点局部特征的信息。此外，我们证明了该投票机制无需分割真值就能提供良好的分割结果。

- 我们在Hands2017挑战赛数据集和NYU数据集上评估了我们的方法，结果显示其性能达到了最先进水平。提交时，该方法在Hands2017挑战赛数据集上取得了最低的姿态误差。

### 2. 相关工作

过去十年间，关于手部姿态估计的研究很多，可分为生成式、判别式和混合式方法。生成式方法依赖手部模型和优化方法，将手部模型拟合到观测数据中[^25][^29][^23][^19]。判别式方法利用学习数据来建立观测数据与手部姿态之间的映射关系[^17][^30][^15][^4][^3][^16][^26][^28]。混合式方法则结合了生成式和判别式方法[^18][^27][^34]。我们的方法属于基于学习的方法，因此归入第二类。

## 用于手部姿态估计的深度学习

随着深度学习在二维计算机视觉领域取得成功，基于深度图像的深度学习方法在手部姿态估计任务中也表现出了良好的性能。Tompson等人利用二维CNN来预测每个关节的热图，然后依靠PSO优化算法来估计手部姿态[^30]。Oberweger等人[^17]则使用二维CNN直接从图像特征中回归手部姿态，其中采用了瓶颈层来迫使预测出的姿态遵循特定的先验分布。在后续研究中，Oberweger[^16]替换了CNN以提升特征提取的性能。Zhou等人[^40]先回归一组手部关节角度，再将这些角度输入嵌入式运动学层以获得最终姿态。Ye等人[^33]采用分层混合密度网络来处理被遮挡手部关节的多模态分布问题。

近年来，三维深度学习也被应用于手部姿态估计任务。Moon等人使用$88^{3}$体素来表示手部的三维几何结构，并利用三维CNN来估计手部姿态[^15]。他们的方法取得了非常精确的结果，但输入和输出数据的三维体素化需要占用大量内存，因此该方法仅能以3.5帧/秒的速度运行。Ge等人[^6][^9]以1024个三维点作为输入，依靠PointNet[^22]结构来回归手部姿态。他们的方法性能令人满意，但需要繁琐的预处理步骤，包括定向包围盒（OBB）计算、表面法线估计以及所有点的k近邻搜索。Chen等人改进了Ge的方法，用空间变换网络取代了OBB，还增加了辅助的手部分割任务以提升性能[^3]。他们的方法无需OBB即可端到端训练，但分割任务的真实标签需要从姿态数据中额外预处理得到。

## 三维深度学习

由于三维数据无法直接输入传统的二维CNN，一些方法会将三维数据投影到不同视角以获取多张深度图像，再对所有图像进行CNN处理[^7] [^21] [^10] [^35]。另一种处理三维数据的方式是采用体积表示，并用三维CNN处理数据[^8] [^32] [^14] [^15]。这些方法能更有效地捕捉输入数据的特征，但需要占用大量内存。Qi等人开发了PointNet来处理无序的点云[^20]。PointNet会估算逐点的局部特征，并通过最大池化层获取全局特征。后来，PointNet++通过分层方式将局部特征上采样到更高层次，从而对PointNet进行了扩展[^22]。

---

![Image](images/e286578f22de4f88e73446a10aa80359d470d8b7895dacb74c3fa946f07875d4.jpg)

<div style="text-align: center;">Figure 2. Overview of our method.</div>

其他近期以三维点为输入的方法还包括逐点CNN[^11]、Deep kd-Networks[^12]、自组织网络[^13]以及动态图CNN[^31]。尽管它们在不同任务中表现优异，但都需要额外的步骤来估算k近邻或构建kd树，而这些步骤在我们提出的残差PEL网络中并不必要。

### 3. 方法论

我们方法的概览如图2所示。该方法以任意顺序的N个3D点$\mathbf{P} \in \mathbb{R}^{N \times 3}$作为输入，最终输出向量化的3D手部姿态$\mathbf{y} \in \mathbb{R}^J$，其中$J = 3 \times \#\text{joints}$。为了估计手部姿态，残差排列等变层（PEL）（图4）首先从每个点提取特征（第3.2节）。利用逐点的局部特征，我们采用点到姿态投票法来估算最终的姿态输出（第3.3节），其中开发了两种版本的点到姿态投票法：检测版和回归版。

#### 3.1. 基于视角归一化的预处理

在预处理阶段，首先将手部区域的深度像素转换为3D点。下一步是为这些手部点创建一个3D边界框，以获得这些点的标准化坐标。常规的预处理方法会简单地创建一个与相机坐标系对齐的边界框（图3a）。然而，由于手部的自遮挡现象，这会导致对于完全相同的姿态标签产生不同的观测点集合，从而造成输入-输出对的一对多映射关系。

为了保持输入-输出对之间的一一映射关系，我们建议采用视图归一化方法，将边界框的z轴 $[0,0,1]^T$ 与指向手部质心点的视图方向 $c \in \mathbb{R}^3$ 对齐。这种对齐是通过旋转手部点来实现的。

![Image](images/af20296c19b68fd8a8f98bca58cd26822ec64a50890fe9baa49484dfe2245a94.jpg)

<div style="text-align: center;">Figure 3. View normalization as pre-processing step. Red skeletons indicate ground-truth pose, green points indicate observed points of the camera. a) The same hand pose result in different observations due to different view directions, thus the resulted training samples will contain one-to-many mappings. b) With view normalization, the different observations will also have different pose labels, thus the input-output pairs will have a one-to-one mapping.</div>

旋转矩阵$\mathbf{R}_{cam}$：

 $$ \begin{aligned}\alpha_{y}&=atan2(\mathbf{c}_{x},\mathbf{c}_{z}),\\\widetilde{\mathbf{c}}&=\mathbf{R}_{y}(-\alpha_{y})\cdot\mathbf{c},\\\alpha_{x}&=atan2(\widetilde{\mathbf{c}}_{y},\widetilde{\mathbf{c}}_{z}),\\\mathbf{R}_{cam}&=\mathbf{R}_{y}(-\alpha_{y})\cdot\mathbf{R}_{x}(\alpha_{x}).\end{aligned} $$

用$\mathbf{R}_{cam}$旋转观测点和真实姿态后，手部会旋转到恰好位于相机前方。如图3b所示，这样就能避免一对多的映射问题。

#### 3.2. 残差排列等变层

我们方法中的特征提取模块被称为残差排列等变层。其基本元件是排列等变层（PEL），其设计源自[^24]。PEL以一组无序的点作为输入，

---

为每个单独的输入点计算相应的特征。

假设PEL的输入为$\mathbf{x} \in \mathbb{R}^{N \times K_{in}}$，输出为$\mathbf{x}' \in \mathbb{R}^{N_x K_{out}}$，其中N表示点的数量，$K_{in}$、$K_{out}$分别为输入和输出特征的维度大小。PEL的输出$\mathbf{x}'$为：

 $$ \mathbf{x}^{\prime}=\sigma(\mathbf{\beta}+(\mathbf{x}\mathbf{I}_{K_{i n}}\mathbf{\Lambda}+\mathbf{I}_{K_{i n}}\mathbf{x}_{m a x}\mathbf{\Gamma})\mathbf{W}), $$

其中$\Lambda \in \mathbb{R}^{K_{in}}$、$\Gamma \in \mathbb{R}^{K_{in}}$分别是该点自身特征和全局最大值的权重项，$\mathbf{x}_{max} \in K_{in}$是表示$\mathbf{x}$各列最大值的向量。$\mathbf{W} \in \mathbb{R}^{K_{in} \times K_{out}}$是权重项，$\boldsymbol{\beta} \in \mathbb{R}^{k_{out}}$是偏置项。此外，还会应用激活函数$\sigma(\cdot)$来引入非线性，在我们的方法中采用的是Sigmoid函数。

这一层对输入顺序具有不变性，因为每个单独点的输出值仅取决于其自身的输入特征以及每个特征维度中的全局最大值，而全局最大值本身也不受输入点顺序的影响。$^{1}$这样一来，每个点的特征不仅基于其自身的输入特征来计算，还能通过$\mathbf{x}_{max}$的加权求和与其他点交换信息。

从实际应用的角度来看，需要训练四个元素，分别是$\beta$、$\Lambda$、$\Gamma$和$\mathbf{W}$。总体而言，一层所需的参数数量为$K_{out} + (K_{out} + 2)K_{in}$，这一数值仅略高于全连接层，因此在实际训练中具备可行性。

为了提取非常复杂的特征，我们构建了一个包含27个PEL层的残差网络。如图4所示，我们使用了三个残差块，每个残差块由9个PEL层和三条捷径连接组成。此外，在每个PEL层之后都会进行批量归一化处理。

![Image](images/38447703ab99b49fd3ce5b87eaece1a3a006a70823e655a0bcae1125b10ddd07.jpg)

<div style="text-align: center;">Figure 4. Residual network of permutation equivariant layer</div>

#### 3.3. 点到姿态投票

借助残差PEL模块，可以计算出点的特征$\mathbf{F}$，其中$\mathbf{F}$的每一行代表一个点的局部特征。利用这些局部的点级特征，通过点到姿态投票机制来估计手部姿态$\mathbf{y} \in \mathbb{R}^J$。我们研究了两种点到姿态投票方案：基于检测的方案和基于回归的方案。这两种方案的性能将在实验部分进行比较。

## 检测版本

在检测版本中（图2左侧），首先检测出每个姿态维度的概率分布，随后从这些分布中整合出最终姿态。我们使用两个独立的全连接模块来估算两个矩阵：重要性项$\mathbf{G} \in \mathbb{R}^{N \times J}$和分布$\hat{\mathbf{D}} \in \mathbb{R}^{N \times J \times B}$。重要性矩阵$\mathbf{G}_{nj}$中的元素表示第n个输入点预测第j个输出姿态维度的置信度。换句话说，N个点各自会预测出J个B维分布以及对应的J个重要性权重。需要注意的是，这两个全连接模块的最后一层均为Sigmoid函数，因此$\mathbf{G}$和$\hat{\mathbf{D}}$中的所有元素取值范围都在$[0, 1]$之内。

$\tilde{D}$代表输出的姿态分布，其中每个点都会针对J个输出维度做出自己的预测。每个输出姿态维度都用包含B个区间的离散分布来表示，这些区间对应$[-r, +r]$中的取值范围，每个区间的分辨率为$\Delta d = 2r/B$。对于输出姿态的第j个维度$\mathbf{y}_j$，其对应的区间索引为：

 $$ {i n d e x}_{j}^{{g t}}=\lceil(\mathbf{y}_{j}^{{g t}}+r)/\Delta d\rceil, $$

而真实值分布定义为：

 $$ \mathbf{D}_{j b}^{g t}=\begin{cases}1,&if b\in[index_{j}^{g t}-1,index_{j}^{g t}+1]\\ 0,&otherwise\end{cases} $$

其中，真实姿态周围的三个区间被设为1，其余区间则设为0。

随后，通过合并所有N个点的预测结果，即可得到J维输出的最终分布$\mathbf{D} \in \mathbb{R}^{J \times B}$：

 $$ \mathbf{D}_{j b}=\frac{\sum_{n=1}^{N}(\mathbf{G}_{n j}\mathbf{\hat{D}}_{n j b})}{\sum_{n=1}^{N}\mathbf{G}_{n j}}. $$

最终姿态y通过对该分布进行积分得到：

 $$ \mathbf{y}_{j}=\frac{\sum_{b=1}^{B}(b-0.5)\mathbf{D}_{j b}}{\sum_{b=1}^{B}\mathbf{D}_{j b}}, $$

其中b - 0.5表示区间中心位置。

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td colspan="3">Hands2017Challenge dataset</td><td colspan="3">NYU dataset</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>detection</td><td style='text-align: center; word-wrap: break-word;'>detection w/o view normalization</td><td style='text-align: center; word-wrap: break-word;'>regression</td><td style='text-align: center; word-wrap: break-word;'>detection/ single view</td><td style='text-align: center; word-wrap: break-word;'>regression/ single view</td><td style='text-align: center; word-wrap: break-word;'>regression/ three views</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>256 points</td><td style='text-align: center; word-wrap: break-word;'>11.34</td><td style='text-align: center; word-wrap: break-word;'>13.14</td><td style='text-align: center; word-wrap: break-word;'>11.21</td><td style='text-align: center; word-wrap: break-word;'>9.82</td><td style='text-align: center; word-wrap: break-word;'>9.45</td><td style='text-align: center; word-wrap: break-word;'>9.05</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>512 points</td><td style='text-align: center; word-wrap: break-word;'>10.23</td><td style='text-align: center; word-wrap: break-word;'>11.93</td><td style='text-align: center; word-wrap: break-word;'>10.11</td><td style='text-align: center; word-wrap: break-word;'>9.33</td><td style='text-align: center; word-wrap: break-word;'>9.06</td><td style='text-align: center; word-wrap: break-word;'>8.49</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1024 points</td><td style='text-align: center; word-wrap: break-word;'>9.93</td><td style='text-align: center; word-wrap: break-word;'>11.67</td><td style='text-align: center; word-wrap: break-word;'>9.82</td><td style='text-align: center; word-wrap: break-word;'>9.25</td><td style='text-align: center; word-wrap: break-word;'>8.99</td><td style='text-align: center; word-wrap: break-word;'>8.35</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2048 points</td><td style='text-align: center; word-wrap: break-word;'>9.93</td><td style='text-align: center; word-wrap: break-word;'>11.69</td><td style='text-align: center; word-wrap: break-word;'>9.87</td><td style='text-align: center; word-wrap: break-word;'>9.32</td><td style='text-align: center; word-wrap: break-word;'>9.08</td><td style='text-align: center; word-wrap: break-word;'>8.35</td></tr></table>

表1. 自我比较结果

## 回归版本

在回归版本中（图2右侧），每个点无需经过中间的分布检测步骤，可直接预测姿态。与检测版本类似，这里也使用两个独立的全连接模块来估算重要性项$\mathbf{G} \in \mathbb{R}^{N \times J}$和点到姿态的估计值$\hat{\mathbf{y}} \in \mathbb{R}^{N \times J}$。随后，最终姿态输出作为所有点预测的加权平均值进行合并：

 $$ \mathbf{y}_{j}=\frac{\sum_{n=1}^{N}(\mathbf{G}_{n j}\hat{\mathbf{y}}_{n j})}{\sum_{n=1}^{N}\mathbf{G}_{n j}}. $$

### 3.4. 利用重要性项进行分割

重要性项$\mathbf{G} \in \mathbb{R}^{N \times J}$是在没有真实标签信息的情况下自动估计得出的。不过，它仍然能够反映各关键点对姿态输出的重要性信息。因此，所获得的重要性项也可用于基于贡献最大的姿态维度的手部分割任务。对于第n个关键点而言，其重要性项为$\mathbf{g} = \mathbf{G}_n$，该关键点贡献最大的姿态维度为：

 $$ \begin{array}{r}{j_{m a x}=\underset{j}{\mathrm{a r g m a x}}\mathbf{g}_{j},}\end{array} $$

其中，姿态维度$j_{max}$可对应到特定的手部部位。在本研究中，我们将J个姿态维度划分为手掌、拇指、食指、无名指和小指。

#### 3.5. 训练损失

检测版本所使用的唯一训练损失是姿态分布的对数损失：

 $$ \begin{align*}L_{det}=-\sum_{j=1}^{J}\sum_{b=1}^{B}\mathbf{D}^{gt}_{jb}log(\mathbf{D}_{jb}+\epsilon)\\+(1-\mathbf{D}^{gt}_{jb})(1-log(\mathbf{D}_{jb}+\epsilon)),\end{align*} $$

其中，$\epsilon = 10^{-7}$是一个较小的偏移量，用于避免将零值输入对数函数。

回归版本所使用的唯一训练损失是预测姿态与真实姿态之间的L2损失：

 $$ {\cal L}_{r e g}=\frac{1}{2}\sum_{j=1}^{J}({\bf y}_{j}^{g t}-{\bf y}_{j})^{2}. $$

无论是检测版本还是回归版本，重要性项$\mathbf{G} \in \mathbb{R}^{N \times J}$都是在没有真实标签信息的情况下自动估计得出的。

### 4. 实验与结果

我们的手部姿态估计方法在Hands2017Challenge数据集[^37]和NYU数据集[^30]上进行了评估。Hands2017Challenge数据集由Big Hand 2.2M数据集[^38]和第一人称手部动作数据集（FHAD）[^5]的部分内容组成，目前是可用的最大规模数据集。其训练集包含五只不同手部的957032张深度图像；测试集则由十种不同手形的295510张深度图像构成，其中五种手形与训练集相同，另外五种则是全新的。NYU数据集包含单名受试者手部的72757张训练图像，以及包含第二种手形的8252张测试图像（该手形与训练集中的手形不同）。NYU数据集提供了三个不同视角的深度图像，我们分别仅使用正面视图数据以及全部三个视角的数据来训练模型，而测试时则仅采用正面视图。

我们的方法基于TensorFlow [^1]实现。网络在配备AMD FX-4300/Intel Core i7-860 CPU和nVidia GeForce GTX1060 6GB GPU的PC上进行训练。针对NYU数据集，我们训练100个周期；而对于规模较大的Hands 2017挑战赛数据集，仅训练20个周期。对于这两个数据集，前50%的周期均采用较小的点数（N = 256）以加快训练速度，剩余周期则采用N = 512的点数进行训练。训练过程中采用Adam优化器，初始学习率为$10^{-3}$，最后10%的周期学习率会降至$10^{-4}$。对于检测版本，我们设定r = 15mm且B = 60。在线增强操作包括：在三个维度内随机平移$[-15, 15]$mm、随机缩放$[0.85, 1.15]$倍，以及绕z轴随机旋转$[-\pi, \pi]$度。

#### 4.1. 评估指标

针对NYU数据集，我们采用两种标准指标来评估性能。第一个指标是关节平均误差，用于衡量整个测试集上所有关节的欧几里得距离误差平均值；第二个指标是正确帧比例，用于表示…

---

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

![Image](images/90b239b1eed1dbde78571ea0eeb9c1003c149b5faf2094a5d3ddcc7e00bc5f7d.jpg)

<div style="text-align: center;">Figure 5. Comparison with state-of-the-arts on NYU [^30] dataset. Left: mean errors of different joints. Right: proportion of correct frames based on different error thresholds.</div>

指所有关节都在距真实值一定范围内的帧。第二种指标被认为更具挑战性，因为只要有一个关节不符合要求，该帧就会被判定为不合格。对于Hands2017Challenge数据集而言，仅采用平均关节误差这一指标，因为测试集的真实数据并未公开，且官方测试网站也只提供了平均关节误差结果。

<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;'>avg test</td><td style='text-align: center; word-wrap: break-word;'>seen test</td><td style='text-align: center; word-wrap: break-word;'>unseen test</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours/regression</td><td style='text-align: center; word-wrap: break-word;'>9.82</td><td style='text-align: center; word-wrap: break-word;'>7.15</td><td style='text-align: center; word-wrap: break-word;'>12.04</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours/detection</td><td style='text-align: center; word-wrap: break-word;'>9.93</td><td style='text-align: center; word-wrap: break-word;'>7.18</td><td style='text-align: center; word-wrap: break-word;'>12.22</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>V2V-PoseNet [^15]</td><td style='text-align: center; word-wrap: break-word;'>9.95</td><td style='text-align: center; word-wrap: break-word;'>6.97</td><td style='text-align: center; word-wrap: break-word;'>12.43</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>RCN-3D [^36]</td><td style='text-align: center; word-wrap: break-word;'>9.97</td><td style='text-align: center; word-wrap: break-word;'>7.55</td><td style='text-align: center; word-wrap: break-word;'>12.00</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>oasis [^6]</td><td style='text-align: center; word-wrap: break-word;'>11.30</td><td style='text-align: center; word-wrap: break-word;'>8.86</td><td style='text-align: center; word-wrap: break-word;'>13.33</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>THU VCLab [^2]</td><td style='text-align: center; word-wrap: break-word;'>11.70</td><td style='text-align: center; word-wrap: break-word;'>9.15</td><td style='text-align: center; word-wrap: break-word;'>13.83</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Vanora [^36]</td><td style='text-align: center; word-wrap: break-word;'>11.91</td><td style='text-align: center; word-wrap: break-word;'>9.55</td><td style='text-align: center; word-wrap: break-word;'>13.89</td></tr></table>

<div style="text-align: center;">Table 2. Comparison of our method with state-of-the-art methods on the Hands2017 Challenge dataset</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;'>mean joint error (mm)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours/regression/singleView</td><td style='text-align: center; word-wrap: break-word;'>8.99</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours/regression/threeViews</td><td style='text-align: center; word-wrap: break-word;'>8.35</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours/detection</td><td style='text-align: center; word-wrap: break-word;'>9.25</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DeepPrior++ [^16]</td><td style='text-align: center; word-wrap: break-word;'>12.23</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3DCNN</td><td style='text-align: center; word-wrap: break-word;'>14.11</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DenseReg [^4]</td><td style='text-align: center; word-wrap: break-word;'>10.21</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>V2V-PoseNet [^15]</td><td style='text-align: center; word-wrap: break-word;'>8.42</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>SHPR-Net [^3]</td><td style='text-align: center; word-wrap: break-word;'>10.77</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>SHPR-Net (three views) [^3]</td><td style='text-align: center; word-wrap: break-word;'>9.37</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HandPointNet [^6]</td><td style='text-align: center; word-wrap: break-word;'>10.54</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Point-to-Point [^9]</td><td style='text-align: center; word-wrap: break-word;'>9.04</td></tr></table>

<div style="text-align: center;">Table 3. Comparison of our method with state-of-the-art methods on the NYU dataset</div>

#### 4.2. 自我对比

在本小节中，我们进行了自我对比，以展示我们方法中不同组件所产生的效果。详细的对比结果可参见表1。

视角归一化。为了验证视角归一化的必要性，我们在检测版本中分别使用经过视角归一化的数据和原始数据来训练我们的方法。从表1可以明显看出，对于Hands2017Challenge数据集而言，视角归一化能使姿态估计误差降低约1.5毫米。

检测与回归。Yuan等人指出，基于检测的方法通常比基于回归的方法效果更好[^36]，因此我们分别实现了基于检测的方法（ ours/distribution）和基于回归的方法（ours/regression）。从表1可以看出，在这两个数据集中，两种变体的表现相近，其中基于回归的变体略优于基于检测的变体。造成这种情况的可能原因是二进制分布的量化效应，以及一维热向量相较于以往研究中使用的二维或三维热图更为简单。不过，一维热向量表示法比三维热图表示法高效得多。对于热向量而言，我们需要$B \times J$个数值来表示姿态输出，而三维热图则需要$J \times B^3$个数值[^15]。在今后的研究中，值得探索更多不同类型的损失函数和热图表示方式。

点数方面。借助PEL结构和基于投票的机制，我们的方法对输入点云的大小具有极高的灵活性。尽管网络是在512个点的条件下训练的，但在测试阶段可以使用任意数量的点。对于在线应用而言，这一特性有助于根据可用的计算资源选择任意数量的点。从表1可以看出，我们对两个数据集都测试了不同的点数。我们的方法仅需256个点就能取得良好的性能，与使用512个点时相比，平均关节误差仅增加了0.11毫米。总体而言，点数越多性能越好，但超过一定数量后性能便不再提升。

---

![Image](images/619596a6d676bf860ae6918ed1d22624e276f91c9a162c2f9f6a1fdef5ba882d.jpg)

![Image](images/e32628911354de2dc35080603cfc1f173d1eb09f5b384327f8d2ca386577936d.jpg)

![Image](images/ac4c1f3fcda4f9d951c086db3caaf7fcf4fb1d7545599f10a8cf33c902746690.jpg)

![Image](images/42341d101e83b5e4e41eb5aa3a5fb663782bc5bd4259db3b6b3a52a1c068b260.jpg)

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

![Image](images/e5934e740ed12cd771ce409dff61ad331182659b1dd161e72dfececd7dcddfbe.jpg)

![Image](images/d4ae4e4812406861282843c78610afd591175e80e2400e94cfb778dd5f44d04d.jpg)

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

![Image](images/384278068855ebf64a951c84a77b63589a90e03bc8de4719f35c6be49bdce880.jpg)

![Image](images/85de5e10dff0923ddeea341c4cbf6a43fd8c3c516606f1fce929fed8087d7de4.jpg)

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

![Image](images/d0d760c2a51c11982968263b39b76fea9921439fdb4f59a22f942f4bffbdf35a.jpg)

![Image](images/b11f707effb75273b83c693f2293b1ab7b18433ad0e5c78f39d6be7e603feced.jpg)

![Image](images/23219faf1874f1a14fcb1afa9489ae718408d3111e92b005160f37cde63b0b39.jpg)

![Image](images/983f29c4773d5f05bb3bbb5403b28ad8a3c9a503fa1f712f537aea313d8f19cc.jpg)

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

![Image](images/b37493a3a280acbb0f54f265068ac0bbe4a8d51a99b6232518c9e388f41a549a.jpg)

![Image](images/ad0a298f182881edf122b490a52b2a25b70faf36f546550ee9799d6cb566b913.jpg)

![Image](images/b8eb835a9d6922f22879e9114eb095f41b1e84c02cb131ef7c8425d52215c962.jpg)

![Image](images/663d92613482305f132fd4c860bfe3ab1366e7adf8dbd30c4ac4244faa071000.jpg)

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

![Image](images/953148782687a527fa02bd7447e511e5483c5674c4cfe0b4a1921a8a3c061b9c.jpg)

![Image](images/82d10b4d10578e927107052d15591224ba99d89c116903687f49b17cc79e0510.jpg)

![Image](images/a0a8261a2828bbe621ab95475e76035925794e8243d0bca78674463b7395fea7.jpg)

![Image](images/c3d4280be7a5d7d3570c836a151626e13b4c8c57d12000f18450b326f0b13356.jpg)

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

![Image](images/81196c9df10d1e33324ff0ae8aa17fcd6b196977c9bfd3715c29f15b1cb02680.jpg)

![Image](images/99175003ae243648e0f71c2951ce21384e61bde9e369835f8d033bd02104965d.jpg)

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

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

<div style="text-align: center;">Figure 6. Segmentation results based on importance weights (best viewed in color). Points: input point cloud, color indicates depth value, blue points are more distanced and red points are more closer to the camera. Segmentation: each part of the hand is indicated with an different color, palm (red), thumb (green), index (blue), middle (yellow), ring (cyan), pinky (pink) and irrelevant points with low importance weight for all parts (gray)</div>

在达到1024个点之后性能便不再显著提升。因此，我们选择1024个点作为测试数据，以便将我们的方法与其他最先进的方法进行比较。

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

Hands2017Challenge数据集。由于测试集的真实标签数据并未公开，一些先前的研究论文会自行划分训练集来创建各自的测试集。因此，为了公平比较，我们仅与那些也在官方测试网站$^{2}$上进行过测试的方法进行比较。在表2中，我们将所提出的方法与Hands2017Challenge数据集上的其他五种性能优异的方法进行对比，这些方法既包括使用3D输入数据的，也包括使用2D深度图像的方法。RCN-3D [^36]、THU VCLab [^2]以及Vanora [^36]均采用深度图像作为输入数据。V2V-PoseNet [^15]则使用体素表示法来处理输入数据和输出热图。Oasis [^6]同样以3D点云作为输入，其方法基于PointNet [^20]构建。用于比较的误差指标有三种：1）整个测试集上的平均值（avg test）；2）训练阶段已见过的人手在测试集上的平均值（seen test）；3）未见过的人的手在测试集图像上的平均值（unseen test）。目前，我们的方法在测试集上的整体平均关节误差仅为9.82毫米。对于已见过的人手和未见过的人的手，平均关节误差分别为7.15毫米和12.04毫米，这一结果体现了所提方法在未对参数进行正则化情况下的泛化能力。

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td colspan="3">our method</td><td style='text-align: center; word-wrap: break-word;'>V2V-PoseNet [^15]</td><td style='text-align: center; word-wrap: break-word;'>Hand3D [^4]</td><td style='text-align: center; word-wrap: break-word;'>P2P-Regression [^9]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>GPU</td><td colspan="3">GTX1060</td><td style='text-align: center; word-wrap: break-word;'>Titan X</td><td style='text-align: center; word-wrap: break-word;'>Titan X</td><td style='text-align: center; word-wrap: break-word;'>Titan Xp</td></tr><tr><td rowspan="4">time</td><td colspan="2">detection</td><td style='text-align: center; word-wrap: break-word;'>regression</td><td rowspan="4">285.7 ms</td><td rowspan="4">33.3 ms</td><td rowspan="4">23.9 ms</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>256 points</td><td style='text-align: center; word-wrap: break-word;'>3.5 ms</td><td style='text-align: center; word-wrap: break-word;'>2.9 ms</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>512 points</td><td style='text-align: center; word-wrap: break-word;'>6.9 ms</td><td style='text-align: center; word-wrap: break-word;'>5.5 ms</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1024 points</td><td style='text-align: center; word-wrap: break-word;'>12.5 ms</td><td style='text-align: center; word-wrap: break-word;'>10.7 ms</td></tr></table>

<div style="text-align: center;">Table 4. Comparison of runtime and hardware</div>

目前，我们的方法在测试集上的整体平均关节误差达到了最低的9.82毫米。对于已见过的人手和未见过的人的手，平均关节误差分别为7.15毫米和12.04毫米，这充分体现了所提方法即便在没有参数正则化的情况下仍具备良好的泛化能力。与其他基于3D数据的方法相比，我们的方法略优于V2V-PoseNet，不过V2V-PoseNet需要10块高性能GPU才能实现实时运行，而我们的方法仅需一块中等性能的GPU即可。与同样以1024个3D点作为输入的Oasis相比，我们的方法误差更小，低了1.48毫米；不过Oasis需要更多的输入信息，比如表面法线和k近邻数据。

NYU数据集。针对NYU数据集，我们仅与2017年之后出现的先进方法进行比较。训练和测试阶段均仅使用正面视图。遵循先前的研究[^17][^30][^9]，评估时仅采用所提供的36个关节中的14个。为了公平比较，我们仅与仅在NYU数据集上训练、未使用额外数据的方法进行对比。参与对比的方法包括基于深度图像的方法（DeepPrior++ [^16]、DenseReg [^4]）、基于3D体素的方法（3DCNN [^8]、V2V-PoseNet [^15]）以及基于点云的方法（SHPR-Net [^3]、HandPointNet [^6]、Point-to-Point [^9]）。图5展示了对比结果，我们的方法与V2V-PoseNet [^15]及Point-to-Point [^9]的表现相当，且优于所有其他方法。表3中列出了更详细的关节误差数值对比，其中使用单视图的我们的方法排名第二，而使用三个视图的我们的方法则超越了所有先进的现有方法。

#### 4.4. 利用重要性项进行分割

除了展示基于真实数据的定量结果外，我们还展示了利用自动推断出的重要性项所得到的分割定性结果。从图6可以看出，分割结果与原始点云一同显示。这些样本取自Hands2017挑战赛数据集，既包括所有手指均可见的样本，也包括存在不同程度自遮挡的样本。在所有情况下，即便手指相互缠绕，也能清晰地将它们彼此分割开来。对任何关节没有贡献的点其重要性值极低，因此被归类为背景。如图6所示，手臂和背景点以灰色清晰呈现。需要注意的是，该分割结果是无需依赖分割真实数据就能获得的。这引出了一个未来的研究课题：我们能否将该方法应用于手与物体交互的场景，从而自动消除物体的影响。

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

为了存储训练好的模型，所提出的方法中回归版本占用38 MB空间，检测版本占用44 MB空间。与基于3D CNN的方法所需的420 MB空间相比[^4]，我们的模型体积要小得多。在测试阶段，当输入为1024个点时，检测方法每帧运行时间为12.5毫秒，回归方法为10.7毫秒。若减少输入点的数量，运行时间还能进一步缩短，且性能损失很小。表4展示了该方法与其他先进的3D方法在运行时间上的对比[^15][^4][^9]。尽管其他方法使用的GPU比我们的更强大，但我们的方法所需的处理时间最短。

### 5. 结论

我们提出了一种用于手部姿态估计的新型神经网络架构ResidualPEL，它以无序点云作为输入。该方法对输入点的顺序具有不变性，且能处理不同数量的点。与以往基于3D体素的方法相比，我们的方法占用的内存更小；与基于PointNet的方法相比，我们的方法无需表面法线和k近邻信息。我们提出了一种基于投票的机制，用于将单个点的信息整合为姿态输出，由此得到的重要性项还可用于把手部分割成不同部分。我们在两个数据集上评估了该方法的性能，结果显示它在这两个数据集上的表现均优于现有最先进的方法。在未来的研究中，所提出的ResidualPEL和投票机制也可应用于类似问题，如人体姿态估计和物体姿态估计。

## 参考文献

## [^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：异构分布式系统上的大规模机器学习。arXiv:1603.04467，2016年。

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

[^3]: X. Chen, G. Wang, C. Zhang, T.-K. Kim, and X. Ji. Shprnet: Deep semantic hand pose regression from point clouds. IEEE Access, 6:43425–43439, 2018.

[^4]: X. Deng, S. Yang, Y. Zhang, P. Tan, L. Chang, and H. Wang. Hand3d: Hand pose estimation using 3d neural network. Proc. Computer Vision and Pattern Recognition (CVPR), IEEE, 2018.

[^5]: G. Garcia-Hernando, S. Yuan, S. Baek, and T.-K. Kim. First-person hand action benchmark with rgb-d videos and 3d hand pose annotations. arXiv:1704.02463, 2017.

[^6]: L. Ge, Y. Cai, J. Weng, and J. Yuan. Hand pointnet: 3d hand pose estimation using point sets. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 8417–8426, 2018.

[^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 Proceedings of the IEEE conference on computer vision and pattern recognition, pages 3593–3601, 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 IEEE conference on computer vision and pattern recognition, pages 1991–2000, 2017.

[^9]: L. Ge, Z. Ren, and J. Yuan. Point-to-point regression point-net for 3d hand pose estimation. ECCV, Springer, 1, 2018.

[^10]: X. He, Y. Zhou, Z. Zhou, S. Bai, and X. Bai. Triplet-center loss for multi-view 3d object retrieval. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2018.

[^11]: B.-S. Hua, M.-K. Tran, and S.-K. Yeung. Pointwise convolutional neural networks. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2018.

[^12]: R. Klokov and V. Lempitsky. Escape from cells: Deep kd-networks for the recognition of 3d point cloud models. In Computer Vision (ICCV), 2017 IEEE International Conference on, pages 863–872. IEEE, 2017.

[^13]: J. Li, B. M. Chen, and G. Hee Lee. So-net: Self-organizing network for point cloud analysis. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2018.

[^14]: D. Maturana and S. Scherer. Voxnet: A 3rd convolutional neural network for real-time object recognition. In Intelligent Robots and Systems (IROS), 2015 IEEE/RSJ International Conference on, pages 922–928. IEEE, 2015.

[^15]: G. Moon, J. Y. Chang, and K. M. Lee. V2v-posenet: Voxel-to-voxel prediction network for accurate 3d hand and human pose estimation from a single depth map. arXiv:1711.07399, 2017.

[^16]: M. Oberweger and V. Lepetit. Deepprior++: Improving fast and accurate 3d hand pose estimation. In ICCV workshop, volume 840, page 2, 2017.

[^17]: M. Oberweger, P. Wohlhart, and V. Lepetit. Hands deep in deep learning for hand pose estimation. In Computer Vision Winter Workshop, pages 1–10, 2015.

[^18]: M. Oberweger, P. Wohlhart, and V. Lepetit. Training a feedback loop for hand pose estimation. In IEEE International Conference on Computer Vision, pages 3316–3324, 2015.

[^19]: I. Oikonomidis, N. Kyriazis, and A. A. Argyros. Efficient model-based 3d tracking of hand articulations using kinect. In BmVC, volume 1, page 3, 2011.

[^20]: C. R. Qi, H. Su, K. Mo, and L. J. Guibas. Pointnet: Deep learning on point sets for 3d classification and segmentation. Proc. Computer Vision and Pattern Recognition (CVPR), IEEE, 1(2):4, 2017.

[^21]: 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 Proceedings of the IEEE conference on computer vision and pattern recognition, pages 5648–5656, 2016.

[^22]: C. R. Qi, L. Yi, H. Su, and L. J. Guibas. Pointnet++: Deep hierarchical feature learning on point sets in a metric space. In Advances in Neural Information Processing Systems, pages 5099–5108, 2017.

[^23]: C. Qian, X. Sun, Y. Wei, X. Tang, and J. Sun. Realtime and robust hand tracking from depth. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 1106–1113, 2014.

[^24]: S. Ravanbakhsh, J. Schneider, and B. Poczos. Deep learning with sets and point clouds. arXiv preprint arXiv:1611.04500, 2016.

[^25]: J. Romero, D. Tzionas, and M. J. Black. Embodied hands: Modeling and capturing hands and bodies together. ACM Transactions on Graphics (TOG), 36(6):245, 2017.

[^26]: T. Sharp, C. Keskin, D. Robertson, J. Taylor, J. Shotton, D. Kim, C. Rhemann, I. Leichter, A. Vinnikov, Y. Wei, et al. Accurate, robust, and flexible real-time hand tracking. In Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems, pages 3633–3642. ACM, 2015.

[^27]: T. Sharp, C. Keskin, D. Robertson, J. Taylor, J. Shotton, D. Kim, C. Rhemann, I. Leichter, A. Vinnikov, Y. Wei, et al. Accurate, robust, and flexible real-time hand tracking. In 33rd ACM Conference on Human Factors in Computing Systems, pages 3633–3642. ACM, 2015.

[^28]: 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 Proceedings of the IEEE international conference on computer vision, pages 3325–3333, 2015.

[^29]: A. Tkach, A. Tagliasacchi, E. Remelli, M. Pauly, and A. Fitzgibbon. Online generative model personalization for hand tracking. ACM Transactions on Graphics (TOG), 36(6):243, 2017.

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

---

[^31]: Y. Wang, Y. Sun, Z. Liu, S. E. Sarma, M. M. Bronstein, and J. M. Solomon. Dynamic graph cnn for learning on point clouds. arXiv preprint arXiv:1801.07829, 2018.

[^32]: Z. Wu, S. Song, A. Khosla, F. Yu, L. Zhang, X. Tang, and J. Xiao. 3d shapenets: A deep representation for volumetric shapes. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 1912–1920, 2015.

[^33]: Q. Ye and T.-K. Kim. Occlusion-aware hand pose estimation using hierarchical mixture density network. ECCV, Springer, 2018.

[^34]: Q. Ye, S. Yuan, and T.-K. Kim. Spatial attention deep net with partial pso for hierarchical hybrid hand pose estimation. In European conference on computer vision, pages 346–361. Springer, 2016.

[^35]: T. Yu, J. Meng, and J. Yuan. Multi-view harmonized bilinear network for 3d object recognition. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2018.

[^36]: S. Yuan, G. Garcia-Hernando, B. Stenger, G. Moon, J. Yong Chang, K. Mu 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), June 2018.

[^37]: S. Yuan, Q. Ye, G. Garcia-Hernando, and T.-K. Kim. The 2017 hands in the million challenge on 3d hand pose estimation. arXiv:1707.02237, 2017.

[^38]: 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 IEEE Conference on Computer Vision and Pattern Recognition, pages 2605–2613, 2017.

[^39]: M. Zaheer, S. Kottur, S. Ravanbakhsh, B. Poczos, R. R. Salakhutdinov, and A. J. Smola. Deep sets. In Advances in Neural Information Processing Systems, pages 3391–3401, 2017.

[^40]: X. Zhou, Q. Wan, W. Zhang, X. Xue, and Y. Wei. Model-based deep hand pose estimation. In Twenty-Fifth International Joint Conference on Artificial Intelligence, pages 2421–2427. AAAI Press, 2016.
