
# HandR $^{2}$N $^{2}$：基于残差循环神经网络的迭代式3D手部姿态估计

程文灿

人工智能系

成均馆大学

<mailto:swc1260@skku.edu>

<mailto:cwc1260@skku.edu>

高钟焕

信息通信工程学院

成均馆大学

<mailto:jhko@skku.edu>

## 摘要

3D手部姿态估计是各类人机交互应用中的关键任务。该领域已有大量基于深度学习的估计模型被积极研究。然而，现有模型均采用非循环结构，因此为了实现可接受的模型容量，往往需要复杂的架构或冗余的参数。为解决这一局限，本文提出HandR $^2$N $^2$，这是一种紧凑型神经网络，它利用新型的残差循环单元迭代回归手部姿态。这种循环设计能够递归利用部分层来逐步优化先前估计的关节位置。此外，我们引入图推理机制来捕捉关节间的运动学依赖关系，以提升性能。实验结果表明，在三个手部姿态基准数据集上，所提模型在准确性和效率方面均显著优于现有方法。代码和预训练模型可在<https://github.com/cwc1260/HandR2N2>免费获取。

### 1. 引言

3D手部姿态估计旨在估算手部关键点的3D位置，能够为我们理解人类手部活动提供基础信息。因此，它是机器人、增强/虚拟现实等诸多人机交互应用中的关键任务。借助深度学习技术和低成本深度相机，众多研究推动了手部姿态估计领域的巨大进步。然而，由于手部朝向的多样性、严重的自遮挡现象以及噪声较大的深度图像，准确且高效的手部姿态估计仍颇具挑战性 [^12] [^9] [^18] [^6]。

近期大多数最先进的方法都基于深度学习，尤其是深度卷积神经网络（CNN）。这类基于CNN的方法 [31, 10, 13,

![Image](images/c1b0132bd2f71ab5e983f8741ca7a468673aa51f4b5432d23c917b9d05344acc.jpg)

<div style="text-align: center;">Figure 1. Illustration of the recurrent concept. For each iteration, our proposed recurrent architecture samples local points around joints from previous iteration to generate displacements to refine the joint locations.</div>

25, 1, 8, 23, 6, 23] 通常将2D深度图像作为输入，可直接由2D卷积层处理。然而，2D CNN很难捕捉从2D深度图像到3D手部姿态的高度非线性映射关系，这严重限制了其效率和准确性。因此，一类研究方法 [^11] [^18] 会将2D输入图像离散化为3D体素表示，随后应用3D CNN进行直接的3D到3D推理。但3D CNN的一个关键缺陷是，其计算开销会随着输入分辨率的提升而呈立方级增长 [^4]。相比之下，另一系列手部姿态估计模型 [^9] [^12] [^2] [^15] [^4] 采用了PointNet [^20] [^21]，取得了出色的性能。该方法允许模型直接接收由输入手部图像转换而来的连续3D坐标集，无需进行离散化处理。

尽管上述方法在准确性上有所提升，但它们仍受限于庞大且复杂的模型架构，这类架构需要大量的计算开销。因此，这些方法并不适用于可穿戴设备或手持设备等资源受限的设备。此外，所有现有方法均采用非循环架构，导致它们无法灵活适应不同的资源限制和准确性要求。

---

在本研究中，我们采用一种循环架构来解决这些局限性。该架构能够动态调整自身容量，通过迭代使用部分模型参数来实现更高的准确性或更高的效率。

循环结构能够通过重复使用较少的共享参数来具备深层网络的高容量特性 [^34]。已有多种图像处理模型采用循环神经网络（RNN）作为显式的迭代方法，并取得了令人鼓舞的成果 [^30] [^5] [^35] [^26]。为了充分利用RNN在手部姿态估计任务中的优势，我们提出了一种新颖的残差循环神经网络 $\text{HandR}^2\text{N}^2$，它能够从输入的手部点云中迭代地回归出精确的3D手部姿态。直观而言，$\text{HandR}^2\text{N}^2$ 可以作为一种通用优化器，利用先前估计得到的观测结果来递归搜索最优关节位置，如图1所示。

为了实现HandR $^2$N $^2$，我们引入了两个创新组件：1）残差循环单元（RRU）；2）初始化模块。RRU是核心组件，负责迭代更新其逐关节隐藏状态和坐标估计值。RRU的初始逐关节状态和坐标则由初始化模块全局估算得出。

RRU特别集成了注意力门控机制，能够从一组候选点中筛选出最优点以提高准确性。由于所提出的RRU仅计算与特定关节相关的特征，因此其效率高于 [^5] 中类似的先前模型——后者需要重新计算全部点特征。此外，RRU还利用了基于新型通道级图卷积网络（GCN）的图推理机制。GCN能够建模图结构数据，因此特别适合具有运动学结构的手部数据 [^8]。所提出的通道级GCN使RRU能够通过捕捉关节间的强运动学依赖关系来递归增强隐藏状态。更重要的是，推理过程中RRU的迭代次数可以动态调整，与训练时的迭代次数不同。具体而言，可以设置较大的RRU推理迭代次数以提升模型容量和准确性，也可以设置较小的迭代次数以减少计算需求。因此，正如图2所示，HandR²N²能够适应不同的复杂度和准确性要求。

我们在三个具有挑战性的基准数据集上评估了HandR²N²，分别是ICVL [^28]、MSRA [^27] 和NYU [^31] 数据集。结果显示，我们的网络创造了新的最佳性能记录。该网络在ICVL、MSRA和NYU数据集上的平均距离误差分别仅为5.70毫米、6.42毫米和7.27毫米。同时，它仅需要1.3百万个参数，且能以可调节的复杂度 0.72+0.34×I GFLOPs 运行，其中I表示迭代次数。因此，我们的模型所需的

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

<div style="text-align: center;">Figure 2. Comparison between operation count and estimation error. I is the iteration number of HandR $^2$N $^2$ during inference.</div>

计算量比其他最先进方法在追求最高准确性时所需的计算量更少，如图2所示。

本文的主要贡献总结如下：

- 我们提出了一种新颖的迭代神经网络架构，该架构以手部点云为输入，逐步估算出精确的3D手部关节坐标。

- 我们提出了一种新颖的残差循环单元，它能够捕捉先前生成的坐标周围的新局部观测信息，从而优化各关节的隐藏状态与坐标估算结果。该单元还利用图神经网络来建模关节间的依赖关系，以提升性能。

• 我们开展了大量实验，用以分析所提出网络的效率与有效性。

### 2. 相关工作

#### 2.1. 基于深度的3D手部姿态估计

