
# DGGAN：用于3D手部姿态估计中RGB图像与深度图像解耦的深度图引导生成对抗网络

陈良健 $^{1}$、林世尧 $^{2}$、谢宇生 $^{*3}$、林彦宇 $^{4}$、范伟 $^{2}$、谢晓辉 $^{1}$

$^{1}$加州大学欧文分校，$^{2}$腾讯美国公司，$^{3}$亚马逊，$^{4}$国立交通大学，{liangjc2,xhx}@ics.uci.edu，{shihyaolin,davidwfan}@tencent.com，<mailto:yushx@amazon.com>，<mailto:lin@cs.nctu.edu.tw>

## 摘要

从RGB图像中估计3D手部姿态在众多潜在应用中至关重要，但由于从RGB图像推断深度信息存在较大歧义，这一任务颇具挑战性。现有的先进估计器通过在训练期间对3D手部姿态估计模型进行正则化，以强制预测的3D姿态与真实深度图保持一致，从而解决这一问题。然而，这些估计器在训练时既需要RGB图像，也需要配对的深度图。在本研究中，我们提出了一种条件生成对抗网络（GAN）模型，称为深度图引导GAN（DGGAN），它能够根据输入的RGB图像生成逼真的深度图，并利用合成的深度图对3D手部姿态估计模型进行正则化，从而无需依赖真实深度图。在多个基准数据集上的实验结果表明，DGGAN生成的合成深度图对姿态估计模型的正则化效果十分显著，在估计精度上取得了新的最优结果：在RHD、STB和MHP数据集上，平均3D端点误差（EPE）分别降低了4.7%、16.5%和6.8%。

### 1. 引言

基于视觉的3D手部姿态估计（3D HPE）旨在估计给定手部图像的3D关键点坐标。由于3D HPE在人机交互（HCI）[^1] [^21]、手语理解[^34]、增强/虚拟现实（AR/VR）[^22] [^15]以及机器人领域[^1]有着广泛的应用，因此受到了越来越多的关注。RGB图像和深度图是3D HPE任务中最常用的两种输入数据。图1(a)展示了一幅手部图像及其对应的深度图。深度图能够提

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

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

![Image](images/54e7a971e7317c192e1a7a6074329b46397095ee77a637c6140f74fe11d7729c.jpg)

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

<div style="text-align: center;">Figure 1. Training examples in a generic 3D HPE dataset: (a) paired RGB and depth images; (b) unpaired RGB and depth images. Our work does not rely on paired training data and therefore is applicable to both RGB-only and depth-only 3D HPE tasks.</div>

供与人类手部表面距离相关的3D信息。事实证明，利用深度图训练网络能在3D HPE任务上取得显著进展[^4] [^16]。此外，借助深度图提供的深度信息，还能有效解决手部分割任务。遗憾的是，采集深度图通常需要特定的传感器（如微软Kinect、RealSense），这限制了那些基于深度图的先进方法的实用性。商用深度传感器通常比RGB相机昂贵得多。另一方面，RGB图像是HPE任务中最常用的输入数据，因为它可以通过摄像头、智能手机等大量低成本光学传感器轻松采集。然而，从RGB图像中进行3D HPE是一项极具挑战性的任务。

在缺乏深度信息的情况下，从单目RGB图像中估计3D手部姿态本质上是一个不适定问题。为解决这一问题，诸如[^4] [^10]等前沿方法会利用RGB手部图像及其配对的深度图来完成3D手部姿态估计任务。这些方法的3D手部姿态推理过程会同时考虑RGB图像和配对的深度信息。它们首先基于RGB图像回归出3D手部姿态，随后通过独立的分支利用配对的深度图对预测出的3D手部姿态进行规整。深度规整器的目标是使预测的3D关键点位置与提供的深度图保持一致。

---

这带来了两大优势：1）利用深度图训练网络能够借助深度信息减少歧义，从而有效提升手部姿态估计器的性能；2）在推理阶段仅基于RGB图像即可实现3D手部姿态估计。这些方法需要配对的RGB和深度训练图像。遗憾的是，现有大多数手部姿态数据集仅包含深度图或RGB图像，而非两者兼具，这使得上述方法无法应用于这类数据集。此外，未配对的RGB和深度训练图像也无法用于这些方法。图1(b)展示了一个未配对的RGB图像和深度图的示例。

为解决这一问题，我们提出了一种新型生成对抗网络，称为深度图引导式GAN（DGGAN）。我们的网络包含两个模块：深度图重建和手部姿态估计。该方法的核心思路是，在缺乏配对的RGB和深度训练图像时，直接从输入的RGB手部图像中重建深度图。给定一张RGB图像，我们的深度图重建模块旨在推断出其对应的深度图。我们的手部姿态估计模块会同时利用RGB和深度信息来推断3D手部姿态。在手部姿态估计模块中，我们首先在输入的RGB图像上推断出2D手部关键点，再利用这些推断出的2D关键点回归出3D手部姿态。随后利用深度图对推断出的3D手部姿态进行规整。与大多数现有的3D手部姿态估计模型不同，用于训练DGGAN模型的真实深度图无需任何配对的RGB图像。一旦DGGAN训练完成，所提出的手部姿态估计模块就能直接利用RGB图像，并在DGGAN推断出的深度图的引导（规整）下推断出手部姿态。由于深度图可由我们的深度图重建模块推断得出，因此所提出的DGGAN不再需要配对的RGB和深度图像。我们的DGGAN采用端到端可训练的网络架构，对这两个模块进行联合训练。在多个基准数据集上的实验结果表明，我们的DGGAN不仅能重建输入RGB图像的深度图，还能通过额外的深度规整器显著提升3D手部姿态估计器的性能。

本研究的主要贡献总结如下：

1. 我们提出了一种用于从RGB图像中估计3D手部姿态的深度图引导式对抗神经网络（DGGAN）。该网络能够同时从输入的RGB图像中推断深度信息并估计3D手部姿态。

2. 我们引入了深度图重建模块，用于在学习预测3D手部姿态的同时，从输入的RGB图像中推断出深度图。我们的DGGAN是在易于获取的、未与RGB图像配对的手部深度图上训练的。

3. 实验结果表明，在RHD、STB和MHP这三个基准数据集上，我们的方法在3D手部姿态预测精度方面达到了新的最先进水平。

### 2. 相关工作

下文将讨论与本研究相关的研究主题。

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

基于深度图的3D手部姿态估计已经得到了广泛研究。该领域的现有方法取得了显著进展 [^29] [^33] [^8] [^31] [^9] [^11] [^20]。Wan等人 [^29] 提出了一种密集回归方法，用于拟合变形手部模型的参数。Ge等人 [^9] [^11] 采用PointNet[^24]来提取手部特征，并借助这些提取的特征回归手部关节位置。Wu等人 [^31] 采用中间密集引导图监督机制来生成手部热图。尽管现有方法能够取得非常精确的估计结果，但它们通常依赖于高精度深度传感器采集的手部数据，这类传感器在实际应用中仍然价格昂贵，且通常需要在实验室环境中采集数据。与上述方法中的模型不同，我们的模型可以在RGB数据上进行推理，无需依赖深度图。

#### 2.2. 基于单目RGB图像的3D手部姿态估计

由于RGB相机应用广泛，基于单目RGB图像的3D手部姿态估计在计算机视觉应用中越来越受欢迎。许多近期的方法旨在直接从单张RGB图像中估计手部关节位置 [^4] [^16] [^10] [^38] [^22] [^6] [^32] [^3] [^36] [^28]。Zimmermann等人 [^38] 使用二维卷积神经网络（CNN）从RGB图像中提取特征，进而回归3D手部关节位置。不过，由于缺乏深度信息，他们的方法存在深度歧义问题。在Zimmermann等人工作的基础上，Iqbal等人 [^16] 和Cai等人 [^4] 继承并采用了类似的二维CNN架构来提取图像特征。Iqbal等人将深度图用作中间引导信息，而Cai等人则以弱监督的方式将深度图视为正则化项。尽管这两种方法在估计精度上取得了实质性进展，但目前能满足其对配对深度图和RGB图像需求的数据集寥寥无几。Ge等人 [^10] 更进一步，他们先从RGB图像预测手部网格，再基于该网格得到3D手部关节位置。不过，他们的方法需要配对的网格信息，而这在所有现有数据集中更为罕见。

与这些方法相比，我们的方法在训练时也会利用深度信息，但不需要任何配对的RGB图像和深度图。因此它的灵活性更强，因为可以调用来自不同数据集或来源的RGB图像和深度图。

---

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

<div style="text-align: center;">Figure 2. Overview of the proposed DGGAN. DGGAN consists of two modules, a depth-map reconstruction module shown in Figure 4 and a hand pose estimation module shown in Figure 4. The former module trained using the GAN loss aims at inferring the depth map of a hand based on the input RGB image and making the generated depth map looks realistic. The latter module trained using the task loss estimates hand poses from the input RGB and the GAN-reconstructed depth images.</div>

#### 2.3. 基于RGB图像的3D网格估计