根据输入类型的不同，基于深度图像的3D手部姿态估计方法可分为三类：以原始2D深度图像为输入的传统2DCNN基方法 [^31] [^10] [^13] [^25] [^1] [^8] [^23] [^6]；使用深度图像的三维体素化表示的3DCNN基方法 [^11] [^18]；以及处理由深度图像转换得到的点云的PointNet基方法 [^9] [^12] [^2] [^15] [^4]。在本节中，我们重点讨论PointNet基方法，因为点云是一种精确且简洁的表示形式，有助于实现高效的推理。

通过乘以相机内参矩阵，即可从深度图像中轻松获取点云。然而，由于点云具有不规则性和无序性，在处理点云方面一直存在挑战，直到PointNet的出现 [^20] [^21]。HandPointNet [^9]是首个以PointNet为骨干网络、直接从点云回归手部姿态的研究工作。随后，Point-to-Point模型 [^12]采用了分层式PointNet来生成逐点的概率分布，以提升估算精度。基于这些前期研究，SHPR-Net应运而生。

---

![Image](images/49955d4f67575fc6bc393c4f60aa86cf246428bc595298bb0b48cb0037f45068.jpg)

<div style="text-align: center;">Figure 3. The HandR²N² pipeline. HandR²N² takes the normalized point cloud transformed from a 2D depth image as the input. The PointNet-based local encoder extracts local features from input points. The local features are fed into an initial states generator to initialize hidden states of the residual recurrent unit (RRU). The high-dimensional initialized hidden states are also transformed into 3-dimensional space to generate initial joint estimation. At last, the RRU iteratively resamples points around previously estimation joints to update hidden states and joint locations.</div>

[^2]: combined HandPointNet with an auxiliary semantic segmentation sub-network to augment the performance. Point-to-Pose [^15] further exploited residual permutation equivariant layers [^22] to alleviate information loss caused by the max-pooling bottleneck. Recently, HandFoldingNet [^4] introduced multiscale-feature-guided folding to reshape a predefined 2D hand skeleton into hand poses.

不过，上述现有方法均采用单一前馈设计。在这种前馈架构中，可以通过采用更复杂的架构或增加参数来提升模型容量，但此类方案可能导致过拟合以及更高的计算需求。与这些方法不同，我们的模型利用循环机制，通过复用部分参数来迭代优化出精确的手部姿态。

#### 2.2. 用于手部姿态估计的循环模型

近期，循环模型[^7] [^35] [^33] [^34] [^36]已成功应用于基于2D图像的手部姿态估计。ACE-Net[^7]和SeqHand-Net[^35]利用长短期记忆（LSTM）来提取时序上下文信息，从而实现更平滑、更准确的彩色图像手部姿态估计。CADSTN[^33]同样采用LSTM来联合建模深度图像序列中的时空上下文。然而，由于这些方法以时序图像序列为输入，因此无法用于单张图像的手部姿态估计。相比之下，DIR-Net[^34]会迭代重用其部分结构，以优化单张彩色图像的降采样特征图。不过，更新整个特征图在计算上存在冗余，因为那些无贡献的特征（如背景）也会被反复计算。因此，HCRNN[^36]针对每个关节应用RNN，以实现更高的推理效率。

尽管循环模型在基于2D图像的手部姿态估计领域取得了显著进展，但在基于点云的手部姿态估计方面的研究却相对较少。Taylor等人[^29]提出了一种在线优化方法，通过迭代优化预定义的手部模板来匹配手部点。另一项相关研究[^5]则迭代重复整个对齐架构，从粗略的全局阶段到精细的局部阶段来对齐手部姿态；该研究还在多个全局阶段中采用LSTM来优化全局对齐效果。不过，由于该方法需要为多阶段特征生成重复使用整个结构，因此计算开销极大。相反，我们的网络在每次迭代中仅捕获每个关节周围的少量局部信息，且仅使用部分参数，因此比重新计算全局信息更高效。此外，我们还在循环单元中集成了图推理模块，通过捕捉关节间的运动学依赖关系来提升估计精度，而这一点在[^5]中并未采用。

### 3. 迭代式3D手部姿态估计

HandR²N²旨在基于循环架构实现迭代式手部姿态估计，如图3所示。直观而言，HandR²N²通过迭代搜索每个关节周围区域的最优位置来细化关节位置，如图1所示。HandR²N²的输入是一组经过预处理的3D点坐标$\mathbf{P} \in \mathbb{R}^{N \times 3}$，这些坐标代表手部形状，由2D深度图像通过相机内参矩阵转换得到。输出则是一系列估计出的3D关节坐标$\{\mathbf{J}_i \in \mathbb{R}^{J \times 3} | i = 0, 1, ..., I\}$，其中$\mathbf{J}_I$即为我们的最终估计结果。这N个点首先被输入到局部编码器中，以提取局部几何特征。由于输入的点集是不规则且无序的，我们采用了PointNet++[^16]提出的最远点采样方法和单层set_conv_layer[^21]来构建局部编码器($\mathbb{R}^{N \times 3} \to \mathbb{R}^{(N/2) \times (3 + d_{local})}$)。随后，局部特征被送入初始状态生成器以完成初始化。

---

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

<div style="text-align: center;">Figure 4. The architecture of the residual graph GRU. It first exploits a graph reasoning module to evolve hidden states. The evolved hidden states are subsequently updated by a GRU cell which takes resampled points as input. After updating, the residual between updated hidden states and previous states are output for joint refinement.</div>

隐藏状态$\mathbf{S}_0 \in \mathbb{R}^{J \times d_{hid}}$会经过初始联合回归器处理，从而得到关节的初始估计值$\mathbf{J}_0$。随后，一种新型的残差循环单元会被展开I次，通过重新采样先前估计的关节周围的有用局部特征，来迭代更新隐藏状态和关节估计值。迭代次数I是所提出网络的超参数，具有很大的灵活性。具体而言，训练迭代次数$(I_{tr})$可以与推理迭代次数$(I_{in})$不同，这一点将在第4.4节中详细讨论。

#### 3.1. 残差循环单元

HandR²N²需要一种能够提取输入点特征集并捕捉关节间运动学依赖关系的循环单元，以便进行迭代优化、完善先前的估计结果。显然，传统的循环单元如LSTM或GRU无法满足这些要求，因为它们的输入和隐藏状态都必须是单个向量，无法容纳输入点集。因此，我们提出了一种新型组件——残差循环单元（RRU）。RRU包含以下部分：1）重采样器；2）残差图GRU单元；3）残差回归器。重采样器会围绕先前生成的坐标$J_{i-1}$采样局部特征，形成第i次迭代的输入点集。为了利用点集输入来更新隐藏状态，我们提出了一种基于PointNet实现门控机制的新型残差图GRU。此外，所提出的GRU还会结合图推理来捕捉运动学依赖关系，从而增强隐藏状态。最后，当前状态与先前状态之间的残差会被送入残差回归器，以优化先前生成的坐标。