为了进一步提升3D HPE [^2] [^3] [^10] [^18]的性能，可以引入手部网格估计。也就是说，该模型不仅能估计手部关节，还能估计手部表面网格。然而，诸如[^10]之类的方法存在一个共同缺陷：它们需要额外的网格标注，而获取这些标注的成本甚至比获取关节位置数据还要高。因此，受此限制，它们通常只能在合成数据集上训练。Seungryul等人[^3]提出了一种迭代学习方法，用于优化网格形状并取得极佳的性能。不过，与3D手部关节位置类似，手部网格高度依赖于来自手部分割图的额外监督信息，而这类信息在当今的手部姿态数据集中通常并不可得。boukhayma等人[^3]提出的方法是唯一一种无需额外数据的方案，但其性能有限。

#### 2.4. 基于GAN的图像转换

利用生成对抗网络（GAN）[^13]生成图像技术取得了显著进展。许多方法致力于探索如何通过应用GAN模型[^14] [^17] [^37] [^7]来更好地操控图像。Isola等人[^17]提出了Pix2Pix网络，该网络可将标签图或边缘图转换为合成照片、从边缘图重建物体或对图像进行着色。Zhu等人[^37]引入了循环一致性生成对抗网络（CycleGAN）。CycleGAN利用循环一致性损失来解耦输入与输出对，因此无需成对的输入数据。Hoffman等人[^14]提出了循环一致性对抗域适应（CyCADA）方法。与CycleGAN相比，CyCADA包含了分割损失项。因此，CyCADA不仅能将图像从一种模态转换为另一种模态，还能处理特定的视觉任务。

将生成对抗模型应用于RGB手部图像以进行手部姿态估计也日益受到青睐。Muller等人[^22]提出了几何一致性GAN（GeoConGAN），用于生成用于训练的合成图像数据。Chen等人[^6]提出了色调对齐生成对抗网络（TAGAN），用于为手部姿态估计器训练生成更逼真的合成图像。然而，这些方法仅专注于生成RGB图像，没有一种方法能生成用于辅助手部姿态估计器训练的深度图。

### 3. 我们的方法

我们的目标是从单目RGB手部图像中估计3D手部姿态。尽管现有的一些最先进方法[^3] [^25] [^33]表明，用RGB图像和深度图像训练网络能够提升3D手部姿态估计器的性能，但很少有3D手部姿态数据集包含配对的RGB图像和深度图像。为解决配对数据缺失的问题，我们提出了一种新颖的对抗神经网络——深度图引导的生成对抗网络（DGGAN），如图2所示。该网络能够同时学习从手部RGB图像中推断深度图，以及估计3D手部姿态。接下来，我们将概述所提出的DGGAN，并详细介绍DGGAN的两个主要模块。

#### 3.1. DGGAN概述

所提出的DGGAN由两个主要模块组成：深度图重建模块和手部姿态估计模块。其网络架构如图2所示。

给定一张RGB手部图像$\mathbf{I}$，我们希望估算出K个3D手部关节的位置$\mathbf{J}^{xyz} \in \mathbb{R}^{3 \times K}$。$3 \times K$矩阵中的每一列都是一个大小为3的向量，代表某个关节的$(x, y, z)$坐标，即$\mathbf{J}^{xyz} = [J_1^{xyz}, J_2^{xyz}, \ldots, J_K^{xyz}]$。

所提出的DGGAN G中的两个模块分别通过GAN损失$\mathcal{L}_{GAN}$和任务损失$\mathcal{L}_{task}$进行训练。学习G的目标被表述为一个极小极大博弈：

 $$ G^{*}=\arg\min_{G}\max_{D}(\lambda_{t}\mathcal{L}_{task}+\lambda_{g}\mathcal{L}_{GAN}), $$

---

![Image](images/613171e9db9bec2acb058ed9e7b80e1e897d9d1f03621da639625b0caabea100.jpg)

<div style="text-align: center;">Figure 3. Network architecture of the depth-map reconstruction module.</div>

其中$\lambda_{t}$和$\lambda_{g}$用于控制这两个损失项的相对重要性。

给定一张RGB手部图像，我们的深度图重建模块会尝试生成对应的深度图。该模块采用一组无配对的训练深度图像进行训练，以便其生成的深度图能与真实深度图相似。为实现这一点，该模块中的判别器负责区分真实深度图和伪造（生成）的深度图。第3.2节详细描述了深度图重建的相关细节。由深度图重建模块生成的深度图会与输入的RGB图像一同送入手部姿态估计模块，用于估算3D手部姿态。在手部姿态估计模块中，输入的RGB图像用于回归3D手部姿态，而生成的深度图则用于约束预测的3D手部姿态。手部姿态估计的损失函数$L_{task}$被用于优化。第3.3节将详细描述相关内容。

#### 3.2. 深度图重建模块

深度图重建模块旨在放宽训练时对配对RGB图像和深度图的要求。该模块通过一个对抗网络构建，能够根据输入的RGB图像推断出深度图。图3展示了该模块的网络架构。在训练阶段，我们的网络需要深度图像和RGB训练图像，但RGB图像和深度图无需成对。我们将从对应RGB图像推断深度图的过程视为一个无监督适配问题，其中同时提供RGB模态S和深度模态T。我们有一组RGB图像$X_S$和一组真实深度图$X_T$。为了实现从S到T的转换，我们采用编码器-解码器架构$G_{S\to T}$。生成器$G_{S\to T}$被训练成能生成逼真的深度图以欺骗判别器D，而判别器D则用于区分真实数据$x_t$和生成的伪造数据$G_{S\to T}(x_s)$。深度重建模块的损失函数如下：

 $$ \begin{aligned}&\mathcal{L}_{G A N}(G_{S\rightarrow T},D,X_{S},X_{T})=\\ &\quad\mathbb{E}_{x_{t}\sim X_{T}}[\log D(x_{t})]+\\ &\quad\mathbb{E}_{x_{s}\sim X_{S}}[\log(1-D(G_{S\rightarrow T}(x_{s})))].\\ \end{aligned} $$

该损失还提供了语义约束，迫使生成器生成更逼真的深度图。由于输入的是无配对的RGB图像和深度图，我们的深度图重建模块可应用于更广泛的手部姿态数据集。此外，我们还能利用大量无配对的RGB图像和深度图来训练网络。

#### 3.3. 手部姿态估计模块

深度图重建模块计算出的推断深度图会与输入的RGB图像结合，一同送入手部姿态估计模块。图4展示了手部姿态估计模块的网络架构。手部姿态估计模块会计算出任务损失$\mathcal{L}_{task}$，该损失由两个项$\mathcal{L}_{task} = \mathcal{L}_{2D} + \mathcal{L}_z$组成。3D手部回归损失$\mathcal{L}_{2D}$和深度正则化损失$\mathcal{L}_z$分别在第3.3.1节和第3.3.2节中描述。

#### 3.3.1 3D手部姿态回归

以往的研究[^4]表明，深度信息可用于构建强大的正则化项。我们利用深度正则化项来提升3D手部姿态估计的结果。与大多数需要真实深度图的先前工作不同，我们的模型使用的是由深度图重建模块生成的合成深度图。实验结果表明，利用此类合成深度图进行训练能显著改善直接回归的结果。

3D手部姿态回归以RGB图像和推断出的深度图作为输入，分两步输出关节位置。第一步中，我们采用CPM架构的一种常用变体[^5] [^30]作为2D关节位置预测器。该预测器包含六个阶段，每个阶段有七层卷积层，随后是修正线性单元（ReLU）。它能预测K个热图$\{H_s^k\}_{k=1}^K$，对应K个不同的手部关节。在第s阶段的$k^{th}$热图中，像素值$H_s^k$表示$k^{th}$关节位于该位置的置信度。按照惯例[^30]，真实热图被记为$\{H_s^k\}_{k=1}^K$。每个$H_s^k$都是以$\delta$关节的真实位置为中心的高斯模糊狄拉克$k^{th}$分布。我们通过标准反向传播和均方误差（MSE）损失来训练手部姿态模块的这一部分。除了MSE损失外，我们还为每个阶段添加中间监督。2D位置预测的最终损失为

 $$ \mathcal{L}_{2D}=\frac{1}{6K}\sum_{s=1}^{6}\sum_{k=1}^{K}||H_{s}^{k}-H_{*}^{k}||_{F}^{2}. $$

---

![Image](images/47d2385e88997a7067ee4531dd7ae8c8abc727f06d136fb802b71cb486673e6a.jpg)

<div style="text-align: center;">Figure 4. Architecture of the hand pose estimation module. This module takes paired RGB images and inferred depth maps as inputs. 2D CPM consumes an RGB image as input and produces the hand joint heatmap. The joint heatmap is fed to the regression network to estimate the 3D joint locations with the aid of a depth regularizer. The depth regularizer reconstructs the depth map from 3D joint locations and is trained using L1 loss and the GAN-synthesized depth map as guidance.</div>