重采样器。重采样器会收集每个先前估计的关节$\mathbf{j}_{i-1} \in \mathbf{J}_{i-1}$周围的K近邻局部点及其对应的局部特征，如图1所示。随后，这些邻近点会被转换到以$\mathbf{j}_{i-1}$为原点的相对坐标系下。

残差图GRU。所提出的残差图GRU的结构如图4所示。由于许多近期的研究[^8] [^23]表明图卷积网络（GCN）能够建模关节间的有益依赖关系，因此上一次迭代得到的隐藏状态会首先通过新型GCN进行增强，从而形成演化后的隐藏状态：

 $$ \mathbf{S^{\prime}}_{i-1}={R e L U}(\mathbf{A}\mathbf{S}_{i-1}\mathbf{W}), $$

其中 $\mathbf{W} \in \mathbb{R}^{d_{hid} \times d_{hid}}$ 是可训练的权重。值得注意的是，$\mathbf{A} \in \mathbb{R}^{J \times J \times d_{hid}}$ 是一种新颖的逐通道独立邻接矩阵；这意味着对于S的每个通道 $s_c \in \mathbb{R}^{E J \times 1}$，都存在用于乘法运算 $a_c \in \mathbb{R}^{J \times J}$ 的独立邻接矩阵 $AS = [a_{1,s_1}, a_2, s_2, ..., a_{d_{hid}} s_{d_{hid}}]$，这里的 $[, \cdot]^*$ 表示拼接操作。随后，经过GCN演化的隐藏状态会被送入GRU单元，以聚合从采样的局部特征中提取的新信息，并更新第i次迭代的隐藏状态。传统的GRU单元并不适用，因为输入特征的维度比隐藏状态的维度多一维。因此，我们采用由共享多层感知机和最大池化层组成的set_conv_layer[^16]来进行门控计算，从而实现GRU功能。首先，将隐藏状态复制K次并与输入特征拼接。拼接后的输出会被送入各个门控单元进行计算。对于那些直接修改隐藏状态值的门控单元，我们使用set_conv_layer来压缩一个维度。此外，我们还设计了一种新颖的注意力重置门，它采用逐点多层感知机（MLP）来实现，使GRU能够筛选出适合更新隐藏状态的优质特征点，这有助于探索最优的关节位置。

---

![Image](images/bc3022d979207973689e19e07aa54044d72cfd95e67650390a05e6350d799da5.jpg)

<div style="text-align: center;">Figure 5. Visualization of the output from the reset gate in the proposed GRU. The small colored points in the circle are the grouped neighbors of the red input joint $j_{i-1}$, and their colors indicate the attentive intensity computed by Eq. 3. It shows that the points closer to the ground truth obtain relatively higher intensity. By leveraging clues to focus on highly-related points near the ground truth, the attentive GRU can output the accurate orange joint $j_{i}$.</div>

这些位置如图5所示。因此，给定某个关节演化后的隐藏状态 $\mathbf{s}'_{i-1} \in \mathbf{S}'_{i-1}$ 以及采样的局部特征 $\{\mathbf{f}_k \in \mathbb{R}^{3+d_{local}} | 1 \leq k \leq K\}$，GRU会生成更新后的隐藏状态 $\mathbf{s}_i$：

 $$ \mathbf{z}_{i}=\sigma(\mathop{{s e t\_{c} o n v}}_{1\leq k\leq K}([\mathbf{s^{\prime}}_{i-1},\mathbf{f}_{k}])), $$

 $$ \mathbf{r}_{i,k}=\sigma(M L P_{r}([\mathbf{s^{\prime}}_{i-1},\mathbf{f}_{k}])), $$

 $$ \mathbf{s}_{i}=\left(1-\mathbf{z}_{i}\right)\odot\mathbf{s^{\prime}}_{i-1}+\mathbf{z}_{i}\odot\mathbf{\tilde{s}}_{i}, $$

 $$ \mathbf{\tilde{s}}_{i}=t a n h(s e t\_{c} o n v_{h}([\mathbf{r}_{i,k}\odot\mathbf{s^{\prime}}_{i-1},\mathbf{f}_{k}])),\quad_{1\leq k\leq K} $$

其中 $\sigma$ 是Sigmoid激活函数，$[\cdot,]$ 是拼接操作，$\odot$ 是哈达玛积运算。需要注意的是，更新后的隐藏状态在隐空间中编码了关节的绝对位置。然而，为了优化之前生成的关节位置，我们需要相对表示形式。因此，我们引入了残差机制，输出更新信息的相对表示：

 $$ \mathbf{\Delta S}_{i}=\mathbf{S}_{i}-\mathbf{S}_{i-1}. $$

残差回归器。该回归器接收第i次迭代的残差状态作为输入，以优化第$(i-1)$次迭代生成的关节位置。该回归器是一种带有残差连接的线性变换。因此，第i次迭代的关节回归结果表示为：

 $$ \mathbf{J}_{i}=\Delta\mathbf{S}_{i}\mathbf{W}+\mathbf{J}_{i-1}, $$

其中 $\mathbf{W} \in \mathbb{R}^{d_{hid} \times 3}$ 是可训练的变换矩阵。

#### 3.2. 隐藏状态与关节坐标的初始化

RRU的隐藏状态 $\mathbf{S}$ 本质上是表示关节在$d_{hid}$维隐空间中的嵌入，之后可通过后续变换重新投影为三维坐标。因此，我们借鉴HandFoldingNet $\mathbf{S}_0$提出的生成逐关节嵌入的思路，来获取初始化的隐藏状态 [^4]。初始隐藏状态（即逐关节嵌入）的生成依次经过两个级联的set_conv_layer和一个三层偏置诱导层（BIL）[^3]。与HandFoldingNet [^4]类似，级联的set_conv_layer首先下采样并提取局部特征的$N/8$，随后将其聚合为全局特征。该全局特征会被复制J次并送入BIL，以生成J个关节对应的隐藏状态。最后，这J个隐藏状态会被送入回归器，回归器通过线性变换（$\mathbb{R}^{d_{hid}} \to \mathbb{R}^3$）来完成初始关节 $\mathbf{J}_0$ 的初始化。

#### 3.3. 训练损失函数

在先前的研究基础上[^25] [^4]，我们采用平滑L1损失函数来指导训练，因为它对异常值的敏感度较低。平滑L1损失函数定义如下：

 $$ L1_{smooth}(\mathbf{x})=\begin{cases}50\mathbf{x}^{2},&|\mathbf{x}|<0.01\\|\mathbf{x}|-0.005,&otherwise\end{cases}. $$