第二步中，回归网络以CPM输出的热图作为输入，输出相对深度。其架构是一个迷你版CPM（仅一个阶段而非六个），随后是三个全连接层。$Z \in \mathbb{R}^{K \times 1}$表示每个手部关节的相对深度。我们采用平滑L1损失来衡量Z与真实深度$Z^*$之间的差异。深度回归的损失$\mathcal{L}_z$可总结如下：

 $$ \mathcal{L}_{z}=\frac{1}{K}\sum_{k=1}^{K}\left\{\begin{aligned}\frac{1}{2}(Z_{k}-Z_{k}^{*})^{2},&\text{if}|Z_{k}-Z_{k}^{*}|\leq0.5\\ |Z_{k}-Z_{k}^{*}|,&\text{otherwise.}\end{aligned}\right. $$

#### 3.3.2 深度正则化项

为了对深度图上的每个像素提供监督，我们采用了[^4]中提出的深度正则化项（DR）。该深度正则化项以相对深度作为输入，预测出相对深度图D。它将$Z \in \mathbb{R}^{K \times 1}$重塑为一个$K \times 1 \times 1$张量，将其视为K通道的图像输入。随后，通过六层转置CNN，将该K通道、分辨率为$1 \times 1$的图像上采样为1通道、分辨率与原始深度图相同的$(n \times m)$图像。

我们将D与真实相对深度图$D^{*}$之间的L1范数作为深度正则化项损失$\mathcal{L}_{dep}$，即

 $$ \mathcal{L}_{d e p}=||D-D^{*}||, $$

其中$D^{*}$是通过输入深度图$\hat{D}^{*}$得到的，具体方式如下

 $$ D^{*}=\frac{\hat{D}^{*}-\min\hat{D}^{*}}{\max\hat{D}^{*}-\min\hat{D}^{*}}. $$

需要注意的是，我们仅在初始化阶段使用真实深度图$\hat{D}^{*}$。一旦初始化阶段结束，它就会被DGGAN生成的深度图替换。

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

<div style="text-align: center;">Figure 5. Some examples of the three benchmark datasets used for evaluation. Top Row: The RHD dataset [^38] provides synthetic hand images with 3D hand keypoint annotations. Middle Row: The STB dataset [^35] contains real hand images with 3D keypoints. Bottom Row: The MHP [^12] offers real hand images with 3D keypoints.</div>

结合第3.3节和第3.3.2节描述的损失项，我们将手部姿态估计模块的损失函数总结为

 $$ \mathcal{L}_{t a s k}=\lambda_{z}*\mathcal{L}_{z}+\lambda_{2D}*\mathcal{L}_{2D}+\lambda_{d e p}*\mathcal{L}_{d e p}, $$

其中$\lambda_{z}$、$\lambda_{2D}$、$\lambda_{dep}$分别用于控制三种不同损失项的重要性。

### 4. 实验设置

本节介绍我们的实验设置。首先给出用于性能评估的选定基准数据集，随后介绍评估指标和训练细节。

#### 4.1. 评估用数据集

我们在三个基准数据集上开展实验，包括立体手部追踪基准数据集。

---

![Image](images/ce54b87aaadedde151e48ee930f0ef1f28f9c9c5b8c355ed5ac10f9ede0d3526.jpg)

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

![Image](images/1388cddd1dd2dc2a72f44cbf931adbeddaa5c4ef42e24e9f9f44b2375eb3f018.jpg)

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

![Image](images/e1643196576ee229fd0d07330bec06154a07b02e1c5f372644b3b4b8e0dfcac5.jpg)

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

<div style="text-align: center;">Figure 6. Comparisons with the state-of-the-art approaches on the (a) STB, (b) RHD, and (c) MHP datasets for 3D hand pose estimation.</div>

(STB) [^35]、渲染手部姿态数据集（RHD）[^38]以及多视角手部姿态（MHP）数据集[^12]。

STB数据集包含真实手部图像。它有两个不同子集：SK和BB。SK子集中的图像由Point Grey Bumblebee2立体相机拍摄，而BB子集中的图像则来自深度传感器。在实验中，我们使用BB子集进行DGGAN训练，并利用SK子集进行非配对测试。

RHD是一个合成数据集。Zhang等人[^35]使用3D模拟器Maya，渲染20个不同角色执行39种动作的图像。每条数据包含一个RGB图像及对应的深度图像，还有2D/3D标注信息。该数据集颇具挑战性，因为其图像取自不同视角且涵盖多种手部形状。

MHP数据集提供彩色手部图像，以及手部的边界框和各关节的2D、3D位置信息。它由21人的手部图像组成，涵盖了不同的手部动作。每一帧图像都来自四个不同视角，2D和3D标注是通过Leap Motion控制器获取的。

训练前，我们首先从原始画布中裁剪出手部区域，以确保手部所占比例在画面中占主导地位。需要注意的是，STB和MHP数据集将手掌中心而非手腕作为手部关键点之一。因此，我们修改了标注信息，将手掌中心移至手腕处，这一操作与[^4]中的做法一致。

#### 4.2. 评估指标

遵循以往的研究[^4] [^6] [^38]，我们通过以下指标评估手部姿态估计结果：1）阈值在20毫米到50毫米之间时正确关键点百分比（PCK）下的曲线下面积（AUC 20_50）；2）端点误差（EPE）：预测的3D关节位置与真实值之间的距离。在表1中，我们报告了AUC 20_50以及所有手部关键点的EPE均值和中位数。

#### 4.3. 训练

训练期间，我们首先初始化所提出的DGGAN中深度图重建模块和手部姿态估计模块的权重。这两个模块均通过拟合STB数据集（见4.1节）进行初始化，但分别训练。随后，我们将两个模块连接起来，以端到端的方式对整个网络进行微调。在使用RHD和STB数据集训练时，判别器用于区分$G_{S\rightarrow T}(x_s)$和$x_t$，即来自相应数据集的随机选取的深度图。对于MHP数据集，由于其中不包含密集深度图，我们简单地将RHD数据集中的深度图随机指定为$x_t$。

### 5. 实验结果

在STB数据集上的评估中，我们选择PSO [^19]、ICPPSO [^25]和CHPR [^27]作为基线。此外，我们还选取了最先进的方法Z&B [^38]以及Cai等人的方法[^4]进行对比。

在RHD数据集上，我们将我们的方法与Z&B [^38]以及[^4]中的方法进行比较。同样，在MHP数据集上，我们也将我们的方法与[^4]中的方法进行比较。需要注意的是，Cai等人[^4]尚未发布他们的代码。我们重新实现了他们的方法，并根据我们的实现报告结果。

#### 5.1. 消融实验

为了分析所提出的DG-GAN的有效性，我们在三个不同的数据集上对DGGAN进行了消融实验。详细结果总结在表1中。具体来说，我们对以下三种不同设置进行了实验：

1. 回归：仅用RGB图像训练回归网络，不使用任何深度正则化器。

2. 回归 + DR + DGGAN：我们利用RGB图像学习深度正则化的回归网络。

---

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

<div style="text-align: center;">Figure 7. Comparison between the generated and ground-truth depth maps on the RHD dataset. The first and fourth columns show the RGB images. The second and fifth columns display the real depth maps. The third and sixth columns give the generated depth maps.</div>

![Image](images/c847477c9ebf328da3c45166c7f5d12a6c6418764f936004f49f742f4e863c92.jpg)

<div style="text-align: center;">Figure 8. Comparison between the generated and ground-truth depth maps on the STB dataset. The first and fourth columns show the RGB images. The second and fifth columns display the real depth maps. The third and sixth columns give the generated depth maps.</div>

该网络使用由DGGAN生成的深度图。

3. 回归 + DR + 真实深度图：我们利用带有配对真实深度图的RGB图像来构建深度正则化的回归网络。

为了衡量生成深度图的有效性，我们比较了“回归”和“回归 + DR + DGGAN”这两种设置。如表1所示，使用生成的深度图显著提升了“回归”模型中模型的性能。在RHD、STB和MHP数据集上，AUC 20_50分别提高了0.043、0.024和0.011；EPE均值也分别降低了13.2%、19.7%和7.3%。

为了将生成的深度图与真实深度图进行比较，我们又进行了两项实验。对比“回归 + DR + 真实深度图”和“回归 + DR + DGGAN”的结果可以发现，生成的深度图是提升性能的关键因素。在RHD数据集上，使用生成的深度图训练的效果仅比使用真实的RHD深度图略差，AUC 20_50相差0.02，EPE均值相差1毫米。然而，在STB数据集上，使用生成的深度图训练的结果甚至优于使用真实深度图训练的结果（AUC 20_50高出0.006，EPE均值低0.94毫秒）。这一结果很可能是由于深度传感器采集的深度图不如3D模拟器采集的深度图稳定且噪声更小。通过用RHD中成对的高质量深度图训练DGGAN，我们的生成器有望降低噪声，进而对手部姿态估计模块的训练产生积极影响。值得注意的是，“回归 + DR + 真实深度图”设置需要配对的深度图和RGB图像。

---

<div style="text-align: center;">Table 1. 3D pose estimation results on the RHD, STB, MHP datasets.  $\uparrow$: higher is better.  $\downarrow$: lower is better. Regression is the previous State-of-the-art without using paired depth maps.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>AUC 20-50 $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>EPE mean (mm) $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>EPE median (mm) $\downarrow$</td></tr><tr><td colspan="4">RHD Dataset</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regression</td><td style='text-align: center; word-wrap: break-word;'>0.816</td><td style='text-align: center; word-wrap: break-word;'>21.5</td><td style='text-align: center; word-wrap: break-word;'>13.96</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regression + DR + DGGAN</td><td style='text-align: center; word-wrap: break-word;'>0.839</td><td style='text-align: center; word-wrap: break-word;'>19.0</td><td style='text-align: center; word-wrap: break-word;'>13.17</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regression + DR + true depth map</td><td style='text-align: center; word-wrap: break-word;'>0.859</td><td style='text-align: center; word-wrap: break-word;'>18.0</td><td style='text-align: center; word-wrap: break-word;'>13.16</td></tr><tr><td colspan="4">STB Dataset</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regression</td><td style='text-align: center; word-wrap: break-word;'>0.976</td><td style='text-align: center; word-wrap: break-word;'>10.91</td><td style='text-align: center; word-wrap: break-word;'>9.11</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regression + DR + DGGAN</td><td style='text-align: center; word-wrap: break-word;'>0.990</td><td style='text-align: center; word-wrap: break-word;'>9.11</td><td style='text-align: center; word-wrap: break-word;'>7.70</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regression + DR + true depth map</td><td style='text-align: center; word-wrap: break-word;'>0.984</td><td style='text-align: center; word-wrap: break-word;'>10.05</td><td style='text-align: center; word-wrap: break-word;'>8.44</td></tr><tr><td colspan="4">MHP Dataset</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regression</td><td style='text-align: center; word-wrap: break-word;'>0.928</td><td style='text-align: center; word-wrap: break-word;'>14.08</td><td style='text-align: center; word-wrap: break-word;'>10.75</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regression + DGGAN</td><td style='text-align: center; word-wrap: break-word;'>0.939</td><td style='text-align: center; word-wrap: break-word;'>13.12</td><td style='text-align: center; word-wrap: break-word;'>9.91</td></tr></table>

<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;'>EPE mean (mm) $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Regression + DR + DGGAN (Ours)</td><td style='text-align: center; word-wrap: break-word;'>9.11</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Boukhayma et al. [^3]</td><td style='text-align: center; word-wrap: break-word;'>9.76</td></tr></table>

除了定量分析外，图7和图8分别展示了RHD和STB数据集上生成深度图与真实深度图的视觉对比示例。可以看出，生成的深度图在视觉上与真实深度图非常相似。

#### 5.2. 与现有最先进方法的比较

### 5.2. 与现有先进方法的比较

我们选取了以下先进方法 [^3] [^4] [^23] [^26] [^35] [^22] [^38] 进行对比。对比结果详见图6和表2。如图6和表2所示，我们的方法性能优于所有现有的先进方法。尽管Cai等人提出的方法 [^4] 的结果与我们接近，但我们强调：我们的DGGAN具有无需使用成对的RGB图像和深度图像这一关键优势。

## 6. 结论

缺乏大规模的RGB图像与深度图像配对数据集，是提升3D手部姿态估计性能的主要瓶颈之一。为解决这一难题，我们提出了一种基于条件GAN的模型——DGGAN，用以弥合RGB图像与深度图之间的差距。DGGAN能够根据RGB图像合成深度图，从而在训练过程中对3D手部姿态预测模型进行约束，无需再使用传统训练中所需的RGB图像与深度图配对数据。

所提出的DGGAN被集成到3D手部姿态预测框架中，并与该框架一起进行端到端的3D姿态估计训练。DGGAN不仅能生成更逼真的手部深度图像，这些图像还可应用于3D形状估计等诸多其他领域；同时它还能显著提升3D手部姿态估计的性能，创造出新的业界最佳结果。

致谢。本研究部分得到了科技部（MOST）资助，项目编号为MOST 107-2628-E-001-005-MY3和MOST 108-2634-F-007-009。

## 参考文献

[^1]: S. Antoshchuk, M. Kovalenko, and J. Sieck. Gesture recognition-based human-computer interaction interface for multimedia applications. In Digitisation of Culture: Namibian and International Perspectives. 2018.

## [^2]: S. Baek, K. I. Kim, and T.-K. Kim. Pushing the envelope for rgb-based dense 3d hand pose estimation via neural rendering. In CVPR, 2019

---

[^3]: A. Boukhayma, R. d. Bem, and P. H. Torr. 3d hand shape and pose from images in the wild. In CVPR, 2019.

[^4]: Y. Cai, L. Ge, J. Cai, and J. Yuan. Weakly-supervised 3d hand pose estimation from monocular rgb images. In ECCV, 2018.

[^5]: Z. Cao, T. Simon, S.-E. Wei, and Y. Sheikh. Realtime multi-person 2d pose estimation using part affinity fields. In CVPR, 2017.

[^6]: L. Chen, S.-Y. Lin, Y. Xie, H. Tang, Y. Xue, Y.-Y. Lin, X. Xie, and W. Fan. Tonality-alignment generative adversarial networks for realistic hand pose synthesis. In BMVC, 2019.

[^7]: Y.-C. Chen, Y.-Y. Lin, M.-H. Yang, and J.-B. Huang. CrDoCo: Pixel-level domain transfer with cross-domain consistency. In CVPR, 2019.

[^8]: X. Deng, S. Yang, Y. Zhang, P. Tan, L. Chang, and H. Wang. Hand3d: Hand pose estimation using 3d neural network. arXiv preprint arXiv:1704.02224, 2017.

[^9]: L. Ge, Y. Cai, J. Weng, and J. Yuan. Hand pointnet: 3d hand pose estimation using point sets. In CVPR, 2018.

[^10]: L. Ge, Z. Ren, Y. Li, Z. Xue, Y. Wang, J. Cai, and J. Yuan. 3d hand shape and pose estimation from a single rgb image. In CVPR, 2019.

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

[^12]: F. Gomez-Donoso, S. Orts-Escolano, and M. Cazorla. Large-scale multiview 3d hand pose dataset. arXiv preprint arXiv:1707.03742, 2017.

[^13]: I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Generative adversarial nets. In NIPS, 2014.

[^14]: J. Hoffman, E. Tzeng, T. Park, J.-Y. Zhu, P. Isola, K. Saenko, A. A. Efros, and T. Darrell. Cycada: Cycle-consistent adversarial domain adaptation. arXiv preprint arXiv:1711.03213, 2017.

[^15]: Y.-P. Hung and S.-Y. Lin. Re-anchorable virtual panel in three-dimensional space, 2016. US Patent 9,529,446.

[^16]: U. Iqbal, P. Molchanov, T. Breuel Juergen Gall, and J. Kautz. Hand pose estimation via latent 2.5 d heatmap regression. In ECCV, 2018.

[^17]: P. Isola, J.-Y. Zhu, T. Zhou, and A. A. Efros. Image-to-image translation with conditional adversarial networks. In CVPR, 2017.

[^18]: H. Joo, T. Simon, and Y. Sheikh. Total capture: A 3d deformation model for tracking faces, hands, and bodies. In CVPR, 2018.

[^19]: J. Kennedy. Particle swarm optimization. Encyclopedia of machine learning, 2010.

[^20]: S. Li and D. Lee. Point-to-pose voting based hand pose estimation using residual permutation equivariant layer. arXiv preprint arXiv:1812.02050, 2018.

[^21]: S.-Y. Lin, C.-K. Shie, S.-C. Chen, and Y.-P. Hung. Airtouch panel: a re-anchorable virtual touch panel. In MM, 2013.

[^22]: F. Mueller, F. Bernard, O. Sotnychenko, D. Mehta, S. Sridhar, D. Casas, and C. Theobalt. Generated hands for real-time 3d hand tracking from monocular rgb. In CVPR, 2018.

[^23]: P. Panteleris, I. Oikonomidis, and A. Argyros. Using a single rgb frame for real time 3d hand pose estimation in the wild. In WACV, 2018.

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

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

[^26]: A. Spurr, J. Song, S. Park, and O. Hilliges. Cross-modal deep variational hand pose estimation. In CVPR, June 2018.

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

[^28]: B. Tekin, F. Bogo, and M. Pollefeys. H+ o: Unified egocentric recognition of 3d hand-object poses and interactions. CVPR, 2019.

[^29]: C. Wan, T. Probst, L. Van Gool, and A. Yao. Dense 3d regression for hand pose estimation. In CVPR, 2018.

[^30]: S.-E. Wei, V. Ramakrishna, T. Kanade, and Y. Sheikh. Convolutional pose machines. In CVPR, 2016.

[^31]: X. Wu, D. Finnegan, E. O'Neill, and Y.-L. Yang. Handmap: Robust hand pose estimation via intermediate dense guidance map supervision. In ECCV, September 2018.

[^32]: L. Yang and A. Yao. Disentangling latent hands for image synthesis and pose estimation. CVPR, 2019.

[^33]: 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 CVPR, 2018.

[^34]: Z. Zafrulla, H. Brashear, T. Starner, H. Hamilton, and P. Presti. American sign language recognition with the kinect. In ICMI, 2011.

[^35]: J. Zhang, J. Jiao, M. Chen, L. Qu, X. Xu, and Q. Yang. 3d hand pose tracking and estimation using stereo matching. arXiv preprint arXiv:1610.07214, 2016.

[^36]: W. Zhe, C. Liyan, R. Shaurya, S. Daeyun, and F. Charless. Geometric pose affordance: 3d human pose with scene constraints. In arxiv, 2019.

[^37]: J.-Y. Zhu, T. Park, P. Isola, and A. A. Efros. Unpaired image-to-image translation using cycle-consistent adversarial networks. In ICCV, 2017.

[^38]: C. Zimmermann and T. Brox. Learning to estimate 3d hand pose from single rgb images. In CVPR, 2017.