由于所提出的网络会输出一个初始估计值以及I个迭代估计值，因此我们通过以下的联合损失函数对所有输出进行监督：

 $$ \mathcal{L}=\sum_{i=0}^{I}\sum_{j=0}^{J}\lambda^{I-i}L1_{s m o o t h}(\mathbf{J}_{i j}-\mathbf{J}_{j}^{*}), $$

其中，$\mathbf{J}^{*}$表示真实坐标，$\lambda$是用于权衡每次迭代权重的超参数。在我们的实验中，默认将$\lambda = 0.8$设为相应数值。

### 4. 实验

#### 4.1. 实验设置

我们在NVIDIA A100 GPU上使用PyTorch进行了实验。训练时采用了AdamW优化器[^17]，其beta1参数为0.5，beta2参数为0.999，学习率为$\alpha = 0.001$。输入网络的点的数量被设定为1,024个，批量大小则设为32。批量归一化[^14]仅应用于局部编码器和初始化模块。同时，为避免过拟合，我们采用了在线数据增强技术，包括随机旋转（绕z轴旋转[-120.0, 120.0]度，绕x轴和y轴旋转[-30.0, 30.0]度）、三维缩放（[0.8, 1.2]）以及三维平移（[-20, 20]毫米）。模型共训练160个周期，其中120个周期后学习率衰减为原来的0.1倍。

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

MSRA数据集。MSRA数据集[^27]包含了由Intel Creative Interactive设备采集的超过76,000帧图像。

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Methods</td><td colspan="3">Mean joint error (mm)</td><td rowspan="2">Input</td><td rowspan="2"># Params</td><td rowspan="2"># FLOPs</td><td rowspan="2">Time (ms)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICVL</td><td style='text-align: center; word-wrap: break-word;'>MSRA</td><td style='text-align: center; word-wrap: break-word;'>NYU</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ren-4x6x6 [^13]</td><td style='text-align: center; word-wrap: break-word;'>7.63</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>13.39</td><td style='text-align: center; word-wrap: break-word;'>2D image</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ren-9x6x6 [^13]</td><td style='text-align: center; word-wrap: break-word;'>7.31</td><td style='text-align: center; word-wrap: break-word;'>9.7</td><td style='text-align: center; word-wrap: break-word;'>12.69</td><td style='text-align: center; word-wrap: break-word;'>2D image</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pose-Ren [^1]</td><td style='text-align: center; word-wrap: break-word;'>6.79</td><td style='text-align: center; word-wrap: break-word;'>8.65</td><td style='text-align: center; word-wrap: break-word;'>11.81</td><td style='text-align: center; word-wrap: break-word;'>2D image</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DenseReg [^32]</td><td style='text-align: center; word-wrap: break-word;'>7.3</td><td style='text-align: center; word-wrap: break-word;'>7.2</td><td style='text-align: center; word-wrap: break-word;'>10.2</td><td style='text-align: center; word-wrap: break-word;'>2D image</td><td style='text-align: center; word-wrap: break-word;'>5.8M</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>CrossInfoNet [^6]</td><td style='text-align: center; word-wrap: break-word;'>6.73</td><td style='text-align: center; word-wrap: break-word;'>7.86</td><td style='text-align: center; word-wrap: break-word;'>10.08</td><td style='text-align: center; word-wrap: break-word;'>2D image</td><td style='text-align: center; word-wrap: break-word;'>23.8M</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>JGR-P2O [^8]</td><td style='text-align: center; word-wrap: break-word;'>6.02</td><td style='text-align: center; word-wrap: break-word;'>7.55</td><td style='text-align: center; word-wrap: break-word;'>8.29</td><td style='text-align: center; word-wrap: break-word;'>2D image</td><td style='text-align: center; word-wrap: break-word;'>1.4M</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>2.0 + 7.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>SSRN-SD [^24]</td><td style='text-align: center; word-wrap: break-word;'>6.04</td><td style='text-align: center; word-wrap: break-word;'>7.16</td><td style='text-align: center; word-wrap: break-word;'>7.47</td><td style='text-align: center; word-wrap: break-word;'>2D image</td><td style='text-align: center; word-wrap: break-word;'>16.2M</td><td style='text-align: center; word-wrap: break-word;'>1.52G</td><td style='text-align: center; word-wrap: break-word;'>0.4 + 3.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>SSRN [^24]</td><td style='text-align: center; word-wrap: break-word;'>6.01</td><td style='text-align: center; word-wrap: break-word;'>7.05</td><td style='text-align: center; word-wrap: break-word;'>7.37</td><td style='text-align: center; word-wrap: break-word;'>2D image</td><td style='text-align: center; word-wrap: break-word;'>22.5M</td><td style='text-align: center; word-wrap: break-word;'>1.96G</td><td style='text-align: center; word-wrap: break-word;'>0.4 + 3.4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PHG [^23]</td><td style='text-align: center; word-wrap: break-word;'>5.97</td><td style='text-align: center; word-wrap: break-word;'>6.94</td><td style='text-align: center; word-wrap: break-word;'>7.39</td><td style='text-align: center; word-wrap: break-word;'>2D image</td><td style='text-align: center; word-wrap: break-word;'>35.7M</td><td style='text-align: center; word-wrap: break-word;'>27.02G</td><td style='text-align: center; word-wrap: break-word;'>0.4 + 15.8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3DCNN [^11]</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>9.6</td><td style='text-align: center; word-wrap: break-word;'>14.1</td><td style='text-align: center; word-wrap: break-word;'>3D voxels</td><td style='text-align: center; word-wrap: break-word;'>104.9M</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>2.9 + 1.68</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>SHPR-Net [^2]</td><td style='text-align: center; word-wrap: break-word;'>7.22</td><td style='text-align: center; word-wrap: break-word;'>7.76</td><td style='text-align: center; word-wrap: break-word;'>10.78</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HandPointNet [^9]</td><td style='text-align: center; word-wrap: break-word;'>6.94</td><td style='text-align: center; word-wrap: break-word;'>8.5</td><td style='text-align: center; word-wrap: break-word;'>10.54</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>2.5M</td><td style='text-align: center; word-wrap: break-word;'>1.72G</td><td style='text-align: center; word-wrap: break-word;'>8.2 + 11.3</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Point-to-Point [^12]</td><td style='text-align: center; word-wrap: break-word;'>6.3</td><td style='text-align: center; word-wrap: break-word;'>7.7</td><td style='text-align: center; word-wrap: break-word;'>9.10</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>4.3M</td><td style='text-align: center; word-wrap: break-word;'>2.98G</td><td style='text-align: center; word-wrap: break-word;'>8.2 + 15.7</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>V2V [^18]</td><td style='text-align: center; word-wrap: break-word;'>6.28</td><td style='text-align: center; word-wrap: break-word;'>7.59</td><td style='text-align: center; word-wrap: break-word;'>8.42</td><td style='text-align: center; word-wrap: break-word;'>3D voxels</td><td style='text-align: center; word-wrap: break-word;'>34.1M</td><td style='text-align: center; word-wrap: break-word;'>6.23G</td><td style='text-align: center; word-wrap: break-word;'>23 + 5.5</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HandFolding [^4]</td><td style='text-align: center; word-wrap: break-word;'>5.95</td><td style='text-align: center; word-wrap: break-word;'>7.34</td><td style='text-align: center; word-wrap: break-word;'>8.58</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>1.3M</td><td style='text-align: center; word-wrap: break-word;'>1.31G</td><td style='text-align: center; word-wrap: break-word;'>8.2 + 3.7</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Deng et al. [^5]</td><td style='text-align: center; word-wrap: break-word;'>6.05</td><td style='text-align: center; word-wrap: break-word;'>7.00</td><td style='text-align: center; word-wrap: break-word;'>6.84</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>0.9 + 47.6</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$I_{in}=1$</td><td style='text-align: center; word-wrap: break-word;'>6.51</td><td style='text-align: center; word-wrap: break-word;'>6.93</td><td style='text-align: center; word-wrap: break-word;'>8.00</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>1.3M</td><td style='text-align: center; word-wrap: break-word;'>0.72G</td><td style='text-align: center; word-wrap: break-word;'>0.9 + 4.2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$I_{in}=2$</td><td style='text-align: center; word-wrap: break-word;'>6.12</td><td style='text-align: center; word-wrap: break-word;'>6.49</td><td style='text-align: center; word-wrap: break-word;'>7.50</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>1.3M</td><td style='text-align: center; word-wrap: break-word;'>1.06G</td><td style='text-align: center; word-wrap: break-word;'>0.9 + 6.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>5.86</td><td style='text-align: center; word-wrap: break-word;'>6.42</td><td style='text-align: center; word-wrap: break-word;'>7.36</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>1.3M</td><td style='text-align: center; word-wrap: break-word;'>1.40G</td><td style='text-align: center; word-wrap: break-word;'>0.9 + 7.9</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$I_{in}=3$</td><td style='text-align: center; word-wrap: break-word;'>5.70</td><td style='text-align: center; word-wrap: break-word;'>6.48</td><td style='text-align: center; word-wrap: break-word;'>7.29</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>1.3M</td><td style='text-align: center; word-wrap: break-word;'>1.74G</td><td style='text-align: center; word-wrap: break-word;'>0.9 + 9.7</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$I_{in}=4$</td><td style='text-align: center; word-wrap: break-word;'>5.71</td><td style='text-align: center; word-wrap: break-word;'>6.54</td><td style='text-align: center; word-wrap: break-word;'>7.27</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>1.3M</td><td style='text-align: center; word-wrap: break-word;'>2.08G</td><td style='text-align: center; word-wrap: break-word;'>0.9 + 11.5</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$I_{in}=5$</td><td style='text-align: center; word-wrap: break-word;'>5.71</td><td style='text-align: center; word-wrap: break-word;'>6.54</td><td style='text-align: center; word-wrap: break-word;'>7.27</td><td style='text-align: center; word-wrap: break-word;'>3D points</td><td style='text-align: center; word-wrap: break-word;'>1.3M</td><td style='text-align: center; word-wrap: break-word;'>2.08G</td><td style='text-align: center; word-wrap: break-word;'>0.9 + 11.5</td></tr></table>

<div style="text-align: center;">Table 1. Comparison of the proposed method with previous state-of-the-art methods on the ICVL, MSRA and NYU datasets. Input indicates the input type of 2D depth image, 3D voxels or 3D point cloud. # Params indicates the number of model parameters. Time stands for the total computation time including preprocessing time and model inference time.</div>

手势摄像头。每一帧图像都标注了$J = 21$个关节点，其中包括1个手腕关节点和每个手指的4个关节点。我们遵循先前研究中所采用的留一受试者交叉验证策略[^4] [^27]来评估该数据集。

ICVL数据集。ICVL数据集[^28]包含22,000帧训练用深度图像和1,600帧测试用深度图像，这些图像由Intel Creative Interactive手势摄像头采集。每帧图像标注了$J = 16$个关节点，其中包括1个手掌关节点和每个手指的3个关节点。由于图像中还存在人体其他部位，因此我们按照[^19]中描述的方法从深度图像中裁剪出手部区域。

NYU数据集。NYU数据集是从三个不同视角采集的。每个视角分别包含72,000帧训练用深度图像和8,000帧测试用深度图像，这些图像由PrimeSense 3D传感器采集。遵循近期相关研究[^4] [^12] [^9]的做法，我们选取了一个视角，并从总共36个标注关节点中选出14个用于训练和测试[^31]。手部区域的裁剪过程也采用了与ICVL数据集相同的[^19]方法。

评估指标。我们采用了两种常用的指标——平均关节误差和成功率——来评估手部姿态估计的性能。平均关节误差用于衡量整个测试集中所有关节点的估计位置与真实位置之间的平均欧几里得距离；成功率则表示平均关节误差小于给定阈值的有效帧所占的百分比。

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

我们将HandR²N²与其他最先进的方法进行了比较，包括以二维深度图像为输入的方法：区域集成网络（Ren-4x6x6 [^13]、Ren-9x6x6 [^32]）、Pose-Ren [^1]、密集回归网络（DenseReg）[^32]、CrossInfoNet [^6]、JGR-P2O [^8]、空间感知堆叠回归网络（SSRN [^24]、SSRN-SD [^24]）以及姿态引导的层次图网络（PHG）[^23]；还有以三维点云或体素为输入的方法：3DCNN [^11]、SHPR-Net [^2]、HandPointNet [^9]、Point-to-Point [^12]、V2V [^18]、HandFoldingNet [^4]以及Deng等人提出的方法 [^5]。

表1总结了各模型在平均关节误差方面的性能。需要注意的是，我们的模型在ICVL、MSRA和NYU数据集上分别使用$I_{tr} = 3$进行训练，并使用$I_{in} = 4$、$I_{in} = 3$、$I_{in} = 5$进行测试。结果表明，$\text{HandR}^2\text{N}^2$在两个具有挑战性的数据集ICVL和MSRA上分别取得了5.70毫米、6.42毫米和7.27毫米的平均距离误差，达到了新的最先进水平。它在NYU数据集上的误差也位列第二低。尤其是，$\text{HandR}^2\text{N}^2$的性能显著优于基于三维输入的以往最先进方法，差距十分明显。同时，$\text{HandR}^2\text{N}^2$仅需要

---

![Image](images/21332f5d19150a7733783231c7f78f351179c8b4840330be78baf3aa03cc7fad.jpg)

![Image](images/654891c5d8ee47a0e22010c03d3cd5f3f63911e70f6a0053a6041c6b15bacc54.jpg)

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

<div style="text-align: center;">Figure 6. Comparison with the state-of-the-art methods using the ICVL (left), MSRA (middle) and NYU (right) dataset. The success rate is shown in this figure.</div>

![Image](images/cc0d9567994613b60704d20ee7db40deb26a572f1230c891ab0ff7cd1e1d81fd.jpg)

<div style="text-align: center;">Figure 7. Qualitative results of HandR $^2$N $^2$ on the ICVL (left), MSRA (middle) and NYU (right) dataset. Hand depth images are transformed into 3D points as shown in the figure. Ground truth is shown in black, and the estimated joint coordinates are shown in red.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td colspan="7">Mean joint error (mm)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>25.76</td><td style='text-align: center; word-wrap: break-word;'>9.10</td><td style='text-align: center; word-wrap: break-word;'>7.32</td><td style='text-align: center; word-wrap: break-word;'>7.36</td><td style='text-align: center; word-wrap: break-word;'>7.44</td><td style='text-align: center; word-wrap: break-word;'>7.40</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>7</td><td style='text-align: center; word-wrap: break-word;'>25.18</td><td style='text-align: center; word-wrap: break-word;'>8.94</td><td style='text-align: center; word-wrap: break-word;'>7.30</td><td style='text-align: center; word-wrap: break-word;'>7.34</td><td style='text-align: center; word-wrap: break-word;'>7.44</td><td style='text-align: center; word-wrap: break-word;'>7.40</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>25.12</td><td style='text-align: center; word-wrap: break-word;'>8.74</td><td style='text-align: center; word-wrap: break-word;'>7.28</td><td style='text-align: center; word-wrap: break-word;'>7.33</td><td style='text-align: center; word-wrap: break-word;'>7.44</td><td style='text-align: center; word-wrap: break-word;'>7.39</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>24.12</td><td style='text-align: center; word-wrap: break-word;'>8.55</td><td style='text-align: center; word-wrap: break-word;'>7.27</td><td style='text-align: center; word-wrap: break-word;'>7.32</td><td style='text-align: center; word-wrap: break-word;'>7.46</td><td style='text-align: center; word-wrap: break-word;'>7.40</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>23.61</td><td style='text-align: center; word-wrap: break-word;'>8.36</td><td style='text-align: center; word-wrap: break-word;'>7.29</td><td style='text-align: center; word-wrap: break-word;'>7.33</td><td style='text-align: center; word-wrap: break-word;'>7.49</td><td style='text-align: center; word-wrap: break-word;'>7.42</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>21.05</td><td style='text-align: center; word-wrap: break-word;'>7.97</td><td style='text-align: center; word-wrap: break-word;'>7.36</td><td style='text-align: center; word-wrap: break-word;'>7.36</td><td style='text-align: center; word-wrap: break-word;'>7.56</td><td style='text-align: center; word-wrap: break-word;'>7.50</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>17.90</td><td style='text-align: center; word-wrap: break-word;'>7.69</td><td style='text-align: center; word-wrap: break-word;'>7.50</td><td style='text-align: center; word-wrap: break-word;'>7.50</td><td style='text-align: center; word-wrap: break-word;'>7.71</td><td style='text-align: center; word-wrap: break-word;'>7.73</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>7.96</td><td style='text-align: center; word-wrap: break-word;'>8.17</td><td style='text-align: center; word-wrap: break-word;'>8.00</td><td style='text-align: center; word-wrap: break-word;'>7.99</td><td style='text-align: center; word-wrap: break-word;'>8.35</td><td style='text-align: center; word-wrap: break-word;'>8.50</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>10.60</td><td style='text-align: center; word-wrap: break-word;'>10.81</td><td style='text-align: center; word-wrap: break-word;'>10.74</td><td style='text-align: center; word-wrap: break-word;'>10.75</td><td style='text-align: center; word-wrap: break-word;'>11.45</td><td style='text-align: center; word-wrap: break-word;'>11.65</td></tr><tr><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;'>7</td></tr></table>

<div style="text-align: center;">Figure 8. Training  $I_{tr}$ vs. inference  $I_{in}$. For each column, the model are trained based on a fixed iteration number and evaluated at different inference  $I_{in}$.</div>

130万个参数，这一数值通常比其他近期的最先进方法要少。图6显示，当误差阈值分别低于20毫米、15毫米和52毫米时，我们的方法在ICVL、MSRA和NYU数据集上的成功率均显著优于其他方法。图2还展示了HandR²N²的卓越效率，其动态可调计算量为0.72+0.34×I GFLOPs。结果表明，在$I_{in} = 3$条件下，我们的模型在运算量相近的情况下实现了最低的估计误差，优于其他最先进方法。此外，该模型可以通过适度增加计算量来动态运行更多迭代次数，从而获得更低的估计误差。

#### 4.4. 消融实验

我们开展了消融实验，以分析模型中各个组件的贡献。以下实验基于NYU数据集进行评估，因为该数据集具有挑战性且尚未达到饱和状态。

迭代次数。尽管在训练期间迭代次数I是一个特定数值，但在推理阶段它却可以相当灵活，甚至更大。我们首先使用不同的训练$I_{tr}$次数来训练模型，以找出训练阶段的最佳迭代设置。接着，我们用各种推理$I_{in}$次数来测试训练好的模型。结果如图8所示。有趣的是，当训练$I_{tr} \geq 3$次数较少时，即便推理$I_{in}$次数比训练时更大，我们的模型仍能在后续几次迭代中继续提升性能。具体而言，当训练期间设置$I_{tr} = 3$次数时，模型在经过5次推理迭代后能达到7.27毫米的最小估计误差。请注意，在训练迭代次数较少（$I_{tr} < 3$）的情况下，模型仅针对相同的推理迭代次数（$I_{in} = I_{tr}$）进行优化。另一方面，更大的$I_{tr}$次数能让模型归纳出所有迭代之间变化的规律，这不仅有利于已训练的迭代次数（$I_{in} = I_{tr}$），也有助于未训练的更大迭代次数（$I_{in} > I_{tr}$）。不过，图8进一步显示出，当训练期间$I_{tr} \geq 5$次数较多时，模型性能会下降。这是因为较长的反向传播路径限制了模型获得恰当的估计值。迭代路径越长，

---

![Image](images/cd4df3f62e7e595606a6a1f2f7b29f57babd05062724acc1f1196117df5b7e96.jpg)

<div style="text-align: center;">Figure 9. Qualitative visualization of the models with training  $I_{tr} = 3$ evaluated at different inference  $I_{in}$ based on the NYU dataset. Mean error indicates the mean joint error. Ground truth is shown in black, and the estimated joint coordinates are shown in red.</div>

第0次迭代与第I次迭代的估计值差异就越大。因此，我们推测所有迭代对共享参数的累积梯度会平滑掉每次单独迭代应有的正确下降梯度，进而降低了最终精度。然而，在特定的迭代次数范围内（根据图8可知为$3 < I_{tr} < 5$），这些平滑后的累积梯度能让模型学习到迭代间关节运动的一般优化方向。基于这些结果，我们经验性地确定，为实现高性能推理与高效训练，最佳的$I_{tr}$次数应为3。

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

<div style="text-align: center;">Figure 10. Affect of sampling K. For each line, the inference  $I_{ins}$ are same, but with increased K of resampled points for each iteration. All models are trained based on training  $I_{tr} = 3$.</div>

此外，如表1所示，仅需增加少量的计算量（每次迭代0.34 GFLOPs）和时间消耗（每次迭代1.8毫秒），就能提升估计精度。

重采样点的数量。重采样点会为

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>GRU</td><td style='text-align: center; word-wrap: break-word;'>GCN</td><td style='text-align: center; word-wrap: break-word;'>Res.</td><td style='text-align: center; word-wrap: break-word;'>Mean error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>8.68 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>8.06 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>7.76 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>7.62 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>7.99 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>7.36 mm</td></tr></table>

<div style="text-align: center;">Table 2. Ablations of different GRU configurations. GCN and Res. indicate whether the GCN and residual mechanism are activated in the RRU, respectively. All the ablation models are trained and tested with both  $I_{tr} = I_{in} = 3$.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Configurations</td><td style='text-align: center; word-wrap: break-word;'>Mean error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Conventional GCN + Res.</td><td style='text-align: center; word-wrap: break-word;'>8.14 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Channel-wise GCN + Res.</td><td style='text-align: center; word-wrap: break-word;'>7.76 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Conventional GRU + Res.</td><td style='text-align: center; word-wrap: break-word;'>8.59 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Attentive GRU + Res.</td><td style='text-align: center; word-wrap: break-word;'>7.99 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Conventional GRU + GCN + Res.</td><td style='text-align: center; word-wrap: break-word;'>8.07 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Attentive GRU + Channel-wise GCN + Res.</td><td style='text-align: center; word-wrap: break-word;'>7.36 mm</td></tr></table>

<div style="text-align: center;">Table 3. Comparison with conventional components. All models are trained and tested with both  $I_{tr} = I_{in} = 3$.</div>

每个关节周围提供K个用于位置精修的新候选点。因此，K是一个影响性能的重要超参数。图10展示了不同K值与推理迭代次数下的性能表现。结果表明，较大的K值能降低估计误差，因为它提供了更宽泛的观察范围。不过，当K=48时性能便趋于饱和，因为超出特定关节有效区域之外的额外采样点（即距离该关节较远而靠近其他关节的点）对估计并无帮助。

不同GRU配置的分析。为了增强

---

最终估算时，我们将新型GRU与GCN相结合，利用隐藏状态和残差机制来生成相对表示，具体描述见第3节。为了验证它们的作用，我们逐步引入了GRU单元、GCN以及残差机制。因此，我们进行了以下五种消融实验：1）不使用GRU；2）仅使用GRU；3）使用带残差的GCN；4）GRU与GCN结合；5）GRU与残差机制结合；6）GRU同时结合残差机制和GCN，也就是我们的完整模型。需要注意的是，不含残差机制的消融实验（即情况2和4）会直接将隐藏状态转换为绝对关节坐标。如表2所示，GRU单元、GCN以及残差机制对提升估算效果均有显著作用。其中，新型GRU能将精度提高0.4毫米以上。此外，采用新型GCN和残差机制后，估算误差分别进一步减少了0.4毫米和0.2毫米以上。

与传统组件的对比。为了验证所提出组件的有效性，我们分别用传统组件替换掉所提出的通道级GCN和注意力GRU。具体实现细节详见补充材料。表3表明，我们所提出的GCN和GRU的性能均显著优于传统实现方式。

### 5. 结论

本文提出了HandR²N²，这是一种新型循环架构，能够从单个点云中迭代地回归出越来越精确的三维手部姿态。实验结果证明，在三个具有挑战性的数据集上，我们的网络性能显著优于以往的最先进方法。大量实验也体现了该网络出色的灵活性与效率。作为局限性，当手部部位被严重遮挡时，HandR²N²的性能可能会下降，因为RRU无法采集到有效的点。将这项工作拓展到时序序列学习领域或许能缓解这些局限性，这我们将留待后续研究。

## 致谢

本研究得到了韩国科学和信息通信技术部（MSIT）国家研究基金会（NRF）项目（2022R1A4A3032913）以及信息通信技术规划评估研究所（IITP）项目（IITP-2019-0-00421、IITP-2023-2020-0-01821、IITP-2021-0-02052、IITP-2021-0-02068）的支持，还得到了贸易工业能源部资助的技术创新计划（RS-2023-00235718）（1415187474）的支持。程文灿部分得到了中国国家留学基金委（CSC）的支持。

## 参考文献

[^1]: Xinghao Chen, Guijin Wang, Hengkai Guo, and Cairong Zhang. Pose guided structured region ensemble network for cascaded hand pose estimation. Neurocomputing, 395:138–149, 2020. 1, 2, 6

[^2]: Xinghao Chen, Guijin Wang, Cairong Zhang, Tae-Kyun Kim, and Xiangyang Ji. Shpr-net: Deep semantic hand pose regression from point clouds. IEEE Access, 6:43425–43439, 2018. 1, 2, 3, 6

[^3]: Wencan Cheng and Sukhan Lee. Point auto-encoder and its application to 2d-3d transformation. In International Symposium on Visual Computing, pages 66–78. Springer, 2019.

[^4]: Wencan Cheng, Jae Hyun Park, and Jong Hwan Ko. Hand-foldingnet: A 3d hand pose estimation network using multiscale-feature guided folding of a 2d hand skeleton. In Proceedings of the IEEE/CVF International Conference on Computer Vision, pages 11260–11269, 2021. 1, 2, 3, 5, 6

[^5]: Xiaoming Deng, Dexin Zuo, Yinda Zhang, Zhaopeng Cui, Jian Cheng, Ping Tan, Liang Chang, Marc Pollefeys, Sean Fanello, and Hongan Wang. Recurrent 3d hand pose estimation using cascaded pose-guided 3d alignments. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022. 2, 3, 6

[^6]: Kuo Du, Xiangbo Lin, Yi Sun, and Xiaohong Ma. Cross-infonet: Multi-task information sharing based hand pose estimation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 9896–9905, 2019. 1, 2, 6

[^7]: Zhipeng Fan, Jun Liu, and Yao Wang. Adaptive computationally efficient network for monocular 3d hand pose estimation. In European Conference on Computer Vision, pages 127–144. Springer, 2020. 3

[^8]: Linpu Fang, Xingyan Liu, Li Liu, Hang Xu, and Wenxiong Kang. Jgr-p2o: Joint graph reasoning based pixel-to-offset prediction network for 3d hand pose estimation from a single depth image. In European Conference on Computer Vision, pages 120–137. Springer, 2020. 1, 2, 4, 6

[^9]: Liuhao Ge, Yujun Cai, Junwu Weng, and Junsong 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. 1, 2, 6

[^10]: Liuhao Ge, Hui Liang, Junsong Yuan, and Daniel 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. 1, 2

[^11]: Liuhao Ge, Hui Liang, Junsong Yuan, and Daniel Thalmann. 3d convolutional neural networks for efficient and robust hand pose estimation from single depth images. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1991–2000, 2017. 1, 2, 6

## [^12]: Liuhao Ge, Zhou Ren, and Junsong Yuan. Point-to-point regression pointnet for 3d hand pose estimation. In Proceedings of the European conference on computer vision (ECCV), pages 475–491, 2018. 1, 2, 6

---

[^13]: Hengkai Guo, Guijin Wang, Xinghao Chen, Cairong Zhang, Fei Qiao, and Huazhong Yang. Region ensemble network: Improving convolutional network for hand pose estimation. In 2017 IEEE International Conference on Image Processing (ICIP), pages 4512–4516. IEEE, 2017. 1, 2, 6

[^14]: Sergey Ioffe and Christian Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In International conference on machine learning, pages 448–456. PMLR, 2015. 5

[^15]: Shile Li and Dongheui Lee. Point-to-pose voting based hand pose estimation using residual permutation equivariant layer. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 11927–11936, 2019. 1, 2, 3

[^16]: Xingyu Liu, Charles R Qi, and Leonidas J Guibas. Flownet3d: Learning scene flow in 3d point clouds. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 529–537, 2019. 3, 4

[^17]: Ilya Loshchilov and Frank Hutter. Decoupled weight decay regularization. arXiv preprint arXiv:1711.05101, 2017. 5

[^18]: Gyeongsik Moon, Ju Yong Chang, and Kyoung Mu Lee. V2v-posenet: Voxel-to-voxel prediction network for accurate 3d hand and human pose estimation from a single depth map. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 5079–5088, 2018. 1, 2, 6

[^19]: Markus Oberweger and Vincent Lepetit. Deepprior++: Improving fast and accurate 3d hand pose estimation. In Proceedings of the IEEE international conference on computer vision Workshops, pages 585–594, 2017. 6

[^20]: Charles R Qi, Hao Su, Kaichun Mo, and Leonidas J Guibas. Pointnet: Deep learning on point sets for 3d classification and segmentation. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 652–660, 2017. 1,2

[^21]: Charles Ruizhongtai Qi, Li Yi, Hao Su, and Leonidas 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. 1, 2, 3

[^22]: Siamak Ravanbakhsh, Jeff Schneider, and Barnabas Poczos. Deep learning with sets and point clouds. arXiv preprint arXiv:1611.04500, 2016. 3

[^23]: Pengfei Ren, Haifeng Sun, Jiachang Hao, Qi Qi, Jingyu Wang, and Jianxin Liao. Pose-guided hierarchical graph reasoning for 3-d hand pose estimation from a single depth image. IEEE Transactions on Cybernetics, 2021. 1, 2, 4, 6

[^24]: Pengfei Ren, Haifeng Sun, Weiting Huang, Jiachang Hao, Daixuan Cheng, Qi Qi, Jingyu Wang, and Jianxin Liao. Spatial-aware stacked regression network for real-time 3d hand pose estimation. Neurocomputing, 437:42–57, 2021. 6

[^25]: Pengfei Ren, Haifeng Sun, Qi Qi, Jingyu Wang, and Weiting Huang. Srn: Stacked regression network for real-time 3d hand pose estimation. In BMVC, page 112, 2019. 1, 2, 5

[^26]: Oindrila Saha, Aditya Kusupati, Harsha Vardhan Simhadri, Manik Varma, and Prateek Jain. Rnnpool: efficient nonlinear pooling for ram constrained inference. Advances in Neural Information Processing Systems, 33:20473–20484, 2020. 2

[^27]: Xiao Sun, Yichen Wei, Shuang Liang, Xiaoou Tang, and Jian Sun. Cascaded hand pose regression. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 824–832, 2015. 2, 5, 6

[^28]: Danhang Tang, Hyung Jin Chang, Alykhan Tejani, and Tae-Kyun Kim. Latent regression forest: Structured estimation of 3d articulated hand posture. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 3786–3793, 2014. 2, 6

[^29]: Jonathan Taylor, Lucas Bordeaux, Thomas Cashman, Bob Corish, Cem Keskin, Toby Sharp, Eduardo Soto, David Sweeney, Julien Valentin, Benjamin Luff, et al. Efficient and precise interactive hand tracking through joint, continuous optimization of pose and correspondences. ACM Transactions on Graphics (TOG), 35(4):1–12, 2016. 3

[^30]: Zachary Teed and Jia Deng. Raft: Recurrent all-pairs field transforms for optical flow. In European conference on computer vision, pages 402–419. Springer, 2020. 2

[^31]: Jonathan Tompson, Murphy Stein, Yann Lecun, and Ken Perlin. Real-time continuous pose recovery of human hands using convolutional networks. ACM Transactions on Graphics (ToG), 33(5):1–10, 2014. 1, 2, 6

[^32]: Chengde Wan, Thomas Probst, Luc Van Gool, and Angela Yao. Dense 3d regression for hand pose estimation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 5147–5156, 2018. 6

[^33]: Yiming Wu, Wei Ji, Xi Li, Gang Wang, Jianwei Yin, and Fei Wu. Context-aware deep spatiotemporal network for hand pose estimation from depth images. IEEE transactions on cybernetics, 50(2):787–797, 2018. 3

[^34]: John Yang, Yash Bhalgat, Simyung Chang, Fatih Porikli, and Nojun Kwak. Dynamic iterative refinement for efficient 3d hand pose estimation. In Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision, pages 1869–1879, 2022. 2, 3

[^35]: John Yang, Hyung Jin Chang, Seungeui Lee, and Nojun Kwak. Seqhand: RGB-sequence-based 3d hand pose and shape estimation. In European Conference on Computer Vision, pages 122–139. Springer, 2020. 2, 3

[^36]: Cheol-Hwan Yoo, Seowon Ji, Yong-Goo Shin, Seung-Wook Kim, and Sung-Jea Ko. Fast and accurate 3d hand pose estimation via recurrent neural network for capturing hand articulations. IEEE Access, 8:114010–114019, 2020. 3
